Expectations Calculator v2

Inputs

1. What are you asking?
Holds your growth, reinvestment, tax and discounting assumptions fixed and solves the Year-H operating margin at which model enterprise value equals today's enterprise value.
Holds your margin path, reinvestment, tax and discounting assumptions fixed and solves the constant revenue CAGR at which model enterprise value equals today's enterprise value.
Prices the path you specify. Nothing is solved, so this result is never “market-implied” and must not be labelled a reverse-DCF.
Applies to every statement amount and to share counts, exactly as a filing's “in millions, except per share” header does. Price per share is never scaled.
2. Market value and capital structure
The current count — a cover-page or subsequent-events figure. Not the weighted-average denominator used for diluted earnings per share, which is an average over a past period and is systematically wrong for any filer that bought back or issued stock during it.
Optional. Leave blank to reuse the shares above. Set it when the value-per-share bridge should run on a diluted or fully-converted count.
3. Operating fundamentals
Only needed to measure genuine trailing-twelve-month growth. Without it, the honest interim measure is year-to-date against the same period last year — which is a different quantity and is labelled as such throughout.
Feeds the invested-capital diagnostic only. Nothing in this model funds growth out of a historical capital base.
4. Tax
The rate that would apply to taxable operating profit with no loss carry-forward in force — a statutory or normalised rate, not the effective or cash rate a sheltered filing reports. Any carry-forward is applied separately by the model, below.
Blank = hold the rate above. Same basis: taxable operating profit, before any shield.
Pre-tax: the taxable loss available to offset future taxable profit, in the units selected above. The model absorbs it against taxable operating profit one-for-one, so its cash value is the amount used × the tax rate — not the balance itself. Shields profit until it is used up, inside the forecast and, once past the horizon, as a finite tax asset valued on its own. It is never a permanent exemption.
Blank = the terminal rate. Reinvestment is sized on operating profit at this ONE rate, so a changing tax rate or a loss carry-forward running out cannot read as operating growth to be funded — or as capital being released. Cash tax, with every shield, still flows into free cash flow untouched.
A loss does not create cash. The default recognises no benefit at all; the carry-forward option shields later taxable profit until the accumulated balance is used up.
Getting the carry-forward figure right (and what is not modelled)

Two figures are not substitutes and are wrong by roughly a factor of the tax rate if used:

  • The deferred-tax asset carried on the balance sheet is already tax-effected — it is the carry-forward multiplied by a tax rate, and is also net of any valuation allowance. Entering it shields roughly a fifth of what it should.
  • The accumulated deficit in equity is a book number. It includes permanent differences, non-deductible charges and items that never reduced taxable income at all. It is not a tax attribute.

Take the pre-tax federal (or primary-jurisdiction) operating loss carryforward from the income-tax note, not from the balance sheet.

The tax rates you enter apply to taxable operating profit, before this carry-forward is used. The model applies the shield itself. Do not copy an observed near-zero effective or cash tax rate because the carry-forward is currently sheltering income — that counts the same relief twice, once in the rate and again in the shield, and the understated rate also propagates into the terminal value if the terminal rate is left blank. Enter the rate that would apply with no shield in force.

Not modelled. The balance is treated as a single pool, usable in full against operating profit as it arises. Expiry dates, annual utilisation caps (including the post-2017 US limit on the share of taxable income a carry-forward may offset), separation by jurisdiction and by entity, and change-of-control restrictions such as IRC §382 after an ownership change are all ignored. Every one of them reduces what the balance is worth, so the shield computed here is an upper bound. For a filer near an ownership change, or with losses stranded in a jurisdiction that earns nothing, treat it as materially overstated.

