Projections are using estimates while today’s price statistics load (a beta of 1 and volatility from the 52-week range). They update by themselves in a moment.
How basket projections are worked out
Every basket page has a Projections switch. With it on, the basket and its stocks are projected 1 or 2 years ahead from today, in a Bear, Base and Bull case. This page sets out the whole method, the evidence behind it, and works it through for any stock using the same code the basket pages use.
1. What a projection is
Base is the price return the market prices in for the stock’s risk, adjusted slightly for its fundamentals. Bear and Bull are the range 8 in 10 one-year outcomes fall in for a stock as volatile as this one has been over the past year. Base is an average outcome: the typical (median) outcome sits below it, because a volatile stock’s typical year is below its average one.
It uses the 10-year government bond yield, India’s equity risk premium, two years of the stock’s and the Nifty 50’s daily prices, and figures shown elsewhere on NextResearch: five fiscal years of revenue and net profit, and today’s price, market cap, P/E, dividend yield and 52-week range from our last data update, plus its home industry’s median net margin.
It is a model projection, not a forecast, a target price, a ranking of stocks or a recommendation. Base differs between stocks mostly because their betas differ, so a higher Base is not a better stock (section 10). The model doesn’t know about orders, management guidance, news or the market’s mood, and it is a price return: no dividends, costs or taxes.
2. Which stocks are projected
A stock needs at least 3 fiscal years in a row of both revenue and net profit, ending at its latest reported year, with revenue in that year; at least 3 years of trading (a 3-year price change: a recent listing’s earlier results are from before it listed); and a price and market cap in our last data update. Anything less and the stock is left out: its share of the basket is spread over the projected stocks in proportion to their own weights, so the weights still total 100%. A short note names the stocks left out and why; their rows in the table say so too. Leaving a stock out changes only the projection, never the backtest.
A year that looks like a one-off (a single loss between profits, or a profit swing far bigger than the change in sales, as on the rule-based baskets) is left out of the margins when at least two other years remain.
3. The market inputs
Two inputs are the same for every stock and are set by hand when they move materially.
| Input | Value | As of | Source |
|---|---|---|---|
| rf: India 10-year G-sec yield | 7.47% | 23 Oct 2026 | Trading Economics, India 10-year benchmark close |
| ERP: India’s equity risk premium | 7.08% | Jan 2026 | Aswath Damodaran, country default spreads and risk premiums (January 2026 update): mature-market premium 4.23% plus India’s country risk premium 2.85% (Moody’s Baa3) |
rf is updated after a big move in the G-sec yield and the ERP after each of Damodaran’s January and July updates. Strictly, Damodaran adds his country premium to a default-free rate, and the G-sec yield already carries India’s default spread (about 1.9 points), so rf + ERP counts that spread twice. It raises every stock’s Base by the same amount for a given beta; it never changes the width of the range.
4. Step by step
a. Beta
The slope of the stock’s weekly returns (last close of each Monday-to-Sunday week) on the Nifty 50’s over the last 2 years, by least squares; at least 52 weekly returns are needed. Measured betas overshoot, so it is pulled a third of the way toward 1 (Blume’s adjustment). With no usable price history the beta is 1.
beta = 0.67 × measured beta + 0.33
b. Volatility σ
Realised over the last year from daily closes (at least 40 daily returns), annualised, and never counted below 20% a year. In the first visits after the price statistics are refreshed, a stock whose statistics aren’t loaded yet has σ estimated from its 52-week range (Parkinson’s estimate) and a beta of 1; the Assumptions tab says so.
σ = max(20%, √(250 × mean of squared daily log returns))
while loading: σ = max(20%, ln(52-week high ÷ 52-week low) ÷ √(8/π))
c. Market return
The return CAPM says the market prices in for that beta, less the dividend yield, because this is a price projection and CAPM’s figure includes dividends. A stock with a beta of 1 and no dividend gets rf + ERP, 14.6% a year.
market return = rf + beta × ERP − dividend yield
d. Fundamentals score
One year’s return on the business with today’s P/E held: no move toward a past or industry multiple. Only for a stock with a positive P/E, a profit in its latest year and a positive usual margin.
- Growth. Each year’s revenue growth over the years used. The usual rate is the lowest of the median year, the compound rate over the years (FY22 was a low post-Covid base for many companies, which flatters a rate measured from it), and the average of the median and the latest year (so a recent slowdown counts). Fast growth rarely lasts, so it is faded 55% of the way toward 10% a year, about India’s nominal GDP growth, and kept between −25% and +40%.
- Margin. Net profit as a share of revenue each year used (each kept between −50% and +60%; a one-off year left out). Its aim is the average of its own median margin and its home industry’s median (the latest year’s, over every listed company the industry maps); with no positive industry median, its own. Today’s margin moves a third of the way toward the aim in a year, and by no more than 15% of itself, so a thin margin can’t double in the model.
usual = lowest of (median year, compound rate, (median + latest year) ÷ 2)
growth = usual + 0.55 × (10% − usual), within −25% … +40%
aim = (own median margin + industry median margin) ÷ 2
margin a year on = today + (aim − today) ÷ 3
margin factor = margin a year on ÷ today, within 1 ÷ 1.15 … 1.15
score = (1 + growth) × margin factor − 1
e. Standardised score z and the tilt
The score is measured against the scores of every covered listed company that has one (246 today): z is how many standard deviations it sits above or below their median, kept within ±3. The tilt follows Grinold and Kahn: a forecast is the signal’s skill (its information coefficient, IC) times the stock’s volatility times its score. With IC at 0.05, a weak signal barely moves the projection: at σ 35% the tilt is at most about ±5.2 points.
z = (score − median score) ÷ standard deviation of scores, within ±3
tilt = IC × σ × z, IC = 0.05
f. Loss-makers
A stock with a loss in its latest year, no positive P/E or no positive usual margin has no fundamentals score: z and the tilt are 0, and it is projected on the market return and its own volatility alone. Marked “market” in the Assumptions tab.
g. Base
A year: the market return plus the tilt. Two years: the market return compounded over both years, with the tilt once, since a one-year signal isn’t carried into the second year.
Base, 1 year = market return + tilt
Base, 2 years = (1 + market return) × (1 + market return + tilt) − 1
h. Bear and Bull
The 10th and 90th percentiles of a lognormal outcome whose average is Base and whose spread is the stock’s σ over h years (1 or 2). The middle of that range, the median, is (1 + Base) × e^(−σ²h/2) − 1, below Base. The return itself has no cap (the previous model’s −60% … +80% a year bound is gone); only the inputs above have limits.
Bear = (1 + Base) × e^(−σ²h/2 − 1.2816 × σ × √h) − 1
Bull = (1 + Base) × e^(−σ²h/2 + 1.2816 × σ × √h) − 1
5. Bear, Base and Bull
| Case | What it is | Formula, h years |
|---|---|---|
| Bear | 1 in 10 outcomes are below it | (1 + Base) e^(−σ²h/2 − 1.28σ√h) − 1 |
| Base | the average outcome: market return plus tilt | 1 year: market + tilt · 2 years: (1 + market) × (1 + market + tilt) − 1 |
| Bull | 1 in 10 outcomes are above it | (1 + Base) e^(−σ²h/2 + 1.28σ√h) − 1 |
All three come from the same Base and σ, so Bear is always below Base and Bull above. A more volatile stock gets a wider range, and over 2 years the range widens with the square root of time.
6. The options
- Next 1Y / 2Y: how far ahead. Over 2 years Base compounds the market return with the tilt once, and the range widens with √2.
- Case: Bear, Base or Bull, as above. The cards also show the other two cases beside the one picked.
- Weighting: Equal, M-cap and Custom set each stock’s share exactly as in the backtest; the projection follows a change at once. Custom weights that don’t total 100% keep the last ones that did.
- Rebalancing doesn’t apply: a projection is bought today and held.
- Chart lines, Your picks, Compare with: as in the backtest. Each ticked stock is drawn from 0% today to its own return; Your picks is the ticked stocks as their own basket; compared industry baskets are projected the same way (at equal weight when this basket is custom). Indices aren’t projected.
7. From stocks to the basket
The basket is bought today at its target weights (after spreading any left-out stock’s share) and held. Its return in each case is the weighted sum of its stocks’ returns in that case. Each stock’s points added is its weight times its return, so they add up to the basket’s return. Its end weight is where its share would be if held.
basket return = Σ weight × return · points added = weight × return × 100 · end weight = weight × (1 + return) ÷ (1 + basket return)
So the basket’s Bear and Bull assume every stock at its own 10th (or 90th) percentile at once. Stocks don’t all have a bad year together, so this is wider than the basket’s own range; the likely range below, from the basket’s own volatility, is the basket-level range.
On the chart, each line grows smoothly from 0% today to its return, one point a week: value at week k of n = (1 + return)^(k ÷ n) − 1.
8. Likely range, drawdown and chance of a loss
A smooth line never falls, so the risk figures come from 1,000 simulated weekly paths. Their average outcome is the basket’s Base return whichever case is chosen (so the median path ends a little below it, as each stock’s range is centred): Bear and Bull are already the basket’s two extremes, and a simulation around Bear would stack a bad year on a bad year. Each path swings as much as the basket did over the past year (its volatility, from its 1-year backtest). The same settings always draw the same paths.
- Likely range: where 8 in 10 paths are each week (10th to 90th percentile); the dotted lines on the chart.
- Max drawdown: the deepest fall from a high on the typical path (the median of every path’s worst fall).
- Bad drawdown: the fall that 1 in 10 paths reach or pass.
- Chance of loss: the share of paths that end below today. 10% fall: the share that fall 10% or more from a high at some point.
9. The statistics
- Projected return and Per year (compounded, for 2 years); Bear and Bull cases beside it.
- Volatility: the basket’s swings over the past year, a yearly figure; it sets how widely the paths spread.
- Return / risk: the projected return a year divided by that volatility.
- Top contributor: the stock adding the most points; Stocks projected: how many, and how many were left out.
10. What changed, and the evidence
The first model moved each stock’s P/E part of the way toward its own or its industry’s usual level, and set Bear and Bull from fixed scenario shifts in growth, margin and multiple. Tested out of sample, its range was far too narrow and the multiple reversion leaned toward stocks that had just fallen. This model changes four things:
- Base is anchored on the market (rf + beta × ERP − dividend yield) instead of a P/E reverting to a past or industry level, so the “Exit at own or industry P/E” option is gone.
- Fundamentals are a small tilt with today’s P/E held, sized at an IC of 0.05.
- Bear and Bull come from the stock’s own 1-year volatility, centred on the lognormal median, instead of scenario shifts. The return itself has no cap.
- Loss-makers get the market return and their own volatility instead of a price-to-sales reversion.
We rebuilt every input as it stood on three start dates and compared each model’s 1-year projection with what each stock actually did (price only). “Inside” is the share of actual outcomes between Bear and Bull; the target is 80%. The rank correlation (Spearman) measures whether a higher Base went with a higher actual return.
| Period | Nifty 50 | Stocks | Inside, first model | Inside, this model | Base rank corr. | Score rank corr. |
|---|---|---|---|---|---|---|
| 24 Oct 2024 → 24 Oct 2025 | +5.7% | 241 | 47% | 91% | +0.01 | +0.09 |
| 24 Apr 2025 → 24 Apr 2026 | −1.4% | 248 | 48% | 90% | +0.01 | +0.09 |
| 24 Oct 2025 → 23 Oct 2026 | −12.4% | 259 | 33% | 81% | −0.11 | +0.01 |
- The range now fits. Bear–Bull held 91%, 90% and 81% of outcomes (87% pooled) against the first model’s 47%, 48% and 33%. It held up in the year the Nifty fell 12%, and is a little wide in calmer years; it was not narrowed to fit these periods.
- Base is not a stock-picking signal. Its rank correlation with outcomes was +0.01, +0.01 and −0.11. Across stocks it mostly reflects beta, so it follows the market’s direction. The fundamentals score alone was +0.09, +0.09 and +0.01: positive in every period, never statistically significant, which is why its weight is small.
- The level still misses by the market’s year. No model of this kind foresees whether the market rises or falls; the median stock’s Base was typically well above its actual return over these years.
- The evidence is thin. The middle period overlaps the other two by six months, so there are two independent years, both in one stretch for Indian small and mid caps. No parameter was tuned on the results. The 2-year horizon hasn’t been tested.
11. What it doesn’t do
- It doesn’t foresee the market’s year: every Base assumes the market earns its usual premium, and it often doesn’t.
- It doesn’t rank stocks. A higher Base mostly means a higher beta, which means more risk, not a better stock.
- The range assumes the past year’s volatility carries on and returns are lognormal; real markets have fatter tails and calm years before sharp falls. Over 2 years it assumes years are independent (√2 scaling), which is untested.
- Beta and volatility come from past prices; a business that has changed (a merger, a new segment) may be priced differently from now on.
- The fundamentals score reads only five fiscal years and today’s figures; orders, guidance and news are outside it. A business at a turning point will be wrong in the model.
- rf and the ERP are set by hand and dated above; rf + ERP counts India’s default spread twice (section 3).
- Price change only: no dividends, brokerage, taxes or slippage.
Model projection from market pricing, past prices and reported financials, not a forecast or a recommendation.
12. Worked example
Mahindra & Mahindra: profitable, so its fundamentals tilt the market return, using 5 years of results (FY22-FY26), against its home industry, Electric 4-Wheeler. Figures from our data update of 30 Oct 2026; price statistics not loaded yet.
Inputs
| Input | Value |
|---|---|
| rf, 10-year G-sec (23 Oct 2026) | 7.47% |
| ERP, India (Jan 2026) | 7.08% |
| Measured beta (2Y weekly vs Nifty 50) | none |
| 52-week low / high | 2743 / 3840 |
| Dividend yield | 1.16% |
| P/E today | 18.4× |
| Home industry median net margin | 6.34% |
1. Beta
no measured beta (too little price history, or not loaded yet) → beta = 1
2. Volatility σ
from the 52-week range (prices not loaded yet): ln(3840 ÷ 2743) ÷ 1.596 = 21.08%
σ = max(20%, 21.08%) = 21.08%
3. Market return
rf + beta × ERP − dividend yield = 7.47% + 1.000 × 7.08% − 1.16% = 13.39%
4. Fundamentals score
| Year | Revenue, Rs Cr | Net profit, Rs Cr | Net margin | Revenue growth |
|---|---|---|---|---|
| FY22 | 90,171 | 7,253 | 8.04% | — |
| FY23 | 1,21,362 | 11,374 | 9.37% | +34.6% |
| FY24 | 1,39,078 | 12,270 | 8.82% | +14.6% |
| FY25 | 1,59,211 | 14,073 | 8.84% | +14.5% |
| FY26 | 1,98,639 | 18,622 | 9.37% | +24.8% |
median year = +19.68% · compound rate = +21.83% · (median + latest) ÷ 2 = +22.22%
usual = lowest = +19.68%
growth = 19.68% + 0.55 × (10% − 19.68%) = +14.36%
margins used: FY22 8.04% · FY23 9.37% · FY24 8.82% · FY25 8.84% · FY26 9.37%
own median = 8.84% · industry median = 6.34%
aim = (8.84% + 6.34%) ÷ 2 = 7.59%
margin a year on = 9.37% + (7.59% − 9.37%) ÷ 3 = 8.78%
margin factor = 8.78% ÷ 9.37% = 0.9366
score = 1.1436 × 0.9366 − 1 = +7.11%
5. z and the tilt
z = (7.11% − 11.86%) ÷ 12.10% = −0.39
tilt = 0.05 × 21.08% × −0.39 = −0.41%
Median and standard deviation over the 246 covered listed companies that have a fundamentals score.
6. Base
1 year: 13.39% − 0.41% = +12.98%
2 years: 1.1339 × (1.1339 − 0.0041) − 1 = +28.10%
7. Bear and Bull
1 year: median = 1.1298 × e^(−21.08%² × 1 ÷ 2) − 1 = +10.49%; spread = 1.2816 × 21.08% × √1 = 0.2702
Bear = 1.1049 × e^(−0.2702) − 1 = −15.67% · Bull = 1.1049 × e^(0.2702) − 1 = +44.77%
2 years: median = 1.2810 × e^(−21.08%² × 2 ÷ 2) − 1 = +22.53%; spread = 1.2816 × 21.08% × √2 = 0.3821
Bear = 1.2253 × e^(−0.3821) − 1 = −16.38% · Bull = 1.2253 × e^(0.3821) − 1 = +79.56%
Every case
| Horizon | Bear | Base | Bull | Median |
|---|---|---|---|---|
| Next 1 year | −15.7% | +13.0% | +44.8% | +10.5% |
| Next 2 years | −16.4% | +28.1% | +79.6% | +22.5% |
The same figures the basket pages use for this stock. Each step is shown rounded; the sums use full precision, so a step worked by hand from the rounded figures can differ in the last digit. Model projection from market pricing, past prices and reported financials, not a forecast or a recommendation.