every model spec’d & versioned · Concordance-tested changelog →

Docs · Model reference

state-income-tax

spec v1.1.0 · 250 open cases

Inputs

FieldTypeValid domain
statechoiceAK | FL | NV | NH | SD | TN | TX | WA | WY | IL | PA | CO | CA | NY | MA | NJ | VA
stateTaxableIncomefloat0 – 10,000,000
filingStatuschoicesingle | married
  • Input is STATE taxable income — each state's own deductions, exemptions, and base modifications are the caller's job (spec exclusion). Covers the nine no-income-tax states, the flat-rate states IL/PA/CO, and the graduated states CA/NY/MA/NJ/VA, all at TY2025 tables. filingStatus selects the graduated table and affects no flat or no-tax state. NY's tax-benefit recapture, MA's short-term-gains rates, and all local taxes are 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/state-income-tax
{
  "state": "AK",
  "stateTaxableIncome": 5000000,
  "filingStatus": "single"
}
Response (chart arrays compacted)
{
  "ok": true,
  "model": "state-income-tax",
  "specVersion": "1.1.0",
  "contractUrl": "/api/v1/models/state-income-tax",
  "specUrl": "/api/v1/models/state-income-tax/spec",
  "inputs": {
    "state": "AK",
    "stateTaxableIncome": 5000000,
    "filingStatus": "single"
  },
  "outputs": {
    "method": "none",
    "stateTax": 0,
    "effectiveRatePct": 0,
    "marginalRatePct": 0,
    "afterTaxIncome": 5000000
  },
  "sentinels": [],
  "assumptions": [
    "Implements model spec state-income-tax v1.1.0 (Concordance-tested: independently reimplemented from the spec).",
    "Input is STATE taxable income — each state's own deductions, exemptions, and base modifications are the caller's job (spec exclusion). Covers the nine no-income-tax states, the flat-rate states IL/PA/CO, and the graduated states CA/NY/MA/NJ/VA, all at TY2025 tables. filingStatus selects the graduated table and affects no flat or no-tax state. NY's tax-benefit recapture, MA's short-term-gains rates, and all local taxes are spec exclusions."
  ],
  "facts": [
    {
      "id": "state.il.flat-income-rate.ty2025",
      "label": "Illinois flat individual income tax rate (TY2025)",
      "value": 0.0495,
      "period": "TY2025",
      "source": "Illinois DOR rate, unchanged since 2017 (via ustax.tools state summary)"
    },
    {
      "id": "state.pa.flat-income-rate.ty2025",
      "label": "Pennsylvania flat personal income tax rate (TY2025)",
      "value": 0.0307,
      "period": "TY2025",
      "source": "PA personal income tax, unchanged since 2004 (TaxAct state guide)"
    },
    {
      "id": "state.co.income-rate.ty2025",
      "label": "Colorado income tax rate with TABOR reduction active (TY2025)",
      "value": 0.0425,
      "period": "TY2025",
      "source": "Thomson Reuters: Colorado TABOR temporary rate reduction, TY2025"
    },
    {
      "id": "state.ca.bracket-1-top.single.ty2025",
      "label": "California 1% bracket top, single (TY2025) — table vintage marker",
      "value": 10756,
      "period": "TY2025",
      "source": "Tax Foundation, State Individual Income Tax Rates and Brackets (2025)"
    },
    {
      "id": "state.ny.bracket-1-top.single.ty2025",
      "label": "New York 4% bracket top, single (TY2025) — table vintage marker",
      "value": 8500,
      "period": "TY2025",
      "source": "Tax Foundation, State Individual Income Tax Rates and Brackets (2025)"
    },
    {
      "id": "state.ma.surtax-threshold.ty2025",
      "label": "Massachusetts 4% surtax threshold (TY2025)",
      "value": 1083150,
      "period": "TY2025",
      "source": "Tax Foundation, State Individual Income Tax Rates and Brackets (2025)"
    },
    {
      "id": "state.nj.bracket-1-top.ty2025",
      "label": "New Jersey 1.4% bracket top (TY2025) — table vintage marker",
      "value": 20000,
      "period": "TY2025",
      "source": "Tax Foundation, State Individual Income Tax Rates and Brackets (2025)"
    },
    {
      "id": "state.va.bracket-1-top.ty2025",
      "label": "Virginia 2% bracket top (TY2025) — table vintage marker",
      "value": 3000,
      "period": "TY2025",
      "source": "Tax Foundation, State Individual Income Tax Rates and Brackets (2025)"
    }
  ],
  "record": {
    "sha256": "6c93c34fe14a82623a021b3e803fbbf64fea9706c64c23b4d9102506fa4a145a",
    "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.