Phase 2 · Week 22 · ~20 hours
Where it sits. You can now compute almost anything, from the margin stack and DuPont through liquidity and solvency to ROIC built by hand and cash-flow conversion. That's the whole ratio toolkit from the last four weeks. What makes any of it mean anything is one rule: no ratio in isolation, ever. A number becomes information only when it stands next to the right other numbers. Those are the company's own history and its true peers. Add a common-sized statement and the cost of capital. Then come the sector's norms. And it counts only once both sides have been cleaned so the comparison is fair. Consolidated totals are averages, and averages lie, so you'll find a conglomerate's real businesses in the segment note. Everything in the forensics weeks that follow is benchmarking with hostile intent. A red flag is just a number that refuses to sit where its history and peers say it should, and where its sector says it should. Shenanigans I comes next.
Suggested hours: core content 8h, worked examples 2h, practice set 5h, mini-project 3h, flashcards and mastery check 2h.
In the app, this material powers the Quality & Red Flags branch's peer-table drills ("clean this table before ranking it"), the common-size builder, and the segment puzzles ("which segment is subsidizing the rest?"). The case engine scores every "is it a good business?" answer against the five-comparison protocol you build here, and the timed teardown mode (M8) reuses your benchmark sheet as its question-7 engine.
Advertisement
Learning objectives
By the end you can:
- Run all five comparisons on any ratio: 5–10 year time series (level, trend, volatility, inflections), cross-section vs 3–5 true peers, common-size statements (vertical and horizontal), the cost-of-capital hurdle, and sector-adjusted norms. State what each one can see that the others cannot.
- Pick true peers by business model, not sector label: apply the five peer tests, defend every inclusion and exclusion, and know what to do when fewer than three true peers exist.
- Build complete vertical and horizontal common-size statements from raw filings for an Indian (Schedule III, by-nature) and a US (by-function) reporter, and map the two formats onto each other before comparing a single line.
- Normalize before comparing: strip one-offs symmetrically, align lease models (ASC 842 vs IFRS 16/Ind AS 116), R&D treatment, depreciation lives, and LIFO vs FIFO, calendarize mismatched fiscal years, and choose consolidated vs standalone deliberately. Log every adjustment so the work is auditable.
- Rebuild segment economics from the segment note (Ind AS 108 / IFRS 8 / ASC 280): segment margins and segment returns on capital, inter-segment eliminations and unallocated items handled explicitly, and demonstrate numerically how a consolidated average can move against every segment (mix shift).
- Judge rank against the hurdle separately: explain why being best-in-class proves nothing about value creation, and run the ~12% post-tax (India) / ~8–9% (US) placeholder test on any peer set.
- Produce a full benchmarking study to the standard of the graded-workup gate: one company vs 3 peers on ~15 normalized ratios, with a conclusion-first written reading that ends in one variant question.
Prerequisites & connections
Builds on. M1.02–M1.04, so you can read every line the comparisons use. Then M1.06–M1.09, because the policy notes on leases, R&D, depreciation, inventory methods and consolidation are where comparability breaks, and M1.10 for MD&A and non-GAAP policing, since management's own "adjusted" numbers are one-sided normalizations. And the ratio layer. M2.01 gave you margins and DuPont, the rows of your benchmark table. M2.02 gave you the liquidity/solvency/efficiency rows, EV mechanics, and the "what good looks like" sector tables systematized below. M2.03 gave you clean NOPAT/ROIC and the hurdle convention reused below. It also gave you the lease and R&D fixes. M2.04 gave you CFO/EBITDA, FCF/PAT and the cash-quality rows.
Feeds forward. M2.06–M2.08: every shenanigan detector is a benchmark that failed, whether it's DSO against its own history and peers, capex against depreciation, or CFO against NI. M2.07 runs the universe-wide screens where z-scores belong, and M2.08's capstone workups are the graded version of the mini-project here. Then M3.06, since choosing comps for relative valuation and adjusting them is peer selection with prices attached, and M3.03–M3.05, where the hurdle placeholder becomes a real WACC and sector norms become fade assumptions. M3.09 formalizes sum-of-the-parts. Further out, M4 tests moat claims as ROIC persistence against peers, and in M5 each sector playbook is a pre-built benchmark sheet with the right ratios and the right norms. M8 runs the protocol below at speed as the teardown's question 7, "the economics", and M8.03's deep-dive workbook uses it as its economics engine.
A ratio is a word, not a sentence. It acquires meaning only in comparison against history, peers, structure, the hurdle and the sector, and only fair, normalized comparisons produce true sentences.
Core teaching content
Benchmarking analysis
Benchmarking analysis judges a financial number against other numbers instead of on its own. An 18% operating margin means little until you know how it compares with the company's earlier years and with true peers. Five comparisons, from the company's own history to sector norms, each answer a different question, and skipping one leaves a guess wearing a decimal point. Both sides of every comparison must measure the same thing, so analysts normalise first.
3 min read, on its own page
Trend analysis
Trend analysis compares a company's numbers with its own history, usually five to ten years, with one row per metric and one column per year. Analysts pull out four things in order, from the average level to any break in the pattern. A break matters most, because something happened. It may be a real change in the business or only a change in how the figures are measured, such as a new accounting standard.
5 min read, on its own page
Peer group analysis
Peer group analysis compares a company with others playing the same game in the same period. It catches drift a time series can't see: if margins fell 2 percentage points while every peer's fell 4, the company is winning. It stands or falls on picking true peers, which share the economic engine whatever sector label they carry, and it reads the group's median, because one outlier can drag a mean anywhere.
4 min read, on its own page
Common size statements
Common size statements restate every line of the accounts against a base, so companies and years of different size can be compared. Vertical analysis divides each P&L line by revenue and each balance-sheet line by total assets, to show structure. Horizontal analysis indexes each line to a base year of 100, to show what is growing faster than what. Analysts use both, because vertical shows each year's structure and only horizontal shows the sequence.
7 min read, on its own page
4.4 Comparison 4: against the cost of capital
The first three comparisons are all relative: better/worse than history, peers, structure. None of them can answer the only question capital ultimately asks, which is whether any value is being created. For that you compare against the price of the capital employed. It's the spread from the returns-on-capital work, reused here as a standing benchmark. Judge every returns row (ROIC, ROCE, ROE) against the hurdle as well as against peers. Until Phase 3 builds real WACCs, keep the program placeholders: ~12% post-tax for India, ~8 to 9% for the US (as of mid-2026, check against Damodaran's country pages). To convert to pre-tax, divide by (1 − t), which gives ~16% pre-tax for India at t ≈ 25%.
This has to be a separate, standing comparison. The reason has a name, the best house in a bad neighborhood. Ranking without the hurdle certifies relative excellence at absolute destruction.
- India, telecom, late 2010s. In FY19, in the middle of the price war, Bharti Airtel was clearly the best-run private telecom in the country by margins, subscribers per rupee of capex and balance sheet. Its return on capital was in single digits pre-tax against a ~16% pre-tax hurdle (illustrative, check the FY19 numbers), and the #2 private player's was negative. Being #1 was worth nothing to capital until tariffs repaired in the 2020s. A ranking-only analyst "bought the best" and still owned a value-destroying decade.
- US, airlines, most of aviation history. In a given cycle, the best network carrier has usually earned ROIC a point or two either side of its WACC across the cycle, and the median carrier has earned less. For decades, "best airline" was a category error. The correct output of a benchmarking study was the sector fails comparison 4, and rank within it is a hobby.
Mechanics to drill. (1) Compare like with like. Post-tax ROIC goes against a post-tax hurdle and pre-tax ROCE against a pre-tax hurdle, never across, using the conversion above. (2) Benchmark the spread. 18% ROIC in India (+6 against 12%) and 15% in the US (+6.5 against 8.5%) are near-identical achievements, even though the levels differ. (3) Remember from DuPont that a margin ranking without turnover is half a number. A 4% margin at 4× turns beats a 12% margin at 1× on capital, so the hurdle test runs on returns, never on margins alone.
Industry average ratios
Industry average ratios are the sector-normal bands for a ratio, set by the physics of the business model. A 3% net margin is catastrophic for a software company and ordinary for a grocery retailer, so a number means nothing until you place it against the band for its own model. Norms describe and never excuse, and published averages come only from companies that survived, so treat them as a reference range.
3 min read, on its own page
4.6 Normalize before you compare: the hygiene layer
Everything so far assumed the numbers on both sides measured the same thing. Raw, they rarely do. Normalization is the pre-processing pass that makes comparisons legal, and it has a fixed checklist. Run it before any table (peer table, time series, sector screen). And log every adjustment in a normalization log, a three-column note: item, direction, source. An adjustment you can't show is just an opinion.
(a) One-offs and exceptionals: strip symmetrically. You've done the NOPAT version already, and the same rule generalizes to every ratio. Remove non-recurring items from both companies, in both directions, gains as well as losses. India makes it half-easy. Schedule III presents "Exceptional items" as a labelled line, so read its note for land-sale gains, impairments, VRS costs, one-time settlements. US GAAP buries one-offs inside operating expenses: restructuring, litigation, impairments, gains on disposal. You'll find them in the MD&A, the notes and the company's own non-GAAP reconciliation, which you already know how to police. Accept real one-offs. Refuse "one-offs" that come back every year, because a restructuring charge every year for six years is a business model. And refuse the lopsided habit of adjusting out only the bad news. As a rule of thumb, an item is strippable if it's both infrequent and unrelated to the ongoing engine. When in doubt, show the ratio both ways.
(b) Accounting-policy differences. Four of them move verdicts.
- Lease models (the EBITDA trap). Under Ind AS 116 and IFRS 16 rent disappears from opex. It becomes ROU depreciation plus lease interest, so EBITDA rises mechanically by roughly the rent. Under US GAAP's ASC 842, leases reach the balance sheet, but operating leases keep a straight-line rent charge inside opex, so EBITDA still bears the rent. Two identical retailers can print EBITDA margins ~5pp apart on lease accounting alone. There are two fixes. You can compare at EBIT, where both frameworks charge roughly a full lease cost above the line. A residual wedge equal to the lease-interest slice remains there, and it flatters Ind AS EBIT. Or you can compare pre-rent EBITDA (EBITDAR-style). Add rent back to the US company, or strip ROU depreciation plus lease interest from the Ind AS company as a rent proxy. For returns, use the full matched fix you built for returns on capital. Pick one convention per table and log it. WE3 ties it out to the rupee.
- R&D treatment. US GAAP expenses essentially all R&D. IFRS and Ind AS capitalize qualifying development spend. A capitalizing company reports higher current EBIT whenever new capitalization exceeds current amortization, which is whenever R&D is growing. You can align either way. Expense-align the capitalizer: EBIT − amounts capitalized this year + amortization of past capitalization. Or capitalize-align everyone with Damodaran's method, which you've already used for returns. Expense-aligning is faster for margin tables. Capitalize-aligning is better for returns.
- Depreciation lives and methods. Same asset, different assumed life, different margin. Picture an airline depreciating airframes over 18 years to a 10% residual on a 2,000 gross block, so (2,000 − 200) ÷ 18 = 100 a year. A peer using 25 years books 72 a year, so the first airline carries 28 more of annual cost. That's trivial for a software firm and decisive at airline margins. Check the accounting-policies note for useful lives. In India, Schedule II of the Companies Act publishes reference lives, and deviations must be disclosed. If lives differ materially, compare at EBITDA, which is policy-free on this axis, or re-depreciate to a common life. Also scan for method differences (straight-line vs written-down-value) and for recent life extensions. A company stretching depreciation lives in a bad year is manufacturing margin, and that's a forensic flag.
- LIFO vs FIFO (US-only, but it reaches every cross-border table). LIFO survives only under US GAAP. IAS 2 and Ind AS 2 ban it. Industrials, distributors and grocers use it: Deere, Caterpillar, Sysco, Kroger. Under inflation, LIFO books the newer, costlier units into COGS, which means lower margins. It leaves the older, cheaper units in inventory, which means overstated inventory turns. The 10-K inventory note's LIFO reserve is the entire repair kit:
FIFO inventory = LIFO inventory + LIFO reserveandFIFO COGS = LIFO COGS − Δ(LIFO reserve). A falling reserve with shrinking inventory means LIFO liquidation. Old cheap layers are being flushed through COGS to juice margins, a red flag the note must confess. Convert every LIFO filer to FIFO-equivalent before comparing it with an IFRS or Ind AS company. WE1 works it fully.
Calendarization
Calendarization restates a company's results to a common twelve months, so that fiscal years ending in different months can be compared fairly. Analysts rebuild the period from quarterly or half-yearly data: the annual figure, plus the new stub, minus the stub it replaces. Skipping it can misalign a comparison by up to a year of macro conditions, and a 53rd week alone adds about 1.9% of apparent growth.
4 min read, on its own page
(d) Currency and scale. In cross-border tables, convert flows at the average rate and stocks at the closing rate, the way consolidation does. Better still for ratios, compare the ratios themselves (they're currency-free) and convert only the absolutes you have to show. And name scale differences. A ₹5,000 crore company outgrowing a ₹2,55,000 crore one by 4pp is the base effect at work, and it isn't necessarily superior execution.
(e) India-specific: standalone vs consolidated. Indian companies file both. The rule is consolidated for economics, always, because subsidiaries are part of the machine. Tata Motors standalone is a ~₹73,000 crore Indian truck-and-car business. Consolidated, it's a ~₹4.4 lakh crore group that's mostly JLR (illustrative, modeled on ~FY24 scale). So comparing "Tata Motors" with Maruti means deciding which Tata Motors. For an India-vs-India comparison the right answer is standalone plus the segment note, and for group economics it's consolidated. Standalone matters for three things. First comes dividend capacity. Dividends are declared from the standalone entity's distributable profits, so a holdco with rich subsidiaries but a thin standalone P&L has to upstream dividends before it can pay them. Second come covenants and credit, because lenders lend to entities, and a group isn't one. Third is related-party visibility. Parent-subsidiary flows net out in consolidation and reappear in the standalone RPT note, a favourite hunting ground for forensic work. Never mix bases in one comparison. That table-hygiene rule is absolute. Screener defaults vary by site and company, so check the header of every page you pull, every time.
The normalization checklist. Run it before every table. It's also the first six rows of the workup key at the gate:
- Same consolidation basis, consolidated unless there's a stated reason?
- Fiscal periods aligned or calendarized? 53rd weeks and transition periods fixed?
- One-offs stripped symmetrically for both companies in both directions, and logged?
- Lease convention aligned at EBIT level, pre-rent EBITDA or the full returns fix?
- R&D and depreciation policies checked, and aligned if material?
- LIFO converted to FIFO-equivalent for US filers?
- By-nature vs by-function mapped before any gross-margin comparison?
- Currency and real-vs-nominal stated for cross-border growth?
Segment reporting
The disclosure that splits revenue, result and capital employed by business line and by geography, following the way management itself runs the company. A diversified group reporting ₹1,600 crore of capital employed in its chemicals segment against ₹410 crore of segment result is earning about 25.6% there, and a much lower figure elsewhere would mean the group average hides two very different businesses. Segments are defined by management, so they can be redrawn.
5 min read, on its own page
4.8 The complete worked study: Infosys vs TCS, HCLTech, Wipro
Here's everything assembled once, end to end, the way you'll do it from now on. The anchor is Infosys, and the peers are TCS, HCLTech, Wipro. Audit the peers first, on the five peer tests. Same customers: global enterprises buying IT development, maintenance and operations. Same engine: billing skilled labor at a spread, utilization × pricing × pyramid. Same capital shape: people businesses, with capex ~1 to 2% of revenue. Same regimes: India-headquartered, March fiscal years, consolidated Ind AS reporters, revenue mostly USD/EUR, so even the currency exposure is comparable. And the same order of scale, within ~3×. Peer sets don't get much cleaner than this, and that's why it's the teaching example. The mini-project makes you earn a messier one. Accenture belongs on the list as a global reference row, with a different domicile (August FY, IFRS-adjacent US GAAP). Add it in Phase 5, when you can carry the adjustments.
Write the normalization log before the table. All four are consolidated, Ind AS, March FY25, so the bases align by construction. One-offs: none material are assumed in these illustrative figures, though in the real filings you'd check each "exceptional items" line and each company's non-GAAP bridge. Leases: all four report under Ind AS 116, so they're aligned. R&D: a services model, with immaterial capitalization. LIFO: n/a. All figures are illustrative, modeled on ~FY25 scale. Pull the actual annual reports and rebuild this table as part of the practice set.
| # | Metric (FY25, consolidated, ₹ crore base) | TCS | Infosys | HCLTech | Wipro | Median | Infosys vs median |
|---|---|---|---|---|---|---|---|
| 1 | Revenue (₹ cr) | 255,000 | 163,000 | 117,000 | 89,000 | 140,000 | +16% |
| 2 | Revenue CAGR, FY21→FY25 | 12% | 13% | 12% | 9.5% | 12% | +1pp |
| 3 | EBIT margin | 24.5% | 21.0% | 18.0% | 17.0% | 19.5% | +1.5pp |
| 4 | EBIT margin change, FY21→FY25 (pp) | −1.5 | −4.0 | −3.0 | −3.0 | −3.0 | −1.0pp |
| 5 | Net margin | 19.0% | 16.5% | 15.0% | 14.5% | 15.8% | +0.7pp |
| 6 | ROE | 50% | 29% | 24% | 16% | 26.5% | +2.5pp |
| 7 | ROCE (pre-tax, convention) | 64% | 40% | 30% | 19% | 35% | +5pp |
| 8 | Clean ROIC (post-tax, ex-cash, M2.03 build) | ~48% | ~34% | ~25% | ~15% | ~29.5% | +4.5pp |
| 9 | Net cash (₹ cr) | 48,000 | 44,000 | 29,000 | 40,000 | 42,000 | — |
| 10 | Receivable days (incl. unbilled) | 85 | 88 | 82 | 90 | 86.5 | +1.5d |
| 11 | CFO ÷ PAT | 1.00 | 1.05 | 1.10 | 1.15 | 1.08 | −0.03 |
| 12 | FCF ÷ PAT | 0.95 | 1.00 | 1.02 | 1.08 | 1.01 | −0.01 |
| 13 | Capex ÷ revenue | 1.5% | 1.8% | 1.6% | 1.4% | 1.55% | +0.25pp |
| 14 | Employee cost ÷ revenue | 56% | 53% | 52% | 57% | 54.5% | −1.5pp |
| 15 | Subcontracting cost ÷ revenue | 6% | 10% | 13% | 12% | 11% | −1pp |
| 16 | Attrition, LTM (sector KPI) | 13% | 14% | 13% | 15% | 13.5% | +0.5pp |
| 17 | Payout (dividends + buybacks) ÷ FCF, 3-yr avg | ~100% | ~85% | ~90% | ~65% | ~87.5% | −2.5pp |
The written reading (the deliverable, in the format your gate grades):
Conclusion first. Infosys is a strong second in a four-horse peer set whose economics are excellent everywhere. Every member earns a clean post-tax ROIC of 15%+ against the ~12% hurdle, so the entire set creates value, and comparison 4 passing at the sector level is rare and precious. The analytical action is in the dispersion. A stable quality ranking, TCS > Infosys > HCLTech > Wipro, shows up consistently across margins (row 3), returns (rows 7 and 8) and payout confidence (row 17).
Where the gaps come from. Accounting and definition are aligned by construction, so the gap decomposition points at economics. TCS's 3.5pp EBIT-margin lead over Infosys (row 3) doesn't come from pricing magic. Rows 14 and 15 locate it. TCS runs 62% of revenue through employees plus subcontractors, against Infosys's 63% and Wipro's 69%. That's a leaner pyramid, higher utilization, and visibly less dependence on rented subcontractor capacity (row 15: 6% against 10 to 13%). It's an execution moat measured in two common-size rows. Row 4 adds the time-series correction that protects you from a classic error. The margin of every company in the set fell from FY21, because the base year was the COVID-era margin peak (travel at zero, wage cycle paused, WFH). So "Infosys margins down 4pp" is 3pp of industry weather (median −3) and ~1pp specific to Infosys, most of that a deliberate large-deal ramp. Never read a company's trend without the peer set's trend beside it.
Balance sheet and cash. All four are net-cash fortresses (row 9), so solvency comparisons are moot. Capital intensity is trivial (row 13: capex ≈ 1.5% of revenue). That's why returns on capital look absurd by manufacturing standards (rows 7 and 8), and why row 17, the share of free cash returned, is the real capital-allocation scoreboard. TCS returns essentially everything. Wipro's ~65% partly reflects cash kept for acquisitions such as Capco, which also flatters its growth row. That brings in the last normalization catch. Row 2's 9.5% CAGR for Wipro includes acquired revenue, so organic growth is meaningfully lower. Always tag growth rows as organic or total, and log it.
The anomaly worth a line. Row 11 looks upside-down. Wipro, the weakest business, has the best CFO/PAT (1.15). It's the cash-conversion lesson showing up in a peer table. Slow growth releases working capital, because receivables stop building when revenue stalls. So a fat CFO/PAT at a stagnating company is a symptom of the stall. A ratio's sign depends on its context, and the table is where context lives.
Verdict and the variant question. The quality ranking is TCS > Infosys > HCL > Wipro, and the entire set creates value. Infosys lands on the favorable side of the median on ~9 of 14 comparable rows, and its gap to TCS is structural (pyramid plus tight subcontracting). The cycle doesn't explain it. What would change the verdict? Here's the one question to carry forward: does the pricing-and-pyramid model that generates 20%+ EBIT margins survive GenAI-driven productivity deflation in commodity services, or does the industry's margin norm (comparison 5) reset lower for everyone? That's a Phase 5 sector question and a Phase 8 teardown question. A benchmarking study ends by naming it. Answering it is later work.
That's a complete study. It has ~17 rows, with the five comparisons built in: history in rows 2 and 4, cross-section everywhere, common-size in rows 13 to 15, the hurdle in row 8 and the sector norm in the verdict. Normalization logged, one anomaly caught, one variant question out. It's roughly three hours of work with the full ratio toolkit in hand. The mini-project replicates it.
Financial statement analysis framework
The financial statement analysis framework is the six-step process used in professional syllabuses, from stating the purpose of the analysis to updating it afterwards. Each step produces an output that someone else can inspect, and that is what separates analysis from opinion. Analysts lose marks and money at two steps: step 1, where no question gets stated, and step 6, where the update is skipped as admin.
3 min read, on its own page
Common mistakes & how experts think differently
- Ranking raw tables. Mixing a standalone Indian filer, a US LIFO filer and an IFRS 16 lessee in one margin table and "reading" it. That ranking is an artifact of accounting three ways over before it's information even once. Experts won't rank until the normalization log exists.
- Peer = same sector label. Costco vs Kroger on gross margin, DMart vs Trent, a bank vs an NBFC. Experts match engines: who pays, for what, with what capital. When true peers run out, they shrink the set. And they say so, because padding it isn't an option.
- Best-in-class = good. Crowning the highest-ROCE steel company in a year when the whole sector is below the hurdle. Rank answers "who's winning". Only the hurdle answers "is the game worth winning?" Experts run comparison 4 on every peer set before praising anyone.
- Three-year "trends" and endpoint-rigged CAGRs. Trough-to-peak windows manufacture growth, and three years of a cycle is weather. Experts use 5 to 10 years, average the endpoints for cyclicals, and plot before they compute.
- Percent vs percentage points. Saying "margins rose 3%" when they went from 12% to 15%. That's 3pp, or +25% relative. Experts never let the two touch, and half of all secondhand ratio commentary gets this wrong somewhere.
- Reading accounting steps as economic inflections. The FY20 Ind AS 116 EBITDA jump, the FY17 Ind AS transition, GST's revenue redefinition, a 53rd retail week, Nestlé India's 15-month transition year. Experts classify every inflection as economics/perimeter/accounting before interpreting it, and they check the standard-adoption notes for the size of the step.
- Averaging ratios instead of ratioing aggregates, and means instead of medians. The average of four companies' ROEs isn't the peer set's ROE, and one outlier owns your mean. Experts use medians for group centers. When they need a true aggregate, they compute group ratios from summed numerators and denominators.
- Comparing "gross margin" across by-nature and by-function P&Ls. An Indian materials line isn't a US COGS. Experts compare at lines that survive both formats (EBITDA and below) or rebuild COGS first.
- Trusting the consolidated average. Judging ITC's or Amazon's "margin" as if it described a business. Experts open the segment note first, treat the consolidated figure as a weighted average with a mix problem, and split every margin move into rate and mix.
- Treating "segment result" as a standardized EBIT. It's whatever the CODM reviews, before or after allocations, and it varies by company. Experts read the definition note before comparing segment margins across companies, and they watch for boundary redraws that bury a souring segment.
- Asymmetric normalization. Stripping one-off losses, as management's "adjusted EBITDA" does, while keeping one-off gains, or a bear doing the reverse. Experts strip both directions, refuse "one-offs" that recur every year, and show the ratio both ways when the call is close.
- Benchmarking outputs and stopping. A margin gap is a question, and you aren't done until it has an answer. Experts chase every surviving gap into its drivers: price, volume, mix, utilization, pyramid, turns. They keep going until the gap has a physical explanation someone could go and verify, the way row 15 explained row 3 in the Infosys study. The default expectation is mean reversion. Gaps and excess returns fade unless a named mechanism defends them. The burden of proof always rests on the outlier, and "what would make this number converge?" is the question an expert asks of every impressive row.
Worked examples
All company names in WE1 to WE3 are synthetic, and every number is shown.
WE1: LIFO to FIFO: the comparison that reverses
Kentbrook Industrial (US GAAP, LIFO) is being benchmarked against Rhein Werke AG (IFRS, FIFO, because LIFO is banned under IAS 2/Ind AS 2). Here are the raw numbers:
| Kentbrook (LIFO) | Rhein Werke (FIFO) | |
|---|---|---|
| Revenue | $8,000m | $7,500m |
| COGS | 6,200 | 5,780 |
| Ending inventory | 900 | 1,190 |
| Gross margin | 1,800 ÷ 8,000 = 22.5% | 1,720 ÷ 7,500 = 22.9% |
| Inventory turns (COGS ÷ ending inv.) | 6,200 ÷ 900 = 6.9× | 5,780 ÷ 1,190 = 4.9× |
The raw reading says Rhein's margins are slightly better and Kentbrook turns its inventory much faster, like a working-capital champion. Now open the 10-K inventory note. The LIFO reserve is $300m closing and $240m opening, and a rising reserve means input inflation.
Step 1: restate inventory. FIFO inventory = LIFO inventory + LIFO reserve = 900 + 300 = $1,200m. Step 2: restate COGS. FIFO COGS = LIFO COGS − Δreserve = 6,200 − (300 − 240) = $6,140m. Step 3: recompute. Gross margin = (8,000 − 6,140) ÷ 8,000 = 1,860 ÷ 8,000 = 23.25%, and turns = 6,140 ÷ 1,200 = 5.1×. That puts DIO at 365 ÷ 5.1 ≈ 71 days, against the raw 365 ÷ 6.9 ≈ 53.
Now read it again, normalized. Kentbrook's margin is actually higher than Rhein's, 23.25% against 22.9%, so the raw comparison had the direction wrong. And its inventory velocity is ordinary, 5.1× against 4.9×, so the raw 2-turn "advantage" was 90% accounting. Two lines from a footnote reversed one verdict and deleted another. That's what "normalize before comparing" buys you, and it's why every US industrial or grocer in your tables gets the LIFO check. (Deere, Caterpillar, Sysco, Kroger are standing examples.) One bonus flag. Had the reserve fallen while inventory ran down, you'd suspect a LIFO liquidation. That's old cheap cost layers flushed into COGS, manufacturing a one-time margin bump the note has to disclose.
WE2: Calendarization: a June fiscal year meets a December one
Sequoia Analytics closes its books on June 30, and Danube Software closes on December 31. You need calendar-2025 for both. Sequoia's filings give half-year splits ($m):
| Sequoia | Revenue | EBIT |
|---|---|---|
| FY24 H2 (Jan–Jun 24) | 2,200 | — |
| FY25 H1 (Jul–Dec 24) | 2,300 | 322 |
| FY25 H2 (Jan–Jun 25) | 2,500 | 375 |
| FY26 H1 (Jul–Dec 25) | 2,700 | 432 |
Build calendar years from the halves that actually fall inside them:
- Sequoia CY25 = FY25 H2 + FY26 H1 = 2,500 + 2,700 = $5,200m. EBIT = 375 + 432 = 807, a margin of 15.5%.
- Sequoia CY24 = FY24 H2 + FY25 H1 = 2,200 + 2,300 = $4,500m, so CY25 growth = 5,200 ÷ 4,500 − 1 = 15.6%.
- Danube CY25 (native): revenue $5,150m, EBIT 750, margin 14.6%. CY24 revenue was 4,700, so growth is 9.6%.
Now the naive comparison. Set Sequoia's fiscal 2025 against Danube's calendar 2025. Sequoia's FY25 is 2,300 + 2,500 = $4,800m with EBIT of 697 and a 14.5% margin, and its FY-on-FY growth against FY24's 4,300 is 11.6%. You'd conclude similar margins (14.5 vs 14.6), Danube slightly larger, Sequoia growing ~2pp faster. The calendarized truth is different. Sequoia is larger (5,200 vs 5,150), a full point more profitable (15.5 vs 14.6), and growing 6pp faster (15.6 vs 9.6). Sequoia's momentum is in Jul to Dec 2025, which its fiscal 2025 excludes and calendar 2025 includes. That offset added no noise. It hid the entire finding. The same technique on quarters is TTM alignment: sum the four quarters ending at the nearest common date. When halves or quarters aren't available, the crude fallback CY ≈ weighted average of the two FYs by months of overlap is better than nothing. Here that's CY25 ≈ ½·FY25 + ½·FY26. Say you used it.
WE3: The lease trap, tied out to the rupee
Deepam Retail (Ind AS 116) and Bluegrass Stores (US GAAP, ASC 842 operating leases) run identical store networks. Each has revenue of 9,200, identical rent contracts worth 460 a year and identical owned-asset D&A of 210. One set is in ₹ crore and one in $m, and the arithmetic doesn't care.
- Bluegrass (US): rent stays in opex, so EBITDA = 1,150 (12.5%). EBIT = 1,150 − 210 = 940 (10.2%).
- Deepam (Ind AS): rent leaves opex and is replaced by ROU depreciation of 380 plus lease interest of 95. The interest goes below EBIT. Note that 380 + 95 = 475 > 460, because the standard front-loads total lease cost early in the lease's life. EBITDA = 1,150 + 460 = 1,610 (17.5%). EBIT = 1,610 − 210 − 380 = 1,020 (11.1%).
Identical stores, yet the reported EBITDA margins are 5pp apart and the EBIT margins ~1pp apart. Here are the three legal alignments:
- Pre-rent EBITDA (preferred for margin tables): Bluegrass 1,150 + 460 = 1,610, the same as Deepam's 1,610. The gap is zero, which is correct, because they're the same business.
- As-if-rent EBITDA: Deepam 1,610 − (380 + 95) = 1,135 against Bluegrass's 1,150. The residual of 15 is the front-loading wedge (475 against 460). It's small and ages toward zero by mid-lease. Accept it and footnote it.
- EBIT level: 1,020 against 940, so Deepam still shows +80, and the wedge ties out cleanly. Bluegrass's EBIT bears the full rent of 460. Deepam's bears only the ROU depreciation of 380. The difference, 460 − 380 = 80, is the interest component Ind AS pushed below EBIT. So EBIT is approximately comparable across the standards, and the residual always equals the lease-interest slice, which means it grows with lease intensity. For two lease-heavy retailers, fix it. For a software company, a footnote will do. Materiality test before you bother: rent ÷ EBITDA. Above ~5%, align. Below that, just disclose it.
WE4: One number, five comparisons: the whole discipline in miniature
Trishul Adhesives (synthetic, ₹ crore) did FY26 revenue of 3,000 and EBIT of 480, an EBIT margin of 16.0%. Capital employed is 2,000, so pre-tax ROCE is 24%. There are no one-offs, and the figures are consolidated with a March fiscal year. Is 16% good? Run the protocol:
- Time series. FY22 to FY26 margins run 13.0, 13.8, 14.6, 15.2, 16.0. That's a trend of +3.0pp over four years, ~0.75pp a year with no inflection and low volatility (sd ≈ 1.1pp). Revenue went from 2,200 to 3,000, so CAGR = (3,000 ÷ 2,200)^(1/4) − 1 = 8.1%. Verdict: improving, steadily, believably.
- Peers. Three true peers with the same consumer-adhesives engine post 22%, 15% and 12%, for a median of 15%. At 16%, Trishul is second of four, +1pp against the median and −6pp against the leader.
- Common-size, to locate the 6pp gap to the leader. Vertically, Trishul runs gross 54, A&P 4 and other opex 34, leaving EBIT of 16. The leader runs gross 57, A&P 6 and other opex 29, leaving EBIT of 22. The gap decomposes into +3pp on gross margin (brand pricing), −2pp on advertising (the leader spends more and still nets ahead) and +5pp on other opex (distribution scale). In the leader's loop, pricing power funds heavier A&P, which sustains the pricing power. Trishul's path to closing 6pp runs through scale, and cost-cutting won't get it there. The common-size told you where the moat is.
- Hurdle. A ROCE of 24% pre-tax against the ~16% pre-tax India placeholder gives a +8pp spread, so the business creates value. Post-tax, 24 × 0.75 = 18 against 12 gives the same verdict, as it must.
- Sector norm. The consumer adhesives and specialty-consumables norm is EBIT from the mid-teens to the low-20s, and ROCE of 20 to 35%. Build the band from Damodaran's specialty-chem tables plus your own comps. Trishul is in-band, below the franchise leader, above the pack.
Reading (four sentences). A good and improving business, with margins compounding ~0.75pp a year at low volatility, the second-best economics in a rational category, and returns 8 points clear of the hurdle. The 6pp gap to the leader is structural (brand + scale) and not operational sloppiness, so don't model it closing. The number to watch is the leader's A&P, because if the leader escalates spending, Trishul's gross margin is the release valve. Variant question: can Trishul's 8.1% growth continue without either a gross-margin surrender or an A&P step-up that costs 2pp of margin?
WE5: Percentile and z-score: two ways to rank, and when they disagree (India ₹)
Six synthetic Indian specialty-coatings makers, ranked on clean post-tax ROIC built the way you built it for returns on capital. All are consolidated Ind AS reporters with March FY25 year-ends. The figures are illustrative, and every number is shown. The anchor is Vindhya Coatings (synthetic).
| Company (synthetic) | Post-tax ROIC |
|---|---|
| Satpura Paints | 15.0% |
| Aravalli Coatings | 17.0% |
| Nilgiri Surfaces | 18.0% |
| Vindhya Coatings (anchor) | 20.0% |
| Kaimur Finishes | 21.0% |
| Zawar Speciality | 45.0% |
There are two fair ways to answer "where does Vindhya sit?"
Take percentile and rank first. Both are distribution-free. Sorted, the set reads 15, 17, 18, 20, 21, 45. Vindhya is 4th of 6, outranking 3 of its 5 peers. On the textbook convention (count below + ½·count equal) ÷ N, its percentile rank is (3 + ½) ÷ 6 = 58.3%. The median is 19.0%, so Vindhya is above the group's center. Reassuring.
Z-score (parametric). z = (value − mean) ÷ SD. Mean = 136 ÷ 6 = 22.67%, and population SD = 10.18pp, so Vindhya's z = (20 − 22.67) ÷ 10.18 = −0.26. On this measure Vindhya is below average. That's the opposite verdict.
They disagree because one hyper-performer does the damage. Zawar at 45% drags the mean up to 22.67%, above four of the six companies, and it inflates the SD. (Is that a tiny or depleting capital base? Interrogate it before you trust it, as the peer tests ask.) So the z-score measures Vindhya against a center no typical peer occupies. Strip Zawar and recompute on the five survivors: mean = 18.2%, SD = 2.14pp, and Vindhya's z = (20 − 18.2) ÷ 2.14 = +0.84. Now the sign flips. The median (19.0%) and the rank (4th of 6) never moved. Percentile rank is robust to outliers, and the z-score isn't. It's the median-over-mean rule for peer tables, common mistake 7 above, dressed for ranking. Use rank and percentile, with the median, to place a company in a small, skewed peer set. Save z-scores for large, roughly symmetric distributions. Never report one without checking what a single extreme value is doing to the mean.
WE6: A common-size peer table locates the margin gap (US $)
Three synthetic US warehouse retailers in vertical common-size, with every line ÷ revenue, FY25 illustrative, $m. The anchor is Prairie Wholesale (synthetic).
| $m / % of revenue | Prairie (anchor) | Cascade | Beacon | Group median (3 names) |
|---|---|---|---|---|
| Revenue | 40,000 / 100.0 | 25,000 / 100.0 | 60,000 / 100.0 | 100.0 |
| Merchandise costs | 34,400 / 86.0 | 20,750 / 83.0 | 50,400 / 84.0 | 84.0 |
| SG&A | 4,000 / 10.0 | 2,750 / 11.0 | 6,000 / 10.0 | 10.0 |
| Operating income | 1,600 / 4.0 | 1,500 / 6.0 | 3,600 / 6.0 | 6.0 |
The median column above is computed across all three names, including the anchor. That's the convention every table here uses, and the column heading says so. Declare that choice in every table you build. The other convention, the median of the peers alone without the company you're studying, gives different numbers on the same data, and both are defensible. Here you'll see the two worked side by side, and the difference is the point.
Prairie's operating margin is 2.0pp below the peer median (4.0 against 6.0). Where is the gap? Read down the common-size column against the median. SG&A is right at the median (10.0 against 10.0), so overhead isn't the problem. The entire shortfall is in merchandise costs: 86.0% against the 84.0% median, a +2.0pp drag that flows straight through to the −2.0pp operating gap. It all ties out cleanly to a single driver. Prairie's −2.0pp operating shortfall equals its +2.0pp merchandise-cost excess, and SG&A contributes nothing. That points somewhere physical, as the peer-table rule demands: worse purchasing scale, unfavourable product mix, or thinner private-label penetration. It doesn't point to a bloated cost structure. A ratio table alone ("Prairie earns 4%, peers 6%") states the gap. The common-size statement locates it in one line, and that turns a number into a question you can go and verify.
Now switch conventions and watch the decomposition move. Excluding the anchor leaves two peers, so each ex-anchor median is the average of the two: merchandise costs 83.5%, SG&A 10.5%, operating income 6.0%. Prairie is then +2.5pp on merchandise costs and −0.5pp on SG&A, and the two still reconcile to the same −2.0pp operating gap (−2.5 + 0.5 = −2.0). The verdict doesn't change, but the attribution does. On the three-name convention Prairie's overhead looks average. On the ex-anchor convention it looks half a point better than its peers, and the merchandise problem is correspondingly larger. Neither table is wrong. A table that doesn't say which one it's showing is. And with an even number of peers, the ex-anchor median lands between two observations. So small peer sets deserve the rank and the raw values printed beside any median at all (WE5).
Practice set
Work every problem before you read its solution. P1 to P3 are guided and P4 to P11 independent. P12 is timed at 25 minutes.
P1 (guided: reading a strip). Vistara Cables (synthetic) EBIT margin, FY17 to FY26: 14.0, 14.5, 15.2, 15.0, 8.0, 15.8, 16.4, 16.9, 17.3, 17.8 (%). Revenue went from ₹2,000 cr in FY17 to ₹4,400 cr in FY26. (a) Revenue CAGR. (b) Describe level, trend, volatility, inflections. Is FY21 an inflection? (c) Compute the standard deviation of margins with and without FY21, and state what the difference teaches.
Solution. (a) Nine intervals: CAGR = (4,400 ÷ 2,000)^(1/9) − 1 = 2.2^0.1111 − 1 ≈ 9.2%. (b) Level: a ~15.1% mean with FY21, ~15.9% without it. Trend: leave out FY21 and you get a clean grind from 14.0 to 17.8, about +0.4pp a year, speeding up slightly after FY22. FY21 is a shock, and a shock isn't an inflection. It's a one-year collapse that fully reverted, a COVID pattern. An inflection changes the path, while a shock interrupts it. The real story is the decade-long margin build. (c) SD ≈ 1.2pp excluding FY21 and ≈ 2.6pp including it, so one outlier more than doubles the printed "volatility." So investigate outlier years and report volatility both ways. Don't let a single shock reclassify a stable business as a volatile one, and don't let management average the shock away either.
P2 (guided: peer selection). Build the best possible peer set for Avenue Supermarts (DMart) from: Trent, Vishal Mega Mart, Reliance Retail, Spencer's Retail, Zomato, V-Mart Retail, Walmart. Defend every inclusion and exclusion with the five tests.
Solution. No clean listed twin exists, so the right set is 2 to 3 partial peers plus one labelled reference. Include Vishal Mega Mart, the closest listed value-retail engine: everyday-low-price, food plus general merchandise, though its mix is heavier on apparel, so flag it. Include V-Mart, which shares value-retail economics and the small-town customer but is apparel-led, making it a partial peer on model more than on category. Include Spencer's as the category peer on food and grocery. It's sub-scale and loss-making, so use it for structure and keep it out of "who's better" rankings. Add Walmart as a reference row. It's the global archetype of DMart's model (EDLP, owned/low-cost real estate), but the country, wages and mix differ, so it calibrates the model and never the multiple. Exclude Trent: same "retail" label, different engine, with fashion brands at 45 to 55% gross margins against grocery's ~15%, and leased stores against owned ones. Exclude Zomato, a platform with take-rate economics and no inventory. Exclude Reliance Retail (unlisted, blended formats, no clean standalone financials). One last bit of hygiene. DMart owns its stores while most peers lease, so run the lease alignment from the hygiene layer before any margin row, or the table punishes the peers for renting.
P3 (guided: vertical build). Meghdoot Foods (synthetic, Ind AS, ₹ cr): revenue 5,000, cost of materials 2,600, purchases of stock-in-trade 250, change in inventories −50 (inventories rose), employee benefits 425, other expenses 800 (of which advertising 300), D&A 125, finance costs 40, other income 90, tax rate 25%. Build the vertical P&L down to PAT and read the two most informative lines.
Solution. Total input costs = 2,600 + 250 − 50 = 2,800. EBITDA = 5,000 − 2,800 − 425 − 800 = 975. EBIT = 975 − 125 = 850. PBT = 850 + 90 − 40 = 900, tax is 225, and PAT is 675. Vertically, as % of revenue: materials-plus-traded 56.0, employee 8.5, other expenses 16.0 (advertising 6.0), EBITDA 19.5, D&A 2.5, EBIT 17.0, other income 1.8, finance 0.8, PBT 18.0, tax 4.5, PAT 13.5. Two lines tell you the most. (1) At 56% input intensity, a 2pp commodity move swings EBITDA by ~10%, so margin volatility will track raw materials. Check the FY22 to FY23 stress years first. (2) Advertising at 6% of revenue is the strategic line. Compare it with the category leader's before you praise the 19.5% EBITDA margin, because under-advertising is a way to rent margin from the future, as the HUL build showed.
P4 (horizontal: find the bloat). Same Meghdoot, indexed FY22 = 100, through FY26: revenue goes from 100 to 148, employee costs from 100 to 176 and advertising from 100 to 122. Compute each line's CAGR and diagnose.
Solution. Four intervals. Revenue: 1.48^0.25 − 1 = 10.3% a year. Employee: 1.76^0.25 − 1 = 15.2% a year. Advertising: 1.22^0.25 − 1 = 5.1% a year. Diagnosis: employee costs are outgrowing revenue by ~5pp a year, so someone is buying either capability or trouble. Capability means a new division or senior hires (check headcount and the MD&A). Trouble means wage inflation without productivity. Advertising is growing at half the rate of revenue, and its vertical share fell from 6.0% toward ~5.0%. That's margin support borrowed from brand investment. Put the two together and reported operating margins were held up by the ad cut while the wage line swelled. It's a structurally worse cost position wearing a stable margin. Of the five comparisons, only horizontal analysis catches this pattern early.
P5 (LIFO repair). Duluth Fasteners (US GAAP, LIFO) has revenue of $9,000m, COGS of $6,750m and ending inventory of $1,100m. Its LIFO reserve is $340m closing and $260m opening. Its IFRS peer reports a gross margin of 25.4% and inventory turns of 5.0×. Compare them fairly.
Solution. FIFO inventory = 1,100 + 340 = $1,440m. FIFO COGS = 6,750 − (340 − 260) = $6,670m. Margins: LIFO gross = 2,250 ÷ 9,000 = 25.0%, and the FIFO-equivalent = 2,330 ÷ 9,000 = 25.9%. Turns: LIFO 6,750 ÷ 1,100 = 6.1×, and the FIFO-equivalent 6,670 ÷ 1,440 = 4.6×, which takes DIO from 59 to 79 days. Compared fairly, Duluth's margin is ~0.5pp better than the peer's 25.4%, where raw said 0.4pp worse. Its inventory is ~8% slower than the peer's 5.0×, where raw said 22% faster. Both raw verdicts reversed. To remember the direction, think of inflation plus LIFO as margins understated and turns overstated. It's always both, and always with opposite signs.
P6 (lease alignment). RetailCo-US (ASC 842): revenue 8,000, EBITDA 960, rent expense 400 in opex. RetailCo-IN (Ind AS 116): revenue 8,000, EBITDA 1,360, ROU depreciation 330, lease interest 85. Produce comparable EBITDA margins both legal ways and state the verdict.
Solution. Raw, it's US 12.0% against IN 17.0%, a 5pp mirage. Route 1, pre-rent EBITDA: US = 960 + 400 = 1,360 (17.0%) against IN 1,360 (17.0%). They're identical. Route 2, as-if-rent: IN = 1,360 − (330 + 85) = 945 (11.8%) against US 960 (12.0%). That's near-identical, and the gap of 15 is the front-loading wedge (a 415 proxy against 400 of cash rent), so footnote it. Verdict: the two retailers are economically indistinguishable, and the entire reported gap was the lease standard. Either route is fine, as long as you're using one route for the whole table and logging it.
P7 (R&D alignment). Sundaram Lifesciences (Ind AS) reports EBIT of ₹1,020 cr on revenue of ₹6,000 cr (17.0%). Its notes show a total R&D outlay of ₹600 cr, of which ₹240 cr was capitalized as development assets, and ₹150 cr of amortization of previously capitalized development. Its US GAAP peer expenses all R&D and reports a 15.8% EBIT margin. Expense-align and compare.
Solution. Expense-aligned EBIT = 1,020 − 240 (capitalized spend, now expensed) + 150 (its amortization, now removed) = ₹930 cr, a margin of 15.5%. On this axis, the 1.5pp reported advantage over the US peer was entirely accounting. Aligned, Sundaram does 15.5% against the peer's 15.8%. As a general rule, a capitalizer's current EBIT is flattered whenever capitalized spend exceeds the amortization of past capitalization, which is whenever R&D is growing, and the flattery compounds with the growth rate. The mirror repair, capitalizing the expenser the Damodaran way, is the better route when you're comparing returns. The returns-on-capital work shows it in full.
P8 (calendarization). Marigold Instruments closes on June 30 (₹ cr). Its FY25 = H1 (Jul to Dec 24) 1,800 + H2 (Jan to Jun 25) 1,900, and its FY26 H1 (Jul to Dec 25) is 2,100. EBIT was 285 for FY25 H2 and 336 for FY26 H1. Its December-FY peer reports CY25 revenue of 4,100 and EBIT of 615. Compare sizes and margins correctly.
Solution. Marigold CY25 = 1,900 + 2,100 = ₹4,000 cr, EBIT = 285 + 336 = 621, and the margin is 15.5%. The peer's 4,100 and 615 give 15.0%. So the correct reading is essentially equal size (4,000 against 4,100), with Marigold ~0.5pp more profitable. The naive reading sets Marigold's FY25 (3,700) against the peer's CY25 (4,100). It would have called the peer 11% larger. On margins, it would have put the peer's 15.0% (615 ÷ 4,100) beside a Marigold figure the naive analyst doesn't have, likely quoted at FY25's blend, and called them roughly equal. That misses both the true scale parity and Marigold's acceleration in H2-25: 2,100 against 1,800 a year earlier, +16.7% in the most recent half. Misaligned windows don't just blur. They systematically lag the company that's changing faster.
P9 (basis choice). Choose standalone or consolidated (India) for each case and justify it in one line. (a) Comparing Tata Motors' India vehicle margins with Maruti Suzuki's. (b) Testing whether a listed holding company can sustain its dividend. (c) Judging whether an acquisitive conglomerate has created value over a decade.
Solution. (a) Standalone, plus the segment note. Consolidated Tata Motors is mostly JLR (illustrative: standalone revenue of ~₹73,000 cr against ~₹4.4 lakh cr consolidated, modeled on ~FY24 scale). Benchmark the consolidated margin against Maruti and you're comparing a UK luxury exporter with an Indian small-car maker, so match perimeters first. (b) Standalone. Dividends are declared from the standalone entity's distributable profits, and rich subsidiaries fund the parent only through upstreamed dividends. Check the standalone P&L's "dividend from subsidiaries" line and the RPT note. (c) Consolidated, then segments. Group value creation includes everything bought and built, so run consolidated ROIC/ROIIC for the verdict and use the segment note to find where it happened. The unbreakable rule holds in all three. Never mix bases within one table.
P10 (segment rebuild + mix). Tungabhadra Industries (synthetic, ₹ cr) shows this in its segment note. Segment A (specialty chemicals): revenue 2,400, result 480, assets 1,600. Segment B (bulk chemicals): revenue 3,600, result 180, assets 2,400. Unallocated corporate costs are 60, and unallocated assets (treasury) are 800. (a) Work out segment margins, segment returns, the consolidated EBIT margin and ROCE ex-treasury. (b) Judge each segment against the ~16% pre-tax hurdle. (c) Next year A grows 5% and B grows 25%, with segment margins and unallocated costs unchanged. Recompute the consolidated margin and interpret it.
Solution. (a) A: margin 480 ÷ 2,400 = 20.0%, return 480 ÷ 1,600 = 30.0%. B: 180 ÷ 3,600 = 5.0%, 180 ÷ 2,400 = 7.5%. Consolidated EBIT = 480 + 180 − 60 = 600 on revenue of 6,000, a 10.0% margin. ROCE ex-treasury = 600 ÷ 4,000 = 15.0%, or 600 ÷ 4,800 = 12.5% on total assets including cash. (b) A creates value handsomely (30 against 16, +14pp). B destroys it (7.5 against 16). The blend, 15.0%, comes in just below the hurdle. The consolidated number hides one excellent business shackled to one value-consuming business that holds 60% of the operating assets. (c) A: 2,520 × 20% = 504. B: 4,500 × 5% = 225. EBIT = 504 + 225 − 60 = 669 on 7,020, or 9.5%. The consolidated margin falls half a point while neither segment deteriorated. It's pure mix, since the 5%-margin business grew 5× faster. Read it carefully. Next year's headline will say "margin compression". In truth, capital and growth are flowing to the sub-hurdle segment, which is a far more serious finding, and only the segment rebuild can see it.
P11 (rank vs hurdle). Four cement companies post clean pre-tax ROCE of 19%, 15%, 13% and 9%. The pre-tax hurdle is ~16% (India). (a) Who creates value? (b) Company 2's CFO argues: "We're above the industry median, comfortably second best." Respond. (c) Convert #1 and #2 to post-tax at t = 25% and re-verify against the 12% post-tax hurdle.
Solution. (a) Only #1 (19 > 16). (b) True and irrelevant. The median of a value-destroying set is a value-destroying benchmark, and being second-best at destroying capital is no capital-allocation strategy. Rank (comparison 2) and hurdle (comparison 4) answer different questions, and only the hurdle answers whether the game pays. (c) #1: 19 × 0.75 = 14.25% against 12%, so it creates value, consistent with before. #2: 15 × 0.75 = 11.25% against 12%, so it destroys value, consistent with 15 < 16 pre-tax. The pre-tax and post-tax verdicts must always agree. If they don't, your tax basis is mixed somewhere.
P12 (timed, 25 minutes: the mixed-mess table). Three companies, raw:
| Co X (India, consolidated, Ind AS) | Co Y (India, Ind AS) | Co Z (US, ASC 842) | |
|---|---|---|---|
| Revenue | 6,000 | 3,000 (standalone) | 6,200 |
| Reported EBITDA | 1,020 (incl. exceptional gain 120) | 480 | 900 (rent 200 in opex) |
| Footnotes | exceptional = land sale | consolidated: revenue 3,900, EBITDA 585 | operating leases; peer group is Ind AS |
Produce a comparable EBITDA-margin table and a five-line reading.
Solution. Fixes first. X: strip the one-off, so 1,020 − 120 = 900, or 15.0%. Y: never mix bases, so use consolidated 585 ÷ 3,900 = 15.0%. The standalone 16.0% was the flattering wrong number. Z: Ind AS peers' EBITDA is pre-rent, so put Z on a pre-rent basis too: 900 + 200 = 1,100, or 17.7%. Then the reading. (1) The raw ranking was X 17.0% > Y 16.0% > Z 14.5%. The cleaned ranking is Z 17.7% > X = Y 15.0%, a complete inversion. (2) X's edge was a land sale. (3) Y's was a consolidation basis. (4) Z's handicap was a lease standard. (5) Every point of the raw spread was accounting or definition. So the economic finding is that Z leads by ~2.7pp, and the next step is asking why, by common-sizing Z against X line by line. Score yourself: all three fixes caught, directions correct, inversion stated, all within 25 minutes.
P13 (guided: percentile and z-score). Godavari Coatings (synthetic) posts a 16% post-tax ROIC. Its five listed peers post 11%, 13%, 14%, 17% and 35%. (a) Rank Godavari and give the peer-set median. (b) Give its percentile rank. (c) Compute the mean, the population SD and Godavari's z-score. (d) Recompute the mean and z-score with the 35% outlier removed. State what reverses and the rule it teaches.
Solution. Including Godavari, the set is 11, 13, 14, 16, 17, 35. (a) 4th of 6. The median = (14 + 16) ÷ 2 = 15.0%, so Godavari is above the center. (b) It outranks 3 of 5 peers, so its percentile rank = (3 + ½) ÷ 6 = 58.3%. (c) Mean = 106 ÷ 6 = 17.67%, population SD = 7.99pp, and z = (16 − 17.67) ÷ 7.99 = −0.21. That's below average, which contradicts the median. (d) Drop the 35% outlier. Mean = 71 ÷ 5 = 14.2%, SD = 2.14pp, and z = (16 − 14.2) ÷ 2.14 = +0.84. The z-score flips sign while the median and rank don't move. Here's the rule. Percentile and rank are robust to outliers, and the z-score isn't, because one hyper-performer owns both the mean and the SD. It's the median-over-mean rule for peer tables, in ranking form. In a small, skewed peer set, place a company by rank or percentile, and treat any z-score as a claim about a distribution you haven't shown to be symmetric.
P14 (guided: common-size locates the gap). Summit Components (synthetic, US GAAP, $m) against two peers, in vertical common-size. Summit: revenue 10,000, COGS 7,000, SG&A 1,800, R&D 500. Delta Systems: 8,000 / 5,280 / 1,440 / 480. Ridge Tech: 15,000 / 9,900 / 2,700 / 900. (a) Build the common-size lines (% of revenue) and each line's peer median. (b) State Summit's operating-margin gap against the median and decompose it line by line. (c) Which line is the yellow flag, and why?
Solution. (a) Common-size (% of revenue):
| % of revenue | Summit | Delta | Ridge | Median |
|---|---|---|---|---|
| COGS | 70.0 | 66.0 | 66.0 | 66.0 |
| SG&A | 18.0 | 18.0 | 18.0 | 18.0 |
| R&D | 5.0 | 6.0 | 6.0 | 6.0 |
| Operating margin | 7.0 | 10.0 | 10.0 | 10.0 |
(b) Summit's operating margin is −3.0pp against the median (7.0 against 10.0). Decompose it against the median line by line. COGS is +4.0pp, which is worse. SG&A is 0.0pp, right at the median. R&D is −1.0pp, because Summit spends less. Tie-out: −(+4.0) − 0.0 − (−1.0) = −3.0pp ✓. (c) The R&D line is the yellow flag. Summit's headline −3pp gap is partly flattered by under-investing 1pp in R&D against peers, which is margin borrowed from the future, the HUL A&P lesson from the common-size builds. Its true competitive drag is the +4pp COGS excess (scale/mix/pricing). Because the 1pp R&D saving masks part of it, the position is worse than −3pp makes it look. Common-size caught both in a single column.
P15 (time series: spot the accounting step). Konkan Retail (synthetic), EBITDA margin FY16 to FY25 (%): 7.0, 7.2, 7.5, 7.4, 11.5, 11.8, 12.0, 12.3, 12.5, 12.8. Revenue went from ₹3,000 cr (FY16) to ₹7,200 cr (FY25). (a) Revenue CAGR. (b) Classify the FY20 jump. What must you check? (c) Compute the raw population SD of the margin series and the SD within each sub-period (FY16 to 19, FY20 to 25). What does the raw SD overstate?
Solution. (a) Nine intervals: (7,200 ÷ 3,000)^(1/9) − 1 = 2.4^0.1111 − 1 = 10.2%. (b) The step from FY19 to FY20 is +4.1pp. For a lease-heavy retailer, that's the fingerprint of Ind AS 116 adoption: rent leaves opex and lifts EBITDA mechanically by roughly the rent. It's an accounting inflection, class (c), and the economics didn't move. Read the FY20 transition note for the quantified lease impact before you interpret any trend across FY20. The time-series inflections and the accounting-policy differences above explain why. (c) Raw SD = 2.42pp, FY16 to 19 SD = 0.19pp, and FY20 to 25 SD = 0.44pp. The raw SD overstates within-regime volatility by 5 to 13×. Inside each accounting regime the margin is a steady grind, with both sub-periods under 0.5pp, and the apparent "volatility" is almost entirely the one accounting step. Split the series at the standard change, and never let an accounting adoption pass itself off as a risky business. It's P1's shock lesson again, this time for a policy step.
P16 (segment rate vs mix: decompose the fall). Vertex Diversified (synthetic, US GAAP, $m) has two segments. In Year 1, Segment A has revenue of 600 at a 25% margin and Segment B 400 at 5%. In Year 2, A has 660 at 26% and B 740 at 6%. (a) Work out both years' consolidated margins. (b) Split the change into a rate effect (Σ new-weight × margin change) and a mix effect (Σ old margin × weight change). (c) Interpret it in one line.
Solution. (a) Y1: (600×25% + 400×5%) ÷ 1,000 = (150 + 20) ÷ 1,000 = 17.0%. Y2: (660×26% + 740×6%) ÷ 1,400 = (171.6 + 44.4) ÷ 1,400 = 15.43%, a change of −1.57pp. (b) Weights: in Y1, A is 60.0% and B 40.0%. In Y2, A is 47.1% and B 52.9%. Mix effect = 25%×(0.471 − 0.60) + 5%×(0.529 − 0.40) = −3.21 + 0.64 = −2.57pp. Rate effect = 0.471×(26 − 25) + 0.529×(6 − 5) = +1.00pp. Sum = −2.57 + 1.00 = −1.57pp ✓, exact with no residual. (c) Both segments' margins rose (+1.0pp rate), yet the blend fell 1.6pp because revenue shifted to the low-margin segment (−2.6pp mix). So the "margin compression" headline is a mix story and execution didn't fail. The real, more serious finding is that growth is flowing to the thinner-margin business.
P17 (peer center: three numbers for the one word "average"). Five listed peers' ROE, with net income and equity (₹ cr): P1 140 / 1,000, P2 150 / 1,000, P3 160 / 1,000, P4 180 / 1,000, P5 60 / 3,000. (a) Each ROE, the mean of the ratios, and the median. (b) The aggregate ROE (summed profit ÷ summed equity). (c) Why do the three "group ROEs" differ, and which do you use for what?
Solution. (a) ROEs: 14.0, 15.0, 16.0, 18.0, 2.0%. Mean of ratios = 65 ÷ 5 = 13.0%, and the median = 15.0%. (b) Aggregate = (140 + 150 + 160 + 180 + 60) ÷ (1,000×4 + 3,000) = 690 ÷ 7,000 = 9.86%. (c) That's three different numbers for one word. The mean of ratios (13.0%) is dragged below the 14 to 18% cluster by P5's weak 2%, and it silently equal-weights P5, a company three times the others' size. It's neither typical nor pooled, so never report it. The median (15.0%) ignores P5's magnitude and describes the typical peer, so use it as the group center for ranking. The aggregate (9.86%) pools capital and answers "how did a rupee of sector equity actually do?" It's correctly dominated by the large P5, so use it for the sector's true blended return. That's common mistake 7 above.
P18 (timed, 25 minutes: normalize, rank, hurdle, place). Rank three companies by clean post-tax ROIC, run the like-for-like hurdle, and place the anchor in its sector. Tax is 25% throughout.
- Narmada Alloys (synthetic) (India, Ind AS, consolidated, March FY): reported EBIT ₹1,200 cr including an exceptional gain of ₹120 cr, capital employed ₹4,500 cr.
- Deccan Forgings (synthetic) (India, Ind AS): a data vendor shows EBIT ₹500 cr on capital employed ₹2,000 cr, flagged standalone. The annual report's consolidated figures are EBIT ₹800 cr and capital employed ₹4,000 cr.
- Ozark Metals Inc. (synthetic) (US GAAP, ASC 842 operating leases, LIFO, December FY): reported EBIT $210m after operating-lease rent of $40m, an operating-lease liability of $400m at ~5%, a LIFO reserve that rose $10m, and capital employed (incl. lease liabilities) of $1,500m.
- Sector reference: seven listed alloy peers post clean post-tax ROIC of 8, 10, 11, 13, 15, 18, 22% (Narmada included).
Solution. Normalize. Narmada: strip the one-off, so clean EBIT = 1,200 − 120 = 1,080, NOPAT = 1,080 × 0.75 = 810, and ROIC = 810 ÷ 4,500 = 18.0%. Deccan: never mix bases, so use consolidated. NOPAT = 800 × 0.75 = 600, and ROIC = 600 ÷ 4,000 = 15.0%. The vendor's standalone figure gives 375 ÷ 2,000 = 18.75%, which would falsely tie Deccan with Narmada. Reject it and log the rejection. Ozark needs the two US fixes from the returns shortcut. Adjusted EBIT = 210 + (5%×400 lease interest = 20) + 10 (LIFO reserve rise) = 240, NOPAT = 180, and ROIC = 180 ÷ 1,500 = 12.0%. Note the Dec-vs-March offset in the log.
Rank and hurdle, like for like. Narmada's 18.0% against ~12% India post-tax is +6.0pp. Deccan's 15.0% against ~12% is +3.0pp. Ozark's 12.0% against ~8.5% US post-tax is +3.5pp. All three create value, and you benchmark the spread, because the level misleads. Ozark's 12%, the lowest absolute ROIC, beats Deccan's 15% on value creation (+3.5 against +3.0pp). That's the spread lesson from the cost-of-capital comparison.
Place the anchor. In the seven-peer set (8, 10, 11, 13, 15, 18, 22), Narmada ranks 6th of 7, outranking 5 of 6 peers, which is 83.3% (percentile rank 78.6%), well above the sector median of 13%. Score yourself: one-off stripped in the right direction, Deccan on consolidated, both Ozark fixes caught with the right signs, spreads compared instead of raw levels, percentile placement stated, all inside 25 minutes.
P19 (build an LTM from three filings). You hold three documents for Kalinga Instruments (synthetic, US-listed, December fiscal year, $m). The FY2025 10-K reports revenue 3,200 and EBITDA 640. The Q1 FY2026 10-Q reports revenue 880 and EBITDA 172, with prior-year comparatives of 790 and 150. The Q2 FY2026 10-Q reports revenue 910 and EBITDA 186, with prior-year comparatives of 820 and 160. (a) Build LTM revenue and LTM EBITDA to 30 June 2026 and state the LTM margin. (b) A colleague annualises the half-year instead. How wrong is he on revenue, and in which direction? (c) Name the one thing that would break your LTM build even though the arithmetic is correct.
Solution. (a) LTM revenue = 3,200 + (880 + 910) − (790 + 820) = 3,200 + 1,790 − 1,610 = $3,380m. LTM EBITDA = 640 + (172 + 186) − (150 + 160) = 640 + 358 − 310 = $688m. Margin = 688 ÷ 3,380 = 20.36%, against 20.00% for FY2025. (b) Doubling the half gives 2 × 1,790 = $3,580m, an overstatement of $200m, about 5.9%, because the first half of this business runs ahead of the second. The error is always in the direction of whichever half the stub happens to be. (c) An acquisition, a disposal or a restatement inside the twelve months. The subtraction assumes the prior-year quarter measures the same perimeter as the quarter replacing it, so a mid-year deal makes the LTM a chimera of two different companies. Check the 10-Q's basis-of-presentation and business-combination notes before you trust the number, and if the perimeter moved, say so beside the figure.
Applied mini-project
Replicate the Infosys study on a fresh peer set. One track is required, and the other is a repeat-for-mastery option. Time: 3 to 4 hours. This is your direct rehearsal for the gate and for the capstone workups that close the forensics weeks.
Track A (default): Indian FMCG. The anchor is Marico, and the peers are Dabur, Godrej Consumer Products, Emami. All four are consolidated Ind AS reporters with March fiscal years. The bases align by construction, so say so in your log instead of skipping the check. For data, use each company's investor-relations page or BSE/NSE filings for the last two annual reports. You need 5 years of P&L, balance sheet and cash flow, plus the segment note, and Marico and Dabur both split India from International. Use screener.in for the 10-year strips. Verify its consolidated/standalone header on every page.
Track B (alternative): US beverages. The anchor is Coca-Cola, and the peers are PepsiCo, Keurig Dr Pepper, Monster Beverage, all on December fiscal years. Pull 10-Ks from SEC EDGAR (full-text search at efts.sec.gov), and use stockanalysis.com or macrotrends for strips. This track is deliberately messier. PepsiCo is half snacks, so your segment rebuild has to carve PepsiCo Beverages out of the consolidated numbers before the peer table means anything. The capital-intensity rows also have to confront company-owned against franchised bottling. That mess is the lesson.
Deliverables:
- Peer-set defense (half page): the five tests applied to each peer, plus anything excluded (and why) and any reference rows labelled as references.
- Normalization log: every adjustment as item, direction, source. That covers one-offs by year and lease conventions. It also covers any policy differences you found in the notes, plus the basis/FY checks. Write "checked, none required" where it's true, because the check is the work.
- The table: ~15 rows × 4 companies plus a median column, modeled on the Infosys study. Include growth (CAGR, flagged organic), the margin stack, returns (clean ROIC against the hurdle on a like-for-like tax basis), cash quality (CFO/PAT, FCF/PAT), efficiency (CCC or receivable days), leverage/net cash, capex intensity, payout, plus 1 to 2 sector KPIs. A&P as a % of revenue is mandatory for Track A, and so is volume growth against price/mix if it's disclosed.
- Time-series layer: 5-year strips for four headline rows (revenue growth, EBIT margin, ROCE/ROIC, FCF/PAT), with inflections circled and classified as economics/perimeter/accounting.
- Common-size layer: vertical and horizontal P&L for the anchor (FY-5 = 100), plus one paragraph on what horizontal caught that vertical missed.
- Segment layer: segment revenue, result, margin and, where assets are disclosed, segment return for the anchor, plus a rate-vs-mix split of the anchor's consolidated margin change over 5 years.
- The written reading (≤ 2 pages, conclusion first): a quality ranking with evidence, a gap decomposition for the two biggest gaps, the hurdle verdict for the whole set, one anomaly explained, one variant question.
Scoring rubric. Self-grade against the checklist, and pass at ≥ 13/16:
| Criterion | 0 | 1 | 2 |
|---|---|---|---|
| Peer-set defense (five tests, exclusions named) | Label-based set | Tests applied unevenly | Every row defended, references labelled |
| Basis & period alignment (consolidated; FY checks) | Mixed bases | Aligned but unstated | Aligned and logged |
| Normalization log (one-offs, leases, policies) | Absent | Partial or asymmetric | Complete, sourced, symmetric |
| Table completeness (~15 ratios, median column) | <10 rows or errors | Complete, minor slips | Complete and accurate |
| Time-series layer (strips + classified inflections) | Absent | Strips without classification | Strips + inflections classified |
| Common-size + segment layers | One missing | Both present, thin reading | Both present, findings stated |
| Hurdle & sector-norm verdicts (tax basis matched) | Missing or mismatched basis | Computed, weak interpretation | Spread stated, set-level verdict drawn |
| Written reading (conclusion-first, gaps decomposed, variant question) | Rambling or verdict-free | Structured, partial evidence | Crisp, evidenced, ends in one question |
File the study in your company files. The anchor's strips and segment rebuild become permanent rows in the deep-dive workbook you'll build later.
Case Lab: run case XL-2.1 in the app's Cases tab. It hands you a raw, mixed-basis three-company peer set (one standalone-flagged Indian filer, one US LIFO-and-lease filer, one clean Ind AS reporter) and grades your normalization log, cleaned table, hurdle verdict, and percentile placement against the benchmark protocol, timed to the M8 teardown standard.
Reading & resources
- K. R. Subramanyam, Financial Statement Analysis (11th ed.). Chapter 1's analysis-tools section covers comparative analysis, common-size statements, index-number (horizontal) analysis. It's the formal treatment of the common-size builds. [Paid] [Intermediate]
- White, Sondhi & Fried, The Analysis and Use of Financial Statements (3rd ed.). Chapter 4, "Foundations of Ratio and Financial Analysis": ratio comparability, time-series vs cross-sectional analysis, and the classic treatment of accounting-difference adjustments (incl. LIFO/FIFO). [Paid] [Intermediate]
- Stephen Penman, Financial Statement Analysis and Security Valuation (5th ed.). The statement-analysis chapters (Ch. 9–12; numbers vary by edition): common-size and trend analysis wired directly into valuation. Read after Phase 3 for full payoff; skim now. [Paid] [Advanced]
- CFA Institute, Level I reading "Financial Analysis Techniques". The standard-setter's version of common-size, trend, and cross-sectional analysis with worked vignettes. [Paid] [Beginner→Intermediate]
- Aswath Damodaran's data library (pages.stern.nyu.edu → Data → Current data): margins, ROE, ROIC, and more by industry, US and global/emerging sets, refreshed every January. Comparison 5 in downloadable form; add the January re-pull to your standing calendar. [Free] [All levels]
- Mauboussin & Callahan, "The Base Rate Book" (Credit Suisse, 2016). Empirical distributions of growth and margin outcomes by company size: what "normal" actually looks like, and why outliers fade. The statistical backbone of comparisons 1 and 5. [Free] [Advanced]
- Howard Schilit et al., Financial Shenanigans (4th ed.). Part One ("Establishing the Foundation"): how comparisons and benchmarks expose manipulation; your bridge into M2.06. [Paid] [Intermediate]
- Zerodha Varsity, Fundamental Analysis module. The ratio-analysis and "DIY analysis" chapters for the Indian-market vocabulary and free-tool workflow. [Free] [Beginner]
- EY, US GAAP vs IFRS: The Basics (free PDF, updated periodically). The inventory (LIFO), leases, and development-costs sections give you the hygiene layer's policy differences from the standard-setters' side. [Free] [Intermediate]
- Deloitte iasplus.com — IFRS 8 summary page (and the Ind AS 108 text on mca.gov.in; ASC 280 summaries on fasb.org). The segment-reporting architecture: CODM, the 10% tests, the 75% coverage rule. [Free] [Intermediate]
- Tools: screener.in (India strips, peer pages, custom ratios; check consolidated vs standalone on every page) and Tijori (India segment/KPI data); stockanalysis.com, TIKR, macrotrends (US 10-year strips). [Free/freemium] [Beginner]
- Filings to pull (all free): the HUL annual report (hul.co.in or BSE) and the Costco 10-K (EDGAR), to rebuild the HUL and Costco common-size tables from the real statements. The ITC FY24 annual report's segment note, and any FY25+ report to see the hotels-demerger splice. The Amazon 10-K segment footnote. One LIFO note from Kroger's or Deere's latest 10-K. Nestlé India's 15-month transition-period report, the calendarization specimen. The four IT-services FY25 annual reports, to rebuild the Infosys study with actual figures. And Tata Motors' annual report for the standalone-vs-consolidated contrast. [Free] [All levels]
- Going deeper — CFA Institute, Level I reading "Statistical Measures of Asset Returns" / "Describing Data". The statistics under the percentile and z-score work above: how a percentile rank is defined, quartiles/quantiles, standard deviation, and why the median resists outliers while a z-score's symmetry assumption can break. Pair it with WE5 before you rank any peer set numerically. [Paid] [Beginner→Intermediate]
- Going deeper — Michael Mauboussin & Dan Callahan, "Calculating Return on Invested Capital" and "Measuring the Moat" (Counterpoint Global / Morgan Stanley, free PDFs). Decomposing peer differences into their physical drivers (unit economics, mix, capital intensity) so a benchmarking gap points somewhere you can verify, plus the mean-reversion base rates that tell you which gaps fade. The rigorous version of the gap decomposition and its "chase every gap to a driver" reflex. [Free] [Advanced]
The Modern Analyst's Addendum
Everything above teaches this skill from first principles, by hand. That's 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, and it never replaces. (R1/R10)
AI-Augment this skill
{
"skill": "The five comparisons — own history, true peers, common-size statements, the cost of capital, sector norms — plus the normalization checklist that makes any of them legal",
"use": "Normalization is a long, exhaustive, entirely mechanical checklist, and this module's verdicts collapse when one item on it is missed — which makes it the single best fit for a tool in Phase 2. (1) Hand it two filings and the eight-item checklist from §4.6 and ask for a completed normalization log: item, direction, source, and 'not applicable' with a reason where it does not bite. Then check each row, because the log is the deliverable and a row you cannot show is an opinion. (2) Ask it to calendarize explicitly: for each company, the fiscal year-end, whether there was a 52/53-week year or a transition period, and the quarterly arithmetic that rebuilds a common twelve months. That is pure bookkeeping over disclosed facts and it is where hand comparisons quietly break. (3) For peer construction, ask it to extract every competitor the company names in its own Item 1, Item 1A, MD&A and investor deck across five years — the company's own mouth, per §4.2 — and then audit the list yourself against the five tests; the machine's screener-derived peer tab was built from sector labels and will hand you Costco next to Kroger without noticing the membership fee. (4) Ask it to find the LIFO reserve, the useful-life table and the capitalized-development-cost line in each filing so the four policy adjustments have their inputs.",
"tools": ["Chat assistants — Claude, ChatGPT for the normalization log, the calendarization arithmetic and the competitor-mentions sweep", "Document/PDF AI — for the accounting-policies, exceptional-items, inventory and segment notes across a peer set", "Coding assistants — for the common-size panel, the peer medians and the small-sample statistics below"],
"prompt": "Here are two filings and my eight-item normalization checklist: <PASTE CHECKLIST AND FILINGS>. Produce a normalization log as a table [Checklist item | Applies? | Company A adjustment and direction | Company B adjustment and direction | Source note or page]. For fiscal alignment, show the quarterly arithmetic that rebuilds a common twelve months, and state any 53-week year or transition period. Do NOT compute any ratio or express any view on which company is better. If an input is not disclosed, write NOT DISCLOSED rather than estimating it.",
"verify": "Every adjustment is traced to the note that authorises it, and the log is shown, because §4.6's whole point is that an adjustment you cannot show is not analysis. Re-derive the calendarization by hand for at least one company — a half-year mis-assignment moves a growth rate by more than most findings in this module. Confirm the consolidation basis on every page you pull, every time, since screener defaults vary by site and by company and mixing bases inside one table invalidates all of it. And treat any peer list a tool proposes as a hypothesis to be tested against the five tests of §4.2, never as a peer set: a padded table degrades the median you are about to trust, and the Quantitative lens shows how little that median can bear (Guardrail 1-5).",
"diy": "The gate is unaided: you build the peer set from the five tests, common-size both statements, run the eight-item normalization checklist, and produce the workup with its log on paper. Nothing in this callout is admissible in that room."
}
Modern Data Analysis
By hand first. You common-sized two statements by hand, built the peer set from the five tests and wrote the normalization log. That log is the artefact that makes everything below legal. Without it, the code produces a table that's comparable in format and incomparable in substance, and that's worse than no table.
Today's workflow. Benchmarking is where a data frame stops being a convenience. Vertical and horizontal common-sizing are two lines of pandas: divide the P&L by revenue and the balance sheet by total assets, then index both to a base year. The interesting work moves entirely to the normalization columns, which is where it belongs. Three things become practical. First, the adjustments become explicit columns, so nothing gets edited in place. You get a reported margin, a lease-aligned margin, an R&D-expense-aligned margin and a FIFO-converted margin, each traceable, so the table can show both ways when an adjustment is arguable, as the hygiene layer recommends. Second, calendarization becomes arithmetic instead of judgment. Rebuild every company to a common twelve months from quarterly data, and strip the 53rd week, which adds 1.923% of phantom growth. Third, sector norms become measured instead of remembered. Compute the median and the interquartile range of each ratio across a real universe every January, so the sector bands are yours and current instead of inherited and stale. The two small policy repairs take one line each: FIFO inventory = LIFO inventory + LIFO reserve and FIFO COGS = LIFO COGS − Δreserve. A reserve that fell by 40 while inventory shrank flags the LIFO liquidation the note must confess.
Tools & sources (IN + US). pandas for the common-size and peer panels, numpy for the medians and dispersion, matplotlib for the small multiples that make a structural shift visible. For India, use consolidated annual reports for both statements and the accounting-policies note. Schedule III's labelled Exceptional items line makes one-off stripping half-easy. Add the segment note under Ind AS 108 and the quarterly LODR results for calendarization. Also use screener.in industry pages for peer discovery and medians you recompute yourself, and the RBI's studies on private corporate-sector finances for India-wide aggregates. For the US, use EDGAR XBRL companyfacts and the SEC's Financial Statement Data Sets when you want a universe and not just a handful. Use the 10-K's Item 1 and 1A for the company's own competitor list and the inventory note for the LIFO reserve. And use Damodaran's data library at pages.stern.nyu.edu for margin, ROE and ROIC by industry, re-pulled every January, the same ritual as for the hurdle.
# Small-sample facts that decide how a peer table may be read — R3: recomputed in-session
import numpy as np
n = 5 # the module's own "aim for 3-5 peers"
print(round((n - 1) / np.sqrt(n), 2)) # 1.79 = the MAXIMUM |z| attainable with 5 names
print([round((k - 1) / np.sqrt(k), 2) for k in (3, 4, 5, 10, 30)]) # 1.15 1.5 1.79 2.85 5.29
rng = np.random.default_rng(5)
X = rng.standard_normal((400_000, n, 20)) # 5 clean companies, 20 ratios, no real difference
z = (X - X.mean(1, keepdims=True)) / X.std(1, ddof=1, keepdims=True)
print(round((abs(z[:, 0, :]).max(1) > 1.5).mean() * 100, 1)) # 79.4% show an "outlier"
print(round(np.median(rng.standard_normal((400_000, n)), axis=1).std(), 3)) # 0.536
print(round((53 / 52 - 1) * 100, 3), (2000 - 200) / 18, (2000 - 200) / 25) # 1.923 100.0 72.0
Verify. Don't read any table until its log is complete and its bases match: consolidation, fiscal period, lease convention, R&D treatment, inventory method, by-nature versus by-function mapping. Recompute the peer median yourself and ignore a site's pre-averaged number, because you can't audit a formula you can't see, and one loss-maker in a set of four drags a mean anywhere. Where an adjustment is arguable, show the ratio both ways and say which one you're using. Where a peer is missing, say so. Label the foreign analogue a reference instead of padding the set. Then read the gap the way the gap decomposition requires: accounting, definitional or economic. Only the third is a finding.
Quantitative lens
Aim for three to five peers, use the median, report rank and gap. Those instructions aren't a matter of style. The statistics of a very small sample force them, and the arithmetic is worth seeing, because once you've seen it you'll never fall for a mistake you'll otherwise keep meeting in professional research.
A peer table can't support a z-score. Within any sample of n observations, the largest attainable standardised deviation from the sample mean is (n − 1)/√n. With three peers that ceiling is 1.15. With four it's 1.50, with five 1.79 and with ten 2.85. You need thirty names before a |z| of five is even arithmetically possible. So when someone says "this company is three standard deviations from its peer group" about a five-company table, the claim is impossible. Any tool or vendor that reports it has computed the dispersion somewhere other than where it says. That's why cross-sectional standardisation belongs to universe-wide screens, the kind the forensic screening week builds, while a peer table gets rank and gap against the median. The instruction and the mathematics are the same fact.
The median you're comparing against is noisy too. Draw peers from a population with a standard deviation of 1.0, and the sample median of five names has a sampling standard deviation of 0.536. That's more than half a population standard deviation, falling to 0.372 at ten names and 0.223 at thirty. So a company one population standard deviation from the true centre carries roughly ±1.05 of pure sampling noise in its measured gap at five peers. Still, the gap is the right thing to report. It just isn't a precise quantity, and a 30-basis-point gap on a five-company table tells you nothing about the company.
Even a clean peer table will hand you an outlier. Simulate five companies with no real differences at all and twenty ratios each. The focal company shows an apparent |z| above 1.5 on at least one ratio 79.4% of the time, and above 1.5 on at least one of just ten ratios 54.7% of the time. Look at enough ratios and something always looks extreme. That's the statistical version of the gap decomposition. A better threshold won't save you. What does is making every gap survive classification as accounting, definitional or economic, and then point at something physical: scale, mix, utilisation, pricing, geography.
Now the limits. These simulations assume normal, independent ratios, and real ratios are neither. They're skewed, fat-tailed and correlated with each other. That makes the multiple-comparisons problem worse, and it makes the exact percentages above illustrations of the structure. They don't measure your table. The (n − 1)/√n ceiling, by contrast, is an algebraic identity and holds for any data whatsoever. And none of this argues for larger peer sets. The peer-selection advice is right that a padded table is worse than a small, clean one, because adding false peers moves the centre you're measuring against as well as widening it. So a small peer set is a legitimate instrument when you read it by rank and gap, and an illegitimate one the moment it's asked for a standardised score.
Do it in code: compute rank and gap-versus-median for a peer table, and compute z-scores only against a universe pulled from the bulk data sets; then bootstrap the peer median to attach a band to the gap you are about to call a finding. See G1/QM1.01 and G2/DA1.05.
Where this goes next: galaxy cross-links
- G2 · DA1.02 Pandas Data Wrangling. The common-size and peer panels with normalization as explicit columns, so a table can be shown both ways instead of edited in place.
- G2 · DA1.04 Exploratory Data Analysis & Visualization. Common-sizing is a visualisation problem as much as an arithmetic one; small multiples across peers and years are how a structural shift announces itself.
- G2 · DA1.05 Statistics in Code. Medians, interquartile ranges, bootstrapped bands and the small-sample facts above, done properly rather than assumed.
- G1 · QM1.01 Probability, Distributions & Estimation. Sampling distributions of order statistics and the multiple-comparisons problem, which is what a twenty-ratio peer table is whether or not you call it one.
- G3 · CN3.01 Competitive & Industry Frameworks. The structured version of the hardest question in peer selection: who is actually playing the same game, decided by industry structure instead of a sector label.
Teach it back & journal
Feynman prompt. Explain to a smart 15-year-old why "Company A has 20% margins and Company B has 10%, so A is better" might be completely wrong. Use three things. (1) The doctor's blood report: why one number needs a reference range, a history and the other markers on the page. (2) Two shops that count their sweet-jar costs differently, put in kid terms. Your choice: LIFO vs FIFO, or rent in vs rent out of the profit line. (3) One school whose average marks fell even though every student improved. That's mix shift, and you invent the two-classroom arithmetic yourself. End with the five questions you'd ask before believing any single number about anything. One page, with no jargon you don't define.
Journal prompt. Find a comparison you made yourself before this program: "X is a better company than Y because its margins/growth/ROE are higher." An old conversation, tweet or investment note counts. Run it properly through the benchmark protocol: basis, normalization log, the five comparisons, segments if relevant. Then write three sentences. The first says what survived. The second says what reversed, and which specific normalization or comparison reversed it. The third names which of the twelve mistakes listed above you were making by default, and your standing rule so it can't happen silently again. File the cleaned table in your company files.
This module's flashcards and mastery quiz are wired into the app: see the node's Quiz and Reviews.