estimatetax
2026 · 41 published corrections

Corrections

Every mistake we have found in our own figures, published with the date, the cause and the test that now prevents it. A calculator that has never announced an error is either very new or not looking.

Published corrections

2026-09-29

The Florida homestead exemption was described as "up to $50,000 in two $25,000 tranches", and the Florida county and state property tax pages valued the whole $50,000 at the full local tax rate.

Affected
Sixty-seven Florida county estimator pages and the Florida property tax page, in the homestead paragraphs and the dollar value put on the exemption. Two errors pulled in opposite directions: the second part of the exemption has been indexed to inflation since 2025 ($25,722 for 2025, $26,411 for 2026), so the $50,000 was too low; but that second part does not reduce school district taxes, so valuing all of it at the full rate overstated what it saves — on the Orange County page, $390 a year stated where the part that reaches every levy is worth $195. The calculators themselves apply a county's effective rate and were not affected.
Cause
The state rule was written from the pre-2025 statute and summarised as a single figure, and the pages that turned it into dollars treated the exemption as if it applied to the whole bill. Building the Orlando page levy by levy, from the Property Appraiser's millage tables and the Department of Revenue's published adjustment, made both visible.
Fix
The Florida rule now reads $51,411 for 2026, $25,000 of it against every levy, with the indexation and the school exclusion stated. The county and state pages value only the $25,000 that reaches every levy at the full rate and say that the rest is worth less, and the methodology table shows both figures. The Save Our Homes note carries the 2026 cap of 2.7%.
Test
The Orlando tests check the two parts against the statute: $25,000 off every levy, up to $26,411 off non-school levies only and only on the value between $50,000 and $76,411.
2026-09-28

The Canadian car tax calculator taxed a British Columbia private sale on the price alone, and a used car bought from a Quebec dealer on the invoice. Its text said a dealer always taxes the invoice, everywhere in Canada. And the source link for Quebec had stopped working.

Affected
Only purchases where the book value is above the price. A British Columbia private purchase was understated by 12% of the difference between the average wholesale value and the price — $480 on a $20,000 car worth $24,000 wholesale. The QST on a used car from a Quebec dealer was understated by 9.975% of the difference between the estimated value and the price — $249 on a $15,000 car with an $18,000 wholesale price. With no book value entered, the calculator's figures were right.
Cause
British Columbia's Bulletin PST 308 says a private purchase is taxed on the greater of the average wholesale value and the price; the page had been built from the part of the bulletin on rates. Revenu Québec applies its estimated-value rule to dealer sales of used cars as well as private ones, on a page that had not been read. Both surfaced while adding trade-ins, which meant reading every province's vehicle rules again. Revenu Québec had also moved its pages, so the cited address returned "page not found".
Fix
British Columbia private sales now use the greater of the price and the average wholesale value, and Quebec dealer sales of used cars use the greater of the price and the estimated value (the Hebdo wholesale price minus $500), with the GST still on the price. The text no longer says a dealer always taxes the invoice. The Quebec source now points to Revenu Québec's current page, and every vehicle source was read again on 28 September 2026.
Test
Tests reproduce the bulletins' own examples: British Columbia's private trade-in ($10,000 − $6,000 at 12% = $480), the dealer rate set before the trade-in ($60,000 truck, $25,000 trade-in, $3,500 PST), the Quebec dealer base on the estimated value, and the Canadian sources table checks that every source URL is an official one and is published.
2026-09-25

Joint returns in the District of Columbia, Delaware, Mississippi, Virginia, South Carolina and Arkansas were computed as if the couple had one income, ignoring the rules those states give couples in which both spouses earn.

Affected
The state tax of two-earner married couples was overstated. With income split evenly: by up to about $1,600 in the District of Columbia (at $200,000), $1,017 in Delaware, $751 in Arkansas, $400 in Mississippi, $350 in South Carolina and $259 in Virginia. It affected those states' calculators, refund estimators and comparison pages for married couples, and the joint figures on the District of Columbia, Delaware, Mississippi, South Carolina and Virginia brackets pages. Single filers, and couples with one earner, were not affected; the robustness statistic did not move.
Cause
The engine took a joint return as one income and had no way to know how it divides between the spouses. The District of Columbia (Calculation J), Delaware (30 Del. C. § 1108), Mississippi (the combined return) and Arkansas (filing status 4) let a couple figure each spouse's tax separately on the same return, Virginia gives two-earner couples a spouse tax adjustment of up to $259, and South Carolina a two wage earner credit of up to $350 (S.C. Code 12-6-3330). Delaware's option was declared as unmodelled in our log; the others were not mentioned at all. It surfaced while correcting Missouri's joint return the same day.
Fix
The engine now takes the share of income each spouse earns. For the four with a separate computation it computes both and keeps the lower; Virginia's adjustment follows the state worksheet and South Carolina's credit the statute; in the District the joint $32,200 deduction, and in Mississippi the joint deduction and exemption, are divided between the spouses to equalise their taxable incomes, which is the best allocation when both use the same table. Missouri, where each spouse is always taxed on his or her own share, now uses the actual split instead of assuming an even one. The calculators ask how the income splits (even, 60/40, 75/25, 90/10 or one earner); pages that print a joint figure assume an even split and say so, and their marriage sections now compute each split separately.
Test
Tests reproduce the Virginia instructions' own example ($220 adjustment), check the $259 cap and the South Carolina credit at several splits, check that the District and Delaware separate computations equal the sum of two single-filer computations with the deduction divided as the rules allow, that the separate option is never more expensive than the joint return, and that Missouri splits taxable income by each spouse's share.
2026-09-25

