estimatetax
2026 · Confidence · Process · Accountability

Editorial and accuracy policy

How a number gets onto this site, who is responsible for it, and what happens when it turns out to be wrong.

How a number gets onto this site

Every tax figure is read off the document that sets it, not off a summary, a table or another calculator. For federal figures that means IRS Rev. Proc. 2025-32, § 3.01, Tables 1-4; for a state it means that state's own department of revenue publication; for a local rate it means the state's official rate file.

Each figure is stored with three things attached: the document it came from, the URL of that document, and the date it was checked. Those travel with the number into every page that uses it, which is why a state page can tell you what was verified and when rather than asserting a rate.

Where a figure has not yet been read off a primary source it is marked as compiled rather than primary, and the page says so. That distinction is enforced by a test, in both directions: a page cannot claim verification it does not have, and it cannot present an unchecked figure as though nobody had considered it.

So far 42 states have been reviewed: 14 matched the compiled sources and 22 did not. Retirement income rules were checked separately across 34 states, because they are the area where compiled sources fail most often — several states exempt by source rather than by amount, which a single "retirement exclusion" field cannot express.

The verification log is published rather than kept internally, and every entry names the document and the date.

What happens when the number itself is in dispute

The rule above assumes there is a document to read. Sometimes there is not, and what we do then is the part of this policy that costs us something.

We do not publish a figure that its own authority has not settled. Not a range, not a best guess, not the more likely of two. The page simply does not exist, and where a hub would naturally link to it, the hub says why.

The clearest case ran for weeks. Canada's capital gains inclusion rate — the share of a gain that is taxable at all — was proposed to rise from one half to two thirds in the 2024 budget, deferred to January 2026, and then contradicted by later announcements. That single number decides a third of the tax on every capital gain. A calculator that picked one was flipping a coin on its own headline figure.

So there was no capital gains calculator, on a page worth thousands of searches a month, and the Canadian hub said so in as many words. It now exists, at one half, because the CRA settled it in writing: its capital gains guide states one half and never mentions two thirds, and its own summary of the deferred increase says "it was later announced that this proposed increase was cancelled". The page tells that story before it tells you anything else.

The same rule applies at much smaller scale and no less strictly. Ottawa's property tax rates are not on this site because Ottawa does not publish them — three of its 2026 tax policy reports were read, ninety-one pages, with not one rate in any. New Brunswick's probate fees are not here because its legislation site cannot be read and its rates changed in June 2026. Private-vehicle tax rules appear for three provinces and not the other ten. In each case the absence is stated, with the reason, on the page where the figure would have been.

An empty space with an explanation is worth more than a plausible number, because a reader can see the empty space.

Why there are 1,275 comparison pages, and what would make that wrong

Every combination of two US states has a page here — 1,275 of them, plus one index per state. That is the kind of number that should make a reader suspicious, so here is the reasoning and the thing that would invalidate it.

The cost of one of these pages is not writing it. The engine already knows how to compute both sides: the same code that answers California against Texas answers Vermont against Idaho, with the same sources and the same tests. So the page exists or it does not on a decision about inventory, not about effort. What would make it wrong is if the pages said the same thing as each other, which is the actual failure mode of programmatic publishing and the one worth testing for.

They do not, and the honest version of how we know that is worth telling, because the first version of this section overstated it. It said a test measured whether the pages differ. The test checked unique headlines and broken-template marks, which is not the same thing, and when we measured duplication properly half of every page was text shared with the others. That is on the corrections page with the figures.

What the pages do now is let the data choose the words. Which sections appear depends on the pair: a section on why the two answers disagree exists only where they disagree, one on choosing the county only where the county spread beats the move, one on states that tax no income only where neither does. The opening is one of six depending on what is unusual here. Passages that explained method identically everywhere — how the break-even is solved, what moving costs — were replaced by that same argument demonstrated with this pair's numbers. The result is 22 distinct page structures across the 1,275, prose that is 71% specific to its own page, and an eighteen-percent word overlap between two pages picked at random.