5. Discounting
6. Revenue growth
This mode solves a constant revenue CAGR held across the whole explicit horizon, so the growth assumption is not yours to set here.
These are three different numbers. The tool computes and shows all three it can measure, and uses only the one you pick.
7. Operating margin
This mode solves the Year-H EBIT margin and interpolates linearly from the baseline margin to it, so the margin path is not yours to set here.
8. Reinvestment
Exactly one method funds the path. There is no separate “reinvestment fade”: reducing reinvestment without touching revenue or profit would mean the same operating path was funded by two different amounts of capital. If you want less capital intensity later, raise the incremental return or enter the dollars directly.
Each explicit year reinvests this share of that year's operating NOPAT — EBIT at the normalised tax rate, the same basis the other closures use, so the tax path and any loss carry-forward cannot move the capital plan. Zero means no reinvestment; above 1 means investing more than the year earns (a build-out). A loss year produces negative modelled reinvestment and takes the same floor-at-zero treatment as the other methods. The terminal rate below is entered separately — the build-out share and the steady-state share are different claims.
A forward assumption about capital not yet deployed — distinct from the historical aggregate return shown in the diagnostics.
Optional here. Enter it and the tool compares it against the incremental return your reinvestment plan actually implies, and reports the gap.
Off by default: a year in which profit falls produces negative modelled reinvestment, and booking that as cash assumes the business genuinely liquidates capital as it shrinks. Off, those years are floored at zero and flagged.
Must exceed terminal growth, or perpetual growth consumes every unit of terminal profit.
The rate and terminal growth together imply a perpetual return on new capital — terminal growth ÷ this rate — which is reported in the audit. Positive perpetual growth therefore needs a positive rate: zero is accepted only when terminal growth is zero or negative, because growth that costs nothing forever is an infinite return on capital.
9. Search bounds
The margin bounds apply in every mode: the growth × required-margin table below re-solves a margin per row whatever mode you are in, so the bounds are part of that table's answer — and they travel in the link, in every mode, rather than being taken from whatever this page's defaults happen to be the day someone re-opens it. They are also validated in every mode: the highest margin searched must exceed the lowest and must stay below 100% of revenue, since operating costs cannot be negative. An impossible window is refused outright rather than producing a headline above a table of “required margins” of 200% and more.
If the price cannot be reconciled anywhere inside these bounds, the tool says so and reports what the model produced at the bound. It never returns a bound as though it were an answer.

Result

Mode
Solver status
Enterprise value (target)
Model enterprise value
Value per share
Terminal share of value
Growth versus required margin

Each row holds a different constant revenue CAGR for the whole explicit horizon and re-solves the Year-H EBIT margin needed to reconcile the same enterprise value. Every row is equally consistent with today's price — which is exactly why one solved figure is a conditional requirement, not a market forecast.

Revenue CAGR Required Year-H EBIT margin Note

Bridge to enterprise value
Price per share
Shares outstanding
Equity market value
+ Total debt
+ Minority interest
− Cash and equivalents
− Non-operating assets
= Enterprise value (target)
Baseline operating anchors
Baseline period
Baseline revenue
Baseline operating income (EBIT)
Baseline EBIT margin
NOPAT (cash tax — used for free cash flow)
NOPAT (operating — used for the capital closure)
Tax rate on operating profit (before NOL)
Terminal tax rate (before NOL)
Normalised rate (capital closure)
Tax treatment of losses
Revenue growth measures

Three distinct measures of revenue growth. Only the one named as the measure used feeds the revenue path; the EBIT margin path is a separate assumption, shown under “Forecast paths” below.

Annual revenue growth (latest FY vs prior FY)
Year-to-date revenue growth vs the same period last year
Trailing-twelve-month revenue growth vs the TTM a year earlier
Measure used for the revenue path
Capital diagnostics
Invested capital (base year)
Source
Historical aggregate ROIC (diagnostic — never funds growth)
Reinvestment method (explicit years)
Forward incremental ROIC assumed (ROIIC)
Sales-to-capital ratio
Reinvestment rate (share of operating NOPAT)
Cumulative implied incremental ROIC (from the plan)
Consistency gap (implied − assumed reference)
Discounting
WACC
Terminal growth
Explicit horizon (H)
Convention
Forecast paths and the year-by-year table
Revenue growth path
EBIT margin path

Per year: revenue grows at the year's rate; EBIT = revenue × the year's margin; cash-tax NOPAT = EBIT less tax at the year's rate (after any NOL shield — the shielded amount is its own column); operating NOPAT = EBIT × (1 − the normalised rate); reinvestment comes from the selected method (the formula column names it); FCF = cash-tax NOPAT − reinvestment; PV of FCF = FCF ÷ the discount divisor.

YrRevenue growthRevenueEBIT marginEBIT Tax rateNOL shieldedNOPAT (cash tax)NOPAT (operating) ReinvestmentFormula used Implied ROIICFCFDiscount divisorPV of FCF
Terminal

The perpetuity is built, not extrapolated: terminal revenue × the Year-H margin, taxed at the terminal rate. Growing Year-H NOPAT instead would carry whatever tax position Year H happened to be in — a loss carry-forward still in force, a transitional rate — into perpetuity.

Terminal revenue
EBIT margin (held from year H)
Terminal EBIT
Tax at the terminal rate
Terminal NOPAT
Terminal reinvestment rate
Rate from
Implied return on new capital, in perpetuity
Terminal reinvestment
Terminal free cash flow
Terminal value at the horizon
Present value of the terminal value
Present value of the explicit years
Terminal share of model value
Loss carry-forward remaining at the horizon