Missouri joint returns were taxed on a single run of the rate chart over the couple's combined taxable income, and our verification log called that rule confirmed. On a Missouri combined return each spouse's tax is computed separately on his or her share of the taxable income.

Affected
Missouri tax for married couples with two earners was overstated by $180.64 from about $34,000 of household income upward, on the Missouri calculator, refund estimator, comparison pages and the Missouri brackets page, whose joint figures and marriage section were built on the same rule. Couples with one earner were not affected. The published robustness statistic did not move.
Cause
The rate chart in the instructions is a single table, and we read "a single table" as "applied once to combined income". The sentence that says otherwise, "A separate tax must be computed for you and your spouse", sits on the same page as the chart. It surfaced while checking whether Missouri's withholding figures run a year behind the return.
Fix
The engine now taxes each spouse's share on the chart. With two earners that is the chart with every threshold doubled, exact while each spouse's share of taxable income is above $9,436; with one earner it is the chart once. The Missouri calculator asks whether both spouses earn, the result says which assumption was used, and the brackets page shows the two-earner joint column and explains the rule. The verification log entry says plainly that its earlier "confirmed" was wrong.
Test
Tests check that a two-earner couple pays twice the chart on half the taxable income, that a one-earner couple pays the chart once, and that the gap is the $180.64 value of the lower brackets.
2026-09-24

Arkansas ran every low income through the standard deduction and the brackets, ignoring the low-income tax tables and the additional credit for low incomes. Separately, the Arkansas note described its brackets as the 2026 schedule when they are the 2025 indexing.

Affected
Arkansas tax was overstated for single filers and heads of household up to $30,070 of income and for couples up to $32,540: by up to $141 for a single filer (at $15,600), $316 for a head of household (at $21,100) and $357 for a couple (at $25,700). Low earners who owe nothing were shown a bill. It affected the Arkansas calculator, refund estimator and comparison pages at those incomes; the published robustness statistic, which starts at a $50,000 salary, did not move.
Cause
The first pass loaded the rate schedule from the 2026 withholding formula and left the low-income tables for later, because the 2026 versions are not published. Reading the 2025 tables next to the 2024 ones then showed that the withholding tables run a year behind the returns: the 2026 withholding formula carries exactly the brackets indexed for 2025 returns, and the 2026 low-income withholding tables start at the 2025 return threshold ($281.60 a week × 52 = $14,643).
Fix
Loaded the five 2025 low-income tables (single; joint with one or no dependents and with two or more; head of household with one or no dependents and with two or more) and the additional credit of up to $60 per filer ($120 joint) below $27,600 of net taxable income. The engine computes both options on line 27 of the AR1000F, the low-income table and the standard deduction, and keeps the lower, since for a couple between $27,600 and $29,000 the table forfeits the credit. The public note now says that every Arkansas figure is the 2025 indexing until the state publishes 2026's, and the verification log marks Arkansas as having 2026 figures unconfirmed.
Test
Tests check the table tax at the edges of each table, the first dollar of tax (single $15,601, joint $25,601, head of household $21,101), the credit steps, the choice of the lower option, and that Arkansas tax never falls as income rises between $0 and $40,000.
2026-09-24

The data-status box on state calculators told Ohio and Maryland readers that the state "has not published its 2026 rate schedule", and told Rhode Island readers that the state "publishes its rates in a format we have not been able to read". Neither was the actual reason.

Affected
The Ohio, Maryland, Rhode Island, California and Vermont calculator pages, and the matching label in the methodology log. The figures themselves were not affected.
Cause
The status labels were written when "incomplete" only ever meant a state that had not yet published, and "blocked" only a document we could not parse. The statuses now cover other cases: a single unpublished figure (Maryland), a statute we cannot reach (Ohio), a site that refuses automated access (Rhode Island).
Fix
The labels now say what is true in every case ("Some 2026 figures unconfirmed"; "the state's tax site blocks the automated reading we verify with"), and each page shows the state's own entry from the log beneath. The methodology page also gained a section on which states get a brackets page and which are held back, a count of blocked states, and a description of the state rules the engine models, all computed from the data rather than written by hand.
Test
The existing tests check that every published verification entry is in English and that the methodology figures match the engine.
2026-09-24

Maryland gave every taxpayer the full $3,200 exemption per person, used the single-filer thresholds for joint returns, and carried a standard deduction ($3,400 / $6,800) that no official document supports.

Affected
Maryland tax above $100,000 of income was understated (by about $78 just above $100,000 and $179 at $160,000 for a single filer), joint figures used the wrong schedule, and every figure carried a deduction $50 / $100 too high. County tax, which is computed on the same taxable income, moved with it.
Cause
The figures came from a compiled source; the exemption chart and the joint schedule had not been read.
Fix
Read the Comptroller's 2026 Withholding Tax Facts (both 2026 schedules), the 2025 resident booklet's exemption chart and the tax alert on the 2025 legislative session. The engine now applies the exemption by income and status. The 2026 standard deduction is indexed by law but not yet published, so the 2025 amounts ($3,350 / $6,700) are served and declared, and Maryland has no brackets page yet.
Test
Tests check the exemption at each step of the chart, single and joint, and the joint schedule.
2026-09-24

