/v2/valuation tells you where a multiple sits in its own history. It does not tell you what growth the current price requires to make sense. /v2/priced-in answers that: it runs a reverse discounted-cash-flow model and solves for the free-cash-flow growth rate today’s enterprise value already embeds. The MCP tool is stockcontext_priced_in. It is a paid route (Starter and Builder).
The single most important sentence in this guide: the implied growth is what the price REQUIRES, not what the company will do. It is not a forecast, not a fair value, not a price target, and not a buy/sell signal. There is no price field anywhere in the response — the tool inverts the question on purpose (price in, required growth out) so the number cannot be quoted as a target. Read it as “the price is priced for ~X% growth,” then judge whether that requirement is plausible.
The shape
GET /v2/priced-in?symbol=NVDA (trimmed)
freshness, as_of, market_status, and cache_age_seconds (int; 0 when freshly computed) alongside the reverse-DCF body.
How to read it
The headline is a requirement, not a prediction.implied.growth_required_pct.value is 31.0 — the FCF CAGR the current enterprise value requires under the default assumptions. The means string restates it in words and ends with “not a forecast”; quote it that way: “at today’s price, NVDA is priced for roughly 31%/yr FCF growth for a decade.” Never write “StockContext projects 31% growth” — the tool projects nothing.
The anchor names the inputs. ttm_fcf_usd is the trailing free cash flow the model grows; enterprise_value_usd is the price it inverts. discounted_against: "enterprise_value" means this is an FCFF-to-EV model (it sidesteps leverage, matching the EV multiples elsewhere in the product). The model is two-stage: stage-1 growth fades linearly to the 2.5% terminal rate over ten years (growth_fade: "linear_to_terminal"), then a Gordon terminal value caps it. The linear fade matters: 31.0 is the year-one rate that decays toward terminal, not a flat 31% held for a decade.
all_fixed_defaults: true is load-bearing. Every assumption (10% discount, 10-year horizon, 2.5% terminal) is a fixed, clearly-labeled default — never a value fitted to NVDA. Do not present 10% as “StockContext’s cost of capital for NVDA.” It is a generic anchor; the grid exists precisely because the answer moves with it.
The sensitivity grid: there is no single “true” number
sensitivity.grid is a 3×3 table: discount-rate rows (8 / 10 / 12%) by terminal-growth columns (2 / 2.5 / 3%). For NVDA the required growth ranges from 19.8% to 40.0% across the corners. The model is most sensitive to the discount rate — a higher discount requires more growth to justify the same price, so the bottom row (12%) demands the most. Because the answer swings ~20 points across reasonable assumptions, never report the single headline cell as the implied figure: cite the headline and the range. If you only have room for one number, it is “~31%, in a 20–40% band depending on the discount rate.”
Comparing implied to realized — the company’s OWN history, not a benchmark
historical_realized_growth is what NVDA actually did, per trailing window. This is the plausibility check, and it carries two traps the response defuses for you:
- It is not the benchmark the implied figure must beat. Past growth rarely persists (mean reversion, the law of large numbers as the base gets huge). A realized FCF CAGR is context for judging whether the implied requirement is in the realm of what this business has produced — not a hurdle the requirement “passes” or “fails.”
base_effect: "low_base_period"flags a CAGR inflated by a small starting value. For NVDA, both FCF windows trip it: the 3-year CAGR is215.05and the 5-year is90.92, each with abase_notesaying the starting base was a few percent of today’s free cash flow. So neither figure is a sustainable rate — both are base artifacts. Whenbase_effectisnull(NVDA’s FCF windows are not), the response is explicitly asserting “no distortion,” and you should prefer that un-flagged window. NVDA simply has no clean FCF window here.
window_disagreement fires when the 3-year and 5-year CAGRs differ by more than 20 points — here 215% vs 91% for FCF, reason: "trailing_cagr_3y_far_above_5y". That is the regime warning: the recent window captures an AI ramp the 5-year window does not, so neither is a stable forward base. When this object is present, do not extrapolate either CAGR; say the windows disagree and why.
implied_vs_5y_realized_pp is the signed gap, not a cheapness signal. It is the difference between the implied requirement and the 5-year realized FCF CAGR. Read its shape before its sign: it is a bare float only when the 5-year base is clean; otherwise it is a { value, caveat } object, and the caveat tells you the base is not trustworthy. For NVDA the 5-year window trips low_base_period, so the field ships as { "value": -59.92, "caveat": "5y_realized_base_unreliable" }. The implied 31.0 is far below the unreliable 90.92 realized rate, hence the negative gap — but the caveat is the point: that 90.92 is a low-base artifact, so the gap is not a clean “implied below realized, therefore cheap” verdict. A negative implied_vs_5y_realized_pp is never a cheapness signal; pair it with the caveat and the base_effect flags before you read anything into it.
Putting it together
At today’s price, NVDA is priced for ~31%/yr FCF growth over a decade (a 20–40% band across discount-rate assumptions). Its realized FCF CAGRs are higher —That is the correct analytical frame. Note it draws a conclusion about the price’s requirement, never about whether to buy.91%over five years and215%over three — but both windows are flaggedlow_base_period: the starting base was a few percent of today’s free cash flow, so those rates are mechanically inflated andwindow_disagreementwarns neither is a stable forward base. The signed gap (implied_vs_5y_realized_pp) ships as{ value: -59.92, caveat: "5y_realized_base_unreliable" }— the implied requirement sits below the realized rate, but the caveat says that realized rate is not a trustworthy base, so the gap is not a cheapness verdict. The honest frame: the price requires aggressive sustained growth, the company has no clean low-distortion growth window to judge it against, and/v2/priced-insays exactly that instead of pretending otherwise. This is a model of what the price requires, not a forecast or a target.
Refusals: when a reverse-DCF would mislead
The tool refuses, rather than computing a misleading number, for issuers whose economics a FCF-on-EV model cannot represent. Each refusal is the standard{ available: false, reason } envelope with shape_kind: "not_applicable" (or the ETF freshness: "unsupported" shape) — a real answer, not an error to retry. A profitable company with positive trailing free cash flow computes normally: TSLA returns a full reverse_dcf with growth_required_pct.value: 78.5, not a refusal.
| case | reason | what to say |
|---|---|---|
| Banks, insurers | reverse_dcf_not_meaningful_financial_company | financials have no meaningful FCF or EV; use /v2/valuation (it anchors on price/tangible-book for them) |
| REITs | reverse_dcf_not_meaningful_reit_use_ffo | REITs need FFO/AFFO, not FCF; no such feed exists |
| ETFs | etf_no_reverse_dcf | an ETF has no company free cash flow or enterprise value to invert |
| Pre-profit (FCF ≤ 0 and earnings ≤ 0) | non_positive_base_no_dcf_anchor | the price can’t solve for growth without first assuming when the base turns positive — the tool won’t fake that |
| Too little history | insufficient_ttm_history | fewer than four quarters of cash-flow statements |
basis: "fcf_ttm").
Solver boundaries are not verdicts
When the price lies outside the model’s representable growth range,growth_required_pct is replaced by a neutral boundary envelope: price_below_solver_floor (even a deep decline overshoots the price) or price_above_solver_range (even the model’s growth ceiling can’t reach the price), both carrying the fixed detail: “model-range boundary, not a cheap/expensive judgment.” Read these as the price is outside what the model spans, never as cheap or expensive. The same applies to a null cell in the grid — that assumption pair put the price outside the bracket.
Valuation check
Pair priced-in with the own-history percentile read for the full valuation picture.