Your income statement says your gross margin is 62 percent. Based on that number, you raise ad spending, hire a second salesperson, and hold your prices steady while suppliers keep raising theirs. Six months later, cash is tight and you cannot figure out why — until someone reclassifies your inbound freight, your product packaging, and your marketplace fulfillment fees, and the real gross margin turns out to be closer to 48 percent. Every decision you made off the 62 was built on miscategorized costs.
This happens constantly in small product businesses. The line between cost of goods sold (COGS) and operating expenses looks obvious in a textbook and turns blurry the moment real invoices arrive: Is the UPS bill COGS or overhead? The branded mailer boxes? The fee your 3PL charges to pick and pack each order? The delivery driver you just hired? Get these calls wrong and nothing breaks loudly — your net profit is the same either way — but your gross profit quietly becomes fiction, and gross profit is the number your pricing, product mix, and growth decisions rest on.
The One-Question Test That Settles Most Cases
When you are unsure where a cost belongs, ask: would this cost disappear if you sold one fewer unit?
- The raw materials in that unit, the factory labor that built it, and the freight that brought those materials to your door would all shrink with volume. Those are COGS.
- Your office rent, your bookkeeper's retainer, and your Instagram ads would stay exactly the same. Those are operating expenses.
The test is not perfect — salaried production supervisors and factory rent do not move unit by unit, yet both belong in COGS as manufacturing overhead — but it resolves the vast majority of day-to-day bookkeeping calls correctly. Costs that scale with what you make or sell go above the gross-profit line. Costs of simply existing as a business go below it.
Why does the placement matter if net income ends up identical? Because gross profit and operating profit answer different questions. Gross profit tells you whether your product economics work: can you make and deliver this thing for meaningfully less than customers pay? Operating profit tells you whether the business around the product is run efficiently. Blend the two together and you cannot tell which half of the business has the problem.
What Belongs in COGS
COGS captures every direct cost of producing or acquiring the goods you sold during the period — and only those goods. Unsold inventory stays on the balance sheet; its costs flow into COGS only when the sale happens. The standard components:
Beginning inventory plus purchases minus ending inventory. This is the core formula. For a retailer, COGS is mostly what you paid for the merchandise you sold. For a manufacturer, it includes raw materials, work in process, and finished goods consumed by sales.
Direct labor. Wages for people who make the product or deliver the service: assembly workers, the baker decorating cakes, the plumber on the job. Payroll taxes and benefits tied to those workers follow the wages into COGS.
Manufacturing overhead. Factory rent, production-equipment depreciation, utilities for the plant floor, maintenance on production machinery, and indirect materials like lubricants and hardware used in the process. These do not attach to a single unit, but production could not happen without them.
Freight-in. What it costs to get raw materials or merchandise to your production line or warehouse. If you pay a supplier's shipping charge or hire a truck to bring inventory to your store, that freight is part of the inventory's cost and becomes COGS when the goods sell.
Product packaging. The box, bottle, label, or bag the customer takes home is part of the product. A candle maker's glass vessels, a coffee roaster's printed bags, a skincare brand's jars and pumps — all COGS.
Service businesses get tripped up here because they assume COGS is only for companies with warehouses. If you sell hours or projects, the wages of the people doing the client work are your COGS. A marketing agency's account managers, a cleaning company's crews, a contractor's job-site labor — all direct costs of delivering what was sold. Without a COGS line, a service business has no gross margin to manage, and "are our projects actually profitable" becomes unanswerable.
What Belongs in Operating Expenses
Operating expenses are the costs of running the business itself: selling, administration, and everything that keeps the doors open regardless of this month's unit volume.
Selling expenses: sales salaries and commissions, advertising and marketing, trade shows, CRM software, and — the one that surprises people — freight-out, the cost of shipping finished goods to your customers. Once the product is made and sitting in your warehouse, getting it to the buyer is a selling activity, not a production activity.
General and administrative expenses: office rent, utilities for the office, insurance, professional fees, office supplies, and salaries for administrative staff, executives, and support roles.
Other operating costs: software subscriptions, bank fees, depreciation on office equipment, and research costs that do not yet attach to a shippable product.
Note the asymmetry that causes half of all misclassification: freight-in is COGS, freight-out is a selling expense. Same carrier, same kind of invoice, opposite sides of the gross-profit line. The difference is direction — inbound toward production versus outbound toward the customer — and accounting rules treat those directions as fundamentally different economic events.
The Gray Zone: Freight, Packaging, and Delivery
Most real-world confusion clusters around getting physical goods from supplier to customer. Here is how to call the common cases.
Inbound freight is COGS — and it is bigger than you think
Every dollar you pay to bring inventory to you is part of what that inventory cost. Supplier shipping charges, import duties, customs broker fees, and drayage from the port all capitalize into inventory and hit COGS at sale time. Many small retailers book the supplier invoice correctly but dump the accompanying freight bill into a generic shipping expense account, which understates COGS and flatters gross margin. Worse, the distortion grows exactly when freight rates spike — the moment you most need honest margins.
One practical fix: ask suppliers to include freight on the same invoice as the goods whenever possible, so the two cannot be separated in your books. When you pay freight separately, book it to a dedicated account like freight-in rather than a catch-all shipping account shared with outbound parcels.
Outbound freight is a selling expense — with one notable exception
Freight-out normally sits below the gross-profit line in selling expenses. But there is an important exception for businesses that promise delivered pricing: if shipping is so integral to the sale that the customer is really buying a delivered product — think "free shipping" e-commerce where the shipping cost is effectively built into the price — many accountants still keep it in selling expenses while tracking it per-order for margin analysis. What matters most is consistency and visibility: pick a treatment, apply it every period, and make sure you can see per-order delivery cost when you set prices and free-shipping thresholds.
A related trap: passing shipping through to the customer does not make it disappear from your books. If you charge the customer 12 dollars for shipping and pay the carrier 14, the 2-dollar gap is your selling expense, and the shortfall should be visible — not netted away — so you can see whether your flat-rate shipping table is bleeding.
Packaging splits by function, not by invoice
Product packaging (what the customer keeps) is COGS. Shipping packaging (what protects the product in transit) is generally a selling expense alongside freight-out. In practice, the same purchase order often contains both: branded product boxes plus the corrugated mailers they ship in, plus void fill and tape. Splitting one invoice across two accounts feels like extra work, but for businesses where packaging runs several percent of revenue, lumping it all in one place moves gross margin by whole points. At minimum, keep separate accounts so a year-end reclassification is a single journal entry instead of a forensic project.
Last-mile and marketplace fees need their own lines
If you deliver with your own drivers and vans, vehicle costs, driver wages, fuel, and maintenance are selling and delivery expenses — operating expenses, not COGS. That surprises owners who think of delivery as "part of the product," but the accounting logic is consistent: the product was complete before the van was loaded.
Marketplace and platform fees deserve similar care. The revenue-share cut taken by a marketplace is usually a selling expense, while per-unit pick-and-pack fees from a 3PL sit in a grayer area — many sellers treat fulfillment fees as COGS because they are incurred per unit sold and stop when volume stops, applying the one-question test from above. Either treatment can be defended; what cannot be defended is burying them in an unlabeled "fees" account where neither gross margin nor operating analysis can find them.
How Misclassification Distorts Real Decisions
Misclassification rarely triggers an audit on its own — total deductions are usually the same, so the tax liability barely moves. The damage is managerial, and it compounds.
Pricing goes wrong first. If your reported gross margin is 62 percent while the true product margin is 48, every price you set "to hold margin" is set against a fantasy. Discounts you believe you can afford, wholesale accounts you accept, and free-shipping thresholds you offer all inherit the error. E-commerce brands are especially exposed: agencies that audit seller books report routinely finding stated margins 10 to 15 points above reality once fulfillment, packaging, and payment fees are properly placed.
Product mix goes wrong second. Gross margin by product tells you what to push and what to kill. When shared costs like freight-in are dumped into overhead instead of allocated to the products that incurred them, heavy or bulky items look just as profitable as light ones — until you scale the wrong SKUs and wonder why cash conversion is deteriorating.
Lenders and investors read the wrong story. A bank evaluating a line of credit, or a buyer valuing your business, leans on gross margin as a measure of product-level durability. Inflated gross margin paired with thin operating margin reads as "great product, bloated overhead" and invites cost-cutting advice — when the real diagnosis may be thin product economics that no amount of overhead trimming will fix.
Tax timing can shift. For businesses that maintain inventory, costs capitalized into inventory are deducted when goods sell, not when cash goes out. Misclassifying inventory costs as immediately deductible supplies accelerates deductions improperly, while misclassifying deductible period costs as inventory defers them. Small businesses get meaningful relief here: companies under the inflation-adjusted gross-receipts threshold (about 31 million dollars for recent years) are generally exempt from the uniform capitalization rules of Section 263A and may even treat inventory as non-incidental materials and supplies. But the exemption simplifies the rules — it does not make sloppy classification harmless for decision-making.
On the tax return itself, the placement is concrete. A sole proprietor reports COGS through Part III of Schedule C (beginning inventory, purchases, materials, other costs, ending inventory) while operating expenses flow through Part II line by line. The IRS instructions are explicit that costs included in inventory or COGS must not also be deducted as business expenses — double-counting the same dollar in both places is one of the fastest ways to turn a classification question into a real tax problem.
A Practical Cleanup Routine
You do not need a cost-accounting overhaul. You need separate accounts, consistent rules, and a monthly habit.
- Split your shipping accounts today. Create distinct accounts for freight-in (COGS), freight-out and delivery (selling expense), and packaging split by product versus shipping use. Rename any account called just "shipping" — ambiguity in the chart of accounts becomes ambiguity in every report.
- Write down your gray-zone calls. One page: how you treat 3PL fees, marketplace revenue shares, delivery-driver costs, and packaging splits. Consistency across periods matters more than perfection on any single call, and the written policy is what keeps next quarter's bookkeeping matching this quarter's.
- Review gross margin monthly, by product where possible. A margin that never moves when freight rates, supplier prices, or sales mix change is a sign costs are landing in the wrong place. Margin should breathe with the business.
- Reconcile COGS to inventory movement. If COGS does not move with units sold — suspiciously smooth in some months, spiking in the month a supplier invoice was paid — purchases are being expensed as overhead instead of flowing through inventory. That single fix often moves reported margins more than any other.
- Do a year-end true-up before filing. Walk the operating-expense accounts for stray inventory costs and the COGS accounts for stray overhead, then reclassify. One focused hour beats twelve months of drift.
If you keep your books in plain text, this discipline is cheap to enforce: distinct Expenses:COGS:Freight-In and Expenses:Selling:Freight-Out accounts make every transaction declare its side of the gross-profit line at entry time, and a Fava income statement shows immediately whether margin moves with volume the way it should. The ledger format cannot stop you from picking the wrong account, but it makes the pattern of your picks — and any drift over time — fully visible in version history.
Keep Your Margins Honest from Day One
Accurate classification will not change your bank balance this month, but it changes every decision that determines next year's bank balance: what you charge, what you stock, what you cut, and what story your numbers tell a lender. Gross margin is only useful when it measures product economics cleanly, and that takes deliberate bookkeeping around freight, packaging, and delivery — the exact costs most likely to land in the wrong account.
As you tighten up your cost tracking, maintaining clear financial records is essential. Beancount.io provides plain-text accounting that gives you complete transparency and control over your financial data — no black boxes, no vendor lock-in. Get started for free and see why developers and finance professionals are switching to plain-text accounting.