New York's recapture was loaded only up to $215,400 of taxable income for a single filer and $2,155,350 for a couple.

Affected
New York tax above those levels was understated: by $2,614 at $300,000 of income for a single filer, by about $33,000 at $1.2 million, and by larger amounts higher up, where the tax converges to flat rates of 6.85%, 9.65%, 10.3% and, above $25 million of income, 10.9% on all taxable income.
Cause
The first pass modelled only the worksheets that the brackets pages needed; the calculator accepts any income.
Fix
Loaded the remaining worksheets of the 2026 IT-2105-I (recapture base and incremental benefit for each level) and the 10.9% flat rule above $25 million.
Test
Tests check that at the end of each recapture stretch the tax equals the bracket rate on all taxable income, single and joint, and the 10.9% rule.
2026-09-24

Ohio joint returns were computed without the joint filing credit.

Affected
Ohio tax for married couples in which both spouses work was overstated — by about $95 at $100,000 of household income and $232 at $200,000, and by 10% to 20% of the tax at lower incomes.
Cause
The credit depends on both spouses having earnings, which the engine did not ask about.
Fix
The engine now takes whether both spouses earn (yes by default for a joint return) and applies the credit from the 2025 IT 1040 instructions. The Ohio calculator shows a checkbox for it.
Test
Tests check the credit at each band, the $500,000 income limit (below which the $650 cap never binds in 2026) and that a one-earner couple does not get it.
2026-09-24

Ohio gave every taxpayer the top personal exemption, $2,400 per person, at any income, and left out the $20 credit per exemption for low incomes.

Affected
Ohio tax was slightly understated above $40,000 of income (about $7 on a $75,000 salary, $14 at $100,000, more for couples) and slightly overstated for the lowest earners. Above $500,000 the exemption disappears entirely.
Cause
The exemption is a table by income on the return, and the figures had kept only its first row.
Fix
Read the 2025 IT 1040 instructions: $2,400 up to $40,000 of modified adjusted gross income, $2,150 up to $80,000, $1,900 above, and nothing from $500,000 under the 2025 budget; plus $20 per exemption when income less exemptions is under $30,000. The engine now applies both. Ohio stays without a brackets page: its 2026 amounts may be indexed, and the joint filing credit is not yet modelled.
Test
Tests check the exemption at each step of the table, the $500,000 cut-off and the $20 credit.
2026-09-24

Connecticut was computed with a $15,000 exemption per person that never phased out, and without the tables that withdraw the 2% rate, recapture the lower brackets and grant the personal credit.

Affected
Almost every Connecticut figure. Above $45,000 of income a single filer has no exemption at all, so middle and higher incomes were understated (by about $925 at $75,000); at low incomes the personal credit of up to 75% was missing. Joint returns got $30,000 of exemption instead of $24,000. The disagreeing-pairs statistic is now 310 of 1,275, range 272–339; the high end of that range is now a $150,000 home rather than renting, by two pairs, and the methodology page says so.
Cause
Connecticut's tax is five tables, and the compiled figures had kept only the rate schedule and a simplified exemption.
Fix
Loaded Tables A to E from the Department of Revenue Services' 2026 withholding calculation rules, which reproduce the return's tables and are unchanged from 2025. The engine gained a per-return exemption that falls in steps, fixed add-backs by income and a credit expressed as a percentage of the tax.
Test
Tests check the Connecticut tax against the tables at several incomes, single and joint, and that the published robustness table matches the engine.
2026-09-24

New York was computed without its recapture of the lower brackets' benefit above $107,650 of income, and joint returns used the single-filer thresholds.

Affected
New York tax was understated between $107,650 and $157,650 of income and above it — by up to $568 for a single filer — and joint figures used the wrong schedule. The disagreeing-pairs statistic is now 312 of 1,275, range 272–346.
Cause
The recapture is not in the rate table: it lives in the tax computation worksheets of the return instructions. The joint schedule had not been read.
Fix
Read the 2026 IT-2105-I: the joint schedule and the worksheets that phase the benefit back over $50,000 of income. The engine now applies them up to $215,400 of taxable income for a single filer and $2,155,350 for a couple; the brackets page explains the resulting marginal rate of about 7% on that stretch.
Test
Tests check the recapture at the worksheet boundaries (full flat rate at $157,650 of income, the base-plus-increment step above $161,550 of joint taxable income) and that the published robustness table matches the engine.
2026-09-24

Wisconsin applied its full standard deduction at every income, and joint returns used the single-filer thresholds.

