Quick Answer: COGS or OpEx?
Shipping and postage split into two different accounts in the chart of accounts depending on whether the cost ties directly to revenue. Cost of Goods Sold (COGS) captures shipping that's part of fulfilling a customer order: the box that leaves the warehouse with the product. Shipping & Postage Expense (Operating Expense) captures everything else: mailing checks, sending documents, marketing mailers, postage stamps for the office.
The split matters because it changes gross margin, the metric every operator and lender pays attention to. Misclassifying $50,000 of e-commerce fulfillment as Operating Expense instead of COGS makes gross margin look 10-15 points better than reality, and the lender or buyer reading the financials makes decisions based on numbers that aren't true.
Shipping COGS (When Shipping Is Part of Fulfillment)
For e-commerce, mail-order, and any business that ships products to customers, fulfillment shipping is COGS. Account name: Shipping COGS or Cost of Sales: Shipping. This account sits in the COGS section of the P&L (above the gross-margin line), not in Operating Expenses. Every dollar of postage paid to USPS, UPS, or FedEx for an outbound customer order goes here.
Shipping & Postage Expense (Operational, e.g., Mailing Checks)
For service businesses and the operational side of product businesses, non-fulfillment shipping is Operating Expense. Account name: Shipping & Postage Expense. This sits in Operating Expenses (below gross margin). Mailing checks to vendors, sending tax documents to clients, postage on marketing mailers, the company FedEx account used for occasional document shipments. All goes here.
Decision Rule: Tied Directly to Revenue → COGS
The decision rule is one question: does this shipping cost exist because we sold a product? If yes, COGS. If no, Operating Expense. A pure service business (consulting, accounting, software) has no fulfillment shipping at all. Every dollar is OpEx. A pure e-commerce business has 90%+ of shipping in COGS. Most product businesses with a service component split somewhere in between.
When Shipping Is COGS
E-commerce is where the COGS classification matters most.
E-commerce Fulfillment
Every outbound customer order has shipping cost: the postage label, the carrier rate, sometimes a fulfillment-center handling fee. All of it is COGS. A Shopify store running 1,200 orders a month with average shipping cost of $7.50 has $9,000 a month in shipping COGS. That's a $108,000 annual COGS line, material to gross margin and material to any analysis of unit economics.
The integration story: Shopify, ShipStation, ShippingEasy, and other fulfillment platforms can post shipping labels as a separate line on each order, which makes the COGS attribution automatic. Without integration, the QBO bank feed shows aggregate USPS or UPS charges that have to be split manually between fulfillment and operational shipping. Workable, but more error-prone.
Pass-Through to Customer
Most e-commerce customers pay shipping at checkout. The customer-paid shipping is revenue (Shipping Revenue or Sales Revenue, depending on the business's structure), and the cost the merchant pays to the carrier is COGS. Both numbers belong on the books at gross. Some bookkeepers shortcut this by netting customer-paid shipping against carrier cost; the result is a missing revenue line and a missing COGS line, both for the same dollar amount.
A practical example: a customer pays $11.50 shipping at checkout; the merchant pays $9.20 to ship the order via UPS. Revenue: $11.50 in Shipping Revenue (or built into Sales). Expense: $9.20 in Shipping COGS. Net "shipping margin" is $2.30 per order, which the operator sees as a clean line. Netting it loses both numbers.
Why This Affects Gross Margin
Gross margin is (Revenue - COGS) / Revenue. Move $108,000 of shipping from COGS to OpEx and gross margin improves by roughly 10 points on a $1M revenue business. Investors, lenders, and acquirers all benchmark gross margin against industry standards. A misclassified e-commerce business looks more profitable than its peers; the misclassification eventually surfaces during diligence and creates trust problems that cost more than the categorization mistake.
When Shipping Is Operating Expense
The non-fulfillment side is mostly small dollar amounts but easy to get wrong.
Mailing Checks and Documents
Sending a check to a vendor: postage stamp, certified mail fee, or FedEx envelope. Sending tax documents to clients (1099s, K-1s): bulk postage runs in January. All Operating Expense. Categorize to Shipping & Postage Expense (the OpEx account, not COGS). Annual amounts for service businesses are usually small ($200 to $2,000), but the line item still belongs on the P&L for completeness.
Office Postage
The office postage meter, the petty-cash run to the post office, the strip of stamps in the desk drawer for occasional outgoing mail. All Operating Expense, all to Shipping & Postage Expense. The line behaves a lot like office supplies vs office expenses — small recurring administrative spend that doesn't tie to a customer order. For clients on a Stamps.com or Endicia subscription used purely for office mail (not fulfillment), the monthly subscription is also OpEx.
Marketing Mailers (Sometimes Marketing)
Marketing mailers are the gray-zone call. A direct-mail campaign sending postcards to a 5,000-address list: the postage for the campaign could go to Marketing & Advertising (because it's a marketing campaign cost) or to Shipping & Postage Expense (because it's postage). The defensible answer is Marketing. The postage is part of executing a marketing initiative, and reporting marketing-spend totals is easier when all marketing costs are in one bucket. Pick one and apply consistently.
Postage Stamps in Petty Cash
Petty cash runs to buy stamps are infrequent enough that the categorization rarely matters. The stamp purchase is the expense (Shipping & Postage Expense for a service business; tracked through normal AP for a product business). Don't overthink it.
Packaging Supplies
Packaging is another COGS-vs-expense question, with materiality being the deciding factor.
Boxes, Tape, Bubble Wrap
For e-commerce and product businesses with fulfillment volume, packaging supplies that ship with customer orders are COGS. Boxes, tape, bubble wrap, packing peanuts, void fill: all ship with the product, so the cost is part of fulfillment cost. Account: Packaging COGS or as a sub-account under Shipping COGS.
For service businesses or product businesses with low volume, packaging is so small that it's defensible to expense as Operating Expense (Office Supplies or Shipping & Postage Expense). The split point is materiality: if packaging exceeds about $1,000 a month or 1% of revenue, treat it as COGS. Below that, OpEx is fine.
Inventory vs Expense (Materiality)
Some businesses buy packaging in bulk (10,000 boxes ordered in March, used through December). Technically that's an inventory question. Packaging on hand at year-end is an asset, not an expense. In practice, most small businesses expense packaging as purchased and call it a day. The materiality threshold for capitalizing packaging as inventory is usually $5,000+ on hand at any given time; below that, the bookkeeping overhead exceeds the financial-statement benefit.
Custom Branded Packaging
Custom branded packaging (co-branded boxes, branded inserts, branded tissue paper) is also COGS for e-commerce, but with a marketing-flavored argument for splitting some portion to Marketing & Advertising. The defensible answer: if the branded packaging is part of every customer order (most e-commerce DTC brands), it's COGS. If it's a one-time campaign-specific run (limited-edition holiday packaging shipped only to specific customers), it might be Marketing. Default to COGS unless the marketing argument is strong.
Fulfillment Services
Fulfillment-tech is the other gray-zone call in this account family.
ShipStation, Shippo, EasyPost
Fulfillment software platforms (ShipStation, Shippo, EasyPost, Stamps.com Pro, Endicia) can go to Software & Subscriptions (because they're SaaS subscriptions) or to Shipping COGS (because they exist purely to enable fulfillment). The defensible answer is Software & Subscriptions for the platform fee, and Shipping COGS for any postage purchased through the platform. ShipStation's monthly subscription is software. The labels purchased through ShipStation are shipping COGS.
3PL Providers
Third-party logistics (3PL) providers (ShipBob, ShipMonk, Red Stag, FBA) bill in three components: storage, pick-and-pack, and shipping. Storage and pick-and-pack are COGS (or sometimes Operating Expense for very-low-volume operations). Shipping is COGS. The 3PL bill typically breaks out the components; categorize each line to the correct account or use a journal entry to split a consolidated invoice.
Software vs Shipping Classification
The vendor-purpose rule applies here too: a vendor's category isn't determined by the department using it but by what the vendor sells. ShipStation sells fulfillment software → Software. UPS sells shipping services → Shipping. Pitney Bowes sells postage meters and the meter rental → Shipping (or Office Equipment Rental, depending on contract structure).
QuickBooks Setup
Shipping & Postage Expense (Operating)
Create the OpEx account: Shipping & Postage Expense. Account type: Expense. Detail type: "Office/General Administrative Expenses" or "Other Business Expenses." This is the destination for non-fulfillment shipping: office postage, mailing checks, tax-document mailings.
Shipping COGS Sub-Account (E-commerce)
For e-commerce clients, create a separate Shipping COGS account in the COGS section of the P&L. Account type: Cost of Goods Sold. Detail type: "Cost of Labor - COGS" or "Other Costs of Sales" depending on your QBO industry template. This is where outbound fulfillment shipping lands.
If the client also has packaging volume, add Packaging COGS as a separate COGS account. Two accounts in COGS gives clean unit-economics reporting; one combined account works fine for clients under $500K in revenue.
Bank Rules for USPS/UPS/FedEx
QBO bank rules can auto-categorize most shipping transactions, but the COGS-vs-OpEx split adds nuance. A bank rule of "USPS → Shipping COGS" works for a pure e-commerce business but breaks for a hybrid business that mails checks. Recommended approach: bank rule routes USPS/UPS/FedEx to a shared shipping account, then a weekly review reclassifies the small OpEx portion via journal entry. Or use ShipStation/Shopify integration to auto-tag fulfillment shipping at the source.
Splitting Transactions Across COGS and OpEx
When a single bank-feed transaction includes both fulfillment and operational shipping (rare but possible, e.g., a single FedEx invoice covering customer shipments and document mailings), QBO supports splitting the transaction across multiple accounts. Use the split feature on the bank-feed entry; assign the appropriate dollar amounts to Shipping COGS and Shipping & Postage Expense. Don't journal-entry-correct after the fact when the split feature is available at the source.
Common Mistakes
Putting All Shipping in OpEx for E-commerce
A new e-commerce client comes onto a bookkeeper's plate with twelve months of shipping in Operating Expense, $87,000 across the year. Gross margin reports show 78% when the actual fulfillment-adjusted gross margin is 65%. Fix: reclassify shipping COGS via journal entries (or back-dated bank-rule adjustments). The lender reviewing the YoY financials wants the corrected presentation; the operator wants the real number for unit-economics decisions.
Mixing Fulfillment Software with Shipping Cost
ShipStation and Shippo monthly subscription fees end up in Shipping COGS instead of Software. The error inflates COGS by the subscription cost ($300-$2,000 a year) and undercounts software spend. The dollars are small but the line item misalignment makes vendor-cost reporting unreliable. Fix: software subscriptions go to Software; postage purchased through the platform goes to Shipping COGS.
Forgetting Customer-Paid Shipping Income
A merchant collects $14,500 in customer-paid shipping over twelve months, all of it deposited as part of Shopify gross sales. The $14,500 of corresponding carrier costs sits in Shipping COGS. But because the customer-paid shipping was lumped into Sales Revenue, the "shipping margin" question can't be answered without manually pulling Shopify reports. Fix: configure Shopify to break out shipping revenue separately, and book it to a dedicated Shipping Revenue account on the P&L. See Expense account categories for the full operating-expense framework.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.
Get Started with Growthy
Related: Chart of Accounts: The Complete Guide for Bookkeepers, Expense Account Categories