Healthcare

ACA premium-tax-credit withdrawal optimizer (pre-65 early retirees)

For a pre-65 early retiree, finds the account-withdrawal mix that funds a spending need while minimizing MAGI — maximizing the ACA premium tax credit and staying under the 400%-of-FPL subsidy cliff (which returns in 2026). Each source adds different MAGI per dollar (Roth 0, taxable only the gain fraction, tax-deferred full), so the MAGI-optimal order is Roth → taxable → tax-deferred. Compares that plan to a naive proportional draw and reports each plan's draw mix / MAGI / FPL% / PTC / net premium / income tax / total cost, plus the savings, cliff headroom, and any shortfall. Composes the healthcare and tax engines. Deterministic; not tax advice.

post/v1/healthcare/aca-optimize

Request

  • Base URL: https://api.numeratica.com
  • URL: https://api.numeratica.com/v1/healthcare/aca-optimize
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Request body

tax_year2025 | 2026 required

ACA-supported years (2026 reintroduces the 400%-FPL cliff).

filing_status'single' | 'mfj' | 'mfs' | 'hoh' required
ageinteger required

Under 65 (the ACA marketplace is the pre-Medicare context).

household_sizeinteger required
statestring

FPL region: "AK" / "HI", or empty for the 48 contiguous states + DC.

benchmark_annual_premiumnumber required

Second-lowest-cost Silver plan, annual.

spending_neednumber required

Gross withdrawal to fund from the accounts.

taxable_balancenumber
taxable_gain_fractionnumber

Share of a taxable withdrawal that is realized LTCG.

deferred_balancenumber

Traditional IRA/401(k) — withdrawals are ordinary income.

roth_balancenumber

Roth — withdrawals add no MAGI.

base_incomenumber

Other ordinary income already in MAGI (pension, interest).

tax_exempt_interestnumber

Added to MAGI for the ACA.

Response

The optimized vs naive draw comparison

result_idstring
engine_versionstring
disclaimerstring

Example response

{
  "result_id": "acaopt_1a2b3c4d5e6f7a8b",
  "engine_version": "aca-optimize-1.0.0"
}

Changes

No recorded changes to this operation across all 1 revision of this API.