About

A tax calculator you can argue with

Most salary calculators give you one number and no way to check it. We show the bands, the rates, the ceilings and the source, so you can hold the result up against your own payslip and see precisely where it differs.

Who it's for

People weighing a move or an offer across borders: expats, remote workers, contractors, and the payroll and mobility teams who have to explain the difference to them.

How it stays free

No paywall and no data business. If we ever run advertising or a paid API, it will be labelled as such on the page you see it, and it will never change a computed number.

What we are not

We are not your tax adviser and this is not advice. Individual circumstances, residency, reliefs, timing, routinely move the answer more than the headline rate does.

Who writes this

Written and maintained by Nkosi Ndwandwe

No qualified adviser has reviewed this site, and it does not claim one. What it offers instead is checkability: every figure names the document it came from, the section within it and the date it was read, and the calculation behind every number is shown in full. If a figure here is wrong, you can find out without taking anyone's word for it, which is a different kind of trust signal and the only one this site has earned.

Found something wrong?

Corrections are the point. Tell us the jurisdiction, the income, the line you think is wrong and what your payslip says. Verified fixes ship with a dated changelog entry on the methodology page.

Who writes this, and what that is worth

This site is written and maintained by one person, Nkosi Ndwandwe, who builds software rather than files tax returns for a living. That is stated first because it decides what the site is worth to you.

There is no accountant on the masthead, no review board, and no professional body standing behind any figure here. Saying so is not modesty. A tax site that implies a credential it does not hold is making the one claim a reader cannot check, on the one subject where an unverifiable claim does the most damage.

What the site offers instead is checkability, and it is engineered rather than promised. Every rate, threshold and allowance is a record in a store that carries the document it came from, the section within that document, the date it was read, the sentence it was read from, and a hash of that sentence as it stood on the day. A figure with no such record cannot reach a page: the build fails instead of rendering an estimate.

That standard is enforced by nine gates that run before anything is published, and they have caught real errors in this site's own work. One withdrew two jurisdictions that had been live for a day, because tax computed for a single person at the average wage missed the rate the OECD publishes for exactly that person by more than half a percentage point. Another found that three quarters of every salary page was text repeated on every other salary page. Both are described in full on the methodology page, along with what they cost to fix.

That is the whole of the credential story, and stating it plainly is the point. The rest of this page is about what follows from it: what the site is for, what it refuses to do, how you can check it in about five minutes, and what it has already got wrong.

Why this exists

The reason this subject is unreliable online is not that the people writing about it are careless. It is that the figures change annually, they are set in documents nobody reads for pleasure, and a page that was right when it was written stays online long after it stops being right. Nothing about the page changes when the law does. It keeps its layout, its confident tone and its search ranking, and the only thing that has quietly become false is the number.

That is a problem no amount of careful writing fixes, because the failure happens after the writing. It is fixed by making the figure a record with a date and a source attached, and by making the build refuse to publish a record that has gone past its own age policy. Which is a software problem, and software is the thing I actually know how to do.

How to check us in five minutes

This is not a rhetorical offer. Pick any number on the site and follow it back. Every page carries, at the bottom, a list of the rules its arithmetic actually touched, and each entry names the rule's identifier, the document, the locator within that document and the date it was read. The list is generated from the calculation's own trace, so it cannot include a source the arithmetic ignored and cannot omit one it used.

  1. Open any jurisdiction or salary page and scroll to the sources block.
  2. Follow the link to the authority's own document and find the locator we named. It is a section, a clause or a table, never "the website".
  3. Compare the figure there with the one we printed, and the tax year we claim with the tax year the document sets. A page with no tax year on its figure is not making a claim you can check, which is why every rule here carries the year as a first-class field.
  4. If the document has moved, download the ruleset and read the archived quote and its hash, which is what we read on the day we read it.
  5. If they disagree, we were wrong. Tell us, and it goes on the corrections log with the date, the page, what was wrong and what it is now.

The corrections log currently holds 2 entries. That number is read from the file at build time rather than typed, and an empty log is not a boast: this site has been public for a very short time, and a log with nothing in it mostly means nobody has looked yet.

What has already gone wrong here

A trust page that lists only virtues is an advertisement. These are real defects found in this site's own work, each by a check that now runs on every build, and each is the reason that check exists.

Two live jurisdictions were wrong

Lithuania showed 13.70% income tax at the average wage where the OECD publishes 19.22%, because its allowance tapers with income and the schedule we read does not record the taper. Chile missed by 0.75 percentage points for a different reason: an annual ladder applied to a schedule that is computed monthly on indexed units. Both had been live for a day. Half a percentage point on a salary of sixty thousand is about three hundred a year, which is why the tolerance is half a point and not two.

Three quarters of a page type was the same page

