Which of Your Orders Actually Make Money and Which Do Not
Every founder can tell you revenue by channel. Very few can tell you profit by channel, and the gap between those two facts is where a lot of Indian D2C money quietly disappears. A brand can grow revenue 60 percent in a year, add a marketplace, expand into quick commerce, and end the year with less cash than it started with. Nothing went wrong that anybody noticed, because nobody was measuring the number that would have shown it.
Build it once, for one order
Do not start with a model. Start with a single real order from last week and subtract everything until you reach what you actually kept.
- Product cost, landed, including inbound freight and duties if you import.
- Packaging, the box, filler, tape, insert.
- Forward shipping, what the courier actually charged, which is volumetric weight where that exceeds actual weight.
- Payment cost. Gateway fee on prepaid, or the COD handling charge, which is usually higher.
- Marketing, attributable spend for that order, or blended acquisition cost if you cannot attribute cleanly.
- Returns and RTO, as a share. Not the cost when it happens, the expected cost across all orders of that type.
What is left is contribution margin. It is the only number that tells you whether selling one more of these makes you better or worse off.
Then split it three ways
One blended figure hides the answer. The splits that matter in India are these.
COD against prepaid. COD carries a handling fee and an RTO rate, and both hit the same order. In categories with meaningful RTO, a COD order can have half the contribution of the identical prepaid order, and sometimes none.
Your own store against marketplaces. Marketplace commission and fees are visible. What is less visible is that marketplace orders usually carry no acquisition cost, which cuts the other way. The answer is often not what founders assume in either direction.
By product. Almost every brand has a hero product carrying the business and one or two that lose money on every unit, usually something heavy, cheap, or with a high return rate.
Do those three splits and you will find something you did not know. In our experience it is usually a channel or a product that has been losing money for months while everyone celebrated the revenue.
The costs founders leave out
Returns processing, not just the freight. Somebody inspects, repacks or writes off, and stock sits unavailable meanwhile.
Discounting, including the codes you forgot were still live and the ones being shared publicly.
Free shipping thresholds, which are a real cost on every order that qualifies.
Payment failures and retries, which cost conversion rather than cash.
Quick commerce economics, which are different again, because you are dispatching stock to a dark store against a purchase order rather than fulfilling to a customer. We covered why that changes your inventory picture in the quick commerce piece.
The number that decides your discounting
One immediate use, because founders make this decision constantly and usually on instinct.
Once you know contribution margin per order, you know exactly how much discount an order can absorb before it stops being worth having. A 20 percent code on a product with 25 percent contribution margin leaves almost nothing, and if that order is COD in a high-RTO pin code, it is negative before it ships.
Most brands set discount levels by looking at what competitors offer or what feels compelling. The better version is to set a floor from the margin and refuse to go below it, which occasionally means accepting a smaller campaign and considerably more often means not running a promotion that would have cost you money to fulfil.
It also settles the free shipping threshold argument, which otherwise runs on opinion. The threshold should be the order value at which shipping still leaves you a positive contribution, and that is a calculation rather than a judgement call.
What to do with the answer
The instinct is to cut the loss-making channel. Sometimes right, often not.
A channel with thin margin but genuine volume may be buying you supplier terms, brand awareness or category presence that has value elsewhere. A product that loses money per unit may be the one that brings customers who then buy the profitable thing. Decide with the whole picture rather than the single number.
What the number does change reliably is where you push. If your own store carries twice the contribution of a marketplace, an extra rupee of marketing spend belongs on the store. If your COD orders barely break even, partial prepayment is worth more than another campaign.
That is the real value of this analysis. It does not usually tell you to stop something. It tells you where growth is actually worth having.
What good looks like at a few crore
Founders often ask what the number should be, and the honest answer is that it depends on your category, but the shape of a healthy picture is recognisable.
Contribution margin is positive on every channel you are actively growing. It does not have to be positive on every channel, but you should be able to name the reason for any that is not, and that reason should not be "we had not looked".
Your own store carries a higher contribution than your marketplaces, which is usually the case once acquisition is efficient, and it is the justification for investing in the store at all. If a marketplace is more profitable than your own site after all costs, that is worth knowing too, and it changes where the next rupee goes.
And the gap between your best and worst product is understood rather than discovered. Most brands have that spread. The difference between the ones that scale and the ones that stall is whether it is a decision or a surprise.
How often to redo it
Quarterly is enough, and after any material change: a courier renegotiation, a packaging change, a new channel, a price change. It takes a couple of hours once the structure exists, and the structure is the hard part.
Build it in a spreadsheet before you build it anywhere clever. A working spreadsheet you actually update beats a dashboard nobody maintains.
Where the data usually falls apart
The analysis is simple arithmetic. What stops brands finishing it is that the inputs live in four places and two of them are messy.
Order data from Shopify is clean and easy. Gateway statements are clean. The trouble is courier invoices, which arrive as PDFs or spreadsheets with their own SKU references and their own idea of weight, and returns data, which in many brands exists only as a WhatsApp thread with the warehouse.
Two fixes make this repeatable rather than heroic. Get courier billing in a format you can join to order numbers, which most couriers will provide if asked. And record returns against the order in Shopify rather than in a separate sheet, so the return is attached to the thing it belongs to.
Brands with a reconciliation habit already have both, which is the practical argument for building one. Our notes on fulfilment cover the reconciliation side.
What is contribution margin for an ecommerce order?
Revenue for that order minus every variable cost of fulfilling it: product, packaging, shipping, payment fees, attributable marketing and expected returns. It excludes fixed costs like salaries and rent, which is what makes it useful for deciding whether to sell one more unit.
Why is my COD margin so much lower?
Two costs land on the same order. A COD handling fee from your courier or gateway, and the expected cost of return to origin, which includes both freight legs and handling on a parcel that generated no revenue. In high-RTO categories that combination can remove most of the margin.
Are marketplace orders worth it?
It depends on whether the commission costs you more than the acquisition you avoid. Marketplace orders carry fees but usually no ad spend, so the comparison against your own store is not as one-sided as it looks. Run the numbers rather than assuming either way.
Should I stop selling a loss-making product?
Not automatically. Check whether it acquires customers who go on to buy profitable products. If it does, it is a marketing cost with a name. If it does not, it is just a loss.
What data do I need to build this?
Order-level data from Shopify, your courier invoices, gateway statements, and your return records. The awkward part is usually the courier and returns data, which is why brands with a proper reconciliation habit can do this in an afternoon and others cannot do it at all.
Get your channel economics built
Free review. Email hello@exactwhy.com with subject "Unit economics" and tell us your channels, your COD share and your rough return rate. We respond within 4 hours with what your margin picture probably looks like and which split to build first.
Paid work, Rs 25,000 to Rs 1 lakh. Contribution margin by channel, payment method and product, built from your real order and courier data, with the reporting set up so it stays current instead of being a one-off exercise.
Ongoing Shopify development, Rs 20,000 to Rs 50,000 a month. Including the operational reporting that keeps these numbers visible month to month.
Most brands at a few crore are making one decision on bad information: which channel to grow. This is the analysis that fixes it, and it is a spreadsheet rather than a project.