Affected
Wisconsin tax was understated for most earners above $20,120 — by about $350 on a $75,000 salary — and joint figures were off because they used the wrong schedule. The disagreeing-pairs statistic is now 312 of 1,275, range 272–346.
Cause
The figures came from a compiled source that listed the deduction as a single number, and the joint schedule had never been read.
Fix
Read the Department of Revenue's 2026 estimated-tax instructions: the deduction falls by 12% of income above $20,120 for a single filer (19.778% above $29,040 for a couple), and the joint thresholds are $20,150, $69,260 and $443,630. Maryland and Vermont were logged as incomplete at the same time: their 2026 figures are not yet published in a form we can cite.
Test
Tests check the Wisconsin deduction against the department's formula and the joint thresholds, and that the published robustness table matches the engine.
2026-09-24

Arkansas was computed with the formula that applies only to high incomes — 2% up to $4,600 and 3.9% above — for every taxpayer.

Affected
Arkansas tax below $94,700 of taxable income was overstated by up to about $330 (about $330 on a $50,000 salary). The disagreeing-pairs statistic is now 315 of 1,275, range 273–342.
Cause
Arkansas publishes several tables by income level, and the compiled source had reduced them to the top one. The engine could not express the bracket adjustment either.
Fix
Loaded the 2026 schedule from the Department of Finance and Administration's formula: 0%, 2%, 3%, 3.4% and 3.9%, with the adjustment between $94,700 and $97,800 expressed as a narrow band. The low-income tables are still not modelled, and the 2026 ones are not yet published, so Arkansas has no brackets page. Montana was confirmed at the same time.
Test
Tests check the Arkansas tax against the department's formula at several incomes and that the published robustness table matches the engine.
2026-09-24

West Virginia was computed with its 2025 rates. A 2026 law cut every rate by about 5%, retroactive to 1 January 2026.

Affected
Every West Virginia figure was slightly high — about 5% of the state tax. The disagreeing-pairs statistic is now 315 of 1,275, range 273–342.
Cause
The figures came from a compiled source read before the cut was enacted in June 2026; a retroactive change makes any earlier reading of the year's rates wrong.
Fix
Read W. Va. Code 11-21-4j as now in force: 2.11%, 2.81%, 3.16%, 4.22% and 4.58%, the same brackets for single and joint returns. Virginia and Kansas were confirmed at the same time — Kansas from its statutes, because its revenue department's site refuses our connections.
Test
Tests check the 2026 West Virginia rates, the Kansas and Virginia joint rules, and that the published robustness table matches the engine.
2026-09-24

Alabama was computed without its deduction for federal income tax paid, with a flat standard deduction instead of the income-based table, and with $7,500 instead of $8,500 for couples at lower incomes.

Affected
Every Alabama figure: the tax on a $75,000 salary was about $380 too high, and joint figures at lower incomes were too high as well. The disagreeing-pairs statistic is now 315 of 1,275, range 275–345.
Cause
The brackets had been checked; the return itself had not. Alabama's deduction for federal tax and its standard deduction chart are on Form 40, not in the rate table.
Fix
Read the 2025 Form 40 booklet: the standard deduction chart (page 9) and the federal income tax deduction worksheet (page 31). The engine gained a deduction that falls in income steps, and the federal-tax deduction now allows an uncapped subtraction. The District of Columbia was confirmed at the same time: one rate table for every filing status.
Test
Tests check Alabama's standard deduction at the chart's break points, the uncapped federal deduction, the doubled joint brackets, and that the published robustness table matches the engine.
2026-09-24

Four states carried figures from compiled sources that did not match the state: Maine's standard deduction was about half the real one; North Dakota used its 2025 thresholds; New Mexico had no joint schedule and no low- and middle-income exemption; and Hawaii's joint returns fell back to the single thresholds.

Affected
Maine tax was overstated for almost everyone (a $15,700 deduction, not $8,350) and Maine's deduction phase-out above $102,250 was missing. North Dakota figures were slightly high. New Mexico figures were too high for lower incomes and for every joint return. Hawaii joint returns were too high. The disagreeing-pairs statistic is now 317 of 1,275, range 279–349.
Cause
None of the four had been read against the state's own 2026 document: three were compiled, and Hawaii's joint schedule was flagged as unverified in the calculator rather than read.
Fix
Read Maine Revenue Services' 2026 rate schedules and phase-out worksheet, North Dakota's 2026 ND-1ES rate schedules, New Mexico's statute as published by its revenue department and its PIT-1 instructions, and Hawaii's rate schedules and Announcement 2024-03. The engine gained an exemption phase-out for New Mexico. Rhode Island could not be read — its tax site answers with a security challenge — and is logged as blocked rather than guessed.
Test
Tests check each state's 2026 thresholds and joint schedule, Maine's deduction at the phase-out points, New Mexico's exemption at its break points, and that the published robustness table matches the engine.
2026-09-24

Missouri was computed without its deduction for federal income tax paid, and Nebraska joint returns were computed on the single-filer thresholds.

