Tax year 2026 figures. Last updated .
The rule everything else follows from
A figure is either read from a primary source or it is not used. Not estimated, not inferred from last year, not averaged between two sources that disagree. If a number cannot be confirmed, it is left empty, the calculator says so, and the gap is listed publicly on the unverified list.
Wrong tax numbers are the one failure this project cannot recover from. A layout bug is embarrassing; a rate that is quietly 1.5 points too high sends someone into a decision with the wrong answer and never announces itself. Everything below exists to make that harder.
What counts as a primary source
A figure may be taken from:
- the statute — the Internal Revenue Code, or a state tax code as published by that state's legislature;
- an IRS Revenue Procedure for annually adjusted federal figures;
- a state revenue department publication, form or notice; or
- a departmental determination, where a statute defines a trigger rather than a rate.
That last one is not obvious and was learned the hard way. Michigan's MCL 206.51 does not state a 2026 rate at all — it says the rate falls whenever revenue growth outpaces inflation, as determined jointly by the Treasurer and two fiscal agencies. Reading the statute tells you the mechanism and nothing about the answer. Oklahoma has the same shape.
Aggregators are never a source. Tax Foundation, news write-ups and summary tables are used only as a cross-check — a way of noticing that something disagrees and needs looking at. Twice now that cross-check has been the thing that was wrong, not the statute; both cases are on the corrections page.
What verified means
Each state in the data file carries a verified flag. It is set to true only when someone has actually read the source text stating the rate. It is not a confidence score and not a guess about whether a figure looks right. Currently 30 of 51 jurisdictions carry it.
The flag has teeth: the engine refuses to compute a state layer it cannot verify. An unverified state produces no tax line at all and a warning saying so, rather than a plausible number. That refusal is the most valuable property this codebase has, and it is tested — a change that let an unverified rate reach a computed figure would fail the build.
A related case: a state can be verified but still not computable. Montana taxes long-term gains on their own two-tier ladder, and Hawaii caps them at 7.25% rather than rating them. Both structures have been read and recorded; neither is computed, because flattening them to a single rate would be wrong at one end of the income range. They stay switched off until the engine can express the real shape.
Why unverified states are shown rather than hidden
Every state appears in the state selector. The ones that cannot be computed are listed as not yet available and cannot be selected. Dropping them would be tidier and worse: a missing state reads as a state with no tax, which for someone in Oregon or Vermont is a materially wrong answer arrived at through an omission they never saw.
The same principle applies to figures the calculator does not model at all. The out-of-scope list is deliberately explicit rather than a general disclaimer, because "this is an estimate" tells a reader nothing about whether their particular situation is one of the ones it gets wrong.
Two kinds of figure, two calendars
State data is split in half, because the halves fail differently:
- Rate structure — the ladder, how gains are treated, exclusions, surtaxes, local add-ons. Statutory. Verifiable in any month of the year. An unverified rate structure is a backlog item.
- Thresholds — bracket bounds and standard deductions. Indexed annually and mostly published in November and December. An unpublished threshold is a calendar constraint, not a retrieval failure, and no amount of effort produces it early.
Where the 2026 thresholds are not yet published, the calculator computes on the most recent published year and emits a mandatory warning naming that year. It never presents a carried-forward threshold as current. A few states escape the calendar entirely because their thresholds are fixed in statute rather than indexed — Virginia's have not moved since 1990.
The annual update
Federal figures are re-read from the Revenue Procedure for the new tax year as soon as the IRS publishes it, usually in the autumn. Every bracket is checked by recomputing the printed cumulative tax from the breakpoints and matching it to the cent, which catches transcription errors that reading alone does not.
State thresholds are refreshed as each department publishes. The date in the footer is not the build date — it is pinned to a fingerprint of the tax data files themselves, so changing a figure without updating the date fails the build, and rebuilding the site without touching a figure does not advance it.
Worked examples throughout the site are generated by the calculator's own engine when the page is built, not typed in. That means the prose cannot drift away from the tool: if a figure changes, every example changes with it.
When we get it wrong
Corrections are published with a date, the wrong figure, the right one and the primary source, and are never removed. The log is at /corrections.
If you find a wrong figure, please send it — with the inputs, the two figures, and a primary source. The Show your work panel names the rule and citation behind every line, which usually identifies the disputed number precisely. Contact details are here.
Independence
This site is not sponsored and carries no advertising, and nothing on it is a referral to a product. The about page says plainly who runs it and what they are and are not qualified to tell you: this is not tax advice, and no figure here should be acted on without a CPA or an enrolled agent.