The salary pages were given a three thousand word floor and met it with shared components: a method note, a glossary, a band explainer and four generic answers, byte identical whatever the salary. Measured, 74.5% of every page was text appearing on 90% or more of the others. That is the shape search engines call scaled content abuse and it was produced honestly, by chasing a word count. The fix was to delete the prose that could not vary, move what genuinely is the same commitment onto one page that says it once, and let the length come from arithmetic that differs per page. The floor came down and the uniqueness went up, which is the right way round when the two conflict.

This page carried a placeholder reviewer

It read "Reviewed by [name], [qualification]" over a note asking for a reviewer to fill it in, and it shipped. On a tax site, a page that says a named credentialled reviewer belongs here and then leaves the bracket in is worse than one that never claimed a reviewer at all. It was replaced with what is true, which is what you are reading.

The homepage named jurisdictions it had just withdrawn

A sentence listing the authorities behind the calculator still named Chile and Lithuania hours after the reconciliation gate unpublished both. It was a typed list. It is derived from the same file that decides what gets a page now, so the two cannot disagree again. Almost every fix on this list has that shape: the mistake was not the wrong words, it was that words could be wrong independently of the data.

How this could still be wrong

The checks on this site are strong enough to be worth describing precisely, and describing them precisely means naming what they do not cover. Every one of the following is a way a page here could be wrong while every gate stays green, and none of them is hypothetical.

The reconciliation tests one household

The OECD series we check against describes a single person with no children at three multiples of the average wage. A schedule can reproduce that person exactly and still be wrong for a married couple, a parent, somebody with two employments, or an income far above 167% of the average wage. Three points is a great deal better than one and it is not a proof.

A correct source can be read incorrectly

The quote and the hash prove what the document said. They do not prove we understood it. The strongest defence against that is the reconciliation, because an assembly that misreads the law usually fails to reproduce the observed tax. It is a defence and not a guarantee: two readings can agree at three incomes and diverge at a fourth, and where that is possible the alternatives are recorded on the rule itself rather than discarded.

A source can be wrong at source

It happens, and it has happened here. Two published ladders in the dataset we read step down as income rises, which a progressive schedule does not do, so a rate is wrong where it was published. We do not repair somebody else's arithmetic and ship the result as a calculator. Those jurisdictions are refused and the reason is on the methodology page.

Freshness is a policy, not a fact

A rule carries a maximum age and the build fails when a live page computes with a rule past it. That catches a figure going stale on our side. It does not catch a rate changing the week after we read it, inside the age policy, with nothing on the authority's page to signal it. Re-reading every source and printing what moved is a single command here, and it is run rather than trusted.

The reason to say all this on the page rather than keep it in a repository is that the alternative is the posture every competing page takes, which is silence about method and confidence about figures. A site that tells you how it could be wrong is giving you something to check. A site that tells you only that it is accurate is asking you to take its word, on a subject where taking somebody's word is how people end up discovering an obligation years late.

What happens when a rate changes

Nothing is edited quietly. A superseded figure stays in the store and the new rule names the one it replaces, so the change is visible in the published data as well as in the answer. Re-reading every source is one command, and it prints what moved rather than only what it read, because a refresh that silently changes a rate is indistinguishable from one that changes nothing.

Tax years are kept apart from filing years throughout, as a field on every rule rather than as a convention people remember. The exclusion amount for one tax year, filed during the next, is a different number from the amount for the year after it, and conflating the two is the single most common error on the pages that currently rank for these terms. Keying every rule on its tax year makes that class of mistake unrepresentable here rather than merely discouraged.

What this site is, and is not

It is a calculator for 9 jurisdictions, 272 pages of United Kingdom salary arithmetic, a small set of United States expatriate reporting guides, and a published store of 959 rules from 5 authorities that all of it is built from. Everything it computes is for a single person on employment income with no unusual reliefs, and where that assumption stops being safe the page says so.

It is not advice, and the distance between a calculation and advice is larger than it looks. A calculation cannot see your residence history, your other income, your reliefs, your pension arrangement, your student loan or the year you actually became resident somewhere. Those routinely move the answer more than the headline rate does. It is also not a filing service and has no relationship with one.

It is not comprehensive, and refuses to be. 31 jurisdictions are excluded, most of them by a measured disagreement with a series we did not produce, and every one of those numbers is published. A site that covers every country tells you nothing about how far wrong any of them is.

It stays free with no paywall and no data business. Nothing you type is sent anywhere: the calculation runs in your browser, which is a fact about the architecture rather than a promise about our conduct. If advertising or affiliate links ever appear, they will be labelled on the page where they appear and they will never sit inside a source block or change a computed number. If that stops being true, this paragraph changes first.

Written and maintained by Nkosi Ndwandwe, who is not a qualified tax adviser and does not claim to be. The most recent figure behind this site was read from its source on 06 September 2026, which is the date this page reports as its last modification. Everything here can be checked against the document it came from without asking us anything.

Unpacking...