Affected
Missouri tax for everyone below $125,000 of Missouri adjusted gross income was too high — about $54 on a $75,000 salary, more for couples. Nebraska joint figures were too high as well, because a couple's income reached the 3.51% and 4.55% rates at half the income it should; the calculator had been flagging those joint figures as an approximation. The range of the disagreeing-pairs statistic moved to 279–351; the headline figure stayed at 315 of 1,275.
Cause
Missouri's deduction lives on the return (MO-1040 lines 11–13, RSMo 143.171), not in the withholding formula we had checked. Nebraska's joint schedule had never been read; the engine declared the gap instead of guessing, which is why it was visible and why it could be closed.
Fix
Missouri: read RSMo 143.171 and the MO-1040 instructions — 35%, 25%, 15%, 5% or 0% of federal tax depending on Missouri AGI, capped at $5,000 ($10,000 joint) — and confirmed that a combined return uses the single rate chart. Nebraska: read the 2026 estimated-tax rate schedule, which prints the joint thresholds ($8,250 and $49,530). Both states now have brackets pages.
Test
Tests check the Missouri deduction at each income band and its cap, the Nebraska joint thresholds, and that the published robustness table matches the engine.
2026-09-24

Oregon ignored the subtraction for federal income tax paid, kept the $263 exemption credit at every income and used last October's estimated $260; Utah used a 4.5% rate that the legislature cut to 4.45% for 2026, and a flat $966 Taxpayer Tax Credit at every income.

Affected
Every Oregon figure — the tax on a $75,000 salary was about $670 too high — and every Utah figure: the rate change is small, but the credit, which the law withdraws by 1.3 cents per dollar of taxable income, was given in full to high earners (worth up to $966 a year too little tax). The disagreeing-pairs statistic moved from 323 to 315 of 1,275, and its range across assumptions to 279–352.
Cause
Both states were checked on 1 September against withholding guides rather than against the statute and the return. Withholding guides describe the employer's calculation, not the return: Utah's rate cut came from a bill passed after its guide was written, and Oregon's subtraction and credit limit are applied on the return. The engine also had no way to subtract federal tax, to withdraw a credit with income, or to drop a credit above an income line.
Fix
Utah: read Utah Code 59-10-104 and 59-10-1018 as amended in the 2026 session (S.B. 60, retroactive to 1 January 2026; H.B. 77). Oregon: read the December 2025 withholding formulas and the 2026 OR-ESTIMATE. The engine now supports a federal-tax subtraction with stepped caps, a credit phase-out and a credit income limit. One Utah figure is still our calculation and not the state's: the 2026 credit threshold, which the Tax Commission publishes on a site that refuses automated access; we computed it as the statute prescribes and Utah gets no brackets page until the official figure is read.
Test
Tests check Oregon against the department's own worked example, the credit limit and each step of the subtraction; Utah against the statutory rate and credit formula; and, as before, that every cell of the published robustness table matches the engine.
2026-09-24

South Carolina used the old federal standard deduction ($8,350 single, $16,700 joint) at every income. The 2026 law replaced it with the South Carolina Income Adjusted Deduction, which is larger at the bottom and is withdrawn as income rises.

Affected
Every South Carolina figure: below roughly $64,000 of income for a single filer we overstated the tax, above it we understated it, and from about $95,000 a single filer has no deduction at all. The comparison statistic moved too: the state pairs whose take-home and purchasing-power answers disagree went from 325 to 323 of 1,275, and the range across assumptions from 277–359 to 278–360.
Cause
When the rates were corrected on 1 September the deduction was flagged as outstanding in our own verification log, but the figure stayed live. The engine also had no way to withdraw a deduction with income, so the South Carolina rule could not be expressed until that was built.
Fix
Read Act 110 of 2026 (H. 4216 as ratified) section by section: $15,000 single and $30,000 joint, reduced by the fraction of adjusted gross income above $40,000 over $55,000 (single) or above $80,000 over $110,000 (joint), the reduction rounded down to the nearest $10. The engine now supports a deduction phase-out, and the South Carolina brackets page explains the consequence the rate table hides: a real marginal rate of about 6.63% on middle incomes, above the 5.21% top rate.
Test
Tests check the deduction at the statute's own break points ($40,000, $50,000 and $95,000 single; $80,000, $100,000 and $190,000 joint), that the tax still equals the official “5.21% minus $966” formula on the reduced taxable income, and that the published robustness table matches the engine.
2026-09-24

The state tax engine gave married couples filing jointly one personal exemption instead of two, and gave every single filer in Arizona a $100 dependent credit whether or not they had a dependent.

Affected
Joint-filer figures in every state with a per-person exemption or credit — Illinois lost an exemption of $2,925, Mississippi one of $6,000, Michigan one of $5,900 — and single-filer figures in Arizona. It also moved one published statistic: the state pairs whose take-home and purchasing-power answers disagree went from 324 to 325 of 1,275, and the range across assumptions from 276–360 to 277–359.
Cause
The engine took a single count, defaulting to one, and used it both for personal exemptions and for credits that exist only for dependents. No page ever overrode the default, so a couple was treated as one person and a childless Arizonan as having a child. It surfaced while building the state tax brackets pages, which publish the joint tax at specific salaries and could not publish it wrong.
Fix
Personal exemptions now count the filer and, on a joint return, the spouse. Credits that exist per dependent count dependents only, zero by default. The comparison statistic is no longer written by hand in five places: it is read from the recomputed robustness table. The dataset deposited with a DOI keeps 324, because that is what the engine produced at the deposited commit and rewriting an archived deposit is not correcting it.
Test
Tests check that a joint return gets two personal exemptions where the state gives them per person, that an Arizona single filer with no dependents gets no dependent credit, and — as before — that every cell of the published robustness table matches what the engine computes.
2026-09-09