Whatever is left of the accumulated losses at the end of the explicit window is a finite tax asset: its remaining shields are scheduled against post-horizon profit until the balance is used up, discounted, and added as their own component of value. The operating perpetuity above pays the full terminal rate.

Balance remaining at year H
Years of shields after the horizon
Present value of those shields
Balance never absorbed (worth nothing)
Enterprise value to per share
Model enterprise value
Model EV − market EV (residual)
Equity value
Shares used for the bridge
Value per share
Versus the entered price
Solver
Quantity solved
Status
Solved value
Bounds searched
Direction over the interval
Iterations
Residual (model EV − target EV)
Residual as a share of the target
At the edge of the searched window

Reported when the model moves one way across the bounds and never reaches the market's enterprise value: no solution can exist inside the window, and the model was still evaluated at both ends. This is how far it remains from the market there — the figure a write-up needs in order to cite a “no solution in this window” finding as evidence rather than as a shrug. It is not reported for a non-monotone objective, where the ends say nothing about what happens between them.

Lowest assumption searched
Model enterprise value there
Highest assumption searched
Model enterprise value there
Market enterprise value (target)
Closest bound
Assumption at the closest bound
Model enterprise value at the closest bound
Shortfall / overshoot vs the target
…as a share of the target
Is the assumption identifiable?

Reported when model enterprise value rises and falls across the bounds — or does not move at all. Price then does not pin the solved assumption down, and the two ends of the window are not evidence that no solution exists: the sampled path may cross the market's value several times in between. What the probe can honestly say is the range it covered, where it crossed, which sampled assumptions reconciled the price outright, and that a finite sample settles no root count.

A crossing and a sampled hit are different evidence and are counted separately: a crossing says the model passed through the market's value somewhere between two samples, while a hit is a sampled assumption the solver itself would have accepted (residual within tolerance). Either one establishes that at least one solution exists in the window; neither establishes how many.

Assumption probed
Window probed
Samples taken
Lowest model enterprise value
…at
Highest model enterprise value
…at
Market enterprise value (target)
Sampled range crosses the target?
Sampled intervals with a crossing
Where
Sampled assumptions reconciling the price
Where
Residual tolerance
Convergence

Reported when a solution was bracketed inside the window but the search could not bring the residual inside tolerance. The finding is about the search, so it is the final bracket, the last value tried and the residual that are shown — the window it started in is not the result.

Final bracket
Last candidate
Model enterprise value there
Residual
Residual as a share of the target
Tolerance
Iterations
Scenario identity
Schema version (this build)
Model version (this build)
Schema version (from the link)
Model version (from the link)
Filing mode
Currency
Unit scale
Valuation date
Fundamentals date
Label
Carries the schema version, the model version, the mode and every applicable input — including the margin search bounds the sensitivity table needs, so that table cannot move when this page's defaults do. Opened or replicated against this same model version, it reproduces the figures above exactly; opened against a build that no longer carries this engine, it declines to compute and says so. The link only asks to run on sight (autorun=1) when the scenario actually validates — an incomplete one pre-fills the form instead.
How this calculator works
The three modes
  • Reverse margin. Growth, reinvestment, tax and discounting are fixed; the Year-H EBIT margin is solved so that model enterprise value equals today's. This is a reverse-DCF.
  • Reverse growth. The margin path is fixed; a constant revenue CAGR is solved instead. Also a reverse-DCF.
  • Forward. Everything is specified and the model simply prices it. Nothing is solved, so this output is not market-implied and is never described as a reverse-DCF.

A solved number answers “what does this price require, given everything else I entered?” It does not answer “what does the market believe?” — countless combinations of growth and margin reconcile the same price, which is what the growth-versus-margin table shows.

Reinvestment

