The algebra says what a multiple should be, given fundamentals. A comps table asks the market what similar firms' multiples are. Its value depends entirely on three habits: who gets into the set, how you clean the numbers, and how you summarize the set.
Choosing true comparables: business model > sector code
Damodaran's definition is the right one: a comparable is a firm with similar cash flows, growth, and risk. Nothing in it mentions the industry classification code. Sector codes group companies by what they make. Value groups them by how the economics work. Ferrari is the classic teaching case. It carries an auto-industry code, but its rationed volumes, pricing power, order backlog, and 25%+ EBIT margins are Hermès economics, and nothing like Volkswagen's. It listed at luxury-goods multiples and has stayed there, and anyone who priced it against GM at 5× earnings misread the business model.
Run the same test in India. Titan shares a "jewellery" label with commodity gold retailers. But a brand-led, studded-mix, franchise-capital model earning 20%+ ROCE is a consumer-brand business, while commodity jewellers run a gold-spread business. Pricing Titan off their multiples is the same category error. InterGlobe Aviation's comps are the world's low-cost carriers (Ryanair, Southwest). "Indian transport companies" are the wrong peer set. Avenue Supermarts' owned-store, everyday-low-price grocery model reads closer to Costco's economics than to a mall retailer's. And for conglomerate-ish firms like Amazon (retail + AWS + ads) or Reliance (energy + telecom + retail), there is no single comparable. Comp each segment against its own peer set and add them up. That's a preview of sum-of-the-parts, which the phase capstone completes.
In practice, start with the sector list (the screener.in peer tab, or the classification code). Then prune by business model: similar revenue model, similar capital intensity, similar geography/regulation where it drives economics. Aim for 5 to 8 names. Too few and one outlier steers the median. Too many and you've let back in the junk you pruned. Document why each name is in. Sometimes fewer than four true comparables exist. That's common in India. Who, after all, is Pidilite's peer? When it happens, say so and lean harder on the driver algebra and the DCF.
A thin comp set dressed up as a market verdict is worse than none.
Advertisement
Normalizing accounting: same economics, same numbers
Phase 1 taught the treatments, and in a comps table they bite. Four adjustments cover most of the real damage:
1. Leases: the cross-border landmine. The lease accounting you learned pays off now. Under IFRS 16 / Ind AS 116, all leases are capitalized. Rent leaves the P&L's operating costs and EBITDA rises. Depreciation and interest replace the rent below the line. A lease liability then appears on the balance sheet. Under US GAAP (ASC 842), operating-lease rent stays inside EBITDA. So an Indian or European retailer's EBITDA is structurally fatter than an American peer's. Same stores, same cash. The fix is one consistent convention across the whole table. Either go lease-inclusive everywhere, adding lease liabilities to every EV and using pre-rent EBITDA, with rent added back for the US names. Or go lease-exclusive everywhere, subtracting rent from the IFRS/Ind AS names' EBITDA and keeping lease debt out of EV.
The trap is quantitative, so look at the numbers. A US retailer has EBITDA of $2.0bn with rent inside it, and EV excluding lease debt of $16bn, which gives 8.0×. An Indian peer reports Ind AS EBITDA of ₹2,500 crore, of which ₹500 crore is rent relocated below the line. Its market cap is ₹15,000 crore, borrowings net of cash are ₹500 crore and lease liabilities are ₹4,000 crore. The naive analyst takes EV without lease debt (₹15,500 crore) over the fat EBITDA (₹2,500 crore), gets 6.2×, and declares the Indian retailer 22% cheaper. Now do it consistently lease-inclusive. The Indian EV of ₹19,500 crore over ₹2,500 crore gives 7.8×, against the US peer's lease-inclusive ~8.0×. They're within rounding of each other. The "discount" was an accounting artifact. Here's the direction to memorize: IFRS 16/Ind AS 116 flatters EBITDA and understates naive EV/EBITDA, so unadjusted cross-border tables make non-US firms look cheap.
2. Stock-based compensation. SBC is a real expense, paid in ownership instead of cash. US tech "adjusted EBITDA" routinely excludes it, and that fiction can move a multiple by a third. Take a software firm at EV $20bn with $1,000m of "adjusted EBITDA", which includes a $300m SBC add-back. It shows 20× adjusted, but 28.6× on SBC-expensed EBITDA of $700m. The rule is to expense SBC in every denominator, use today's diluted share count, and not haircut for future dilution as well. Expensing and diluting counts the cost twice, so pick the expense treatment and keep the share count current. When you compare Indian IT (minimal SBC) with US software (heavy SBC), this adjustment alone can reorder the table.
3. Capitalized R&D / development costs. IFRS and Ind AS capitalize qualifying development spend, while US GAAP expenses R&D. A capitalizer's EBITDA and EBIT are flattered relative to an expenser's, because the spend bypasses the P&L on its way to the balance sheet. Here's how it looks in a real case. Tata Motors (JLR) capitalizes a large share of product-development spend under Ind AS 38, while Ford/GM expense R&D under US GAAP. Compare raw EV/EBITDA across them and you misprice Tata Motors as cheaper than it is. The quick fix is to subtract capitalized development spend from the capitalizer's EBITDA, treating it as the expense it economically is. Or add amortization of capitalized development back and compare on a both-expensed basis. The direction to remember: capitalizers look cheaper than they are.
4. One-offs and depressed denominators. Strip items that really are non-recurring from E and EBITDA in both directions, gains as well as charges. But bring the cynicism you learned on earnings shenanigans. A company with "exceptional" charges every year has recurring exceptionals, which is to say costs. The subtler version is the depressed-denominator artifact. A firm in a margin trough shows a sky-high P/E that screens as "expensive" just when it may be cheap, and you'll meet a live example in the Indian IT table below. A cyclical at peak earnings shows its lowest P/E at the top. That's the Phase 5 commodities rule: never use trailing P/E on cyclicals, and normalize to mid-cycle first.
Forward versus trailing
Value comes from the future, so forward multiples are the default. That means consensus next-twelve-months or next-fiscal-year denominators. For US names, stockanalysis.com and TIKR's free tier are free sources. For India, use broker consensus via Trendlyne or the exchanges' analyst-coverage pages, and failing those, build a naive forward from management guidance. Trailing multiples still have three jobs. Use them where there's no analyst coverage, as with most Indian small caps. Use them when you distrust the estimates, at cyclical turning points where consensus extrapolates the cycle. And use them to cross-check that the forward numbers aren't fantasy. Two rules are iron. Never mix trailing and forward within a table, and never compare your forward multiple to a peer median built on trailing. A growth firm's forward P/E is mechanically lower. Trailing 24× on 20% growth is forward 20×, so mixing them manufactures fake winners.
Aggregating: median and harmonic, never naive means
However clean the set, you still have to compress it to one benchmark. There are three ways to do it, and one demonstration covers them all. P/Es of four peers: 10, 15, 20, 60.
- Arithmetic mean = 26.3×. It's hostage to the outlier, so one glamour stock reprices your whole "market verdict."
- Median = 17.5×. It resists outliers, and it's the default headline.
- Harmonic mean = 4 ÷ (1/10 + 1/15 + 1/20 + 1/60) = 4/0.2333 = 17.1×. This is the mathematically correct average of ratios. Here's the intuition. Put ₹1 into each stock, and your ₹4 portfolio buys earnings of 1/10 + 1/15 + 1/20 + 1/60 = ₹0.233, so the portfolio's P/E is 17.1×. Averaging multiples arithmetically overweights the big ones, because you're averaging denominators upside down. The harmonic mean fixes that. Use the median for the headline and the harmonic mean as the cross-check. If they diverge much, your set has outliers to investigate, cap, or drop. Do it visibly, with a stated reason.
Watch for the silent bias too. Loss-makers fall out of P/E entirely, because negative denominators are meaningless, so a P/E median is computed over survivors only. That's an optimism filter applied automatically. In a sector with many loss-makers (young pharma, platforms), switch to EV/Sales or EV/EBITDA, where more of the set remains, and say what you excluded. There's also a size-weighted alternative. Divide the sum of the set's EVs by the sum of its EBITDAs and you get the "sector as one company" multiple. It's a useful third opinion when a few giants dominate.
Regression on fundamentals: the comps table grows up
A comps table with a fundamentals column invites the obvious next step. Don't eyeball "cheap versus its growth." Fit the line. Regressing multiples on their drivers across the sector turns "X trades below peers" into "X trades below what its fundamentals predict for this sector's current pricing". That's sharper, and it's falsifiable.
Banking is the natural home for it, with P/B against ROE, the pairing the P/B algebra gives you. Here are six Indian banks, with illustrative numbers modeled on the FY25 landscape. Pull live data from screener.in when you rebuild this:
| Bank | ROE (x) | P/B (y) |
|---|---|---|
| A | 8% | 0.7× |
| B | 10% | 1.0× |
| C | 12% | 1.3× |
| D | 15% | 2.2× |
| E | 17% | 2.9× |
| F | 18% | 3.4× |
Fit P/B = a + b × ROE by ordinary least squares, the tool from the numeracy bootcamp. Every spreadsheet does this with SLOPE/INTERCEPT, but do it by hand once here so it's never a black box. The means are x̄ = 13.33 and ȳ = 1.917. Sxy = Σ(x−x̄)(y−ȳ) = 21.37, and Sxx = Σ(x−x̄)² = 79.33.
b = Sxy/Sxx = 21.37/79.33 = 0.269 a = ȳ − b·x̄ = 1.917 − 0.269×13.33 = −1.67
Market line: P/B ≈ −1.67 + 0.269 × ROE(%) (R² ≈ 0.97 here — constructed data;
real sector fits run 0.6–0.8)
How do you read the regression line?
Now read the line like an analyst:
- The slope means something. Theory says P/B = (ROE−g)/(r−g), which is linear in ROE with slope 1/(r−g). A slope of 0.269 per percentage point implies the market is pricing r−g ≈ 3.7 points for this sector. You can sanity-check that against the cost of equity you built and a nominal growth assumption. The regression is the market's current implicit Gordon model.
- Price off the line. A seventh bank with ROE 14% gets a predicted P/B of −1.67 + 0.269×14 = 2.10×. If it trades at 1.6×, it's ~24% below the line.
- The residual is a question, and only a question. "24% below the line" means either mispriced or the market knows something outside your regression: asset quality, governance, a pending capital raise, promoter pledge. For banks the omitted variable is almost always the truth about the loan book, which Phase 5's GNPA/PCR toolkit digs into. The regression tells you where to dig, and never that you've found gold.
- Respect the limits. Six points is a teaching device. Even sector-wide fits describe today's pricing, and intrinsic value is a separate question. A regression run in a bubble prices you relative to the bubble, which is the 1999 problem again. And multicollinearity lurks when you add drivers. Growth and ROE travel together. Keep sector regressions to one or two fundamentals you can defend.
The same tool works elsewhere: EV/EBITDA against ROIC (the value-creation plot with a fitted line), P/E against expected growth, EV/Sales against margin. Damodaran runs these market-wide each January and posts them. Your mini-project runs one by hand.
The full comps build: end to end, twice
Everything above compresses into a repeatable ten-step build. Run it, then read two complete tables, one Indian sector and one US sector.
The ten steps.
- State the question. Write down "Is X cheap relative to its true peers, and if so, is the discount earned or a mispricing?" Then the table serves a question instead of becoming one more spreadsheet.
- Select 5 to 8 comparables by business model, and document each admission and rejection.
- Build the numerators. Start from diluted market cap, then build EV line by line: debt, leases, minority interest, preferred, minus cash and non-operating listed stakes. Use one EV convention for the whole table (lease-inclusive or -exclusive).
- Clean the denominators. Take one-offs out in both directions and expense SBC. Align R&D-capitalization across the set. Then match the lease convention to step 3 and the associates to your EV, and use diluted share counts.
- Keep two time bases and never mix them. Build a trailing block and a forward block, and name the forward source (consensus / guidance / your estimate).
- Add the fundamentals columns. These are non-negotiable: revenue growth (forward or 3 to 5y CAGR), EBIT margin, ROCE/ROIC (or ROE for financials), leverage (net debt/EBITDA). A multiples table without drivers is a ranking of noise.
- Aggregate. Use the median as the headline and the harmonic mean as the cross-check. Flag outliers with a reason, and name the loss-maker exclusions.
- Position the target against the aggregates on each multiple.
- Attribute every gap. For each premium or discount versus the median, ask which driver explains it. Whatever's left unexplained is the residual, and it's the only part that's potentially alpha.
- Write the one-paragraph finding, and triangulate against the DCF and reverse DCF before any conclusion graduates from "pricing observation" to "opinion."
Build 1: Indian IT services (₹ crore; illustrative, modeled on ~FY25 scale, pull actual filings and prices; teaching specimens, not recommendations)
Indian IT is P/E country, which is the lens the IT services module gives it. The businesses are asset-light and cash-generative with high payouts, so earnings are close to FCFE. EV/EBIT rides alongside because the big cash piles distort P/E comparisons. A rupee of idle cash earns treasury returns, nowhere near 20% ROCE. Net cash here nets treasury investments against borrowings and lease liabilities. EBIT is post-lease-depreciation, which keeps the lease convention consistent.
| Company | Mkt cap | Net cash | EV | PAT | EBIT | Trailing P/E | EV/EBIT | Fwd P/E (FY26E) | CC rev growth | EBIT margin | ROCE |
|---|---|---|---|---|---|---|---|---|---|---|---|
| TCS | 12,50,000 | 48,000 | 12,02,000 | 48,500 | 62,500 | 25.8× | 19.2× | 24.1× | ~4% | 24.5% | ~64% |
| Infosys | 6,50,000 | 35,000 | 6,15,000 | 27,000 | 34,300 | 24.1× | 17.9× | 22.3× | ~4.5% | 21.0% | ~40% |
| HCLTech | 4,70,000 | 25,000 | 4,45,000 | 17,400 | 21,600 | 27.0× | 20.6× | 25.0× | ~4.7% | 18.5% | ~35% |
| Wipro | 2,60,000 | 35,000 | 2,25,000 | 13,100 | 15,100 | 19.8× | 14.9× | 19.4× | ~0% | 17.0% | ~22% |
| Tech Mahindra | 1,55,000 | 7,000 | 1,48,000 | 4,200 | 5,150 | 36.9× | 28.7× | 29.5× | ~1% | 9.7% | ~24% |
| LTIMindtree | 1,55,000 | 9,000 | 1,46,000 | 4,600 | 5,500 | 33.7× | 26.5× | 30.1× | ~5% | 14.5% | ~30% |
| Median | 26.4× | 19.9× | 24.6× | ||||||||
| Harmonic mean | 26.7× |
Now read it. The reading is the analysis.
- The ladder mostly tracks the drivers. TCS and HCLTech sit above Infosys on P/E. TCS has the sector's best margin and ROCE, and HCLTech has steady growth plus high payout. Wipro's 20% discount to the median is earned, with flat revenue and the weakest margin and ROCE of the large caps. Cheapest ≠ cheap. Rank column 7 alone and you buy the worst business.
- Tech Mahindra is the depressed-denominator artifact, live. Optically it's the most expensive name, at 36.9× trailing. But it's mid-turnaround, and its 9.7% EBIT margin is roughly half the peer set's. So normalize it. At a 14% margin on ₹53,000 crore of revenue, EBIT ≈ ₹7,400 crore and PAT ≈ ₹6,300 crore, which gives a normalized P/E near 25×, in other words the median. The market isn't paying 37× for current earnings. It's paying the market multiple for recovered earnings. Whether that recovery arrives is the research question. But "most expensive stock in the sector" was never the right description. The same arithmetic, run in reverse, explains why cyclicals look cheapest at the peak.
- LTIMindtree carries a growth-and-scarcity premium, as the only large mid-cap with mid-single-digit growth. Look how thin the justification is. Two points of growth buying seven turns of P/E is a duration bet, and the growth-duration math for India's premium names applies to IT too.
- The residual question this table produces is HCLTech at 27× versus Infosys at 24×, with similar growth. Is HCL's higher payout worth three turns, or is Infosys the mild residual-cheap? That is a comps table's real output: one sharp, falsifiable question.
- A cross-border footnote. Accenture (US-listed, ~USD terms) runs the same business model, and comparing it to TCS is one of the rare legitimate cross-border comps, once you adjust for the rate regime (USD r ~8.5% vs INR ~11.5%) and growth. So don't casually read illustrative multiples such as "Accenture 28×, TCS 26×" as a discount. The currency is different, and so are r and g. Cross-border comps need the driver algebra. A shared spreadsheet row won't do.
Build 2: US beverages ($bn; illustrative, modeled on ~CY24/25 scale, pull the 10-Ks; teaching specimens, not recommendations)
This is consumer-staples habitat, where P/E and EV/EBITDA both work. Margins are stable, and D&A is real without being crushing. Watch the EV mechanics. The set runs from big net debt (KDP) to big net cash (Monster), which is the situation where EV multiples prove their worth over P/E.
| Company | Mkt cap | Net debt | EV | Net income | EBITDA | P/E | EV/EBITDA | Rev growth | ROIC | Net debt/EBITDA |
|---|---|---|---|---|---|---|---|---|---|---|
| Coca-Cola | 300 | 25 | 325 | 10.6 | 15.5 | 28.3× | 21.0× | ~5% | ~22% | 1.6× |
| PepsiCo | 200 | 35 | 235 | 9.5 | 16.0 | 21.1× | 14.7× | ~3% | ~15% | 2.2× |
| Keurig Dr Pepper | 45 | 12.5 | 57.5 | 2.2 | 4.2 | 20.5× | 13.7× | ~3% | ~10% | 3.0× |
| Monster | 55 | (3) | 52 | 1.6 | 2.1 | 34.4× | 24.8× | ~10% | ~25% | net cash |
| Celsius | 9 | (0.9) | 8.1 | 0.19 | 0.25 | 47.4× | 32.4× | volatile | high, young | net cash |
| Median | 28.3× | 21.0× | ||||||||
| Harmonic mean | 27.5× |
Reading the table.
- The EV column re-ranks the P/E column. Take KO against PEP. On P/E the gap is seven turns, and on EV/EBITDA it's six. Now you can see why. PEP carries more debt and lower ROIC, because bottling and snacks are heavier businesses than concentrate. The gap is mostly driver and partly residual, and the residual is the actual debate: is KO's concentrate model worth 21× EBITDA in a 3 to 5% growth world?
- KDP is the "cheapest" name, and the table explains why. It has the slowest growth, ROIC of ~10% and 3× leverage. The low ROIC comes from a goodwill-heavy balance sheet left by its merger history, so the with-and-without-goodwill ROIC distinction from the returns-on-capital work matters here. Cheap-for-a-reason is the base case. Mispricing is the claim that needs evidence.
- Monster shows quality being priced. Net cash, ~25% ROIC and double-digit growth earn it 25× EBITDA. On the enterprise-multiple algebra, with d small and ROIC high, a premium multiple is justified. Whether 25× or 19× is the right premium is what your two-stage DCF is for.
- Celsius is your outlier-handling drill. It's a young, volatile grower whose consensus estimates swing every quarter. Include it in the table, because it's a true business-model comp, but exclude or cap it in the aggregates. This table's median already does that structurally. The harmonic mean shows how little one small outlier moves an aggregate built to resist it.
- This table produces no urgent residual question, because it mostly prices its drivers. That's a finding too: the sector is efficiently ranked internally, and alpha here needs a variant view on a driver. Re-ranking the names won't get you there.