On all 51 state index pages, an answer said that where the two measures disagree "the state with the better take-home is the worse place to live". Purchasing power is not quality of life, and nothing on this site measures the latter.

Affected
A frequently-asked-question answer on every state index page. The figures around it were correct; the sentence drew a conclusion from them that they do not support.
Cause
Purchasing power — take-home divided by the local price level — measures what money buys. Saying a place is "worse to live" is a claim about schools, climate, distance from family and a dozen things this site has no data on. The two got collapsed into one sentence while writing the emphatic version of a real finding, which is exactly where an overclaim is easiest to slip in.
Fix
The sentence now says the state "leaves you able to buy less", and states explicitly that this is a claim about what money buys and not about which state is a nicer place to be. The methodology page carries the same limit.
Test
A test fails if the words "better place to live", "worse place to live" or "quality of life" appear anywhere in the generated comparison text.
2026-09-09

The figure that the comparison silo rests on — that in 324 of 1,275 state pairs the take-home and purchasing-power answers name different states — was published without ever being tested against a different set of assumptions.

Affected
Every comparison page and the deposited dataset. The figure turned out to be right, but it was published as a single number when it should have been published with its range.
Cause
It was computed on one scenario: a $100,000 salary and a $400,000 home. Those are reasonable defaults and they were never varied, so nobody — including us — knew whether the result depended on them. A reader put the objection plainly: how can you declare a $400,000 house for every state when house prices vary enormously?
Fix
The 1,275 pairs were recomputed across house values from zero — renting, with no property tax at all — up to a million, and salaries from $50,000 to $250,000. The count moves between 276 and 360, 21.6% to 28.2%, and the high end is the case with property tax removed entirely. The table is published on the methodology page beside the claim.
Test
A test recomputes every cell of that table against the engine, so the published range cannot drift from what the calculator actually produces, and a second one fails if removing property tax ever stops strengthening the result.
2026-09-08

Louisiana’s parishes and Alaska’s boroughs were called counties — on about a hundred pages, in sentences that then named the parish. And four statements were published that were either invented or wrong: how long people stay in one house, how common a pair of similarly-priced states is, how many pairs have no local income tax, and a claim that having no income tax at any level is rarer than having no state income tax.

Affected
Every comparison page involving Louisiana or Alaska carried the wrong word for its own local divisions. The four wrong statements were spread across the silo: one appeared on every page, one on 281 of them.
Cause
The terminology error came from writing "counties" once, in a helper used by all 1,275 pages, without checking that all 51 states use the word — two do not, and neither has a single division called a county. The four statements were written as supporting colour around figures that were themselves correct, which is exactly where an unsourced claim is easiest to slip in: "longer than a third of people stay in one house" was invented outright; "roughly one in ten" was really 22%; "one of the 40 pairs" confused a count of states with a count of pairs and the answer was 1,225 of 1,275; and all nine states with no state income tax also have no local one, so the two claims describe the same nine rather than one being rarer.
Fix
Every state’s local divisions are now named from a declared table — parishes, boroughs and census areas, counties and independent cities — and sentences covering both sides of a comparison use a neutral term instead of picking one state’s word. The invented statistic was removed; the moving-cost figure it sat next to is now labelled on the page as an assumption rather than a source. The two wrong counts were replaced with the measured ones, and the claim about the nine states with the true version, which is more interesting than what it replaced.
Test
A test fixes the naming for Louisiana and Alaska by checking the term against the suffixes in the Census data rather than against our own table. The four statements were found by a different instrument: a language model that reads the generated prose against the closed sheet of figures that produced it and reports what does not follow from it. It writes nothing — it returns findings, and a finding whose quotation is not literally present in the text is discarded before anyone reads it.
2026-09-08

We said a test measured whether the 1,275 comparison pages genuinely differ from one another. It did not measure that, and when we measured it properly half of each page was text shared with the others.

Affected
No figure was wrong. What was wrong was a claim about our own quality control, published on this site, in the section that explains why 1,275 programmatically built pages are defensible.
Cause
The test checked that every page had a unique headline and contained no broken-template marks — no "NaN", no "$0 a year", no range running from a figure to itself. Those are real checks and they have caught real defects, but they are not a measure of duplication, and describing them as one was an overstatement of what we had verified. Measured on the built HTML afterwards: 151 sentences appeared on more than 5% of the pages, and two pages picked at random shared 41% of their eight-word sequences.
Fix
The pages were rebuilt so the text follows what the data says about each pair rather than a fixed skeleton — which sections appear, in what order, and how each opens now depend on whether the tax figure points the wrong way, whether property tax outweighs income tax, whether the county spread beats the move, whether either state taxes income at all. Four passages that explained method identically on every page — how the break-even is solved, what a move costs — were replaced by the same point demonstrated with that pair’s own numbers. Page-specific prose went from 48% to 71%, and the overlap between two random pages from 41% to 18%.
Test
Two tests now measure the thing that was claimed: the share of each page’s sentences that appear nowhere else, and the eight-word overlap between every pair of a fixed sample. Both fail if a change pushes them back toward the template. A third checks that the conditional sections stay conditional — it immediately found one that never rendered at all.
2026-09-08

