Methodology
How every fact on this site is sourced, validated, dated and refreshed — including what happens when a fact cannot be established, and what the build refuses to publish.
One dataset, 10,200 pages
There is no page-by-page content here. The whole site is generated from a single dataset of51 jurisdiction records — one per state plus the District of Columbia — and a rule engine that resolves any pair of them against any of the four situations. A correction to one state rewrites every page that depends on it, which is the only way a site of this size stays internally consistent.
The same engine runs behind the checker tool and behind every static page, over the same data file. The tool and the pages therefore cannot disagree, and neither can drift from the other over time.
Sources
State revenue departments, and the statutes and regulations they administer. Nothing else — no aggregator tables, no payroll-vendor summaries, no other websites. There are currently58 primary sources behind the grid, at least one per jurisdiction, each recorded with the date it was read and linked from every page that depends on it.
What happens when a fact cannot be established
The field stays empty and the page says so. This matters most for dollar thresholds, which states reset annually: publishing a stale number across thousands of pages is precisely the failure a site at this scale can cause, so where a figure is not durable we describe the test rather than restate the number, and point at the state's own current instructions.
The same principle governs open questions of law. Connecticut and New Jersey both apply convenience rules conditioned on the other state having one, and neither statute resolves what happens when two conditional rules meet. The engine declines to fire, the page flags the ambiguity, and we say plainly that it is unsettled rather than picking an answer and presenting it as settled.
What the build refuses to publish
The validation gate is part of the build rather than a review step, so a data error stops a deploy instead of reaching a reader. The build fails if there are not exactly51 jurisdiction records; if any record lacks a source or a verification date; if a state that levies no wage tax somehow carries withholding mechanics; or if a reciprocity agreement is recorded on one side and not the other. That last check exists because a one-sided agreement would otherwise produce two contradictory pages for the same pair of states.
A separate test suite resolves all 10,200 combinations on every build and asserts, among other things, that no generated sentence anywhere contains a currency amount. That is the mechanical guarantee behind the promise that this site never calculates your liability.
The data is downloadable
The dataset behind every page is served as a single validated JSON file at/data/jurisdictions.v1.json. It is the exact payload the checker tool runs on, versioned in the filename so a future schema change can ship alongside the old one. If you want to check our work at scale rather than page by page, start there.
Refresh cadence
Full re-verification of all 51 jurisdictions each December, after state legislative sessions close and the following tax year's forms and instructions are published. Quarterly re-checks of the convenience-of-the-employer states, which is where the rules have moved most in recent years. Across the grid today the newest check is 2026-08-07 and the oldest is2026-08-07; every page carries the date for its own jurisdictions rather than a site-wide badge, because a site-wide badge would overstate the freshness of the least recently checked row.
Corrections
Send them to the contact page with the state and, if you have it, the revenue-department page showing the current position. Corrections are made in the dataset, which republishes every affected page, and the verification date on those pages moves forward accordingly.