Guide

Cost of goods sold (COGS) explained

Harbor Apparel Group told investors its direct-to-consumer pivot was working: revenue grew 22% year over year while gross margin expanded from 41% to 48% over six quarters. The income statement looked like textbook scale economics — until Q3 2025, when the company restated prior periods and moved $94 million of warehouse pick-pack labor, inbound freight, and garment depreciation out of selling, general and administrative (SG&A) expense and into cost of goods sold (COGS). True gross margin fell to 29%, not 38%. Operating margin barely moved because the costs had always been real; they had simply been misclassified above the gross profit line, flattering the metric most retail investors screen on first.

Cost of goods sold (also called cost of sales or cost of revenue) is the direct expense tied to producing or delivering the goods and services a company sold in a period. It sits immediately below revenue on the income statement and determines gross profit. COGS is not overhead — marketing, corporate salaries, and rent belong in operating expenses. But the boundary blurs in practice, and classification choices can move margins by hundreds of basis points without changing cash flow. This guide covers what belongs in COGS by business model, inventory accounting mechanics, the COGS roll-forward bridge, ratio screens that pair with inventory turnover, Harbor Apparel’s refactor, a technique decision table, earnings quality pitfalls, and an investor checklist alongside financial statements literacy.

COGS on the income statement

The top of every income statement follows the same skeleton:

Revenue − COGS = Gross profit
Gross profit − Operating expenses = Operating income

COGS captures costs that would not exist if the company sold nothing that quarter — raw materials consumed, factory wages for units produced, shipping from supplier to warehouse, software hosting directly attributable to delivered subscriptions, and inventory write-downs for obsolete stock.

What COGS excludes: brand advertising, executive compensation, R&D for future products, store rent (for retailers that expense rent in SG&A), and bad debt on receivables. The dividing line is direct traceability to units sold, but GAAP allows judgment within industry norms. Two apparel peers with identical economics can report different gross margins if one classifies fulfillment labor as COGS and the other books it as SG&A.

What belongs in COGS by business model

Manufacturing and CPG

Raw materials, direct labor on the production line, factory overhead (utilities, equipment depreciation tied to production), packaging, and inbound freight to the plant. Finished goods move to inventory at standard cost; COGS is recognized when product ships to customers.

Retail and e-commerce

Merchandise cost (invoice from suppliers), import duties, inbound freight to distribution centers, and — increasingly — outbound fulfillment labor for direct sales. Many pure retailers expense store occupancy in SG&A, which is why their reported COGS is only the wholesale cost of goods on the shelf.

Software and SaaS

COGS (often labeled cost of revenue) includes hosting infrastructure, customer-support staff tied to active accounts, payment processing fees, and third-party API costs embedded in the product. Engineering that builds new features is R&D, not COGS — a distinction that makes SaaS gross margins structurally higher than manufacturing but sensitive to support headcount growth.

Services and marketplaces

Professional services firms often report minimal COGS (consultant wages may be entirely in operating expense). Marketplaces include payment to suppliers or creators as COGS, leaving the platform’s take rate as gross profit. Always read the revenue recognition footnote: gross vs net presentation changes both revenue and COGS without affecting net income.

Inventory accounting and the COGS roll-forward

For companies that carry inventory, COGS is not independent of the balance sheet. The standard bridge:

COGS = Beginning inventory + Purchases (or production) − Ending inventory ± Adjustments

FIFO (first-in, first-out) assumes oldest units sell first. In inflationary periods, FIFO ending inventory is valued at recent higher costs, so COGS reflects older cheaper layers — gross margin looks temporarily higher.

LIFO (last-in, first-out) matches recent expensive purchases to current sales, raising COGS and lowering gross margin in rising-price environments. LIFO is US-only for tax; international filers typically use FIFO or weighted average under IFRS.

Weighted average cost smooths purchase price volatility. Sudden COGS spikes often trace to inventory write-downs, shrinkage adjustments, or a LIFO liquidation (selling into old cheap layers and recognizing a one-time margin boost). Pair COGS trends with days inventory outstanding to see whether margin moves are operational or accounting artifacts.

COGS ratio screens and the margin stack

Investors monitor COGS relative to revenue because it is the mirror of gross margin:

COGS ÷ Revenue = 1 − Gross margin %

A retailer at 30% gross margin carries a 70% COGS ratio. Track quarter-over-quarter changes in COGS ÷ revenue alongside unit volume growth. If revenue rises 15% but COGS ÷ revenue rises 300 basis points, either input costs inflated, mix shifted toward lower-margin SKUs, or promotional discounting accelerated.

