State tax docs
State income tax engine documentation
The QuantCalc state tax engine computes a year of state income tax for all 50 states and the District of Columbia. It is one C module with no dependencies beyond the C standard library and libm, it is the same code the retirement planner and the state tax API run, and this documentation is generated from its own configuration. Tax year 2026; engine version 1.4.0 (versioning).
API reference
Every request field, the response, errors, access and examples.
The 51 jurisdictions
Each state's rules as the engine applies them, with sources.
Couples and income types
Per-spouse amounts and the income-type model, with worked examples.
Calculation order
Every step the engine takes, in order, with its code reference and sources.
Verification
How correctness is established, and each state's honest status.
Updates and versioning
The annual cycle, how changes are gated and released, the changelog.
Library and delivery
Running the engine inside your own application.
What the engine models
| Area | Status | Detail |
|---|---|---|
| Rate schedules | Modeled | Single and MFJ schedules for all 42 taxing jurisdictions; a distinct head-of-household schedule where the state has one (ID, CT, ME, MD, MN, MT, NE, NJ, NM, NY, ND, OK, VT); married filing separately by the state's own rule or by halving the MFJ thresholds. |
| Standard deductions, exemptions, credits | Modeled | Standard deductions, personal exemptions and their phase-outs, per-exemption and senior credits, and Utah's taxpayer credit, as each state page lists. |
| Social Security | Modeled | Nine statutory treatments; 8 jurisdictions tax some benefits (CO, UT, CT, MN, MT, NM, RI, VT). |
| Retirement-income exclusions | Modeled | Full exclusions (IL, PA, IA, MS), capped exclusions with age tiers, income limits and Social Security offsets (CO, KY, MI, AL, AR, CT, DE, GA, LA, ME, MD, MO, NJ, NY, OK, RI, SC, VA, WI). |
| Public vs private pensions | Partly | Separate public-pension treatment where the engine carries it (AZ, MA, AL, HI, KS, LA, MO, NY, WV); elsewhere public pensions follow the general retirement rules. See each state page. |
| Military retirement pay | Modeled | Its own income type (pensionMilitary), with each state's rule applied per retiree at their own age; fully exempt in 29 jurisdictions. |
| Wages | Modeled | Its own income type (wages): ordinary income everywhere, plus the earned-income rules in GA, OH, WI. |
| Couples | Modeled | Per-spouse amounts and ages on joint returns: each age-conditioned rule is evaluated per person where the state applies it per person. |
| Roth conversions | Modeled | Taxed, excluded or drawing the retirement cap, by state. |
| Capital gains | Modeled | Ordinary treatment, inclusion ratios, flat exclusions, a two-rate schedule (MT), an alternative-rate cap (HI), a surcharge (MD), full exemption (MO) and Washington's excise. |
| Local income taxes | Partly | County taxes in IN, MD (default average rate, overridable). City and school-district taxes elsewhere are not modeled. |
| Federal tax deduction | Modeled | AL, OR, when the caller supplies the federal figure. |
| Surtaxes and recapture | Modeled | California's mental health services tax, the Massachusetts 4% surtax, New York's recapture and Connecticut's add-back and recapture. |
What it does not model
- Itemized deductions, and credits other than those each state page lists (dependent, earned-income, property-tax, renter, child and similar credits).
- Dependents: no dependent exemptions or credits; head of household uses the state's head-of-household schedule and deduction only.
- Blindness and disability: the engine has no input for either, so additional amounts for blind or disabled filers, and exclusions reached through disability rather than age, are not given.
- Part-year and non-resident apportionment, and credits for tax paid to other states. Every calculation is for a full-year resident.
- State alternative minimum taxes.
- City, school-district and other municipal income taxes (Indiana and Maryland county taxes are included).
- Business income rules: pass-through entity taxes, net operating losses, depreciation differences and other state additions and subtractions outside the income types listed on the API reference.
- Tax-table lookups: where a state's instructions have filers look tax up in a table of income bands, the engine applies the rate schedule to the exact amount.
- Withholding, estimated payments, penalties and interest: the engine computes the year's liability only.
- Out-year rules that are not yet law: later years reuse this year's rules with indexed dollar amounts (see Later years).
Each state page lists what the engine does not calculate for that state; the calculation order page walks every step the engine does take.
Data you can download
- Engine configuration (JSON): every configuration field for every jurisdiction, the bracket tables, the rules the engine holds as code, and the worked-example results. Produced by the engine's own dump tool.
- Provenance (JSON): for every state and rule, the source URLs, what each source establishes, the exact wording checked on the source, and the date it was checked.
- Verification status (JSON): each state's audit class and known approximations.
How sources are kept current
Each source in the provenance file carries the figure or phrase it is cited for, exactly as the source prints it. A weekly job fetches every source (HTML and PDF), confirms that wording is still there, flags dead links and pages that now redirect elsewhere, and updates the checked dates shown on these pages. A build gate fails when a rule on a state page has no source, when a source has no checked date, or when the engine's value no longer matches the value a source was checked against. Details are on the verification page.