COGS is just Line 1 of 8. Learn how to calculate true contribution margin for every product; including the costs most DTC founders forget.
“We have 65% gross margin.”
A founder called me last month. She was crying.
Not because of a bad product review. Not because of a supplier disaster. Because she finally calculated her unit economics—and discovered her “best seller” had an 8% contribution margin.
She’d spent $400,000 in ad spend the previous year pushing a product that was barely breaking even.
Her gross margin was 72%. That’s the number she told investors. That’s the number she told herself. And that number wasn’t wrong—it just wasn’t complete.
Because COGS is just Line 1 of 8.
The 8 Costs Between Supplier and Profit
Let me walk you through what she missed—and what you might be missing too.
1. COGS (Cost of Goods Sold)
What you paid the supplier per unit. She knew this one: $18 for a product she sold for $65. That’s 72% gross margin. Looks great on a pitch deck.
2. Inbound Freight
Sea freight from China, customs duties, broker fees. For her product: $2.50 per unit. Her $18 cost was actually $20.50 before it even hit the warehouse. Most founders lump this into “shipping” and never allocate it per SKU. That’s a problem when your heavy products are subsidizing your light ones.
3. Pick and Pack
Her 3PL charged $1.50 to pick, $1.00 to pack, $0.75 for materials, and $0.50 in allocated storage and account fees. That’s $3.75—not the “about three bucks” she had in her head. And here’s the thing: those fees change. If you haven’t re-checked your 3PL invoice in six months, I promise you it’s different than what you think.
4. Outbound Shipping
Average of $6.00 per order for her product weight and destination mix. This one feels obvious, but most founders use a flat average across all SKUs. A 2-lb product and a 6-lb product don’t ship for the same cost. Allocate by weight and zone if you want the real number.
5. Payment Processing
Stripe takes 2.9% + $0.30. On a $65 product: $2.19. On a $25 product, that same fee structure eats a much bigger percentage. This is the cost everybody knows about and nobody does anything about.
6. Returns
This is where it gets ugly. Her return rate was 12%. But the cost wasn’t just the refund—it was return shipping ($6), 3PL receiving and processing ($3), and the fact that 40% of returned products couldn’t be resold. When she allocated the full cost of returns across units actually sold, the per-unit hit was $7.80. That’s more than her COGS freight and pick-pack combined. If your return rate is above 10%, this line item is probably your biggest blind spot.
7. Customer Service
This product generated above-average support tickets—sizing questions, “where’s my order” inquiries, and a confusing return process. Allocated cost: $1.50 per unit. Not huge, but not nothing. And it’s a signal. High-ticket products often have upstream problems—unclear product descriptions, bad size charts, unreliable carriers—that show up as CS costs downstream.
8. Ad Spend (Customer Acquisition)
She was spending $12 per unit sold in acquisition costs. At 72% gross margin, that felt manageable. At true contribution margin? It was eating almost everything.
The Math
Let me show you what this looks like on a real product.
Say you sell a $50 item. Your COGS is $15.
Gross Margin: ($50 – $15) / $50 = 70%
Beautiful. You’d tell your investors about this. You’d feel good scaling this product.
Now let’s add reality.
| Line | Cost Item | Per Unit | Details |
|---|---|---|---|
| 1 | COGS | $18.00 | Supplier cost per unit |
| 2 | Inbound Freight | $2.50 | Sea freight, duties, broker |
| 3 | Pick & Pack | $3.75 | 3PL handling + materials |
| 4 | Outbound Shipping | $6.00 | Average per order |
| 5 | Payment Processing | $2.19 | Stripe: 2.9% + $0.30 |
| 6 | Returns (Allocated) | $7.80 | 12% rate + restocking losses |
| 7 | Customer Service | $1.50 | Above-avg ticket volume |
| 8 | Ad Spend (CPA) | $12.00 | Cost per acquisition |
| TOTAL ALL-IN COST | $53.74 | Out of $65.00 revenue |
Revenue: $65.00 Total All-In Cost: $53.74 Contribution Margin: $11.26 (17.3%)
Wait—that’s higher than 8%. What happened?
She also had promotional discounts averaging 10%, bringing the effective revenue to $58.50. That dropped her contribution to $4.76 per unit—around 8%. And she’d been running those promos every month to hit her top-line target.
Before Full Unit Economics: 72% Gross Margin
After Full Unit Economics: ~8% True Contribution Margin
Where to Find the Data
I know what you’re thinking: “Lara, this sounds great, but where do I actually get these numbers?”
Fair question. Here’s where each line item lives:
COGS: Your supplier invoices or purchase orders. If you’re doing landed cost accounting, great. If not, you’re already behind.
Inbound Freight: Your freight forwarder invoices, customs entry paperwork, and broker statements. Divide total inbound costs by total units received per shipment. Yes, this means doing it per shipment—costs vary by season, fuel surcharges, and container rates.
Pick & Pack: Your 3PL monthly invoice. Break it down to per-order and per-unit fees. Call your 3PL and ask for a fee schedule if you don’t have one. They all have them. They just don’t always share them proactively.
Outbound Shipping: Your shipping platform (ShipStation, ShipBob, EasyPost, etc.) should give you average cost per shipment. Segment by product weight if possible.
Payment Processing: Stripe dashboard, Shopify Payments reports, or your gateway’s fee breakdown. The math is straightforward: (order value × percentage) + flat fee.
Returns: This requires work. You need return rate by SKU (Shopify or your OMS), return shipping cost (carrier reports), restocking/processing costs (3PL), and your sellback rate (what percentage of returns are resalable). Multiply it out and allocate across units sold.
Customer Service: Total CS spend (software + labor) divided by total orders gives you a baseline. Then look at tickets per SKU from your helpdesk (Gorgias, Zendesk, etc.) to allocate above- or below-average products.
Ad Spend: Total ad spend divided by total units sold. For SKU-level, use your ad platform’s performance data by product or product group. If you’re running a blended CPA, at least start there—then get more granular as you can.
Building the Spreadsheet
You don’t need fancy software for this. A Google Sheet will do. Here’s the structure:
Column A: Line item names (the 8 costs above). Column B: Per-unit cost. Column C: Source (where you pulled the data). Column D: Date last updated. Column E: Notes or assumptions.
Build one tab per SKU. Or per product category if you have 200 SKUs and can’t do them all—start with your top 10 by revenue. Those are the ones that matter most, and they’re the ones most likely to surprise you.
At the bottom, calculate your contribution margin in dollars and as a percentage. Then add a row for your minimum acceptable margin. For most DTC brands, I recommend targeting 20–30% contribution margin after all 8 lines. If you’re under 15%, something needs to change. If you’re under 10%, something needs to change this week.
Update this spreadsheet quarterly at minimum. Monthly if you’re scaling fast, because costs shift as volume changes—sometimes in your favor, sometimes not.
What She Did Next
Remember our founder with the 8% margin? Here’s what happened after she saw the real numbers.
First, she stopped the promotional discounting on that product immediately. Her top-line revenue dipped for two months, but her contribution margin jumped from 8% to 17% overnight. She’d been trading real profit for vanity revenue.
Second, she renegotiated her 3PL contract. She’d been on the same rate card for 18 months while her volume had doubled. Her new rate saved $0.60 per unit—doesn’t sound like much, but across 40,000 units a year, that’s $24,000 back in her pocket.
Third, she tackled returns. The 12% return rate was partly driven by poor product photography (customers couldn’t tell the true color) and a confusing size chart. She invested $2,000 in new product photos and rewrote her size guide. Returns dropped to 7% within 90 days. That single change moved her per-unit return cost from $7.80 to $4.20.
Fourth, she restructured her ad spend. Instead of pushing the hero product harder, she redirected budget to a product with 34% true contribution margin that she’d been ignoring. Revenue per ad dollar improved by 40%.
Within six months, her blended contribution margin across all products went from 14% to 23%. Same team. Same products. Same channels. She just finally had the right numbers.
The Flywheel Connection
Here’s why I care about this so much, and why it goes beyond just “know your numbers.”
In my work at MOVE Supply Chain, I talk about what I call the MOVE DTC Flywheel™—the idea that Marketing, Operations (that’s supply chain), and Finance aren’t three separate departments. They’re one system. And unit economics is where all three meet.
Your marketing team decides which products to push and how much to spend acquiring customers. Your operations team determines what it costs to make, store, and ship those products. Your finance team tracks whether any of it is actually profitable. But if those three teams aren’t looking at the same unit economics spreadsheet, they’re optimizing in different directions.
Marketing pushes the product with the best ROAS—but ROAS doesn’t account for return rates or 3PL costs. Operations negotiates a cheaper supplier—but the quality drop increases returns by 5%. Finance sees healthy gross margins and approves more inventory—for a product that’s actually losing money after all 8 lines.
Unit economics is the shared language. It’s the single source of truth that aligns every decision. When your marketing team can see that Product A has a 28% contribution margin and Product B has a 9% margin, the budget conversation gets a lot simpler. When your ops team knows that every 1% reduction in returns adds $0.65 per unit to the bottom line, they know exactly where to focus.
That’s the flywheel. Not just knowing your costs—but using them to make every department smarter.
Your Action Item
I’m not going to give you a list of ten things to do. You’re busy. You’re running a brand. So here’s one thing.
This week, pick your top-selling product and calculate all 8 line items. Just one product. Use the sources I listed above. Put it in a spreadsheet. Calculate the true contribution margin.
If the number is above 25%, congratulations—you’re in good shape. Keep going with the rest of your catalog.
If it’s between 15–25%, you’ve got room to optimize. Look at the biggest cost lines and ask: can I negotiate this down, reduce it, or eliminate it?
If it’s below 15%, we need to talk. Seriously. Because you might be scaling a product that’s slowly bleeding your business dry—and the longer you wait, the more expensive that realization becomes.
The founder I mentioned at the top? She told me something I’ll never forget: “I wish someone had made me do this math two years ago.”
Consider this your someone.
Until next time,
— Lara
Want to Go Deeper?
I walk through how to calculate true contribution margin for every SKU in your catalog — so you never confuse gross margin for real profit again.
Already know your bottleneck?
Join the Supply Chain Lounge on Slack where we discuss these exact challenges every week.