On the county chart in every state comparison, the written description read the range with the wrong sign — announcing a gain where the figure was a loss.

Affected
Anyone reading that chart with a screen reader rather than looking at it. The chart itself was plotted correctly and no visible figure was ever wrong, so a sighted reader saw the right answer and a blind reader was told the opposite.
Cause
The currency formatter used throughout the site takes the absolute value, because almost everywhere the sign is carried by the surrounding words. In that description the sign WAS the information, and passing a negative number through a formatter that strips signs produced a confident, readable, wrong sentence. A second bug from the same root printed a double negative — "−$-80" — on the waterfall.
Fix
A separate signed formatter now handles every place where the sign carries meaning, and a value that rounds to zero says "level" instead of "−$0".
Test
Every one of the 1,326 comparison pages is now scanned after the build for a list of template failures — stripped signs, double negatives, "$0 a year", empty tooltips — and the check runs across the whole set rather than a sample.
2026-09-08

Every tooltip on every chart on the site was served empty. The comparison pages shipped 555 of them in a single page.

Affected
Anyone reading a chart with a screen reader or hovering a data point before the page finished loading, and every search engine, which only ever sees the served HTML. The visible chart was correct throughout — no figure was ever wrong.
Cause
React 19 treats a <title> element as document metadata. Written with more than one child — a name, then a number, then a unit — it is rendered empty on the server and only filled in once the page becomes interactive. It also broke hydration, which threw the whole page back to the browser to redraw.
Fix
Every chart tooltip on the site is now written as a single string. The oldest of them had been shipping empty since the bubble chart was built.
Test
A test reads every component file and fails on any <title> that mixes text with expressions, so the next chart cannot reintroduce it.
2026-09-08

British Columbia’s lowest tax rate was published as 5.06% when it had risen to 5.60%, and Newfoundland’s basic personal amount as $11,188 when it had risen to $13,094.

Affected
Every British Columbia and Newfoundland figure on the site — up to $272 a year too much tax on a BC salary, on the second most visited Canadian page.
Cause
The CRA publishes its payroll formulas guide twice a year, in January and July. The engine was built on the January edition. The July edition changed three provinces retroactively to 1 January, and nothing about the January edition signals that it has been superseded.
Fix
Both rates were corrected and confirmed against a second authority — the province’s own tax tables as well as the CRA. Prince Edward Island’s new 20% bracket, the third change in that edition, was already right.
Test
A test fixes all three figures with the edition they came from, so the next mid-year edition cannot pass unnoticed.
2026-09-08

Canadian income tax was overstated by up to $1,219 a year because the tax relief on CPP and EI contributions was not applied.

Affected
Every Canadian income tax figure on the site. The overstatement was largest for lower earners: 12% of the tax bill at $40,000, 2% at $200,000.
Cause
The CRA treats the CPP as two superimposed plans with different tax treatment — the 4.95% base gives a credit at the lowest rate, while the 1% enhancement and all of CPP2 are deducted from taxable income. The engine summed them and applied neither.
Fix
Both are now applied, exactly as factors K2 and F5 of the CRA payroll formulas define them, and for Quebec on the QPP’s own 5.3% base rate with the QPIP premium included.
Test
Tests assert the split, the direction of the effect — it must matter more at low incomes than high — and that no province can end up with negative tax.
2026-09-08

Answers in the frequently asked questions showed raw formatting marks to readers, and passed them into the structured data.

Affected
Any page whose answers used emphasis or a link. Readers saw asterisks and square brackets; search engines received them inside the answer text.
Cause
Section paragraphs were rendered through a small formatter and the answers were not — the same string was treated as formatted in one place and as plain text in another.
Fix
Answers now use the same renderer as the paragraphs, and the structured data strips the formatting instead of carrying it, because an answer for a machine is plain text.
Test
A test asserts that no answer reaches the structured data with formatting marks in it, and that stripping them keeps the link text rather than discarding it.
2026-09-08

Mississauga was described as not publishing its 2026 property tax rates. It does.

Affected
The property tax pages, which named Mississauga as a documented gap.
Cause
The city’s own "final tax rates" index still listed 2025 as the most recent. The 2026 figures were in a different document entirely — Schedule A of the levying by-law.
Fix
The by-law was read and Mississauga was added, at 1.087901% residential. The claim that a figure is unpublished now requires checking the by-law, not just the rates page.
Test
The city’s total rate is asserted against the by-law figure to the sixth decimal.
2026-09-07

The Toronto land transfer tax calculator applied only the municipal first-time buyer rebate, not Ontario’s.

Affected
First-time buyers in Toronto, who were shown $4,000 more tax than they owe.
Cause
Toronto charges two land transfer taxes and each has its own rebate. The model had one rebate field, so the second one had nowhere to go.
Fix
Provincial and municipal rebates are now separate fields, each capped separately.
Test
A Toronto first-time purchase asserts both rebates by amount.
2026-09-07

Links written inside paragraphs were printed as raw markup, so readers saw "[Nunavut](/canada/income-tax-calculator/nunavut/)" instead of a link.

