Phase 5 · Week 46 · ~20 hours
Where it sits. You will never analyse a business you can touch more easily than the soap on your shelf, the store you bought it in, and the app that delivered it. That familiarity is a trap. Three consumer models sit inside this one playbook: FMCG (selling brands through other people's stores), organised retail (selling other people's brands through your own stores), and e-commerce (selling through a warehouse-and-last-mile machine). From the outside they look like one "consumer sector". Underneath they are three different economic species, with different margin structures, different capital intensities, different binding constraints, different KPIs and different multiples. This is the fifth of Phase 5's ten sector playbooks, and the one closest to daily life. The previous playbook taught you SaaS and marketplace economics; several of those tools (cohorts, CAC, contribution margins, GMV discipline) reappear here wearing aprons. Unit economics becomes the store-level P&L; M2's working-capital and forensic toolkit becomes the channel-stuffing detector; relative-valuation discipline meets its hardest test in Indian consumer names trading at 50–90× earnings. On the five-questions spine (master map), this playbook is mostly question 2, is it a good business?, answered three ways, plus question 5 wherever the premium multiple forces you to ask what would have to be true?
Suggested hour budget. Core content: 8h · worked examples: 1.5h · practice set: 3h · applied mini-project (the consumer workup): 5h · flashcards + mastery check: 1.5h · teach-back + journal: 1h.
App link. This module powers the Consumer wing of the sector case engine: the price×volume decomposition drill (revenue growth appears; you split it and grade the quality), the GMROI/turns matcher (statements from disguised retailers; identify the format), the CM-ladder builder (assemble GMV → CM3 from shuffled cost lines), and the channel-stuffing spotter (quarterly vignettes, one stuffed channel each). Your completed KPI tables seed the consumer pages of the sector KPI cheat-sheet artifact. Passing the mastery check and the graded consumer workup ("Consumer case vs key") unlocks the IT services and telecom playbook.
Advertisement
Learning objectives
By the end you can:
- Explain the three consumer business models from first principles: why an FMCG company is a brand-plus-distribution machine with almost no capital in it, why a retailer is a turns-times-margin machine, why an e-commerce company is a contribution-margin ladder climbing toward fixed costs, and why each therefore gets different KPIs and a different valuation lens.
- Decompose any consumer company's revenue growth into price/mix × volume, exactly (multiplicatively), and judge growth quality: mid-single-digit volume growth is the FMCG health signal; value-only growth is the warning.
- Compute and interpret the FMCG KPI panel: gross margin (45–60%), EBITDA margin (18–25%+), A&P % of sales, distribution reach and direct coverage, market share, premiumization, rural/urban mix. Then compute why ROCE is enormous: asset-light operations plus negative working capital, built number by number.
- Run the retail panel: SSSG/comps split into footfall × conversion × ticket, sales per square foot, inventory turns by format (grocery 10–15×, apparel 3–4×), GMROI, private-label mix, and the cash conversion cycle (negative = best-in-class). Then build a single store's unit P&L with payback.
- Build the e-commerce ladder, GMV → net revenue → CM1 → CM2 → CM3 → EBITDA, with every line computed, and read a path-to-profitability claim using repeat rates, cohort behavior, fulfillment cost %, and CAC trends.
- Detect the sector's specific red flags: value-only growth, A&P cuts propping margin, channel stuffing via rising inventory/receivable days, share loss to regional and D2C brands; negative real comps, inventory outgrowing sales, discount-driven margins, new-store-only growth; CAC rising with flat repeat, contribution-margin definition games, GMV bought with coupons.
- Apply the right valuation lens: P/E and EV/EBITDA for FMCG and retail (with India's premium-multiple regime read through the key-value-driver formula), EV/Sales on net revenue for pre-profit e-commerce. Then reverse any premium multiple into the growth it silently assumes.
Prerequisites & connections
Builds on. M1 for revenue recognition, where gross versus net is the same issue as GMV versus net revenue. M1 also gave you inventory accounting and the Ind AS 116/ASC 842 lease rules, which will distort every India-vs-US retail EBITDA comparison you make. M2.02 to M2.04 for working capital and the cash conversion cycle. That's also where DuPont gave you ROCE = margin × turns, which becomes the core equation of retail. M2.05 to M2.07 for forensics, since channel stuffing is receivable-days and inventory-days forensics with a consumer face. M3.06 for relative valuation and the India premium-multiple question, which here meets 60× P/Es. M3.07 for the key-value-driver formula, which you'll use below to reverse premium multiples. M4.01 and M4.02 for business-model anatomy and unit economics, because the store P&L and the e-com cohort maths are direct applications of them. M5.04 for CAC, LTV, cohort retention, GMV/take-rate. The marketplaces you met there come back here as e-commerce.
Feeds into. M5.06 to M5.10, where each sector playbook sharpens the "model dictates the KPIs" reflex and the capstone right-lens exam mixes consumer cases in. Phase 8, where the teardown of 1 to 2 hours on any consumer company runs on the KPI panels you build here. Phases 9 and 10, where consumer compounders are the classic quality-versus-price portfolio dilemma. The FMCG negative-working-capital computation also turns into a template you'll reuse. You'll see the same structure in paints, adhesives and QSR.
Core teaching content
4.1 One shopper, three machines
Follow ₹100 of shampoo from factory to scalp and you cross three businesses. The manufacturer (an HUL) makes it for ~₹50 of materials and sells it to trade for ~₹80, having spent ₹8–10 telling you to want it. The retailer (a DMart) buys it for ~₹80 and sells it for ₹95, keeping a thin slice for renting you shelf access. Or a website (a Nykaa) sells it for ₹95, then spends ₹12 of that delivering the parcel and another ₹15 persuading you to click. Same bottle, three economic machines:
| FMCG / staples | Organized retail | E-commerce | |
|---|---|---|---|
| What it really sells | A trusted brand, everywhere | Access, price, curation | Convenience + selection |
| Gross margin | 45–60% | Grocery 12–18%; apparel 35–55% | 30–45% of net revenue (mix-dependent) |
| EBITDA margin | 18–25%+ | Grocery 5–9%; apparel 10–18% (pre-Ind AS 116) | −20% → +5–10% along the scale curve |
| Capital intensity | Very low (asset-light) | Stores + inventory | Warehouses + tech + marketing "capex in the P&L" |
| Working capital | Negative (the trade finances you) | Inventory-heavy; best-in-class run CCC ≤ 0 | Often negative (customers prepay, vendors wait) |
| The one metric | Volume growth | SSSG (comps) | Contribution margin + repeat rate |
| Valuation lens | P/E, EV/EBITDA (premium multiples) | P/E, EV/EBITDA | EV/Sales on net revenue → EV/EBITDA as profits arrive |
That table exists because of one rule you'll lean on for the rest of the phase: the business model dictates the KPIs and the multiple. Hold a grocer to FMCG expectations, like a 50% gross margin, and everything looks broken. Hold an apparel brand to retail's 12× inventory turns and it looks broken too. Nothing is broken. They're different machines, so learn each one's physics first, then its dials, then the ways it fails.
FMCG business model
An FMCG business model is a brand-plus-distribution machine: the company owns a brand that earns pricing power and a distribution system that puts the brand within arm's reach, while others own the trucks and shops. Returns on capital look like typos because the model is asset-light and the trade finances working capital. Analysts split revenue growth into volume and price, because volume growth shows the franchise physically getting bigger.
15 min read, on its own page
Retail business model
A retailer earns the spread between what it pays suppliers and what shoppers pay, and its rent and wages come out of that spread. Its ROCE is the EBIT margin multiplied by capital turns, so grocery runs a thin margin on fast turns while apparel runs a wide margin on slow turns. Analysts split growth into same-store sales and new stores, because comps are earned with the customer while new stores are bought with capex.
12 min read, on its own page
Ecommerce KPIs
Ecommerce KPIs are the measures that show whether an online retailer's losses are by choice or by physics. The contribution-margin ladder runs from net revenue down to EBITDA, and each rung asks one question about the business, starting with whether there is a real trading margin. Repeat behaviour and customer acquisition cost then show whether the customer pays back, and no amount of scale fixes negative contribution per order.
9 min read, on its own page
4.5 The consumer multiples map, and the 60-minute consumer teardown
Memorise this lens table:
| Sub-sector | Primary lens | Cross-checks | Why |
|---|---|---|---|
| FMCG/staples | P/E (premium) | EV/EBITDA, FCF yield, key-value-driver reverse | Stable, high-ROIC, low-reinvestment cash machines |
| Grocery/value retail | P/E, EV/EBITDA (lease-adjusted) | EV/store, EV/sq ft, store-rollout DCF | Unit-rollout story; earnings near-term understated by young stores |
| Apparel/lifestyle retail | P/E, EV/EBITDA | GMROI trend, mature-store economics | Fashion risk deserves a haircut vs grocery stability |
| E-commerce (pre-profit) | EV/Sales on net revenue | EV/net-GMV with take rate; CM2 trajectory | No earnings yet; revenue quality varies with 1P/3P mix |
| E-commerce (profitable) | EV/EBITDA → P/E | Cohort economics | Converging to retail math at scale |
Sanity-check all of it against ROIC vs WACC, the Phase 3 master test. A premium multiple on a "consumer brand" whose ROIC is below WACC is a story wearing a valuation's clothes.
The 60-minute consumer teardown feeds Phase 8. Run it in this order:
- Classify the machine. Is it FMCG, retail, e-com, a hybrid? If it's online, get the 1P/3P mix.
- Pull 5 years of the one metric: volume growth for FMCG, SSSG for retail, the CM ladder plus repeat for e-commerce.
- Decompose growth: price×volume, comps against new stores, cohorts against new CAC.
- Bridge the margin. Is the expansion led by gross margin? Then it's real. If A&P and discounts led it, it's borrowed.
- Check capital: core ROCE with the working-capital sign, store paybacks, or CM2 per order.
- Sweep the red flags: receivable and inventory days, a GMROI slide, the CAC trend.
- Reverse the multiple. What growth, for how long, at what margin does the price assume?
Then answer the five questions.
Common mistakes & how experts think differently
- Reading value growth as demand. "Revenue +14%" tells you nothing until you divide by price. Beginners quote revenue. Experts quote volume (FMCG), transactions (retail), or cohort-adjusted orders (e-com), and they treat the price layer as weather. It's real, but it isn't the climate.
- Applauding margin expansion without a bridge. It's the most common error in the consumer sector. Experts bridge every margin move into its parts before deciding whether to be pleased. Gross-margin moves from input costs and mix are durable. A&P and discounting are borrowed, a red flag dressed as good news. Operating leverage is the third piece.
- Comparing turns, margins, or sales densities across formats. 3.5× turns is failure in grocery and excellence in apparel. A 15% gross margin is DMart's strength, and it would kill an FMCG company. Experts compare within a format and use GMROI, or ROCE, to compare across formats.
- Judging a rollout chain on consolidated margins. A chain doubling its store count is a blend of mature stores earning 17% four-wall margins and infant stores earning nothing. Beginners see "6% EBITDA margin, mediocre." Experts rebuild the mature-cohort economics and value the rollout. Or they spot that mature stores aren't improving with age, and that kills the thesis.
- Treating GMV as revenue, or "revenue" as comparable across 1P/3P mixes. A 1P-heavy platform "grows revenue" simply by shifting mix from marketplace to inventory-led sales. The economics don't change at all, while the optics change hugely. Experts restate everything to net GMV, take rate, and net revenue before comparing.
- Taking CM definitions on faith. "Contribution-margin positive" is an adjective until you know what was contributed and what was excluded. Experts rebuild the ladder from raw cost lines and check whether costs migrated between rungs since the last deck.
- Ignoring the lease standard. Comparing an Ind AS 116 EBITDA to an ASC 842 EBITDA flatters the Indian retailer by hundreds of basis points. Comparing "net cash" balance sheets while ignoring capitalised lease liabilities flatters everyone. Experts compare EBIT or lease-adjust everything. That's the comparability trap from M1, paying off.
- Extrapolating the premium multiple. "It has always traded at 60×, so 60× is fair." That holds until growth downshifts two points and the key-value-driver maths removes two-thirds of the multiple. Experts price the implied decade. They want their margin of safety in the assumptions, and they don't look for it in hopes of a re-rating.
- Dismissing (or worshipping) negative working capital. Beginners either miss it entirely in ROCE or treat any negative CCC as automatic brilliance. Experts ask who is financing whom, and why. HUL's distributors pre-pay because the brand queue is long, and that's strength. A stressed retailer stretching payables to survive prints the same negative CCC on its way to the grave. That's M2's context rule. Experts also know when a positive CCC is the smarter trade, as with DMart's discounts.
- Anchoring on the aggregate when the cohort is the unit. Aggregate e-com revenue can grow while every cohort decays, with new-customer spend papering over a leaky bucket. Experts read cohort disclosures first and treat their absence as a data point about management.
Worked examples
Worked example 1: Sundar Consumer: the channel-stuffing autopsy (FMCG forensics)
Sundar Consumer Products (synthetic mid-cap staples company, ₹ cr) reports three sparkling years:
| FY1 | FY2 | FY3 | |
|---|---|---|---|
| Revenue | 4,000 | 4,480 (+12.0%) | 5,018 (+12.0%) |
| Reported volume growth | +5.0% | +2.0% | +0.5% |
| EBITDA margin | 20.0% | 21.2% | 22.4% |
| A&P % of sales | 9.5% | 8.4% | 7.2% |
| Receivable days | 14 | 22 | 31 |
| Inventory days (COGS) | 55 | 62 | 71 |
| CFO / EBITDA | 92% | 74% | 55% |
Step 1: decompose growth. FY3 price/mix = 1.120 / 1.005 − 1 = +11.4%, against +9.8% in FY2 (1.12/1.02) and +6.7% in FY1 (1.12/1.05). Volume has collapsed toward zero while headline growth hasn't moved, so the growth is now almost entirely price. That's red flag 1, value-only growth.
Step 2: bridge the margin. Margin expanded 240bps over two years while A&P fell 230bps. At FY1's 9.5% A&P ratio, FY3 A&P would be ₹477 cr. The actual figure is 5,018 × 7.2% = ₹361 cr. The ₹116 cr saved = 2.3% of sales. Essentially the entire margin expansion is the brand's food being eaten. That's red flag 2.
Step 3: the working-capital tell. Receivable days have doubled in a sector that runs 10 to 15 days. So the trade is being given credit to absorb stock it didn't order. Inventory days +16 says even the company's own warehouses are filling up. Now convert to rupees. FY3 receivables = 5,018 × 31/365 ≈ ₹426 cr, against ₹192 cr at a 14-day norm. That means ~₹234 cr of revenue (≈4.7% of sales) is plausibly parked in the channel instead of sold to humans. It's red flag 3, channel stuffing. CFO/EBITDA rotting from 92% to 55% backs it up, which is M2's accruals lens at work: profits up, cash down.
Step 4: the verdict. Underneath it all are flat volumes and a margin propped up by A&P cuts. There's a stuffed pipeline that must unwind, which means a future quarter of de-stocking with negative reported growth. And earnings quality is deteriorating on every M2 metric. If this stock trades at a "quality staples" 45× P/E, the multiple and the fundamentals are describing two different companies. You've met this pattern with real names in your forensics case file (Manpasand Beverages), and it turns up somewhere in Indian mid-cap FMCG every cycle.
Worked example 2: GroceryKing vs ThreadCraft: two routes to the same ROCE (retail)
Two synthetic retailers, both ₹2,000 cr of revenue (₹ cr):
| GroceryKing (value grocery) | ThreadCraft (value fashion) | |
|---|---|---|
| Gross margin | 15% → 300 | 42% → 840 |
| 4-wall + overhead opex | 160 | 620 |
| EBITDA | 140 (7.0%) | 220 (11.0%) |
| D&A | 40 | 70 |
| EBIT | 100 (5.0%) | 150 (7.5%) |
| COGS | 1,700 | 1,160 |
| Average inventory | 142 | 331 |
| Net fixed assets | 460 | 590 |
| Receivables / payables | 5 / 115 | 8 / 96 |
Inventory turns. GroceryKing turns 1,700/142 = 12.0× (30 days) and ThreadCraft 1,160/331 = 3.5× (104 days). Both are squarely on-format, against norms of grocery 10 to 15× and apparel 3 to 4×.
GMROI. GroceryKing's is 300/142 = 2.1 and ThreadCraft's is 840/331 = 2.5. They're comparable, because GMROI has normalised the formats.
CCC. For GroceryKing it's DIO 30 + DSO (5/2,000×365 ≈ 1) − DPO (115/1,700×365 ≈ 25) = +6 days, so it's nearly supplier-funded. For ThreadCraft it's 104 + 1 − 30 = +75 days. That's ten weeks of cash sleeping in fabric, the structural price of fashion.
Capital employed & ROCE. GroceryKing employs 460 + (142+5−115) = 492, so ROCE = 100/492 = 20.3%. ThreadCraft employs 590 + (331+8−96) = 833, so ROCE = 150/833 = 18.0%.
Read. Two utterly different P&Ls give nearly identical returns on capital. That's margin × turns doing its work. The risk is different, though. GroceryKing's 15% gross margin is stable, because nobody marks down rice 60%. ThreadCraft's 42% carries a markdown tail, and one bad season of buying craters the GMROI. So at equal ROCE the grocer's earnings deserve the higher multiple for durability, unless ThreadCraft's store paybacks are fast enough to compound faster. Now you know what to check next: comps quality and store-level payback. Going from "this number" to "therefore that question" is how the playbook is meant to work.
Worked example 3: GlowCart at scale: cohorts, CAC payback, and the profitability date (e-commerce)
Go back to GlowCart and extend it. Its ₹780 cr of marketing splits into ₹585 cr of acquisition and ₹195 cr of brand and retention spend. The acquisition money brings in 1.3 cr new customers, a CAC of ₹450. Here are the cohort disclosures, per 100 customers acquired, in ₹ actuals:
| Cohort year | Active | Orders/customer | CM2/order (₹) | Cohort contribution (₹) |
|---|---|---|---|---|
| Year 1 | 100 | 2.4 | 177 | 100 × 2.4 × 177 = 42,480 |
| Year 2 | 55 retained | 3.1 | 185 | 55 × 3.1 × 185 = 31,540 |
| Year 3 | 42 retained | 3.6 | 192 | 42 × 3.6 × 192 = 29,030 |
- CAC payback. Year-1 contribution per acquired customer is ₹425 against a CAC of ₹450, so payback takes ~13 months. That's into year 2, which is acceptable. It improves if CM2/order keeps rising.
- 3-year LTV, as undiscounted contribution, is (42,480 + 31,540 + 29,030)/100 = ₹1,030 per customer, so LTV/CAC ≈ 2.3×, and the curve is still contributing in year 3. Year-2 cohort GMV retention = 31,540/42,480 ≈ 74%. It's a leaky but deepening bucket, with fewer customers who are each worth more. That's healthy for beauty and fashion. In grocery e-com, where purchases are habitual, you'd demand better retention. In electronics, where they're episodic, you'd tolerate worse.
- The profitability date. Fixed costs are ₹470 cr and growing 12%/yr, and CM3 has to cross them. CM3 = net revenue × [CM2% − marketing%]. In the model, net revenue grows 25%/yr led by repeat, CM2% stays flat at 27.2%, and marketing% falls 2pp/yr from 20% as the existing-customer mix rises. Year +1: 4,875 × (27.2% − 18%) = 449 vs fixed 526, so −77. Year +2: 6,094 × (27.2% − 16%) = 682 vs 590, so +₹92 cr EBITDA. Breakeven arrives in ~2 years, driven by mix, with no cut to growth spend. That's the healthy version. Your job as the analyst is to check each assumption against the disclosed trend before you accept the deck's hockey stick. Is marketing% actually falling? Is CM2/order actually rising?
- The stress test. Suppose competition pushes CAC to ₹580 (+29%) while cohort behaviour stays the same. Payback stretches from ~13 to ~16.4 months (580/425 × 12), LTV/CAC falls to ~1.8×, and the marketing% glide path stalls. The profitability date slides years to the right, and only one input moved. So CAC trend vs repeat behaviour is the master dial on the e-commerce panel. Every other line moves off it.
Worked example 4: Aditya Retail: decomposing SSSG to the footfall floor, with a sales-per-sq-ft cross-check (retail)
Aditya Retail (synthetic value grocer, ₹ cr) runs 120 mature stores averaging ₹25 cr each, a comp base of ₹3,000 cr. Management reports SSSG +8.0%. It also opened 24 new stores evenly through the year, so they contribute for half a year on average, at 65% of mature productivity. The investor deck gives the comp's demand drivers too: footfall +2.0%, conversion +1.5%, items per basket +1.0%, price per item +3.3%.
Step 1: rebuild SSSG from the floor up, running the comps decomposition all the way down. Transactions = footfall × conversion, and ticket = items/basket × price/item:
- transaction growth =
1.020 × 1.015 − 1 = +3.53% - ticket growth =
1.010 × 1.033 − 1 = +4.33% - SSSG =
1.0353 × 1.0433 − 1 = +8.02%, which reconciles to the reported +8.0%.
What does that say about quality? Transactions are growing for real. Footfall is +2.0% and conversion is +1.5%, both positive, so these are real incremental baskets and no inflation mirage. Price per item, at +3.3%, runs just above ordinary cost pass-through. That's the healthy comp signature. Traffic and ticket are both contributing.
Step 2: split total growth into earned and bought.
- comp sales =
3,000 × 1.0802 = ₹3,240 cr - new-store sales =
24 × 25 × 0.5 × 0.65 = ₹195 cr - total revenue =
3,240 + 195 = ₹3,435 cr, so total growth is +14.5%, with 8.0 points earned by comps and 6.5 points bought with new-store capex.
A mature store's rent and wages are nearly fixed, so the comp line carries the operating leverage. Those 8.0 earned points are worth far more per rupee than the 6.5 bought points. The quality signal is the earned/bought split, and the +14.5% headline hides it.
Step 3: the inflation and density cross-checks.
- Real comps: with CPI at 5.0%,
1.0802 / 1.05 − 1 = +2.87%. Real traffic is comfortably positive, so the comp clears the floor test (comps ≥ inflation). - Sales density: each mature store does ₹25 cr on ~7,500 sq ft of trading area, so
25 cr / 7,500 = ₹33,333/sq ft. That's squarely in the value-grocery band.
Read. This is a textbook-healthy retailer. Comps are transaction-led, real traffic is positive, density is on-format, and the growth mix still tilts toward earned over bought. One follow-up could flip the verdict: a falling sales-per-sq-ft trend next year. That would be the earliest sign that the rollout has outrun its addressable market, and that the 6.5 bought points are destroying incremental ROCE out of sight.
Worked example 5: Cedar & Pine Outfitters: GMROI and the inventory-aging markdown reserve (retail)
Cedar & Pine Outfitters (synthetic US apparel retailer, $ million) posts sales of $1,200m at a 48% gross margin, carrying average inventory of $178m at cost. Apparel lives and dies by what its unsold stock is worth. So compute the turns and GMROI, and then the piece the snapshot hides, which is the ageing of that inventory.
Step 1: turns and GMROI.
- COGS =
1,200 × (1 − 0.48) = $624m, and gross-margin dollars =$576m. - inventory turns =
624 / 178 = 3.51×, or ~104 days on hand, which is on-format for apparel. - GMROI =
576 / 178 = 3.24, so every $1 tied up in inventory throws off $3.24 of gross margin a year. The identity cross-checks it:GM%/(1−GM%) × turns = 0.48/0.52 × 3.51 = 3.24.
As a snapshot, 3.24 is strong. But GMROI is a photograph of a moving object. A rising pile of old stock lifts average inventory only slowly, and the markdowns it foretells haven't touched the P&L yet.
Step 2: age the inventory and reserve for markdowns. The stock ledger buckets the $190m of ending inventory (at cost) by age, and policy sets a net-realisable-value markdown provision for each bucket:
| Age bucket | At cost ($m) | Markdown rate | Provision ($m) |
|---|---|---|---|
| 0–90 days | 120 | 0% | 0.00 |
| 91–180 days | 45 | 15% | 6.75 |
| 181–365 days | 18 | 40% | 7.20 |
| >365 days | 7 | 70% | 4.90 |
| Total | 190 | 18.85 |
The markdown reserve is $18.85m, or 9.9% of inventory. The leading indicator is the >180-day share, (18 + 7)/190 = 13.2%.
Step 3: stress a bad season. A mis-bought range ages. $30m slides out of the 0 to 90 day bucket into 181 to 365 days, with ending inventory unchanged at $190m.
- new reserve =
45×0.15 + 48×0.40 + 7×0.70 = $30.85m, or 16.2% of inventory, and the >180-day share jumps to(48 + 7)/190 = 28.9%. - incremental markdown =
30.85 − 18.85 = $12.0m, or 1.0% of sales straight off gross profit, dragging GMROI to(576 − 12)/178 = 3.17.
Read. The headline GMROI of 3.24 and turns of 3.51× looked healthy. Yet the ageing schedule shows the retailer is one bad-buy season away from a margin dent the ratio can't see. That's why the red flag for "inventory outgrowing sales" matters. Say sales had grown 5% while inventory grew 22%, a ~4.4× ratio and well past the ~1.2 to 1.3 line. The ageing table is where that excess stock would turn up. Watch the >180-day share a quarter or two before the markdown hits.
Practice set
All companies are synthetic unless noted, and figures are ₹ crore unless stated. Work each problem before you read the solution.
P1 (guided): Price×volume, both directions. (a) Bharat Foods reports revenue +12.4% with volume +6.0%. Compute price/mix growth. (b) Its peer reports revenue +9.0% with price/mix +11.0%. Compute volume growth and give a one-line verdict on each.
Solution. (a) price/mix = 1.124 / 1.060 − 1 = +6.04%. That's balanced and volume-led, so it's healthy. (b) volume = 1.090 / 1.110 − 1 = −1.80%. Nine percent "growth" with shrinking units is value-only growth, the FMCG warning flag. Notice the multiplicative form. Subtracting (9 − 11 = −2%) gets close here, but it's wrong in general, so always divide.
P2 (guided): The FMCG margin bridge. Kesar Care's two-year panel shows gross margin going from 47.8% to 47.0% and EBITDA margin from 18.2% to 19.5%. A&P went from 8.9% to 6.8% of sales. Volume was +0.5% and value +8.5%, and receivable days moved from 13 to 14. (a) Decompose growth. (b) Bridge the margin expansion. (c) Give a verdict, citing the red-flag panel.
Solution. (a) price/mix = 1.085 / 1.005 − 1 = +7.96%, so essentially all growth is price. (b) A&P fell 2.1pp of sales while EBITDA margin rose 1.3pp and gross margin fell 0.8pp. The bridge is +2.1 (A&P cut) − 0.8 (gross margin) = +1.3pp, and it ties. The A&P cut accounts for the entire expansion and more, and underlying operating performance got worse. (c) Two flags fire, value-only growth and an A&P cut to prop margin. There's no channel-stuffing signal, since receivables are stable. So the franchise is being harvested, and nobody is faking it. Expect volume and share erosion in 12 to 24 months, and don't capitalise this margin at a premium multiple.
P3 (guided): Negative working capital and ROCE, computed. Nirmal Staples: revenue 6,000, EBIT 1,260, tax 25%. Net PP&E is 1,300. Inventory = 55 days of COGS (COGS 3,000), receivables = 12 days of sales, payables = 100 days of COGS. Compute NWC, capital employed, pre-tax ROCE, post-tax ROIC, and the reinvestment rate needed for 12% growth.
Solution. Inventory = 3,000 × 55/365 = 452. Receivables = 6,000 × 12/365 = 197. Payables = 3,000 × 100/365 = 822. So NWC = 452 + 197 − 822 = −173, which means the trade finances the business. Capital employed = 1,300 − 173 = 1,127. Pre-tax ROCE = 1,260 / 1,127 = 111.8%. NOPAT = 945, so ROIC = 945 / 1,127 = 83.9%. Reinvestment for 12% growth = g/ROIC = 12/83.9 ≈ 14.3% of NOPAT. So ~86% of profits can be paid out while the business grows 12%. This arithmetic is the engine under every premium staples multiple.
P4 (guided): Quantify the A&P prop. Vasant Home Care: Y1 sales 8,000, gross margin 48%, A&P 9.0%, other opex 1,560. Y2: sales +6%, gross margin 48%, A&P 7.5%, other opex +6%. Compute both years' EBITDA margins, the counterfactual Y2 margin at constant A&P, and the share of margin expansion explained by the cut.
Solution. Y1: EBITDA = 3,840 − 720 − 1,560 = 1,560, a 19.5% margin. Y2: sales are 8,480, and EBITDA = 4,070 − 636 − 1,654 = 1,781, a 21.0% margin. With A&P held at 9% (763), EBITDA = 4,070 − 763 − 1,654 = 1,654, or 19.5%, flat. So the cut explains all 150bps (1,781 − 1,654 = 127 ≈ 1.5% of sales). Headline EBITDA is +14.2%, while the underlying business is +6%. Any analyst note that says "strong margin delivery" without this bridge has missed the story.
P5 (independent): Comps vs the treadmill. RetailCo starts the year with 250 mature stores averaging ₹24 cr. SSSG is +3%, and 50 new stores open evenly through the year (half-year average contribution) at 55% of mature productivity. CPI is 6%. Compute total revenue growth, split it earned-vs-bought, and diagnose.
Solution. Base = 6,000. Comp stores: 6,000 × 1.03 = 6,180 (+180). New: 50 × 24 × 0.5 × 0.55 = 330. Total = 6,510, so growth is +8.5%, with 3.0pp earned by comps and 5.5pp bought with new stores. Real comps = 1.03/1.06 − 1 ≈ −2.8%. The existing machine is losing real traffic, and capex bought two-thirds of the headline growth. It's the classic new-store treadmill. Check incremental store paybacks and expect consolidated ROCE to grind down. Whatever the "record revenue" headlines say, this is a deteriorating retailer.
P6 (independent): GMROI across formats. FreshBasket: sales 800, gross margin 16%, average inventory 51.7. ModaWear: sales 800, gross margin 52%, average inventory 120. Compute turns, inventory days, and GMROI for both. Which is better run?
Solution. FreshBasket: GM = 128, COGS = 672, turns = 672/51.7 = 13.0× (28 days), GMROI = 128/51.7 = 2.5. ModaWear: GM = 416, COGS = 384, turns = 384/120 = 3.2× (114 days), GMROI = 416/120 = 3.5. Both are on-format against grocery's 10 to 15× and apparel's 3 to 4×. ModaWear extracts more gross margin per inventory rupee. But that 114-day pile carries markdown risk a grocer never faces, and one bad season can erase the gap. So neither is "better" from a snapshot. Grade each against its format's norms and its own trend. If ModaWear's GMROI was 4.2 last year, that's the story.
P7 (independent): CCC and the payables question. ValueMart: revenue 12,000, COGS 10,200, inventory 950, receivables 60, payables 700. (a) Compute the CCC. (b) Recompute if payables stretch to 50 days, and find the cash freed. (c) Suppliers offer a 1.75% early-payment discount, and short-term funds earn 7.5%. Should ValueMart stretch?
Solution. (a) DIO = 950/10,200 × 365 = 34.0. DSO = 60/12,000 × 365 = 1.8. DPO = 700/10,200 × 365 = 25.0. CCC = +10.8 days. (b) Payables at 50 days = 10,200 × 50/365 = 1,397, which frees ~697 of cash, and CCC = 34.0 + 1.8 − 50.0 = −14.2 days. (c) The discount is worth 1.75% × 10,200 = 178.5/yr. The float is worth 697 × 7.5% = 52.3/yr. Take the discount and keep the positive CCC, the way DMart does. A negative CCC is best-in-class only when it isn't bought by giving up something worth more. The sign of the CCC is an output of strategy. Audit the trade, and don't worship the sign.
P8 (independent): Store unit economics. A value-fashion store has 10,000 sq ft at ₹9,500/sq ft of mature sales and a 36% gross margin. Rent is ₹65/sq ft/month, staff cost ₹0.62 cr, and other store opex ₹0.55 cr. Cash to open: fitout ₹1.7 cr, deposit ₹0.35 cr, net opening inventory ₹0.75 cr. Depreciation is ₹0.28 cr. (a) 4-wall EBITDA and margin. (b) Payback and store ROCE at maturity. (c) Year-1 sales run at 70% of mature. What does that do to the payback narrative?
Solution. (a) Sales = ₹9.5 cr and GM = 3.42. Costs = 0.78 (rent: 10,000 × 65 × 12 = ₹78 lakh) + 0.62 + 0.55 = 1.95, so 4-wall EBITDA = 1.47, a 15.5% margin. (b) Investment = 2.80, so payback = 2.8/1.47 ≈ 1.9 years. Store EBIT = 1.19, which makes store ROCE ≈ 42%. Open it. (c) In year 1, sales are 6.65, GM 2.39 and costs ≈ 1.95, so EBITDA ≈ 0.44. The first year contributes little. Once you count the ramp properly, cash payback measured from opening is nearer 2.5 to 3 years. Scale that up and you get the chain-level lesson: a fast-growing chain's consolidated numbers are always uglier than its mature-store truth. Rollout decks always quote the mature store, so check which one you're being shown.
P9 (independent): Build the ladder. KartNow: gross GMV 3,000; returns/RTO 12%; AOV ₹660; mix 50% 1P (product margin 26%), 50% 3P at 22% take rate, plus ad income 49.6; fulfillment ₹88/order; marketing 15% of net revenue; fixed costs 215. Build GMV → net revenue → CM1 → CM2 → CM3 → EBITDA (₹ cr and % of net revenue) and give the verdict.
Solution. Net GMV = 3,000 × 0.88 = 2,640, and orders = 2,640/660 = 4.0 cr. Net revenue = 1P 1,320 + 3P (1,320 × 22% = 290.4) + ads 49.6 = 1,660. CM1 = 1,660 − 1P COGS (1,320 × 74% = 976.8) = 683.2, or 41.2%. Fulfilment = 88 × 4.0 = 352, so CM2 = 331.2, or 20.0% (₹82.8/order). Marketing = 249, so CM3 = 82.2, or 5.0%. EBITDA = 82.2 − 215 = −132.8, or −8.0%. The verdict is losses by choice. The physics works. Every contribution rung is positive, and the loss comes from fixed costs, which revenue growth dilutes. The follow-ups write themselves. Check whether CM2/order is rising and whether marketing% is falling through repeat mix. Then ask how fast fixed costs grow.
P10 (independent): The CAC-repeat cross. Over two years CAC goes from ₹380 to ₹520, and the existing-customer share of GMV from 61% to 62%. CM2/order is flat at ₹150, and new customers order 2.5×/year. Compute CAC payback in both years and interpret it.
Solution. Year-1 contribution per new customer = 2.5 × 150 = ₹375. Payback was 380/(375/12) ≈ 12.2 months, and now it's 520/(375/12) ≈ 16.6 months (+37%). Repeat share is flat. Customers aren't behaving any better. They simply cost 37% more. That's the red flag word for word: CAC rising with flat repeat. Growth is getting more expensive with no cohort improvement to make up for it. So the marketing line is fighting saturation or competition, and the path-to-profitability date is drifting right. Demand cohort disclosure before you believe any breakeven guidance.
P11 (independent): Reverse the premium multiple. A staples franchise earns ROIC 80% with cost of equity 11.5%. (a) Steady-state fair P/E (on NOPAT) if growth is 9.5%. (b) If growth downshifts to 6.5%. (c) The lesson, in one sentence.
Solution. (a) (1 − g/ROIC)/(r − g) = (1 − 9.5/80)/(0.115 − 0.095) = 0.881/0.020 ≈ 44×. (b) (1 − 6.5/80)/(0.115 − 0.065) = 0.919/0.050 ≈ 18×. (c) A three-point growth downshift removes ~58% of fair value at constant earnings. Premium consumer multiples are leveraged bets on growth duration, so the volume line, the distribution build, and the runway evidence matter more than this quarter's EPS. This is single-stage teaching maths. Take the direction and the magnitude from it, and leave the decimals alone.
P12 (timed, 25 minutes): The right-lens triage. Three disguised companies. A: gross margin 51%, EBITDA 24%, receivable days 12, volume +5%, value +9%. B: gross margin 14.8%, inventory turns 11.5×, SSSG +2% (CPI 6%), store count +18%. C: net GMV 4,000, net revenue 1,400, CM2 −2% of net revenue, marketing 18% of net revenue, CAC +25% YoY, repeat share flat. For each one, identify the model, the valuation lens, one computed number, and the most important health signal or red flag.
Solution. A = FMCG/staples. Lens: P/E (premium) or EV/EBITDA. Price/mix = 1.09/1.05 − 1 = +3.8%, balanced and volume-led at +5%, the mid-single-digit ideal. Receivables are clean. It's a healthy franchise, and the only debate is price. B = value grocery retail. Lens: P/E or EV/EBITDA (lease-adjusted), plus rollout maths. Real comps = 1.02/1.06 − 1 ≈ −3.8%, so real comps are negative while stores grow 18%. That's the treadmill flag, so interrogate incremental store economics before you pay for "growth." C = e-commerce, tilted to marketplace (net revenue = 35% of net GMV). Lens: EV/Sales on net revenue only, but here the lens hardly matters. CM2 is negative (−2%), so CM3 ≈ −20% of net revenue, and CAC is inflating while repeat stays flat. That's losses by physics plus worsening acquisition. Pass, or price it as an option instead of a business. Time check: the three classifications and four numbers should take under 15 minutes, and the verdict sentences take the rest.
P13 (guided): SSSG to the demand floor. Surya Stores reports SSSG +6.5%. Its footfall grew +1.0% and conversion +2.0%, and items per basket rose +0.5%. (a) Transaction growth. (b) The ticket growth implied by the +6.5% comp. (c) The price-per-item growth inside that ticket. (d) One-line quality verdict.
Solution. (a) transactions = 1.010 × 1.020 − 1 = +3.02%. (b) ticket = 1.065 / 1.0302 − 1 = +3.38%. (c) price/item = 1.0338 / 1.005 − 1 = +2.86%. (d) Balanced and healthy. Transactions (+3.0%) and ticket (+3.4%) contribute almost equally. The ticket is real basket-building (items +0.5%) plus modest pricing (+2.9%), so this is no inflation-only comp. Keep the chain straight: transactions = footfall × conversion, ticket = items × price, SSSG = transactions × ticket. Divide through each layer, and never subtract.
P14 (guided): GMROI and the aging reserve. Brookline Apparel (synthetic; $ million): sales 900, gross margin 46%, average inventory at cost 150. Ending inventory ages (at cost): 0–90d = 95, 91–180d = 35, 181–365d = 15, >365d = 5. Markdown provision rates by bucket: 0% / 12% / 35% / 65%. (a) Inventory turns and GMROI. (b) The markdown reserve and its % of inventory. (c) GMROI was 3.0 last year; read the move.
Solution. (a) COGS = 900 × 0.54 = 486, turns = 486/150 = 3.24×, and GMROI = (900 × 0.46)/150 = 414/150 = 2.76. The identity checks out: 0.46/0.54 × 3.24 = 2.76. (b) reserve = 35×0.12 + 15×0.35 + 5×0.65 = 4.20 + 5.25 + 3.25 = $12.7m = 8.5% of inventory, and the >180-day share is (15+5)/150 = 13.3%. (c) GMROI fell from 3.0 to 2.76 (−8%), so the retailer extracts less gross margin per inventory rupee. A 13.3% tail older than six months says markdowns are being put off, and they haven't gone away. Watch the ageing share as well as the ratio.
P15 (independent): Sales per square foot and the maturity drag. Kaveri Value Retail has 80 mature stores doing ₹35,000/sq ft on 8,000 sq ft each. It opens 40 new stores (also 8,000 sq ft) that run their first year at 60% of mature productivity. (Assume all stores trade the full year, to isolate maturity from timing.) (a) Mature store revenue and total mature revenue. (b) Total company revenue and blended sales/sq ft across all 120 stores. (c) What the blend understates, and the professional fix.
Solution. (a) mature store revenue = 35,000 × 8,000 = ₹28 cr, and total mature = 80 × 28 = ₹2,240 cr. (b) new-store revenue = 0.60 × 28 = ₹16.8 cr each, so 40 × 16.8 = ₹672 cr. Total revenue = ₹2,912 cr over 120 × 8,000 = 960,000 sq ft, and blended density = 2,912 cr / 960,000 = ₹30,333/sq ft. (c) The blend is 13.3% below the ₹35,000 mature figure purely because the young cohort dilutes it. No store is deteriorating. The fix is to track the density of the mature cohort (stores older than ~2 years) separately. If that holds, the blend recovers by itself as the new stores season. Judging the chain on ₹30,333 would wrongly condemn a healthy rollout. It's the store-cohort lesson again, applied to density.
P16 (independent): Omni-channel contribution per order. A retailer fulfils the same catalogue three ways. In-store: AOV ₹1,200, gross margin 40%, no incremental fulfillment or gateway cost. Online (ship-to-home): AOV ₹1,500, gross margin 38%, last-mile fulfillment ₹180/order, payment-gateway 1.5% of AOV, and a returns allocation of ₹90 × 12% return rate. Click-and-collect (BOPIS): AOV ₹1,350, gross margin 39%, in-store pick cost ₹40, gateway 1.5%, returns ₹90 × 5%. Compute contribution per order for each channel and rank them.
Solution. In-store = 1,200 × 0.40 = ₹480.00. Online = 570 − 180 − 22.5 − 10.8 = ₹356.70, which is GM 570 less last-mile 180, gateway 22.5 and returns 10.8. BOPIS = 526.50 − 40 − 20.25 − 4.5 = ₹461.75. Rank: in-store ₹480.00 > BOPIS ₹461.75 > online ₹356.70. That kills the myth that "omni-channel is automatically margin-accretive." Online's higher AOV and gross-margin dollars get more than eaten by last-mile fulfilment, gateway fees, and returns. The truck is online's rent. BOPIS recovers most of the gap by deleting last-mile cost and slashing returns, and that's why retailers push store pickup. Read any omni-channel "growth" story at the contribution-per-order line, channel by channel.
P17 (independent): Inventory outgrowing sales. Nordic Home (synthetic; $ million). Year 1: sales 2,000, gross margin 45%, average inventory 300. Year 2: sales 2,120, gross margin 44%, average inventory 390. (a) Turns and GMROI both years. (b) The inventory-growth ÷ sales-growth ratio. (c) Verdict against the red-flag table.
Solution. (a) Y1: COGS = 1,100, turns = 1,100/300 = 3.67×, GMROI = 900/300 = 3.00. Y2: COGS = 1,187.2, turns = 1,187.2/390 = 3.04×, GMROI = 932.8/390 = 2.39. (b) Inventory grew 390/300 − 1 = 30% while sales grew 6%, a ratio of 5.0×, far past the ~1.2 to 1.3 warning line. (c) Two flags fire together: inventory outgrowing sales and a GMROI slide from 3.00 to 2.39 (−20%). Turns are decaying from 3.67× to 3.04×, and gross margin is already leaking a point. Stock has been bought ahead of demand, so markdowns are coming, which is deadly in a discretionary category. Expect the next quarter or two to print margin pressure as the ageing pile clears. The Cedar & Pine worked example puts numbers on that sequence.
P18 (timed, 20 minutes): The rollout maturity engine. Girija Retail (synthetic) has 150 stores today. 90 are mature and 60 are young (<2 years). A mature store does ₹20 cr of revenue at a 16% four-wall EBITDA margin (₹3.2 cr). A young store runs at 70% of mature revenue (₹14 cr) and only an 8% four-wall margin (₹1.12 cr). Corporate overhead is ₹180 cr, and cash to open a store is ₹5 cr. The plan reaches 240 stores, all eventually mature, with overhead rising to ₹240 cr. (a) Today's consolidated revenue. (b) Today's four-wall EBITDA, after-overhead EBITDA, and consolidated margin. (c) The same three at full maturity. (d) The single-store cash payback and the one-sentence lesson.
Solution. (a) revenue = 90 × 20 + 60 × 14 = 1,800 + 840 = ₹2,640 cr. (b) four-wall EBITDA = 90 × 3.2 + 60 × 1.12 = 288 + 67.2 = ₹355.2 cr. After overhead it's 355.2 − 180 = ₹175.2 cr, so margin = 175.2/2,640 = 6.6%. (c) At 240 mature stores, revenue = 240 × 20 = ₹4,800 cr and four-wall = 240 × 3.2 = ₹768 cr. After overhead (240) that's ₹528 cr, so margin = 528/4,800 = 11.0%. (d) single-store payback = 5/3.2 = 1.56 years. Notice that the consolidated margin nearly doubles, from 6.6% to 11.0%, with zero improvement in any single store. Young-cohort maturation and overhead leverage do all of it. So value a rollout retailer on mature-store economics × store count − overhead, and never on today's blended margin (mistake #4 again). Time check: parts (a) to (c) are three multiplications each, so if this ran past ~12 minutes, re-drill the four-wall build.
Applied mini-project: the consumer workup (the module gate)
Task. Build the three playbooks on three real companies, one per model, and defend a comparative verdict. This is the "Consumer case vs key" gate from your master-map row.
Pick one from each column, or substitute equivalents you can source:
| FMCG | Retail | E-commerce |
|---|---|---|
| Hindustan Unilever, Dabur, Marico (India) or Procter & Gamble, Colgate-Palmolive (US) | Avenue Supermarts/DMart, Trent (India) or Costco, TJX (US) | Nykaa (India) or Amazon (US: retail segments) |
Data to pull (all primary, all free). In India, get the latest annual report from the company website or BSE/NSE filings. Add the last 4 quarterly investor presentations. Volume growth, SSSG, store adds, CM disclosures: they're all published there. Use screener.in for the 10-year number spine. In the US, pull each company's 10-K from SEC EDGAR. P&G's has the net-sales bridge, Costco's has the membership and inventory data, and Amazon's has the segment and fulfilment lines. Use stockanalysis.com or TIKR for the spine. Label anything you estimate.
Deliverables (≤5 pages + one workbook):
- Three one-page KPI panels, built from the tables above. Include every metric from the three playbooks that you can compute or source, and mark each one healthy/watch/stress.
- The decompositions. Do price×volume for the FMCG name over 3 years. For the retailer, split comps against new stores, and ticket against transactions if it's disclosed. Build the CM ladder and the CAC/repeat panel for the e-commerce name.
- The capital story. Show core ROCE with the working-capital sign for the FMCG name. Show CCC and GMROI for the retailer. For the e-commerce name, show per-order economics.
- Red-flag sweep. Run each company against its playbook's red-flag table, and write down what you checked even where it came up clean.
- Reverse the multiple. Turn the current P/E (or EV/Sales) into the implied growth/margin/duration story. The key-value-driver maths or a reverse DCF will do it. Then write one paragraph on each saying whether you'd underwrite it.
- A two-page memo, Minto style with the conclusion first. Say which of the three is the best business, which is the best risk-adjusted proposition at the current price, and which three numbers you'd monitor quarterly for each. This is an education exercise and gives no investment advice, so your grade is on process.
Rubric (score each 0 = missing/wrong, 1 = partial, 2 = complete & correct; pass = ≥12/16 with no criterion at 0):
| Criterion | 0 | 1 | 2 |
|---|---|---|---|
| KPI panels computed correctly, right definitions & bases | |||
| Growth decomposed (price×volume; comps split; cohort/CAC) with quality verdicts | |||
| Capital analysis: ROCE build with WC sign, CCC, unit economics | |||
| Margin bridged (gross vs A&P/discount vs leverage), lease trap handled | |||
| Red-flag sweep evidenced against all three playbook tables | |||
| Valuation lens correct + multiple reversed into an explicit implied story | |||
| Memo: conclusion-first, so-what discipline, monitorables specified | |||
| Sourcing hygiene: filings cited, actual vs estimated distinguished |
Case Lab: run case CL-5.4 (The Three Machines of Main Street) in the app's Cases tab for this module: one branded staple, one value-retail chain, and one e-tailer that all touch the same shopper, worked end to end through the volume / SSSG / CM-ladder decompositions and the right valuation lens for each.
Reading & resources
- Pat Dorsey, The Five Rules for Successful Stock Investing: the Consumer Goods and Retail industry chapters. The closest published ancestor of these three playbooks. [Paid] [Beginner→Intermediate]
- Peter Lynch, One Up on Wall Street: chs. 7–8 and the retail examples throughout; the original "watch the store, then check the numbers" method. [Paid] [Beginner]
- Pat Dorsey, The Little Book That Builds Wealth: the intangible-assets/brand-moat chapter, to connect the FMCG playbook to M4.04. [Paid] [Beginner]
- Nick Sleep & Qais Zakaria, the Nomad Investment Partnership letters (compiled PDF, free online): Costco and "scale economies shared"; the deepest thinking in print on why a retailer would refuse margin. [Free] [Intermediate]
- Amazon shareholder letters, 1997 onward (amazon.com investor relations / SEC EDGAR). Read the 1997 letter especially: unit economics, cash flow, and long-horizon losses-by-choice, from the source. [Free] [Intermediate]
- Procter & Gamble 10-K (SEC EDGAR). Read the net-sales bridge (volume/price/mix/FX by segment): the price×volume decomposition done for you, every year. [Free] [Intermediate]
- Hindustan Unilever Annual Report + latest investor/analyst-day deck (hul.co.in): UVG definition, distribution disclosures, premiumization strategy. [Free] [Intermediate]
- Avenue Supermarts (DMart) Annual Report (dmartindia.com). Sparse and disciplined; compute the CCC and sales/sq ft yourself from the schedules. [Free] [Intermediate]
- Nykaa Annual Report + quarterly earnings presentations (nykaa.com investor relations): GMV/revenue/contribution disclosures; watch definitions across quarters. [Free] [Intermediate]
- Costco 10-K (SEC EDGAR): membership-fee economics, merchandise margins, inventory/payables symmetry. [Free] [Intermediate]
- Aswath Damodaran, The Dark Side of Valuation (young-growth chapters) and Narrative and Numbers (the Amazon/Uber narratives): valuing the pre-profit e-commerce tail responsibly. [Paid] [Advanced / Intermediate]
- Saurabh Mukherjea et al., The Unusual Billionaires. The HUL and Asian Paints chapters: India's brand+distribution franchises dissected. [Paid] [Intermediate]
- Zerodha Varsity, Fundamental Analysis module (free web/PDF): a refresher on reading Indian ARs while you do the mini-project. [Free] [Beginner]
- Business Breakdowns podcast: the Costco, Amazon, and Indian-consumer episodes. Hear practitioners run these KPI panels aloud. [Free] [Intermediate]
- Tools/data: screener.in (India 10-yr spines), stockanalysis.com & TIKR (US/global), SEC EDGAR full-text search, BSE/NSE filings, NielsenIQ FMCG commentary via the business press for share/rural reads. [Free/Freemium]
- Going deeper: Michael J. Mauboussin & Dan Callahan, "Measuring the Moat" (Morgan Stanley Counterpoint Global; earlier Credit Suisse edition, free PDF) [Free] [Intermediate]. The returns-on-capital and value-chain map behind the claim above that "the numbers prove the moat." Read the ROIC-persistence and industry-analysis sections against your own GMROI/turns/ROCE work.
- Going deeper: Marc Levinson, The Great A&P and the Struggle for Small Business in America [Paid] [Intermediate]. A century of the low-margin/high-turns grocery flywheel, private label, and scale-economics-shared told as narrative history. It's the long backstory to the retail physics and the DMart/Costco anchors above.
The Modern Analyst's Addendum
Everything above teaches this skill from first principles, by hand. That is how you learn it, and the mastery check still tests it that way. This addendum shows how a working analyst amplifies the same skill today. It adds; it never replaces. (R1/R10)
AI-Augment this skill
{
"skill": "All three consumer machines: FMCG's volume-price decomposition and A&P discipline; retail's SSSG split into transactions and ticket and then into footfall, conversion, items and price, the earned-versus-bought growth split, sales density, inventory turns and GMROI, the cash conversion cycle, and the four-wall store P&L with its payback; and e-commerce's GMV-to-EBITDA contribution ladder with cohorts, CAC and fulfilment cost per order",
"use": "Consumer disclosure is the opposite of banking's: the statutory accounts are thin and the operating metrics live in investor presentations, earnings-call transcripts and management commentary, in prose. That is a document problem, and document problems are where the leverage is. (1) OPERATING-METRIC HARVEST: pull SSSG, store count, store additions and closures, trading area, sales per square foot, footfall, conversion, average bill value, private-label share and any vintage-wise productivity disclosure out of twenty quarters of presentations into one frame. This is the panel §4.3 asks for and no data vendor carries it consistently. (2) TRANSCRIPT MINING for the numbers management says but does not print: maturation curves, payback claims, cannibalisation commentary, markdown intensity, the definition of 'comparable store'. Ask for the quote and the call date, always. (3) The CONTRIBUTION-LADDER rebuild for e-commerce, where every company cuts CM1/CM2/CM3 differently and §4.4.6's 'CM definition games' flag is exactly a diff of those cuts across decks. (4) The LEASE adjustment: Ind AS 116 versus ASC 842 makes an Indian leased-store retailer's EBITDA margin structurally 300-600 bp higher than a US comp's, and restating a comp table is mechanical work a tool does well and an analyst does slowly. What it must not do is judge a comp. Whether +6% SSSG is good depends on inflation, format and store age, and only you know which.",
"tools": ["Document/PDF AI: for twenty quarters of investor presentations and the operating metrics that exist only there", "Chat assistants: Claude, ChatGPT for transcript mining with quote-and-date, and for diffing contribution-margin definitions across decks", "Coding assistants: for the SSSG decomposition, the GMROI surface, the vintage-mix model and the store-payback engine below", "Spreadsheet/notebook tooling: pandas for the store-vintage cohort table, which is the object this sector's whole margin question turns on"],
"prompt": "From the attached twenty quarterly investor presentations for <RETAILER>, build one table with a row per quarter: revenue, SSSG (and the exact comparable-store definition quoted verbatim), store count opening and closing, stores added, stores closed, total and average trading area, sales per square foot, gross margin, EBITDA (state whether pre- or post-Ind AS 116), inventory, and any disclosed footfall, conversion, average bill value, private-label share or vintage-wise store productivity. Cite the page for every cell; write NOT DISCLOSED rather than interpolating. Flag every quarter in which the comparable-store definition, the trading-area basis or the EBITDA basis changed, quoting both versions. Do not compute growth rates and do not comment on performance.",
"verify": "Three arithmetic checks the module already gave you. First, SSSG must RECONCILE from the floor up: (1 + footfall growth) x (1 + conversion growth) x (1 + items growth) x (1 + price growth) - 1 should equal the reported comp, and Aditya's does at +8.02% against a reported +8.0%. When a disclosed decomposition does not reconcile, one of the components is defined differently from what you assume. Usually 'footfall' is measured at a subset of stores. Second, the EARNED-VERSUS-BOUGHT split must sum to total revenue growth: comp base x (1 + SSSG) plus new-store contribution equals revenue, and if it does not, the new-store ramp or the half-year convention is wrong. Third, GMROI must satisfy its identity: GM%/(1 - GM%) x turns, which is how you catch a turns figure computed on sales instead of COGS. And never take a payback figure from a deck without asking whether it is on mature-store or ramped economics; the section below shows the difference is 71%.",
"diy": "The gate is unaided. You decompose SSSG to footfall and conversion, split total growth into earned and bought, compute turns on COGS and GMROI both ways, build the cash conversion cycle and read the sign, construct a four-wall store P&L and its payback, age an inventory ledger and compute the markdown reserve, and rebuild an e-commerce contribution ladder from raw lines. On paper. The reason is §4.3.2's: this decomposition takes sixty seconds from an investor presentation and is the fastest quality test in retail, a skill that is only fast if it is yours."
}
Modern Data Analysis
By hand first. You split Meridian Mart's +13.0% into 7.0 earned and 6.0 bought, and rebuilt Aditya's comp from footfall and conversion to +8.02%. You computed GMROI both ways for two formats. You found DMart's positive cash cycle and worked out why it's deliberate. You built Zephyr's four-wall P&L to a 1.9-year payback and aged Cedar & Pine's inventory to a 9.9% markdown reserve. Keep all of that. The method rests on one idea, that consumer analysis is decomposition, and a decomposition you can't do by hand is one you can't check.
Today's workflow. It rests on two objects, and they replace most of what a spreadsheet does badly here.
The first is the store-vintage cohort table, with one row per store-year holding age, trading area, sales and four-wall costs. Nearly every hard question in retail is a query against that table. Think of mature-cohort productivity, the ramp curve, cannibalisation as a comp effect on stores within n kilometres of a new opening, or the density trend by vintage. You can't answer any of them from a consolidated P&L. Most chains don't disclose vintage detail in full. Even then, the table makes you state the ramp assumption out loud instead of smuggling it in. And as the quantitative lens below shows, that assumption is worth more than any other input in the model.
The second is the format surface. It treats GMROI, turns and gross margin as one two-dimensional relationship instead of three separate ratios. That lets you place a retailer on the iso-GMROI curve for its format and track its movement along the curve. The inventory section gave you the identity, GMROI = GM%/(1 − GM%) × turns. The trade-off between margin and turns stops being a slogan once it's a surface. It becomes a measurable exchange rate, and that rate differs by an order of magnitude between formats.
Tools & sources (IN + US). Use pandas for the store-vintage table, numpy for the surface and the vintage-mix arithmetic, and matplotlib for the iso-GMROI contours and the earned/bought waterfall.
In India, start with the quarterly investor presentation and the earnings-call transcript. SSSG, store adds, trading area, sales per square foot, bill value and private-label share are published there, and nowhere else in public. The annual report has the lease-liability note that Ind AS 116 makes essential. Use screener.in for the ten-year ratio spine and BSE/NSE filings for the raw documents. MOSPI's CPI and CPI-Rural/Urban series give you the real-comp floor test, which you must always run. NielsenIQ/Kantar commentary in the business press gives category volume growth, and that's what you judge an FMCG company's own volume claim against.
In the US, SEC EDGAR XBRL companyfacts gives revenue, inventory and COGS series, and the 10-K has its own comparable-sales definition and store-count table. FRED supplies the inflation and demand backdrop (CPIAUCSL for headline CPI, CUSR0000SAF11 for food-at-home, RSAFS for retail sales). The Census Bureau's Monthly Retail Trade and Quarterly E-Commerce reports cover category-level growth and the online share of retail.
# The vintage-mix drag: identical stores, different growth rates. R3, in-session.
# Zephyr Value Fashion, §8 worked example: mature sales 8.8 cr, 38% GM, 1.84 cr fixed store costs.
MATURE, GM, FIXED = 8.8, 0.38, 1.84
RAMP = {1: 0.60, 2: 0.80} # productivity in years 1 and 2; 100% thereafter
def store(age):
sales = MATURE * RAMP.get(age, 1.0)
return sales * GM - FIXED, sales # four-wall EBITDA, sales
def chain(g):
"""Steady-state blend for a chain whose store COUNT grows at g."""
w = {1: g/(1+g), 2: g/(1+g)**2} if g else {1: 0.0, 2: 0.0}
w[3] = 1 - w[1] - w[2]
e = sum(w[a]*store(a)[0] for a in (1, 2, 3))
s = sum(w[a]*store(a)[1] for a in (1, 2, 3))
return e/s, s
m0, _ = chain(0)
for g in (0, .10, .20, .30, .40):
m, s = chain(g)
print(f"store growth {g:4.0%}: sales/store {s:4.2f} cr ({s/MATURE:5.1%} of mature) "
f"blended 4-wall margin {m:6.2%} drag {(m-m0)*100:+5.2f} pp "
f"({m/m0-1:+5.1%} of earning power)")
OVERHEAD = 150.0 # Rs cr of head office, warehousing, tech
for g in (0, .30):
m, s = chain(g)
print(f"at {g:.0%} growth the chain needs {OVERHEAD/(s*m):5.1f} stores "
f"before company EBITDA turns positive — every store profitable throughout")
Verify. Prove the engine on the worked figures from earlier. Meridian Mart reproduces at comp base ₹3,210 cr, new stores ₹180 cr, revenue ₹3,390 cr, and total growth of +13.0% split 7.0 earned and 6.0 bought. Aditya reproduces to two decimals: transactions +3.53%, ticket +4.33%, SSSG +8.02%, new-store sales ₹195 cr, revenue ₹3,435 cr, total growth +14.5%, real comps +2.88% at 5% CPI, and density ₹33,333/sq ft. GroceryCo and StyleCo reproduce at turns of 12.0× and 3.50× and GMROI of 2.12 and 3.50. Cedar & Pine reproduces at COGS $624m, turns 3.51×, GMROI 3.24 and a markdown reserve of $18.85m (9.9% of inventory), with an over-180-day share of 13.2%. After the bad season it shows $30.85m (16.2%), an incremental $12.0m and GMROI 3.17. DMart reproduces at inventory 32.7 days, receivables 1.4, payables 7.1 and CCC +27.0 days, swinging to −10.9 days at 45-day payables. Zephyr reproduces at revenue ₹8.8 cr, gross profit ₹3.34 cr, four-wall EBITDA ₹1.50 cr (17.1% of sales) and a mature payback of 1.87 years.
Quantitative lens
Here are three results, all recomputed from the worked figures above. They're properties of those figures. They don't measure any listed retailer.
A chain of identical, excellent stores prints a materially worse margin the faster it grows, and the drag is computable from the growth rate alone. Zephyr's store earns a 17.09% four-wall margin at maturity. At 60% of mature productivity in year one, though, it earns 3.15% of its own sales, and at 80% in year two it earns 11.86%. The store's rent, staff and energy are fixed, and its sales aren't. Now put a chain around it. In steady state, a chain whose store count grows at rate g has a fraction g/(1+g) of its stores in year one and g/(1+g)² in year two. So at 30% store growth, 23.1% of stores are first-year and 17.8% are second-year, and blended sales per store are 87.2% of mature. The blended four-wall margin is 14.03%, a 3.06-point drag and 17.9% of the store's earning power, and no consolidated number shows it. Here's the full schedule of lost earning power: −6.8% at 10% growth, −12.8% at 20%, −17.9% at 30%, −22.5% at 40%.
Two consequences follow, and they pull in opposite directions. First, a fast-growing chain's consolidated margin understates its mature economics by a knowable amount. So judging it on the blend is a mistake, and that's why the store-economics section told you to judge the mature cohort. Second, and less comfortable, a chain that stops opening stores will show a three-point margin expansion with no operational improvement whatsoever. Management will call it operating leverage. Both readings come from the same arithmetic, and you can't get either of them from the P&L.
So a chain can be contribution-positive in every store and loss-making as a company, with a computable crossing point. At 30% growth, Zephyr generates ₹1.077 cr of four-wall EBITDA per store, against ₹1.504 cr at maturity. Against ₹150 cr of head-office, warehousing and technology cost, the chain needs 139.3 stores to reach company-level breakeven at 30% growth, but only 99.7 stores if it stops growing. Walk the curve. At 80 stores the chain does ₹614 cr of revenue and loses ₹63.9 cr (−10.4% of sales). At 120 stores it loses ₹20.8 cr (−2.3%). At 139 it's at zero, and at 200 stores it earns +₹65.3 cr (+4.3%). And every single store is contribution-positive at every point on that path. That's the gap between a good unit and a good company, with the crossing point attached. It also tells you what to diligence in a rollout story. The store economics can work fine while the company bleeds for years. So look at the fixed-cost base and the store count that clears it, because together they're the only reason the losses end.
And the payback quoted in every retail deck is computed on economics the store doesn't have yet. Zephyr's cash-to-open is ₹2.8 cr and its mature four-wall EBITDA is ₹1.50 cr. That gives the 1.87-year payback from earlier, comfortably inside the "under three years is strong" zone. Run the actual ramp instead, with ₹0.166 cr in year one, ₹0.835 cr in year two and ₹1.504 cr thereafter. Cumulative cash crosses ₹2.8 cr at 3.20 years. That's 71% longer, and out of the strong zone entirely. The ten-year store IRR, including recovery of the ₹0.3 cr deposit and ₹0.9 cr of working capital at exit, is 34.8%. It's still a good store. It's also a different number from the 45% mature-year store ROCE quoted earlier, because ROCE is a snapshot of a mature year and IRR covers the whole life. When a deck quotes a payback, always ask first on which year's economics. Answering that moves the number by more than any other assumption in retail.
The margin-versus-turns trade-off is a hyperbola, so the exchange rate between them differs tenfold across formats. GMROI = GM%/(1 − GM%) × turns means the iso-GMROI curve in (gross margin, turns) space is turns = GMROI × (1 − GM)/GM. To hit a GMROI of 3.0 a retailer needs 17.00 turns at a 15% margin, 9.00 at 25%, 4.89 at 38%, 3.25 at 48%, and 2.45 at 55%. Differentiate, and the exchange rate falls as −GMROI/GM². At grocery margins one percentage point of gross margin is worth 1.33 turns. At apparel margins it's worth 0.13 turns, a tenfold difference.
That has two practical readings. For a low-margin format, a point of gross margin is enormous and a fraction of a turn is nothing. So private label and buying scale are the levers, and inventory optimisation is rounding. For a high-margin format the reverse holds. Apparel runs on markdowns and ageing schedules for this reason, and it's also why Cedar & Pine's ageing table matters more than its 3.24 GMROI. The same maths explains the GroceryCo and StyleCo pair. GroceryCo, at a 15% margin and 12.0 turns, lands at a GMROI of 2.12, while StyleCo at 50% and 3.50 turns lands at 3.50. The higher-GMROI business is the lower-turns one. Turns and GMROI aren't the same signal, so never quote them as if they were.
Know the limits before you lean on any of this. The vintage-mix model assumes a fixed 60/80/100 ramp and a chain in steady state, and both are conveniences. Real ramps differ by format, by city tier and by whether the site was cannibalised. A chain that speeds up or slows down its opening programme isn't in steady state, so the closed-form vintage weights only approximate the cohort table you should build if the disclosure allows. The model also holds store-level fixed costs constant in rupees while sales ramp, which is roughly right for rent and wrong for staff, and it ignores pre-opening costs entirely.
The breakeven-store-count arithmetic treats head-office cost as fully fixed, which no head office is. Overhead grows with warehouses, regions and systems, so the real crossing point is higher than 139 stores and the curve is flatter. The earlier figure, "at 300 stores a ₹250 cr overhead eats about 950 bp," reconciles to a different, larger cost base for a different chain. The shape of the curve is the point here, much more than the specific store count.
The payback and IRR ignore cannibalisation, which makes the marginal store worse than the average one in a densifying market. They also ignore lease renewal risk, since a store whose rent resets at market in year six has a different tail from the one modelled. The GMROI surface treats gross margin and turns as independent, when in practice they're chosen together. Discounting raises turns and lowers margin along a path the curve doesn't describe. And GMROI itself is, as the Cedar & Pine example put it, a photograph of a moving object. It can't see the age of the stock, and that's where apparel's real risk is. Finally, every figure here is arithmetic on synthetic teaching specimens. The methods transfer to a real chain, and none of the numbers do.
Do it in code. Hold a store-year cohort table and query it, instead of reasoning about a consolidated margin. State the ramp curve as an explicit parameter, and report the vintage drag beside every blended margin. Compute payback on the ramp, and quote the mature-economics figure only as a labelled comparison. Place every retailer on its format's iso-GMROI curve and track its movement along that curve instead of its level. And run the real-comp floor test against a named CPI series every quarter. See G2/DA1.02, G2/DA1.04 and G1/QM1.02.
Where this goes next: galaxy cross-links
- G2 · DA1.02 Pandas Data Wrangling. The store-year cohort table: building it from twenty quarters of presentations, joining store master data to sales, and the group-by that turns "judge the mature cohort" from advice into a query.
- G2 · DA1.04 Exploratory Data Analysis & Visualization: the iso-GMROI surface, the earned-versus-bought waterfall and the density-by-vintage chart, so a format's position and its drift are things you look at rather than infer.
- G1 · QM1.02 Hypothesis Testing & Regression. Cannibalisation measured rather than asserted: comps at stores near a new opening against a matched control set, which is the only sound way to answer whether store number 40 is additive.
- G3 · CN2.02 Market Sizing & Guesstimates: the rollout ceiling, built bottom-up from catchment population, format density and spend per household, which is the denominator that decides whether the bought points of growth ever become earned ones.
- G3 · CN5.01 Business Model Teardown: the three machines from the start of this playbook, used for classification, including the case the e-commerce section flags where a "platform" is a 1P retailer and the whole multiple map changes on that one judgement.
Teach it back & journal
Feynman prompt. A smart 15-year-old asks: "My aunt owns a kirana shop, my cousin works at a DMart, and I order everything on an app. Which of the three companies behind those — the soap company, the store company, the app company — is the best business?" Write one page. You must explain why the soap company earns absurd returns on almost no capital, using the negative-working-capital idea without the jargon. Explain why the store company's whole life is turns × margin. Explain why the app company can lose money on purpose, and when that's a lie. And explain why the "best business" question is different from the "best investment at today's price" question. No formulas allowed. Use only arithmetic and shop-counter language.
Journal reflection. Pick a consumer product you personally bought this week: one FMCG item, one thing from a physical store, one online order. For each one, work out which company in the chain captured the most margin on your transaction. Then name the specific thing that would make you switch. It might be a price gap or a stock-out. It might be delivery time, or a better brand. Now connect it up. Which of the KPIs in this playbook would register your switch, and how many quarters later? File the answer in your knowledge system under "demand-side scuttlebutt". That's Fisher's method (Phase 8), practised on yourself.
This module's flashcards and mastery quiz are wired into the app: see the node's Quiz and Reviews.