And the substantive difference is bigger than the wording. In 310 of the 1,275 pairs — one in four — the take-home figure and the purchasing-power figure name different states, so a reader following a tax calculator would move the wrong way. It is not evenly spread: 30 of Washington's 50 comparisons contradict each other and none of New York's do, a fact about those two states that no single page could have surfaced.

Two tests now measure duplication directly — the share of sentences unique to a page, and the eight-word overlap between every pair in a fixed sample — and both fail if a change drifts back toward a template. A third checks that the conditional sections stay conditional, and the first thing it did was find one that never rendered on any page, which we deleted rather than left in.

Search volume is not the reason they exist and it is worth saying so plainly. It was measured for all 1,275 pairs and only 14 came back above the reporting threshold of the tool. Publishing only those 14 would have been publishing to a keyword tool rather than to the people asking the question, and below that threshold a tool reports zero for "nobody asks" and for "we cannot count this" alike — which are not the same claim, a distinction this site applies to figures and applies here too.

Every chart here is drawn by the calculator, not by a designer

No chart on this site is an image. There is no export from a spreadsheet, no screenshot, no figure produced once and left to go stale while the numbers underneath it move. Every one is generated at build time from the same engine that produces the figures in the text beside it, and if a rate changes the chart changes with it in the same deploy.

That has a consequence worth stating plainly: a chart here cannot disagree with the text. The commonest quiet failure in this category is a page whose prose was updated and whose graphic was not, and the reader has no way to tell which half is current. Here there is no second copy of the number to fall out of date.

It also means the charts can be checked the way the arithmetic is. The waterfall on a comparison page claims to account for the entire difference between two states in four steps; a test adds those four steps up and fails if they do not land exactly on the figure the page quotes. The break-even curve exists to show that the relationship is not a straight line; a test asserts that it is not, because a chart that demonstrated the opposite of its own caption would be worse than no chart.

Charts are drawn as text, not as pictures — every one carries a written description of what it shows, with the numbers in it, so it is readable by a screen reader and by anything else that reads the page rather than looks at it. That is also how we caught an error: every tooltip on the site had been served empty for weeks. It is on the corrections page.

Where a chart would flatter the site, it is not drawn. There is no chart of "our accuracy", no growth curve, no visual with nothing behind it. A chart is for a number a reader needs and cannot hold in their head — a spread across 254 counties, a difference that reverses at a certain house price — and for nothing else.

What the language model is allowed to do here, and what it is not

This site uses a language model, and the boundary is worth stating precisely because almost every site in this category now uses one and almost none of them says where.

It never calculates and it never writes a page. Every figure comes from a deterministic engine, and every word of the indexed text is generated from those figures by code you could read. The model is not in that path at all. If it were, each page would carry a second copy of every number — one in the arithmetic and one in the prose — and the second copy would go stale the day a rate changed. That is the same reason the charts are drawn from the engine rather than exported as images.

It explains, on demand, what has already been calculated. When you fill in the questionnaire on a comparison page you can ask for the result in words. The model receives a closed sheet of figures, writes two paragraphs, and if the answer contains a number the engine did not produce, the whole answer is discarded rather than shown. That is a real check and it runs on every request.

And it audits. The check above catches invented figures. It does not catch invented claims — "Florida also has no estate tax" contains no number, passes every test, and would sit on the page being plausible. So a second use runs the other way round: the model reads the prose our own code generated, against the sheet of figures that produced it, and reports what does not follow. It writes nothing; it returns findings, and a finding whose quotation is not literally present in the text is thrown away before anyone reads it. A self-test feeds it six known defects to prove it still catches them.

That instrument found the last four errors on the corrections page, including one we had been publishing on about a hundred pages and one statistic that was simply invented. Tests can only look for what someone thought to look for; this looks for a sentence that reads wrongly, which is the thing nobody can check across 1,326 pages by hand.

Who writes and who reviews

