Skip to main content
/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)
{
  "data": {
    "symbol": "NVDA",
    "currency": "USD",
    "as_of": "2026-06-08T13:07:48Z",
    "freshness": "end_of_day",
    "market_status": "closed",
    "cache_age_seconds": 0,
    "shape_kind": "reverse_dcf",
    "basis": "fcf_ttm",
    "anchor": {
      "ttm_fcf_usd": 119076000000,
      "enterprise_value_usd": 4915706000000,
      "discounted_against": "enterprise_value"
    },
    "model_assumptions": {
      "discount_rate_pct": 10.0,
      "horizon_years": 10,
      "terminal_growth_pct": 2.5,
      "growth_fade": "linear_to_terminal",
      "all_fixed_defaults": true
    },
    "implied": {
      "growth_required_pct": {
        "value": 31.0,
        "means": "To justify today's enterprise value at a 10.0% discount over 10 years (fading to 2.5% terminal), free cash flow must compound at about 31.0%/yr. This is what the PRICE REQUIRES, not a forecast.",
        "solver": "bisection",
        "converged": true
      }
    },
    "sensitivity": {
      "metric": "growth_required_pct",
      "discount_rate_pct_rows": [8.0, 10.0, 12.0],
      "terminal_growth_pct_cols": [2.0, 2.5, 3.0],
      "grid": [
        [23.9, 21.9, 19.8],
        [32.5, 31.0, 29.3],
        [40.0, 38.7, 37.4]
      ]
    },
    "historical_realized_growth": {
      "fcf_cagr": {
        "3y": { "value": 215.05, "base_effect": "low_base_period", "base_note": "the 3y-ago fcf base was about 3% of today's, so the CAGR is mechanically inflated by the small starting value" },
        "5y": { "value": 90.92, "base_effect": "low_base_period", "base_note": "the 5y-ago fcf base was about 4% of today's, so the CAGR is mechanically inflated by the small starting value" },
        "10y": { "available": false, "reason": "insufficient_statement_history" }
      },
      "revenue_cagr": {
        "3y": { "value": 111.03, "base_effect": "low_base_period", "base_note": "the 3y-ago revenue base was about 11% of today's, so the CAGR is mechanically inflated by the small starting value" },
        "5y": { "value": 72.34, "base_effect": "low_base_period", "base_note": "the 5y-ago revenue base was about 7% of today's, so the CAGR is mechanically inflated by the small starting value" },
        "10y": { "available": false, "reason": "insufficient_statement_history" }
      },
      "window_disagreement": {
        "detected": true,
        "metric": "fcf",
        "reason": "trailing_cagr_3y_far_above_5y",
        "note": "3y fcf growth (215%) is far above 5y growth (91%): the recent window captures a regime the 5y window does not. Do not treat either as a stable forward base."
      },
      "implied_vs_5y_realized_pp": { "value": -59.92, "caveat": "5y_realized_base_unreliable" }
    }
  }
}
Every success payload carries 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 is 215.05 and the 5-year is 90.92, each with a base_note saying the starting base was a few percent of today’s free cash flow. So neither figure is a sustainable rate — both are base artifacts. When base_effect is null (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 — 91% over five years and 215% over three — but both windows are flagged low_base_period: the starting base was a few percent of today’s free cash flow, so those rates are mechanically inflated and window_disagreement warns 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-in says exactly that instead of pretending otherwise. This is a model of what the price requires, not a forecast or a target.
That is the correct analytical frame. Note it draws a conclusion about the price’s requirement, never about whether to buy.

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.
casereasonwhat to say
Banks, insurersreverse_dcf_not_meaningful_financial_companyfinancials have no meaningful FCF or EV; use /v2/valuation (it anchors on price/tangible-book for them)
REITsreverse_dcf_not_meaningful_reit_use_ffoREITs need FFO/AFFO, not FCF; no such feed exists
ETFsetf_no_reverse_dcfan ETF has no company free cash flow or enterprise value to invert
Pre-profit (FCF ≤ 0 and earnings ≤ 0)non_positive_base_no_dcf_anchorthe price can’t solve for growth without first assuming when the base turns positive — the tool won’t fake that
Too little historyinsufficient_ttm_historyfewer than four quarters of cash-flow statements
There is also no earnings-basis fallback in this version: one basis per response, always trailing free cash flow (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.