Sensitivity matrix calculator
A meta-calculator that sits on top of the eleven valuation kernels. Pick a model, a row axis, and a column axis — then re-run the backend kernel across every assumption offset and watch the fair-value range move. Every cell is an independent recomputation, so the corners where the model structurally breaks show up instead of hiding behind a smooth interpolation.
A sensitivity table is only useful when every cell is a real recomputation. Scaling one midpoint by an offset hides nonlinear failures — WACC below terminal growth, negative terminal cash flow, archetype exclusions. This grid re-runs the kernel per cell, so those failures surface as explicit states, not a fake heatmap.
Ke (moderate) × Terminal growth
Each cell is a complete backend kernel recomputation, not a scaled midpoint. Click any cell for its per-cell audit.
No cells returned.
Shared infrastructure — not a separate model id
The sensitivity service wraps the same eleven kernels behind the per-model pages. It re-runs the chosen model at every cell; the catalog response declares each model's whitelisted axes so API clients build pickers without hardcoding.
| Slug | /en/tools/sensitivity-matrix-calculator |
| Endpoint | POST /api/v1/valuation-calculators/sensitivity |
| Cell method | Real kernel recomputation per cell — no synthesis-output scaling |
| Grid bounds | MIN 3×3 · DEFAULT 5×5 · MAX 9×9 (5×5 = 25 kernel calls) |
| Default offsets | Rates ±2pp · multiples ±15% · currency ±10% (unit-aware) |
| Base cell | { row: 2, column: 2 } — byte-for-byte identical to the standalone model |
| Cell shape | { fairValue: {low,mid,high}|null, status, exclusionReason, reliability, inputs } |
| Cell status | computed · excluded · failed (inherited from the kernel) |
| Failure modes | wacc_below_terminal · negative_base_fcff · justified_pb_undefined · no_root_in_bracket |
| Methodology | valuation-calculators.v1 |
The service never throws. Invalid axes, oversize grids, and unknown fields surface as a structured warnings list with an empty cells array — REST callers render a graceful empty grid instead of a 500. The per-stock analysis reports build their published sensitivity heatmaps from this exact service, so what you compute here reconciles cell-by-cell with the reports for the same inputs.