COGS sits at the base of the margin stack: gross margin → operating margin (after SG&A and R&D) → net margin. A company cannot fix weak operating margins with cost cuts alone if COGS is structurally too high — the product economics must improve first. Compare COGS ratios only within the same industry; a grocery chain at 75% COGS ratio and a software company at 20% are both normal for their sectors.

Red flags in COGS and classification games

  • Gross margin expands while input commodity prices rise — verify classification did not shift costs below the line.
  • COGS grows slower than revenue for multiple quarters — possible LIFO liquidation, capitalized labor, or obsolete reserve releases.
  • Large gap vs closest peer gross margin — read both companies’ accounting policy footnotes line by line.
  • Capitalized costs moving from balance sheet to COGS abruptly — watch software and biotech pre-commercial firms especially.
  • Net revenue presentation without gross alternative — marketplaces can obscure true take-rate economics.
  • Freight and fulfillment reclassified every few years — a recurring restatement theme in e-commerce.

Harbor Apparel refactor: rebuilding the gross profit line

After the Q3 2025 restatement, Harbor’s audit committee hired a forensic accounting firm. Week 1–4: mapped every cost account above and below gross profit; benchmarked classification against five apparel peers. Month 2: reclassified $94M annually of distribution-center wages, inbound ocean freight, and sewing-equipment depreciation into COGS. Month 3: restated eight quarters; issued corrected gross margin guidance of 28–31% vs prior 44–48% range.

Outcomes: reported gross margin fell from 38% to 29%, COGS ÷ revenue rose from 62% to 71%, operating margin moved only 40 basis points (costs were real, just relocated), and working capital metrics were unchanged. Inventory turnover and DIO were unaffected — the lesson was presentation, not operations. Short sellers who had compared Harbor’s gross margin to peers without reading the policy footnote had flagged the gap two quarters early.

Technique decision table

Metric / approachBest forWeak when
COGS ÷ revenueTracking direct-cost pressure vs pricingCross-industry comparison without context
Gross margin %Peer benchmarking within a sectorClassification differences across peers
COGS roll-forward (inventory bridge)Separating volume from price/mixService businesses with no inventory
COGS per unit (if disclosed)Unit economics and scale testsMulti-SKU mix shifts obscure averages
Contribution margin Product-line profitability below COGSAllocated overhead debates
Inventory turnover Linking COGS to balance-sheet efficiencyJust-in-time models with minimal inventory
Accounting policy footnote diff vs peerSpotting Harbor-style classification gapsTime-intensive; needs same fiscal calendar

Common pitfalls

  • Equating low COGS ratio with a good business — capital-light services can have tiny COGS but enormous SG&A.
  • Ignoring gross vs net revenue presentation — COGS ratio math changes entirely on marketplace filers.
  • Using COGS for cash-flow forecasting without WC changes — COGS is accrual; inventory builds absorb cash even when COGS is flat.
  • Comparing FIFO and LIFO peers directly — normalize for inventory method or compare within the same policy group.
  • Treating one-time write-downs as recurring COGS — adjust for inventory charges when modeling forward margins.
  • Assuming SaaS COGS is fixed — support and hosting scale with active users and can compress gross margin at growth inflection points.
  • Overlooking capitalized software amortization in COGS — mature SaaS firms increasingly include internal-use platform costs.

Investor checklist

  • Locate COGS (or cost of revenue) on the income statement each quarter.
  • Calculate COGS ÷ revenue; plot vs trailing eight quarters.
  • Read the significant accounting policies footnote for COGS definition.
  • Compare gross margin to two closest peers; investigate gaps >300 bps.
  • Build the inventory roll-forward if the company carries material stock.
  • Note FIFO, LIFO, or weighted-average method and any LIFO reserve.
  • Scan for inventory write-downs, shrinkage, and obsolescence charges.
  • Check whether revenue is reported gross or net on marketplace models.
  • Reconcile COGS growth to revenue growth and unit volume if disclosed.
  • Link COGS trends to operating margin and free cash flow conversion.

Key takeaways

  • COGS is the direct cost of what was sold — it determines gross profit before overhead.
  • Classification judgment moves gross margin without changing cash — read policy footnotes, not just percentages.
  • Inventory accounting methods affect COGS timing — FIFO, LIFO, and write-downs create non-operating margin noise.
  • Harbor Apparel’s $94M reclassification cut gross margin nine points — operating income barely moved.
  • Pair COGS screens with inventory turnover and peer policy diffs — gross margin alone is incomplete.

Related reading