---
title: "Size a 529 / college-savings goal (tuition-inflated)"
method: POST
path: "/v1/college-savings"
tags: ["Education"]
---

# Size a 529 / college-savings goal (tuition-inflated)

`POST /v1/college-savings`

## Request

- Base URL: `https://api.numeratica.com`
- URL: `https://api.numeratica.com/v1/college-savings`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Projects the future cost of college using a tuition-specific inflation rate (tuition historically outpaces CPI), computes the savings needed by the time college starts, and solves for the periodic contribution required from today — the goal-funding math for the accumulate-then-draw-down shape of an education goal. Deterministic.

## Request body

- CollegeRequest
  - `current_child_age` integer, required
  - `college_start_age` integer
  - `years_in_college` integer
  - `annual_cost_today` number, required: Current annual all-in cost of the target school.
  - `tuition_inflation` number: Tuition-specific inflation (typically faster than CPI).
  - `current_savings` number
  - `expected_return` number, required

## Response `200`

Funding analysis

- CollegeResponse
  - `result_id` string
  - `engine_version` string
  - `inputs` CollegeRequest
    - `current_child_age` integer, required
    - `college_start_age` integer
    - `years_in_college` integer
    - `annual_cost_today` number, required: Current annual all-in cost of the target school.
    - `tuition_inflation` number: Tuition-specific inflation (typically faster than CPI).
    - `current_savings` number
    - `expected_return` number, required
  - `result` object
    - `years_until_college` integer
    - `total_cost_nominal` number: Sum of the inflated college-year costs.
    - `required_savings_at_start` number: Nest egg needed when college begins.
    - `projected_without_saving` number: FV of current savings, no new contributions.
    - `funding_gap` number
    - `required_annual_saving` number
    - `required_monthly_saving` number
    - `on_track` boolean
    - `cost_schedule` object[]
      - `child_age` integer
      - `cost` number
  - `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)
