The weekly letter · Issue 003
Revenue is not profit,
and profit is not cash.
Revenue is the number in the screenshot. Profit is the number your CA sends once a year. Cash is what's in the bank on salary day. They are not the same number, and most founders run the brand on the wrong one. This week: five numbers, where the gap between them comes from, and the one to check every week.
The numbers
Same month, five numbers
Pooled data from the Indian D2C brands we work with: 40,076 orders, 90 days to 23 Sep 2026. The average brand's month:
Of every ₹100 booked, ₹4.7 was left as contribution. And 73% of these orders were cash on delivery, so even the delivered money reached the bank only after the courier remitted it.
Revenue was 21 times contribution. So a 10% jump in revenue tells you almost nothing on its own. It is worth ₹2.1L a month only if every cost stays put, and it can be worth less than zero if it came from extra ad spend and orders that come back.
The essay
Each number hides a different leak
Every step down from revenue subtracts something the step above can't see. Revenue can't see returns. Gross profit can't see ads. Net profit can't see the money still on its way to you. Four places the gap opens:
1. Revenue to gross profit: orders that never become sales
Revenue counts every order placed. In our pool, ₹17.7 of every ₹100 was cancelled before shipping, ₹23.0 came back as RTO and ₹7.9 was still open or lost at settlement. ₹21.1L booked became ₹10.9L delivered, and product cost took that to ₹7.0L.
2. Gross profit to contribution: the cost of getting each order
Shipping out and back, payment fees and GST took ₹1.2L. Ads took ₹4.8L, which is 22.7% of everything booked. That leaves ₹1.0L from ₹7.0L of gross profit. This is the line most dashboards skip, because the ad platform reports revenue, not what is left after it.
3. Contribution to net profit: the costs that don't move
Salaries, rent and software are paid whether you ship 100 orders or 1,000. We used ₹80,000 a month as an example for a brand this size, which leaves ₹0.2L. A month with slightly worse ads or a few more returns turns it negative.
4. Net profit to cash: money you earned but can't spend yet
Most of these orders were COD, and that money sits with the courier until it is remitted, on whatever cycle your courier contract says. Stock bought for next month is profit you have already spent. That is how a profitable brand runs short of cash while it grows: suppliers and ad platforms get paid before the couriers pay you.
Revenue tells you demand. Contribution tells you if that demand was worth buying.
Do this week
Four checks before Friday
Write down your five numbers
For last month only: revenue, gross profit, contribution, net profit and your closing bank balance. If you can't fill one of them, that is the one to fix first.
Count contribution on delivered orders
Use courier status, not order status. An order that came back earned nothing, but it still paid for the ad and both shipping legs. Booked-order contribution flatters every month with high RTO.
Match COD remittances to deliveries
Take last month's delivered COD orders and match each one to a remittance that actually reached your bank. Anything delivered but not paid goes on a list you chase with the courier this week.
Put contribution on Monday's agenda
One row a week: revenue, ad spend, delivered sales, contribution. If revenue rises and contribution falls two weeks in a row, fix the spend before you scale it.
Start with check 01 today. Five numbers on one page, last month only. It shows you which number you have been running the brand on.
Indian D2C news
Revenue up 15%, losses up 27%
D2C fashion brand The Indian Garage Co growth tapers down in FY26Entrackr · 28 Sep 2026 · entrackr.com/fintrackr/d2c-fashion-brand-the-indian-garage-co-growth-tapers-down-in-fy26-12583833The Indian Garage Co, a D2C fashion brand, grew revenue from operations 15% to ₹234.6 crore in FY26. Its loss grew faster, up 27% to ₹28.7 crore. Advertising and promotion more than doubled, from ₹14 crore to ₹29.3 crore, and EBITDA margin only moved from −6% to −5.12%.
Growth bought with ads shows up in revenue first and in the loss later. Before you call extra spend growth, check it on contribution, not on revenue.
Also: Bewakoof grew 40%, and lost more
Bewakoof's operating revenue rose 40.5% to ₹243 crore in FY26, while its loss widened 19.4% to ₹87.4 crore. It spent ₹62 crore on marketing and promotion in the year.
Indian Retailer · 29 Sep 2026 · indianretailer.com/news/d2c-fashion-brand-bewakoof-records-40-pc-revenue-growth-fy26One number this week
What the average brand in our pool kept as contribution from every ₹100 of orders booked, before salaries and rent. Cancellations took ₹17.7, returns and open parcels ₹30.9, product cost ₹18.2, shipping, fees and GST ₹5.8, and ads ₹22.7.
Pooled data from the Indian D2C brands we work with, 40,076 orders, 90 days to 23 Sep 2026. Per ₹100 of booked revenue, rounded.
P.S. Want your own five numbers? The free profit calculator shows your contribution after ads, in ₹. It's under Free tools.
— DwarkeshGet next week’s letter
One email. Real numbers. Every week. Free.