---
title: "Long-term-care cost projection + self-insure-vs-insure"
method: POST
path: "/v1/insurance/long-term-care"
tags: ["Insurance"]
---

# Long-term-care cost projection + self-insure-vs-insure

`POST /v1/insurance/long-term-care`

## Request

- Base URL: `https://api.numeratica.com`
- URL: `https://api.numeratica.com/v1/insurance/long-term-care`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Projects the cost of a long-term-care episode — today's annual cost (a required input, since it varies widely by region and setting) inflated to the expected claim age, run over the care duration, and present-valued — and reports the lump sum needed to self-insure. When a policy is described (premium + benefit), it nets premiums and out-of-pocket against the covered benefit, returning the net cost with the policy, the coverage ratio, and how much insuring saves on this central scenario. Note this is an expected-cost comparison; the real value of LTC insurance is tail protection (a long claim), so model longer durations to see it. Deterministic; not insurance advice.

## Request body

- LongTermCareRequest
  - `current_age` integer, required
  - `care_start_age` integer, required: Expected age care begins (>= current_age).
  - `annual_care_cost_today` number, required: Today's annual cost of the expected setting.
  - `care_duration_years` integer, required: Expected length of the care episode.
  - `care_cost_inflation` number: Annual growth of care costs. Omit for 0.045.
  - `discount_rate` number: Present-values future costs to today. Omit for 0.04.
  - `annual_premium` number: Level annual premium in today's dollars (with policy_annual_benefit, enables the comparison); not inflated.
  - `premium_years` integer: Years premiums are paid (0 ⇒ until care starts).
  - `policy_annual_benefit` number: Annual benefit at purchase (today); the inflation rider grows it from today, so it has compounded over the years until care starts.
  - `policy_benefit_years` integer: Benefit duration (0 ⇒ the full care episode).
  - `policy_benefit_inflation` number: Inflation rider on the benefit (0 = level), compounding from the purchase date.

## Response `200`

The LTC projection and (optional) policy comparison

- LongTermCareResponse
  - `result_id` string
  - `engine_version` string
  - `inputs` LongTermCareRequest
    - `current_age` integer, required
    - `care_start_age` integer, required: Expected age care begins (>= current_age).
    - `annual_care_cost_today` number, required: Today's annual cost of the expected setting.
    - `care_duration_years` integer, required: Expected length of the care episode.
    - `care_cost_inflation` number: Annual growth of care costs. Omit for 0.045.
    - `discount_rate` number: Present-values future costs to today. Omit for 0.04.
    - `annual_premium` number: Level annual premium in today's dollars (with policy_annual_benefit, enables the comparison); not inflated.
    - `premium_years` integer: Years premiums are paid (0 ⇒ until care starts).
    - `policy_annual_benefit` number: Annual benefit at purchase (today); the inflation rider grows it from today, so it has compounded over the years until care starts.
    - `policy_benefit_years` integer: Benefit duration (0 ⇒ the full care episode).
    - `policy_benefit_inflation` number: Inflation rider on the benefit (0 = level), compounding from the purchase date.
  - `result` object
    - `years_until_care` integer
    - `care_inflation_used` number
    - `discount_rate_used` number
    - `future_annual_cost_at_start` number: Today's cost inflated to the care-start age.
    - `total_care_cost_nominal` number: Sum over the care years (undiscounted).
    - `present_value_of_care` number: Self-insure cost, present-valued to today.
    - `nest_egg_needed_at_care_start` number: PV of the care stream at the care-start age.
    - `policy` object: Present only when a policy is described.
      - `total_premiums_nominal` number
      - `present_value_premiums` number
      - `present_value_benefits` number: Covered portion of the care stream.
      - `present_value_out_of_pocket` number
      - `net_cost_with_policy` number: PV premiums + PV out-of-pocket.
      - `coverage_ratio` number: PV benefits / PV care.
      - `insuring_saves_pv` number: PV(self-insure) − net cost with policy (>0 = policy cheaper on this scenario).
  - `disclaimer` string

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key.
- `405`: Method not allowed
- `429`: The key's per-minute request budget is exceeded. Retry after the delay in the Retry-After header.
- `503`: A dependency (e.g. the key store) is temporarily unavailable, or the request exceeded its compute deadline. Retryable.

---

[API](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api.md) · [All operations](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/llms.txt) · [OpenAPI document](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/revisions/075bcfbd1ebf?raw)
