Get an indicative company valuation
get_valuationUse this when the user asks what a company is worth, wants a valuation range, or is preparing to buy or sell and needs an indicative number. Returns Cape Partners' indicative valuation range, produced by its triangulated method — revenue multiple, EBITDA multiple, discounted cash flow, a conservative floor and a weighted triangulation — together with the method used, the assumptions it rests on and a data-quality note. It is indicative and non-binding: not an offer, an appraisal or investment advice, and it commits neither Cape nor any counterparty. Use the financials the user provides; do not estimate figures they did not give, and say so plainly if the range depends on assumptions you supplied.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sector | No | Sector the user named, if any. | |
| company | Yes | What the user told you about the company, in their words. | |
| nrr_pct | No | Net revenue retention as a fraction (1.15 = 115%); 115 is also accepted. Software/hybrid only. Only if the user stated it — never estimate it. | |
| geography | No | Country or region the user named, if any. | |
| growth_rate | No | Annual growth. 0.3 or 30 both mean 30%, only if stated. | |
| revenue_eur | No | Revenue in euros, only if the user stated it. A string like "8M" is accepted. | |
| ebitda_margin | No | EBITDA margin. 0.2 or 20 both mean 20%, only if stated. | |
| business_model | No | The family model to value with, only if the user described the business: software_saas (recurring software), it_services (project or staffed services), hybrid (both). Stored lowercase. | |
| gross_margin_pct | No | Gross margin as a fraction (0.70 = 70%); 70 is also accepted. Only if stated. | |
| top_customer_pct | No | Share of revenue from the largest customer as a fraction (0.25 = 25%); 25 is also accepted. Only if stated. | |
| recurring_share_pct | No | Share of revenue that is recurring. Stored as a fraction (0.65); 65 is also accepted and converted. Only if stated. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | ||
| model | No | three_method | profitability_unknown | profitability_disciplined. | |
| scope | Yes | ||
| method | Yes | ||
| methods | No | Only the methods that produced a figure; see methods_omitted. | |
| weights | No | The weights actually applied, after any redistribution. | |
| next_step | Yes | What to do with the figure: how a mandate on file turns an indicative value into a ranked, named shortlist. | |
| confidence | No | ||
| disclaimer | Yes | ||
| assumptions | No | ||
| data_quality | No | ||
| family_model | No | The family-model view of the same inputs, matching what the web app shows: ev, range_eur, confidence and score with reasons, implied_multiples, benchmark_position, contributions, inputs_echo, k_market and params vintage. null when the family model is off. | |
| legacy_engine | No | DEPRECATED. The retired triangulation, kept one release for traceability. Do not quote it: the top-level headline is the family model. | |
| qualification | No | What to ASK the user next: the quality fields this answer had to default (nrr, top_customer, gross_margin), what supplying them is worth in confidence points, and the sentence to use. Relay the questions; do not invent the answers. | |
| method_sources | No | Where each method figure came from: the multiple, the tier and the premiums, or the DCF parameters. | |
| methods_omitted | No | ||
| value_range_eur | No | The valuation RANGE, derived from how much is known: the half-width follows the confidence score (+/-15% at a perfect score, +/-22% at the HIGH/MEDIUM boundary, +/-45% at zero), never how far the methods disagree — see method_dispersion_eur. null when Cape abstains. | |
| triangulated_eur | No | ||
| valuation_status | No | abstained = Cape declines to provide a valuation; this is not a valuation of zero. | |
| abstention_reason | No | ||
| confidence_reasons | No | ||
| confidence_band_pct | No | Half-width of the returned range as a fraction of the headline (0.15 = +/-15%), so it always agrees with value_range_eur. | |
| method_dispersion_eur | No | min/max across the methods that produced a figure. |