ROI Calculation in FMCG: The Formula Everyone Botches (And How to Actually Do It)
A distributor in Karachi once told me his ROI on a new sales rep was "probably 300%." I asked how he got there. He shrugged and said, "he sold a lot."
That's the problem with ROI in FMCG. Everyone throws the number around. Almost nobody calculates it right.
And honestly? I got this wrong too when I was younger. I used to look at gross sales uplift and call it a day. Then I sat through a painful review with a CFO who tore my math apart in about eleven minutes. Fair enough.
So here's the actual formula, the hidden costs most teams skip, and a few examples that'll make sense whether you're running a biscuit brand in Lagos or a dairy portfolio in Jakarta.
The FMCG ROI Formula (The One That Holds Up)
The textbook version:
ROI = (Net Gain from Investment − Cost of Investment) / Cost of Investment × 100
Simple. But FMCG has a specific twist because most of what you're measuring — trade promotions, merchandising spend, secondary sales activations, distributor incentives — has messy attribution. Sales don't just come from the thing you spent money on. They come from weather, competitor stockouts, a public holiday, a viral TikTok, your rep getting into an argument with a store owner.
So the practical FMCG ROI formula looks more like this:
ROI = ((Incremental Volume × Gross Margin per Unit) − Total Program Cost) / Total Program Cost × 100
The word that matters here is incremental. Not total sales. Incremental. What you sold because of the investment, not what you would've sold anyway.
That single word is where 80% of FMCG ROI calculations fall apart.
What Most Teams Forget to Include in the Cost Side
When brand managers calculate program cost, they typically list the obvious stuff: trade discount, POSM printing, activation agency fee. Then they stop.
Here's what they miss:
- Sales team time (a rep spending 3 extra hours per outlet on activation isn't free)
- Warehouse handling for promo SKUs
- Damaged or expired stock from over-forecasting the promo
- Distributor working capital tied up in extra inventory
- Field supervision costs — the ASM who drives 240 km a week to check compliance
- Reporting and audit costs (still done on paper in a shocking number of markets)
I've seen a shampoo brand in South Asia run what looked like a 180% ROI activation. After we added field labor costs and 6.2% expired stock write-off, real ROI was 34%. Still positive. But a completely different conversation with the finance team.
This is one reason platforms like Zivni have started to matter more than people admit. When your rep visits, planogram compliance, and secondary sales data all flow into one system, the cost side of the ROI equation stops being a guess. You know how many minutes were spent per outlet. You know if the display was actually up on day 4 or if the wholesaler just kept the POSM in the back. Without that data, you're calculating ROI on vibes.
A Real Example: The Biscuit Brand Trade Promo
Let me walk through numbers. This is composited from a couple of real programs, so treat it as illustrative but grounded.
A mid-tier biscuit brand runs a 3-month trade promo in a metro region. Buy 10 cartons, get 1 free. Plus in-store display.
Investment side: - Free goods cost: $42,000 (at production cost, not selling price — this is a common mistake) - POSM and displays: $8,500 - Activation agency: $6,000 - Extra field time (calculated from Zivni-style visit logs): $4,700 - Expired stock from over-order: $3,100 - Total cost: $64,300
Return side: - Total sales during promo: 61,400 cartons - Baseline sales (same period previous year, adjusted for market growth of 7%): 47,900 cartons - Incremental cartons: 13,500 - Gross margin per carton: $9.20 - Incremental gross profit: $124,200
ROI = ($124,200 − $64,300) / $64,300 × 100 = 93.2%
A 93% ROI over 3 months. Good program. But notice — if the brand manager had used total sales instead of incremental, and forgotten the field labor and expired stock, they would've reported an ROI closer to 480%. Both numbers describe the same promo. Only one is honest.
The Attribution Problem Nobody Wants to Talk About
Here's the thing. Even the "incremental" number is a construct. You're comparing actual sales to what you think would have happened without the promo. That baseline is an assumption.
Better FMCG teams handle this in a few ways:
- Control stores: run the promo in 60% of outlets, keep 40% as control, compare. This is the gold standard but hard to execute cleanly.
- Pre/post trend analysis: look at the 12 weeks before and after, adjust for seasonality.
- Test markets: run in one city, compare to a similar city where you didn't run it.
Most brands do none of these. They compare promo month to previous month, which ignores seasonality entirely. In markets where Ramadan, monsoon, or back-to-school shifts baseline demand by 30-40%, that's not analysis. That's storytelling.
When ROI Isn't the Right Metric At All
Look — sometimes ROI is the wrong question. If you're launching a new SKU in a category where you have 2% share, the goal isn't ROI in quarter one. It's distribution build. Numeric distribution reach. Repeat purchase rate. Share of shelf.
A new energy drink hitting 14,000 outlets in six months with negative unit economics might still be a huge win if the fifth-month repeat rate is climbing. Force ROI onto that and you'll kill the brand before it gets going.
Same goes for defensive spend. Competitor drops price, you match it — the ROI on that match will look terrible in isolation. But the ROI of not matching (losing 4 points of share that take 18 months to recover) is worse.
So calculate ROI properly. Use the formula. Include the hidden costs. Argue about the baseline. But don't let a number that's 60% assumption drive a decision that needs judgment.
What's the last promo you ran where you'd bet your own money on the ROI figure being within 10% of reality?