Content is written and maintained by Pablo Ruiz Quintero, founder. Every page carrying tax content has a byline and a verification date, so there is always a named person responsible for what it says.

There is no panel of credentialed reviewers, and we are not going to invent one. Listing fabricated experts is a specific and common dishonesty in this category, and a site that does it has told you something important about everything else on it.

If a licensed professional — a CPA or an enrolled agent — joins the project, this page is where that will be documented: who they are, what they review, and from what date. Nothing will be retroactively described as reviewed by someone who was not there.

The engine is reviewed differently and arguably more rigorously: every rate has tests behind it, chosen at the points where a rule changes rather than in the middle of a band, because a wrong implementation and a right one agree in the middle and diverge at the edges.

Content is also tested. One test checks that no internal working note appears on an English page, written after a verification log shipped in the wrong language on all 51 state pages. Another measures whether county pages genuinely differ from one another rather than being one template with the numbers swapped.

When figures get updated

Federal figures are refreshed when the IRS publishes the revenue procedure for the coming year, in the autumn before it applies. That is a single document and a single event, and it is the easy half.

State figures are the hard half: 51 jurisdictions, 51 legislative calendars, no common publication date. They are checked on a rolling basis, and each carries its own date rather than a site-wide "last updated" that would be true of only one of them.

Retroactive enactment is the specific hazard. A state passing a rate change in May with effect from 1 January invalidates every table published in the first five months of the year, and nothing about a published table signals that it has been overtaken. This is why we date figures rather than pages.

When a figure changes, the change is recorded in the tax data changelog with the date, the old value, the new value and the source. Calculators affected by it are named.

Nothing is updated silently. A number that changes without a record is indistinguishable from a number that was always wrong.

What happens when we are wrong

It is corrected, and the correction is published with the date and what it affected. Not quietly fixed — published, on the corrections page, where anyone can read what went wrong.

That policy costs something and is worth it. A calculator that has never announced an error is either very new or not looking, and from the outside a reader has no way to distinguish those two unless the log exists.

The errors published so far include publishing one county's property tax rate on another county's page, shipping a verification log in the wrong language across 51 state pages, and coming close to publishing New York City's withholding rates as though they were its statutory rates.

Two recent ones are worth reading if you want to know what the log is actually for. British Columbia's lowest tax rate was published at 5.06% when it had risen to 5.60% — the CRA publishes its payroll guide twice a year and the engine was built on the January edition, which the July one superseded retroactively. And Canadian income tax was overstated by up to $1,219 a year because the tax relief on pension contributions was not being applied at all. Both were found by us, both are corrected, both have tests, and both are on the corrections page with the amount of money involved.

Each entry names what caused it and what now prevents it. Most have a test attached, because a correction without one is a promise rather than a change.

If you find something wrong, the corrections page is the fastest route. We would rather be told than be right, and a report that turns out to be mistaken costs us nothing.

Where to go next

Questions

Who writes the content on this site?
Pablo Ruiz Quintero, founder. Every page carrying tax content has a byline and a verification date. There is no panel of credentialed reviewers, and we do not list one — inventing reviewers is a common dishonesty in this category and we would rather say so.
Is the tax logic reviewed by a professional?
Not currently by a licensed CPA or enrolled agent. It is reviewed against primary sources and covered by tests written at the points where each rule changes. If a licensed professional joins, this page will document who, what they review and from when — with no retroactive claims.
How often is the data updated?
Federal figures when the IRS publishes the annual revenue procedure. State figures on a rolling basis, each carrying its own date rather than a site-wide "last updated" that would be true of only one of them. Every change goes in the tax data changelog.
What do you do when you find an error?
Correct it and publish the correction with the date and what it affected, rather than fixing it quietly. Of 42 states checked against their own department of revenue, 22 carried a wrong figure in the compiled sources — and our own mistakes are on the corrections page alongside them.
How do I report a mistake?
Through the corrections page. A report that turns out to be mistaken costs us nothing, and one that is right is worth considerably more to us than being told the site looks good.