# State tax data — update checklist

The state income tax calculator publishes a state only when its figures for the
stated tax year have been read out of that state's own revenue department
publication. This file records what has been checked, when, and against what —
and, for every state not yet published, exactly what is missing.

It exists because "we verified it" is not a claim anyone can audit a year later
unless the source and the date are written down at the time.

## The rule

A state ships when, and only when, all of the following are true for the tax
year on the page:

1. The rate schedule (or flat rate) comes from a state revenue department
   publication, a state tax form or its instructions, an official withholding
   table, or the statute itself.
2. Any standard deduction, personal exemption, and dependent exemption come
   from the same class of source.
3. Local income taxes are either modelled from a published schedule, asked for
   as user input, or positively confirmed not to exist.
4. The data file carries `status: 'verified'`, a `lastReviewed` date, and one
   `sources` entry per figure group with a working URL.
5. The engine reproduces at least one worked figure that can be checked against
   the state's own published example or schedule.

Commercial tax sites — SmartAsset, NerdWallet, Bankrate, Calculator.net, ADP,
PaycheckCity — may be used to sanity-check a layout or a user interface. They
are never a source for a number. Where a commercial site and an official
publication disagree, the official publication wins and the discrepancy is
worth a note in the data file.

## Published states

| State | Year | Structure | Source | Last reviewed | Next review |
| --- | --- | --- | --- | --- | --- |
| New York | 2026 | Graduated, 9 bands, cumulative form; NYC and Yonkers local | [IT-2105-I (2026) rate schedules and standard deduction table](https://www.tax.ny.gov/pdf/current_forms/it/it2105i.pdf); [withholding rate changes effective 1 Jan 2026](https://www.tax.ny.gov/bus/wt/rate.htm) | 2026-07-29 | Jan 2027, when the 2027 IT-2105-I is posted |
| Illinois | 2026 | Flat 4.95%; exemption allowance $2,925 | [Booklet IL-700-T, effective 1 Jan 2026](https://tax.illinois.gov/forms/withholding/currentyear/il-700-t-withholding-guide-tables.html); [Bulletin FY 2026-15](https://tax.illinois.gov/research/publications/bulletins/fy-2026-15.html) | 2026-07-29 | Dec 2026, when the next What's New bulletin lands |
| Pennsylvania | 2026 | Flat 3.07%; no deduction or exemption; local EIT user-supplied | [Personal Income Tax Rates](https://www.pa.gov/agencies/revenue/resources/tax-rates/personal-income-tax-rates); [REV-413 (I) 2026](https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/formsandpublications/formsforindividuals/pit/documents/2026/2026_rev-413i.pdf) | 2026-07-29 | Jan 2027; the rate has been unchanged since 2004 |
| Texas | 2026 | No individual income tax (constitutional) | [Texas Constitution, Art. VIII, §24-a](https://statutes.capitol.texas.gov/Docs/CN/htm/CN.8/CN.8.24-a.htm) | 2026-07-29 | Only on a constitutional amendment |
| Florida | 2026 | No individual income tax (constitutional) | [Florida Constitution, Art. VII, §5](https://www.flsenate.gov/laws/constitution); [Ch. 220.02, F.S.](https://www.flsenate.gov/laws/statutes/2023/Chapter220/All) | 2026-07-29 | Only on a constitutional amendment |
| Washington | 2026 | No income tax on wages; 9.90% high-income tax enacted for 2028; 7% capital gains excise | [DOR income tax page](https://dor.wa.gov/taxes-rates/income-tax); [ESSB 6346 bill report](https://lawfilesext.leg.wa.gov/biennium/2025-26/Htm/Bill%20Reports/Senate/6346%20SBA%20WM%2026.htm); [capital gains tax](https://dor.wa.gov/taxes-rates/other-taxes/capital-gains-tax) | 2026-07-29 | **Late 2027** — the enacted tax first applies to tax year 2028 and the page must change before then |

### Verified worked figures

Checked against the published schedules and re-checked by
`tests/state-tax.test.js` on every run:

| Case | Expected | Source of the expectation |
| --- | --- | --- |
| NY single, taxable $100,000 | $5,332.65 | $4,191 + 5.90% × ($100,000 − $80,650), IT-2105-I schedule |
| NY MFJ, taxable $200,000 | $10,659.55 | $8,391 + 5.90% × ($200,000 − $161,550) |
| NYC single, taxable $100,000 | $3,751.00 | $1,813 + 3.876% × ($100,000 − $50,000) |
| Yonkers resident surcharge | 16.75% of net state tax | IT-2105-I line 22a |
| IL, taxable $73,675 | $3,646.91 | 4.95% flat, IL-700-T |
| PA, compensation $82,600 | $2,535.82 | 3.07% flat |

## Not published, and why

None of these is a technical gap. Each is a specific missing document.

| State | What is missing | What would unblock it |
| --- | --- | --- |
| California | The FTB indexes its brackets, standard deduction, and exemption credits annually and had not released the 2026 rate schedules. Its own 2026 Form 540-ES worksheet directs filers to the **2025** tax table. The 2026 standard deduction *is* published ($5,706 single / MFS, $11,412 MFJ, HOH, QSS). | The 2026 California Tax Rates and Exemptions release, normally posted around the end of August, or the 2026 Form 540 booklet. |
| New Jersey | Only the **2025** NJ-1040 rate schedules were retrievable. NJ rates are statutory rather than indexed, but "unchanged for years" is not the same as "confirmed for 2026". | The 2026 NJ-1040 instructions, or the 2026 NJ-WT withholding tables. |
| Massachusetts | 5% rate plus the 4% surtax on income above an indexed threshold. The 2026 surtax threshold was not confirmed. | DOR technical information release setting the 2026 surtax threshold. |
| Georgia | The flat rate is on a statutory reduction schedule; the rate in force for 2026 was not confirmed against the Department of Revenue. | The 2026 GA-500 instructions or the employer withholding guide. |
| North Carolina, Virginia, Ohio, Michigan, Arizona, Colorado, Maryland, Minnesota, Wisconsin, Oregon | Phase 2 states; no 2026 source retrieved yet. Maryland and Ohio additionally need county and municipal schedules before they can be published honestly. | The 2026 instructions or withholding guide for each. |
| Everything else, and the District of Columbia | Phase 3. | As above. |

## Annual update procedure

1. For each published state, open the source URLs in the table above and check
   whether a newer tax year has been posted.
2. Copy the new figures into a new file under
   `assets/js/tax-data/state-tax/<year>/<slug>.js`, keeping the previous year's
   file intact. Do not edit last year's numbers.
3. Update `sources[].publishedDate` and `reviewedDate`, and the top-level
   `lastReviewed`.
4. Add or update a worked figure in `tests/state-tax.test.js` taken from the
   new schedule, so the arithmetic is checked against the source rather than
   against our previous answer.
5. Run `npm test`. The integrity suite refuses to let a page claim a review
   date newer than the data behind it.
6. Only then change the tax year in any page title. A title year is a claim
   about verification, not about the calendar.

## What is deliberately not automated

Nothing in this pipeline scrapes a state website on a schedule. State
publications move, change format, and occasionally post a draft before a final.
A person reading the document and writing the date down is slower and is the
only method that produces a claim we are willing to publish.