Growth is funded by exactly one method per run:

  • Incremental ROIC. Reinvestment = the change in operating NOPAT ÷ the return you expect on newly deployed capital. Operating NOPAT is EBIT at one normalised tax rate, so a tax rate that drifts across the horizon — or a loss carry-forward running out — cannot read as operating growth that has to be funded, or as operating decline that releases capital. Cash tax, with every shield, still flows into free cash flow untouched; the year table shows both. This is a forward assumption; the historical aggregate return shown in the diagnostics is a separate quantity and never funds the path.
  • Sales-to-capital. Reinvestment = ΔRevenue ÷ the ratio. Useful when a business is better described by the capital a unit of revenue needs than by the return capital earns.
  • Share of NOPAT. Reinvestment = operating NOPAT × a rate you set — the classic reinvestment-rate framing, and the explicit-year analogue of the terminal rate. The rate applies to operating NOPAT (EBIT at the normalised tax rate), so tax timing cannot move the capital plan. Zero means no reinvestment; a rate above 1 is a build-out that consumes more than the year earns and is flagged. The tool reports the incremental return the rate implies year by year, so a generous-looking rate that buys very little growth shows up as a number.
  • Entered dollars. You supply net reinvestment per year — a known capital programme, a build-out that ends, a maintenance-only run rate. The tool reports the incremental return your plan implies, so an internally implausible pair of assumptions shows up as a number rather than as silence.

In perpetuity, reinvestment is a rate: terminal growth ÷ terminal return on capital, which must sit between zero and one. If it does not, the model refuses rather than reporting a quietly deflated value. Entering the rate directly is the same statement read backwards — the rate and terminal growth imply a perpetual return on new capital of growth ÷ rate, which the audit reports. So positive perpetual growth requires a positive rate (zero would be an infinite return, free growth forever), zero is accepted only alongside zero or negative growth, and an implied return that stretches past what competition allows is called out rather than quietly capitalised.

Losses and taxes

A loss-making year does not automatically create a tax benefit. The default recognises none; the carry-forward option accumulates losses and shields later taxable profit until the balance is exhausted; the full benefit option is available but flagged, because it assumes the loss is used somewhere you cannot see from the filing.

A carry-forward that is still unused at the end of the explicit window is a finite asset, not a permanent exemption. The perpetuity is built from terminal revenue and the Year-H margin and taxed at the full terminal rate; the leftover balance is then scheduled against post-horizon profit year by year until it is used up, discounted, and reported as its own component of value — along with any part of it that profit never absorbs, which is worth nothing. Capitalising Year H's tax position instead would hand a company that happens to be sheltered at the horizon a tax holiday lasting forever, which is worth far more than the shield it actually owns.

Growth measured three ways

With an interim filing, year-to-date growth against the same period last year and trailing-twelve-month growth are different numbers, sometimes very different. The tool computes every measure your inputs support, shows all of them, and applies only the one you select. Genuine trailing-twelve-month growth needs the same interim period from two years ago; without that figure the tool says the measure is unavailable rather than substituting another.

When there is no answer

Before reporting a solved value, the solver checks that the target is bracketed, that the objective moves monotonically across the interval, and that the final residual is inside tolerance. If the required margin lies outside the searched range, if enterprise value is not positive, if the price does not identify a single value, or if the reinvestment or terminal assumptions are incoherent, it reports that status and no number. A boundary is never presented as an answer.

Each of those failures gets its own diagnosis, because they mean different things. A margin outside the searched range is a finding about distance: the model moves one way across the window and still misses the market's value, so the audit prints how far it gets at each end. A non-monotone objective is a finding about identifiability, and the endpoints are worthless there — enterprise value can rise and then fall, crossing the market's value twice inside a window whose two ends both sit far away from it, so quoting the nearer end would report a large valuation shortfall for a price the model reconciles perfectly well. That case reports the sampled range, every sampled interval in which the model crossed the target, and the honest conclusion that price does not pin the assumption down — never a root count, which a finite sample cannot establish. A search that brackets a solution but cannot narrow the residual reports its final bracket, last candidate and residual instead: what failed there was the search, not the window.

Links, and what “reproducible” means here

A scenario link carries the schema version, the model version, both dates and every applicable input — including ones left at their defaults, and including the margin search bounds, which the growth-versus-margin table uses in every mode. Nothing the model consumes is left to a page default, because a page default that changes later is an archived write-up that quietly stops reproducing.

Reproduction is guaranteed against the model version the link names, and only then. A link built by an engine this build no longer carries is refused: the inputs load so you can inspect and re-run them deliberately, but nothing is computed and no figure is presented as that version's answer. Likewise a link whose schema this build does not speak is refused rather than reinterpreted, and a link that is incomplete or contradicts its own mode pre-fills the form and names the problem instead of running on substituted defaults.

A link is only carrying the scenario it was built from if every input actually fits in it. A field left over from a setting you switched away from — a sales-to-capital ratio after moving to incremental ROIC, a share price after moving to an entered equity value — is reported as ignored and is not written into the link, so the figures beside it and the figures it reopens with would come from two different runs. Links built for a write-up are therefore replayed before they are handed over, and one that does not come back with the same figures is refused with the offending field named rather than published.

Further reading