Docs · Model reference
plan529-superfunding
spec v1.0.0 · 250 open casesInputs
| Field | Type | Valid domain |
|---|---|---|
| contributionPerBeneficiary | float | 1,000 – 500,000 |
| donors | int | 1 – 2 |
| beneficiaries | int | 1 – 10 |
| annualReturnPct | float | 0 – 12 |
| years | int | 1 – 30 |
| taxableDragPct | float | 0 – 3 |
- annualReturnPct and taxableDragPct are PERCENT points. The 529 arm assumes qualified withdrawals (spec exclusions).
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/plan529-superfunding
{
"contributionPerBeneficiary": 251000,
"donors": 2,
"beneficiaries": 6,
"annualReturnPct": 6,
"years": 16,
"taxableDragPct": 1.5
}Response (chart arrays compacted)
{
"ok": true,
"model": "plan529-superfunding",
"specVersion": "1.0.0",
"contractUrl": "/api/v1/models/plan529-superfunding",
"specUrl": "/api/v1/models/plan529-superfunding/spec",
"inputs": {
"contributionPerBeneficiary": 251000,
"donors": 2,
"beneficiaries": 6,
"annualReturnPct": 6,
"years": 16,
"taxableDragPct": 1.5
},
"outputs": {
"maxElectionPerBeneficiary": 190000,
"withinElection": 190000,
"excessUsingLifetimeExemption": 61000,
"annualExclusionUsedPerYear": 38000,
"fv529PerBeneficiary": 637628.272856104,
"fvTaxablePerBeneficiary": 507614.9084105956,
"taxFreeAdvantagePerBeneficiary": 130013.36444550834,
"totalContribution": 1506000,
"totalTaxFreeAdvantage": 780080.18667305
},
"sentinels": [],
"assumptions": [
"Implements model spec plan529-superfunding v1.0.0 (Concordance-tested: independently reimplemented from the spec).",
"annualReturnPct and taxableDragPct are PERCENT points. The 529 arm assumes qualified withdrawals (spec exclusions)."
],
"facts": [
{
"id": "irs.gift.annual-exclusion.2026",
"label": "Annual gift tax exclusion (per recipient)",
"value": 19000,
"period": "TY2026",
"source": "Rev. Proc. 2025-32, section .42(1)"
}
],
"record": {
"sha256": "3d9ad92c3f836f223149f4a528e8a3e906e990024db4cbddd243512737f248da",
"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.