If I could get every DTC founder to internalise one financial concept, it would be contribution margin. Not gross margin, not revenue, not even profit on the P&L. Contribution margin, broken into its three layers, is the number that tells you whether a sale actually made you money once everything variable about that sale is accounted for.
The problem is that most operators run on a margin figure that stops one or two layers too early, usually because that is the number their reporting tool hands them. Shopify's native reports are a big part of this. They show you something close to gross margin and call it a day, which leaves the most important layer, the one where your decisions actually live, uncomputed.
Let me walk through all three layers, show you exactly where Shopify stops short, and then run a sample per-order P&L so the concept is concrete. This is the foundation under payback and max allowable CAC, so it is worth getting right.
Contribution margin is
what a sale leaves
after its own costs.
Gross margin tells you what is left after the cost of the product. That is useful but incomplete, because selling a product online costs far more than just the product. There are payment fees on every order, the cost to pick, pack, and ship it, and the returns that some fraction of orders generate. And there is the marketing you spent to get that order in the first place.
Contribution margin asks a sharper question: after I subtract every cost that exists because this sale happened, what is left to contribute toward my fixed costs and profit? Fixed costs, your team, your rent, your software, sit outside this. Contribution margin is purely the variable economics of one order, and that is exactly why it is the right number for deciding how much to spend acquiring the next one.
Peel it back in
three steps. Each
strips out more.
The discipline is to compute contribution margin in three layers, peeling away costs in order. Each layer answers a different question.
- CM1 = revenue minus COGS minus payment and transaction fees. This is your product margin after the platform takes its cut. It tells you whether the product itself, sold at this price, is fundamentally profitable before you touch it.
- CM2 = CM1 minus fulfilment, shipping, and returns. Now you are accounting for the cost of physically getting the order to the customer and handling the ones that come back. CM2 tells you whether the order is profitable to ship, which is where a lot of "good margin" products quietly fall apart.
- CM3 = CM2 minus variable marketing and CAC. This is the one that matters most. CM3 tells you whether the order made money after you paid to acquire the customer. A brand can have a beautiful CM1 and a negative CM3, which means every order it sells loses money once acquisition is counted.
"A healthy CM1 with a negative CM3 is the most dangerous number in DTC. It feels like a good business right up until the cash runs out."
CM3 is where decisions live. It is the number that tells you whether to scale spend, hold, or pull back. Everything above it is a checkpoint on the way down to the truth.
Shopify shows you
CM1 and stops.
CM3 is on you.
Here is the structural problem. Shopify's native reporting knows your revenue and your cost of goods, so it can show you something close to gross margin or CM1. What it does not know, and therefore cannot compute, is the rest. It does not natively pull in your fulfilment and shipping costs per order. It does not net out returns in a way that hits margin. And it has no idea what you spent on Meta, Google, or TikTok to acquire that customer, because that data lives in your ad accounts, not your store.
So the margin number Shopify hands you is, at best, CM1. Useful as a checkpoint, dangerous as a decision tool. Operators who manage to that number are flying blind on the two layers, fulfilment and marketing, where most DTC businesses actually live or die.
Build CM3 outside Shopify. Pull revenue and COGS from Shopify, fulfilment and shipping from your 3PL or carrier, returns from your own records, and ad spend from your channels. Stitch them into one per-order P&L. It is a spreadsheet, not a project, and it is the single highest-leverage finance artifact a DTC brand can own.
If you've never seen your real CM3, that's the place to start. The form takes two minutes.
One order, traced
from top line
down to CM3.
Let me make this concrete with a single illustrative order. These numbers are an example, not a benchmark, but they show the shape every operator should be able to draw for their own brand.
| Line | Amount | Running margin |
|---|---|---|
Order revenue (AOV) | $80.00 | – |
Less COGS | ($28.00) | – |
Less payment fees | ($2.60) | CM1 = $49.40 |
Less fulfilment + shipping | ($11.00) | – |
Less returns (allocated) | ($4.40) | CM2 = $34.00 |
Less marketing / CAC | ($26.00) | CM3 = $8.00 |
Trace it. An $80 order looks like a $52 gross margin product. After fees, CM1 is $49.40, still healthy. After the cost to ship it and a blended returns allocation, CM2 drops to $34. Then marketing takes $26, and CM3 lands at $8. That order made eight dollars of contribution, not the fifty-something the top of the funnel suggested.
This is the lesson. The brand managing to "65% gross margin" is actually running a 10% CM3 on this order. Both numbers are true. Only one tells you whether you can afford to scale.
Run CM3 by cohort,
by channel, and
by product. Monthly.
Once you can compute CM3 for one order, run it three ways. By channel, because your CM3 on Meta-acquired orders is almost certainly different from your CM3 on email or organic, and that difference should drive where you spend. By product, because your hero SKU and your loss-leader bundle have very different per-order economics. And by cohort over time, because first-order CM3 and repeat-order CM3 tell different stories, the repeat orders carry no fresh acquisition cost, so their CM3 is usually much fatter.
That cohort view is the bridge to everything else. A thin or negative first-order CM3 that turns strongly positive on repeat purchases is a retention business, and you finance it accordingly. A first-order CM3 that has to stand alone is a different animal. Either way, CM3 is the input to your max allowable CAC and your payback period. Get the margin layers right and those two fall out cleanly.
Build the per-order P&L once, keep it current, and make it the number every spending conversation starts from. The brands that scale cleanly are not the ones with the highest revenue, they are the ones who know their CM3 cold. From here, set your spending ceiling with the max allowable CAC formula and sanity-check it against an honest LTV.
Revenue is vanity. CM3 is the truth.
Most DTC brands are flying on a margin number their reporting tool never actually computes. I help operators build a real per-order P&L so every spend decision starts from the truth.
Start the conversation More about Taylor →