Docs · Model reference
longevity-horizon
spec v1.0.0 · 250 open casesInputs
| Field | Type | Valid domain |
|---|---|---|
| currentAge | int | 18 – 100 |
| sex | choice | male | female |
| planningSurvivalProbability | float | 0.05 – 0.5 |
- SSA period life table 2023: population mortality, sex-distinct, no cohort improvement or personal underwriting (spec exclusions). Probabilities to already-attained ages are 1 by definition.
All fields required. Out-of-domain values are rejected with per-field errors — never clamped. Unknown fields are rejected.
Live example — generated from the real engine
Request
POST /api/v1/models/longevity-horizon
{
"currentAge": 59,
"sex": "male",
"planningSurvivalProbability": 0.28
}Response (chart arrays compacted)
{
"ok": true,
"model": "longevity-horizon",
"specVersion": "1.0.0",
"contractUrl": "/api/v1/models/longevity-horizon",
"specUrl": "/api/v1/models/longevity-horizon/spec",
"inputs": {
"currentAge": 59,
"sex": "male",
"planningSurvivalProbability": 0.28
},
"outputs": {
"lifeExpectancyYears": 22.56,
"expectedAgeAtDeath": 81.56,
"probToAge80": 0.5943896374058149,
"probToAge90": 0.223112886042103,
"probToAge100": 0.011688956798611629,
"planningAge": 89,
"planningYears": 30
},
"sentinels": [],
"assumptions": [
"Implements model spec longevity-horizon v1.0.0 (Concordance-tested: independently reimplemented from the spec).",
"SSA period life table 2023: population mortality, sex-distinct, no cohort improvement or personal underwriting (spec exclusions). Probabilities to already-attained ages are 1 by definition."
],
"facts": [
{
"id": "ssa.life-table.male.e0.2023",
"label": "Life expectancy at birth, male (SSA Period Life Table 2023)",
"value": 75.79,
"period": "2023 period table (2026 Trustees Report)",
"source": "SSA OACT Actuarial Life Table (Period Life Table 2023)"
},
{
"id": "ssa.life-table.female.e0.2023",
"label": "Life expectancy at birth, female (SSA Period Life Table 2023)",
"value": 81.06,
"period": "2023 period table (2026 Trustees Report)",
"source": "SSA OACT Actuarial Life Table (Period Life Table 2023)"
},
{
"id": "ssa.life-table.male.ex-at-65.2023",
"label": "Remaining life expectancy at 65, male (SSA Period Life Table 2023)",
"value": 18.12,
"period": "2023 period table (2026 Trustees Report)",
"source": "SSA OACT Actuarial Life Table (Period Life Table 2023)"
},
{
"id": "ssa.life-table.female.ex-at-65.2023",
"label": "Remaining life expectancy at 65, female (SSA Period Life Table 2023)",
"value": 20.66,
"period": "2023 period table (2026 Trustees Report)",
"source": "SSA OACT Actuarial Life Table (Period Life Table 2023)"
}
],
"record": {
"sha256": "78077195916034c1a0aa2a39fbda6b0972a79962d98696724a4bb564e8148d35",
"fields": [
"model",
"specVersion",
"inputs",
"outputs"
],
"howToVerify": "Store this record with any advice or agent output built on these numbers. To verify later: build {model, specVersion, inputs, outputs} from the stored response, serialize as JSON with object keys sorted recursively (no whitespace), and SHA-256 it — a match proves the numbers came from this spec version with these inputs, unaltered."
},
"disclaimer": "Illustrative planning model, not financial advice. Outputs follow the published model spec exactly; read the spec for assumptions and exclusions before relying on any number."
}This example is executed against the production engine when the page builds — it cannot drift from the API's real behavior.