Affected
Canadian hub and province pages, where the text links to other pages.
Cause
The paragraph renderer understood emphasis but not links. The Canadian content was the first to need them.
Fix
The renderer now handles links, including inside emphasis. It deliberately accepts only internal paths: the text is generated by this site, so an external link there would be a bug rather than a link.
Test
Tests cover a link inside emphasis, and reject a protocol-relative address — "//example.com" begins with a slash and was passing an internal-link check that only looked at the first character.
2026-09-06

Five provincial pages told the reader "this page is Ontario" when they were not Ontario.

Affected
Five of the thirteen provincial income tax pages.
Cause
Each page compares its province against Ontario and describes where the two schedules cross. Five provinces never cross Ontario anywhere in the salary range shown, and the two-branch comparison had nowhere to send that case.
Fix
The comparison now has three cases: cheaper throughout, dearer throughout, and crossing at a specific salary.
Test
A test asserts sign consistency across the range for every province. The first version of that test was itself wrong — it assumed only Ontario has no crossover — and was rewritten.
2026-09-06

The sales tax pages referred to the "GST/HST credit", which no longer exists under that name.

Affected
Every Canadian sales tax page, and the reverse calculator, which both described a benefit by a name it no longer has.
Cause
The benefit was renamed and increased. A sentence written before that survived the rewrite.
Fix
Renamed throughout, with the former name given once so a reader searching for it still finds the page.
Test
A test checks the text preceding every mention of the old name, so it can only appear where it is explicitly flagged as the former name.
2026-09-01

The verification log was published in Spanish on English-language pages.

Affected
All 51 state pages — 37 log entries and 24 document titles.
Cause
Internal working notes and published text shared one field. The notes are written in Spanish; the pages are read by US taxpayers.
Fix
A separate published field was added, and every entry rewritten in English.
Test
A test asserts that no known Spanish phrase appears in published output, and an inverse test asserts the internal notes remain in Spanish.
2026-09-01

San Francisco showed San Diego County's property tax rate.

Affected
The San Francisco city page.
Cause
The county lookup split the city name on the first space and matched "San".
Fix
An explicit city-to-county map replaced the string matching.
Test
Each city page asserts its county by name rather than by derivation.
2026-09-01

New York City withholding rates were nearly published as statutory rates.

Affected
Caught before publication.
Cause
NYC withholding runs 2.05%–4.25% because it folds in a school tax credit; the statutory brackets are 3.078%–3.876%. A table derived from the withholding schedule looks like a rate schedule.
Fix
The statutory brackets were read off the source document — page 40 of a 41-page instruction booklet — rather than off a derived table.
Test
The NYC rates are asserted against the statutory figures directly.
2026-09-01

The AI explanation compared two different taxes and called the result surprising.

Affected
Any page where the explanation was generated.
Cause
An effective rate including payroll and state tax was set against a federal marginal income tax rate. Both numbers were correct; the comparison was meaningless.
Fix
The figures sent to the model now carry labels stating which are comparable, with an explicit prohibition on the comparison in the prompt.
2026-09-01

Portland was shown as having no local income tax.

Affected
The Portland city page.
Cause
The local resolver did not handle threshold-based levies. Portland does levy them; a salary below the threshold simply pays nothing.
Fix
The resolver now models the Metro and Multnomah thresholds, and the page distinguishes "does not levy" from "levies, but not at this income".
2026-09-02

The local coverage figure understated itself by an order of magnitude.

Affected
The income tax hub, which stated we did not cover local income tax at all.
Cause
The coverage function counted only the hand-loaded cities and ignored the six state modules added afterwards.
Fix
It now counts the underlying data, so loading another state moves the figure without anyone remembering to edit it.

Why publish this at all

Because from the outside, a site with no corrections page is indistinguishable from a site that has never checked. Both look clean, and only one of them is.

Publishing costs something — every entry below is a mistake with our name on it — and it buys the only thing worth having in this category, which is a reason to believe the figures we have not been wrong about yet.

Each entry names what went wrong, what it affected, 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.

This is separate from the changelog, which records every update to the tax data whether or not anything was wrong. This page is only the errors.

Both the United States and the Canadian silos are covered, and the two most expensive mistakes so far are Canadian: a province whose lowest tax rate had risen mid-year and was still published at the old figure, and pension contribution relief the engine was not applying at all — worth up to $1,219 a year to a reader who trusted it.

Reporting something that looks wrong

If a figure on this site does not match what you can find in the source it cites, we want to know, and a report that turns out to be mistaken costs us nothing.

The most useful report names the page, the figure, and what you believe it should be — ideally with the document you are comparing against. That is usually enough to resolve it in one exchange rather than three.

Send it to hola@prqdigital.com.

What happens next: the figure is checked against its primary source, corrected if wrong, and the correction is published here with the date. Nothing is fixed silently.

Where to go next

Questions

How do I report an error?
Email hola@prqdigital.com with the page, the figure and what you believe it should be.
Do you fix errors quietly?
No. Every correction is published here with the date, what it affected and what caused it. A number that changes without a record is indistinguishable from a number that was always wrong.
What is the difference between this and the changelog?
The changelog records every update to the tax data, including routine ones where nothing was wrong. This page records only the errors.
Have you had a serious error?
Yes — a verification log published in the wrong language across 51 state pages, and one county's property tax rate shown on another county's page. Both are below with what caused them and what now prevents them.