NetSalary2026–27
AI Calculator$200k+ JobsInvoiceNet worthAPI
Account
HomeAccuracy

🔍Accuracy: what is verified, and what is not10 of 18 verified band by band

Generated from the verification guards themselves on every build — including the parts that fail, and the parts that cannot be checked.

Anyone can write an accuracy page. The problem with writing one is that it is a claim about code, made once, that quietly stops being true the next time the code moves. So this one is not written: it is produced by running the same two guards that gate the tax data, against the code that is deployed right now. The country list, the strength of each check, the reason a country cannot be checked more strongly, the bands that cannot be observed and the date each rule was last reviewed are all read out of the engine and its guards. If a check started failing, this page would say so.

All checks passing as of this build — 18 bracket tables and 108 rendered-table cases.

Computed 13 October 2026.

API statusChecking

Checking

The probe is a full round-trip and includes network time; the server figures are processing time only and exclude it.

Verified band by band
10 / 18
Every published rate and boundary asserted against the engine, to ±0.35pp.
Verified weakly
8 / 18
Only the shape and the ceiling of the curve. A wrong interior rate would pass.
Bands not observable
6
Published bands the engine never exposes, each listed below with the statutory reason.
Rendered-table checks
108 / 108
18 countries × 3 salaries × 2 tax years, on four assertions each.

Estimates, not tax advice

Everything this site and its API return is an estimate produced by a model of published tax rules for a standard employment case. It is not tax, legal or financial advice, it is not a payroll calculation, and it creates no liability on our part for decisions taken on it. Before you file a return, price a contract, make an offer or run payroll, have the figure confirmed by a qualified adviser or the relevant tax authority — every country card below links to its authority. If you find a discrepancy, tell us and we will check it against the source.

What the guards actually assert

Two guards run against every build. Neither is a snapshot of expected output — both recompute from the engine, so neither can pass by agreeing with a stale fixture.

1. The published brackets describe what the engine charges

src/lib/accuracy/bracketGuard.ts · tax year 2026

Published brackets are stated in taxable income, not gross, so a marginal rate measured against gross is attenuated by every deduction, cap and taper in between. Where a country’s tax base can be reconstructed from the engine’s own itemised output, the guard differentiates income tax against that base, which is exact regardless of allowances — and asserts every published rate and every boundary to within 0.35 percentage points. That is the 10 strongly verified countries. Where the base is not reconstructible, the country is checked weakly — income tax non-negative, never above gross, never falling as gross rises, and a top marginal rate consistent with the published ceiling — and the reason it can be no stronger is recorded rather than the check being skipped.

It also checks the table’s own shape: bands must meet exactly, rates must not fall without a declared statutory reason, only the top band may be open-ended, the untaxed zone must be documented, and a table that is only one layer of a country’s income tax must be flagged as partial in data rather than explained in a comment.

2. The bracket table you see equals what the engine charges

src/lib/accuracy/curveGuard.ts · tax years 2025 and 2026

The per-band breakdown shown under a result used to be computed from static display rates, and disagreed with the engine’s own answer beside it for most countries — by more than 100 percentage points at the extremes. It is now derived from the engine, and this guard is what keeps that true. For 18 countries × 3 realistic salaries in local currency × 2 tax years it asserts that the breakdown totals the engine’s income-tax line exactly, that the per-zone amounts sum to the same figure, that the zones are contiguous and start at zero, and that the monthly and yearly input paths annualise to the same answer using each rule’s own number of salary payments.

Result on this build: 108 of 108 cases passing.

Tax years

The calculator and the API offer 2025, 2026, 2027. 2026 is the settled year and the default: every country’s parameters are legislated and it is the year the bracket guard measures against. 2027 is offered for forward planning — the engine applies each 2027 change that is already law and falls back to 2026 for the rest, never a projection, and the calculator names which parts are carried over. The 2027 tracker has the country-by-country position.

2025 is the weak one. It is offered, and it had substantially less review than 2026; the bracket guard does not run against it at all. Measured on this build, 6 of 18 countries return identical figures for 2025 and 2026 at every sampled salary — UAE (Dubai), Switzerland, Ireland, United Kingdom, Austria, Belgium. For some of those the thresholds were genuinely frozen and identical output is correct; for others it means there is no distinct 2025 path. Treat 2025 figures as indicative.

Verification by country

Strongly verified countries first, then weakly verified, each in the order the guard reports them. Every field below is read from the guard, the published facts or the engine.

Two of those fields need a word of warning. “Where the marginal rate falls” is a measurement of the engine, not a judgement about it: a falling marginal rate is often statutory — an allowance finishing its taper, a credit running out, a rate cap — but it can also be an artifact of how a country is modelled, and nothing here can tell the two apart, so the measurement is published rather than an interpretation of it. And the number of salary payments a year is what the engine models, which is not always what a country customarily pays; Portugal is the case that matters and it is in the limitations below.

🇱🇻Latvia

Strongly verified
What was asserted for 2026
3 of 3 published bands and 2 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
Levied on top, and modelling assumptions
3% surcharge on annual income above €200,000.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Valsts ieņēmumu dienests (State Revenue Service) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Every parameter is legislated.

🇱🇹Lithuania

Strongly verified
What was asserted for 2026
3 of 3 published bands and 2 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
What the published table covers
The bands apply to annual GPM taxable income — gross pay less the NPD — not to gross. VSD and PSD (19.5% combined) are deducted separately and are not reduced by the NPD.
Personal allowance
This is the maximum. The NPD is €747/month only at or below the €1,153/month MMA; above that it falls by €0.49 for every extra €1 of gross and reaches zero at €2,677.49/month. At €2,000/month the allowance is €331.97/month (€3,983.64/year) and at €2,500/month it is €87/month (€1,044/year), so most full-time employees receive far less than €8,964.
Where the marginal rate falls as gross rises
Measured: it drops 9.8 points — from 29.8% to 20.0% — around EUR 31,475 of gross.
2025 tax year
Distinct rules: 2 of 3 sampled salaries return a different net figure from 2026.
Source of record
Valstybinė mokesčių inspekcija (State Tax Inspectorate) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. The 2027 minimum monthly wage and average wage (VDU), which set the NPD taper and the GPM bracket boundaries. Next update expected: Autumn 2026, with the 2027 budget.

🇪🇪Estonia

Strongly verified
What was asserted for 2026
1 of 1 published band and 0 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Maksu- ja Tolliamet (Estonian Tax and Customs Board) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Every parameter is legislated.

🇵🇱Poland

Strongly verified
What was asserted for 2026
2 of 2 published bands and 1 band boundary measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
Levied on top, and modelling assumptions
4% solidarity levy on annual income above PLN 1,000,000. Employee deductions are ZUS 13.71% (pension 9.76 + disability 1.5 + sickness 2.45) plus a 9% health contribution levied on gross net of ZUS; the health contribution has not been deductible from PIT since 2022. Pension and disability contributions stop once the annual base reaches PLN 282,600 (2026); figures shown spread the annual capped amount evenly across the year.
2025 tax year
Distinct rules: 1 of 3 sampled salaries return a different net figure from 2026.
Source of record
Krajowa Administracja Skarbowa (National Revenue Administration) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. The 30× annual ZUS ceiling and the flat B2B ZUS base — both keyed to a projected average wage of PLN 9,971 that is still only a Ministry of Finance assumption. Next update expected: Autumn 2026 budget bill and the accompanying obwieszczenie.

🇩🇪Germany

Strongly verified
What was asserted for 2026
5 of 5 published bands and 4 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
What the published table covers
Germany has no flat tax bands between €12,348 and €69,878: §32a EStG defines the tax as a quadratic formula, so the marginal rate rises continuously from 14% to 24% and then from 24% to 42% across those two zones. Rates apply to taxable income (zu versteuerndes Einkommen) after the Vorsorgepauschale and the Arbeitnehmer-Pauschbetrag, not to gross pay.
Levied on top, and modelling assumptions
Solidarity surcharge 5.5% of income tax, levied only once the annual income tax passes the Freigrenze of €20,350 (single, 2026) and phased in at 11.9% of the excess. Church tax 8–9% if applicable.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Bundeszentralamt für Steuern (Federal Central Tax Office) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. The Einkommensteuerreformgesetz 2027 is still a Referentenentwurf (18 August 2026). It would lift the Grundfreibetrag to €12,564 and restructure the tariff, but it is not law. Next update expected: Bundestag passage, expected late 2026.

🇪🇸Spain

Strongly verified
What was asserted for 2026
4 of 6 published bands and 3 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
2 bands not observable
  • Band 1 (19%): the 19% band sits entirely below the gross at which the art. 20 LIRPF reduction tapers out.
  • Band 2 (24%): the top of the 24% band is still inside the art. 20 LIRPF taper.
Levied on top, and modelling assumptions
Solidarity tax 1.7–3.5% on wealth above €3 million (not employment income).
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Agencia Tributaria (Spanish Tax Agency) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. The 2027 maximum contribution base (indexed to CPI + 1.2 points) and the IRPF scale. Next update expected: December 2026, once November CPI is published.

🇦🇪UAE (Dubai)

Strongly verified
What was asserted for 2026
1 of 1 published band and 0 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
2025 tax year
Selecting 2025 returns the same figures as 2026 at all 3 sampled salaries. That is correct where the thresholds were frozen, and a gap where they were not — see the limitations below.
Source of record
Federal Tax Authority · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Every parameter is legislated.

🇵🇹Portugal

Strongly verified
What was asserted for 2026
6 of 9 published bands and 5 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
3 bands not observable
  • Band 1 (12.5%): the mínimo de existência abatement zeroes IRS across the whole first band, so its rate never appears.
  • Band 2 (15.7%): the top of the second band still falls inside the mínimo de existência taper.
  • Band 9 (48%): above €80,000 of rendimento coletável the taxa adicional de solidariedade (art. 68.º-A CIRS) is added to the same income-tax line, and the table publishes it in solidarityNote rather than as a band.
What the published table covers
Rates apply to rendimento coletável — gross less the dedução específica and the mínimo de existência abatement (art. 70.º CIRS) — so a full-time worker on the minimum wage pays no IRS despite the 12.5% first band.
Personal allowance
The dedução específica (art. 25.º CIRS) is the greater of €4,587.09 (8.54 × the 2026 IAS of €537.13) and the employee's total mandatory social-security contributions — not the sum of the two. Above roughly €41,700 of gross the 11% social-security contribution is the larger figure and replaces it.
Levied on top, and modelling assumptions
Solidarity surcharge +2.5% on income €80–250k, +5% above €250k. Special regime: NHR 2.0 / IFICI (20% flat on qualifying employment income for 10 years for eligible researchers and skilled professionals).
Where the marginal rate falls as gross rises
Measured: it drops 9.5 points — from 33.6% to 24.1% — around EUR 15,738 of gross.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Autoridade Tributária e Aduaneira (Portal das Finanças) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. IRS brackets, rates and the mínimo de existência for 2027. The government has committed to a further €500m of IRS relief but has not set the scale. Next update expected: Orçamento do Estado 2027 (October 2026).

🇮🇪Ireland

Strongly verified
What was asserted for 2026
2 of 2 published bands and 1 band boundary measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
Levied on top, and modelling assumptions
USC applies on top of income tax: 0.5% to €12,012, 2% to €28,700, 3% to €70,044, 8% above (11% on self-employed income over €100k). Special regime: SARP (Special Assignee Relief Programme) — 30% exemption on employment income over €125k for arrivals from 1 January 2026 (€100k for earlier entrants), up to €1m cap, extended to 31 December 2030.
2025 tax year
Selecting 2025 returns the same figures as 2026 at all 3 sampled salaries. That is correct where the thresholds were frozen, and a gap where they were not — see the limitations below.
Source of record
Revenue Commissioners · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. Income tax bands, tax credits and USC rates for 2027. Next update expected: Budget 2027 (October 2026).

🇧🇪Belgium

Strongly verified
What was asserted for 2026
3 of 4 published bands and 2 band boundaries measured against the engine’s own tax base, to within 0.35 percentage points. 6 of 6 rendered-table checks passed.
1 band not observable
  • Band 1 (25%): the quotité exemptée is given as relief against the computed tax, so the 25% band shows a 0% margin until it is used up.
Levied on top, and modelling assumptions
Municipal surcharge (gemeentebelasting / taxe communale) adds ~6–9% on top of federal income tax — averages 7.5%. Standard work-expense deduction 30% of gross less employee social security (cap €6,070). A werkbonus reduces the 13.07% employee contribution for wages up to ~€3,404/month; a bijzondere bijdrage sociale zekerheid of up to €182.82/quarter is withheld on top. Special regime: RSII (inpatriate regime) — 30% of gross (capped at €90k) paid as tax-free allowance for qualifying foreign hires for up to 8 years (since 2022 reform replacing the old expat concession).
Where the marginal rate falls as gross rises
Measured: it drops 16.0 points — from 40.0% to 24.0% — around EUR 23,607 of gross.
2025 tax year
Selecting 2025 returns the same figures as 2026 at all 3 sampled salaries. That is correct where the thresholds were frozen, and a gap where they were not — see the limitations below.
Source of record
FPS Finance (Federal Public Service Finance) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. The indexed quotité exemptée and IPP bracket boundaries for income year 2027. The 2026–2030 reform raises the underlying base amount, but the indexation coefficient is not set. Next update expected: Late 2026.

🇫🇮Finland

Weakly verifiedPublished table is one layer only
What was asserted for 2026
The published top marginal rate (37.5%) against the 42.89% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from EUR 2,000 to EUR 400,000. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the published rates are the state scale plus the average municipal rate, and the engine applies several income-dependent earned-income deductions before either
What the published table covers
This is the state income tax scale alone. Municipal tax (statutory average 7.60% in 2026, 4.7–10.9% by municipality), church tax if you are a member, and the 1.10% sairaanhoitomaksu are levied on the same taxable earned income on top of it, so the rate an employee actually pays at the margin is roughly 8–10 percentage points higher than the figures below. The calculator adds all of them.
Levied on top, and modelling assumptions
Municipal tax adds 4.7–10.9% depending on municipality (statutory average 7.60%, which this calculator uses). Church tax 1.0–2.0% applies if registered. Employee health insurance contributions of 1.98% (sairaanhoitomaksu 1.10% + päivärahamaksu 0.88%) are withheld as part of income tax. A public broadcasting tax (Yle) of 2.5% applies above €15,150 of net earned income, capped at €160/year.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Verohallinto (Finnish Tax Administration) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. The 2027 state income tax scale and a proposed overhaul that would abolish the municipal earned-income deduction in favour of a larger state work-income deduction are out for consultation, not enacted. Next update expected: Budget session, autumn 2026.

🇸🇪Sweden

Weakly verified
What was asserted for 2026
The published top marginal rate (52.38%) against the 52.38% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from SEK 2,000 to SEK 2,641,600. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the published rates are municipal tax plus state tax combined, applied after a grundavdrag that tapers in both directions, so the boundaries are not engine boundaries
Levied on top, and modelling assumptions
Municipal tax varies roughly 29–35% (national average 32.38%, which this calculator uses). State tax 20% on taxable income above SEK 643,000 (gross above SEK 660,400) in 2026. The 7% allmän pensionsavgift is offset by an equal tax reduction, so it does not reduce net pay. Figures exclude begravningsavgift (~0.25%), payable regardless of church membership.
Where the marginal rate falls as gross rises
Measured: it drops 3.8 points — from 11.4% to 7.6% — around SEK 118,033 of gross.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Skatteverket (Swedish Tax Agency) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. Skiktgräns for state income tax, inkomstbasbelopp, and the 2027 municipal tax rates. Next update expected: Budget bill (September 2026); inkomstbasbelopp and skiktgräns (November 2026).

🇳🇴Norway

Weakly verified
What was asserted for 2026
The published top marginal rate (39.8%) against the 39.80% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from NOK 2,000 to NOK 5,868,800. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the published rates combine 22% on alminnelig inntekt (gross less minstefradrag and personfradrag) with trinnskatt levied on personinntekt (gross) — two different bases in one table
Levied on top, and modelling assumptions
Rates exclude the 7.6% trygdeavgift, which is not levied below NOK 99,650; the top combined marginal rate is 47.4%. Minstefradrag is 46% of wage income up to NOK 95,700, and personfradrag NOK 114,540. Arbeidsgiveravgift is 14.1% in Avgiftssone I but 0–10.6% in the regional zones — this calculator assumes Sone I.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Skatteetaten (Norwegian Tax Administration) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. Trinnskatt thresholds, personfradrag and trygdeavgift for 2027. Next update expected: Statsbudsjettet 2027 (October 2026).

🇳🇱Netherlands

Weakly verified
What was asserted for 2026
The published top marginal rate (49.5%) against the 49.50% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from EUR 2,000 to EUR 400,000. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
algemene heffingskorting and arbeidskorting are subtracted from the computed tax on income-dependent tapers, so the observed marginal rate is nowhere equal to the statutory bracket rate
Where the marginal rate falls as gross rises
Measured: it drops 6.5 points — from 56.0% to 49.5% — around EUR 125,902 of gross.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Belastingdienst (Dutch Tax Administration) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. Box 1 rates and brackets, arbeidskorting and heffingskortingen for 2027. Next update expected: Belastingplan 2027, Prinsjesdag (15 September 2026).

🇧🇷Brazil

Weakly verified
What was asserted for 2026
The published top marginal rate (27.5%) against the 27.50% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from BRL 2,000 to BRL 400,000. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the engine takes the better of the itemised and simplified deduction and then applies the Lei 15.270/2025 redutor, so the published annualised table is not the function the engine evaluates
Levied on top, and modelling assumptions
PGBL private-pension contributions (up to 12% of gross) and dependents (R$189.59/mo each) reduce IRPF base. Simplified deduction R$607.20/mo alternative. From 2026 (Lei 15.270/2025) a redutor zeroes IRPF on monthly taxable income up to R$5,000 (R$60,000/year) and tapers linearly to zero at R$7,350/month (R$88,200/year), so the bracket table below overstates what is actually paid at low and middle incomes.
Where the marginal rate falls as gross rises
Measured: it drops 9.5 points — from 37.0% to 27.5% — around BRL 78,689 of gross.
2025 tax year
Distinct rules: 3 of 3 sampled salaries return a different net figure from 2026.
Source of record
Receita Federal (Brazilian Federal Revenue) · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. The INSS contribution table and ceiling, and the IRRF table, both of which are reset each January with the new minimum wage. Next update expected: December 2026.

🇨🇭Switzerland

Weakly verifiedPublished table is one layer only
What was asserted for 2026
The published top marginal rate (11.5%) against the 32.29% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from CHF 2,000 to CHF 3,175,600. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the engine models the combined federal + cantonal + communal burden as per-canton effective-rate anchors with interpolation (ch.ts:19), and the published table is the federal direct tax alone, so no engine bracket corresponds to it
Declared falling rate in the published table
Art. 36 Abs. 1 DBG caps the federal tax at 11.5% of the whole income, so above CHF 794,100 the marginal rate falls back from 13.2% to 11.5%.
What the published table covers
This table is the federal direct tax (direkte Bundessteuer) alone, Grundtarif for single taxpayers, 2026. It is NOT what a Swiss resident pays: cantonal and communal income tax is charged on top and is typically two to three times the federal amount, and there is no single national bracket table because every canton has its own tariff. A single person in Zurich on CHF 100,000 pays roughly 18% of income in total tax, against about 2.7% federal. Use the calculator (which models the combined federal + cantonal + communal burden per canton) rather than this table for a take-home figure.
Personal allowance
CHF 15,200 is the zero band of the federal direct-tax Grundtarif for single taxpayers only. Each canton sets its own deductions and its own zero band, so the income at which cantonal and communal tax starts is different — and usually lower.
Levied on top, and modelling assumptions
Total burden is federal + cantonal + communal + church tax; varies from ~12% (Zug) to ~36% (Geneva). Pillar 3a contributions up to CHF 7,258/year are deductible. Married couples taxed jointly with 0.80× adjustment. Mandatory BVG (pillar 2) is also deducted from pay, but not as a flat rate: credits apply to the coordinated salary (gross less the CHF 26,460 coordination deduction, capped at CHF 90,720) at age-banded rates of 7/10/15/18%, at least half paid by the employer — roughly 3.2% of gross at CHF 100,000 and 1.8% at CHF 180,000. Figures shown assume canton Zurich.
Where the marginal rate falls as gross rises
Measured: it drops 11.4 points — from 43.7% to 32.3% — around CHF 524,590 of gross.
2025 tax year
Selecting 2025 returns the same figures as 2026 at all 3 sampled salaries. That is correct where the thresholds were frozen, and a gap where they were not — see the limitations below.
Source of record
Eidgenössische Steuerverwaltung (Federal Tax Administration) · rule last reviewed 16 June 2026 · 12 salary payments a year modelled
Forward year
Nothing legislated yet; the whole year is carried over. The federal cold-progression adjustment and the cantonal and communal multipliers for 2027. Next update expected: EFD ordinance and cantonal budgets, autumn 2026.

🇬🇧United Kingdom

Weakly verified
What was asserted for 2026
The published top marginal rate (45%) against the 45.00% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from GBP 2,000 to GBP 500,560. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the personal-allowance taper between £100,000 and £125,140 creates a real 60% marginal band that the published table deliberately omits (it is described in solidarityNote), so an exact rate match would fail on correct data
Levied on top, and modelling assumptions
Scotland uses distinct bands: 19% starter, 20% basic, 21% intermediate, 42% higher, 45% advanced, 48% top. Personal allowance tapers £1 for every £2 of income above £100k. Student loan Plans 1/2/4/5 at 9% and postgrad at 6% of earnings above respective thresholds. Pension salary-sacrifice reduces both tax and NI.
Where the marginal rate falls as gross rises
Measured: it drops 15.0 points — from 60.0% to 45.0% — around GBP 120,393 of gross.
2025 tax year
Selecting 2025 returns the same figures as 2026 at all 3 sampled salaries. That is correct where the thresholds were frozen, and a gap where they were not — see the limitations below.
Source of record
HM Revenue & Customs · rule last reviewed 1 September 2026 · 12 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. Scottish rates and bands, and student-loan repayment thresholds, for 2027/28. Next update expected: Scottish Budget (December 2026); student-loan thresholds (spring 2027).

🇦🇹Austria

Weakly verified
What was asserted for 2026
The published top marginal rate (55%) against the 48.00% of gross the engine charges at the margin above it, plus income tax non-negative, never exceeding gross, and never falling as gross rises, sampled at 121 points from EUR 2,000 to EUR 4,000,000. No individual band rate or boundary was asserted. 6 of 6 rendered-table checks passed.
Why it cannot be checked band by band
the 14-month pay model taxes the 13th and 14th month at a flat 6% alongside the progressive scale, so a single marginal curve does not correspond to the published table
Levied on top, and modelling assumptions
Austria uses a 14-month pay model: 13th & 14th month (Urlaubs- und Weihnachtsgeld) taxed at flat 6% above €620 allowance. Familienbonus Plus €2,000/child/year (€700 for 18+). Alleinverdienerabsetzbetrag €612 (one child) / €828 (two) / €1,101 (three) / +€273 per additional child, for sole earners with at least one child. Verkehrsabsetzbetrag €496/year automatic commuter credit + Pendlerpauschale for distance-based travel.
2025 tax year
Selecting 2025 returns the same figures as 2026 at all 3 sampled salaries. That is correct where the thresholds were frozen, and a gap where they were not — see the limitations below.
Source of record
Bundesministerium für Finanzen (Federal Ministry of Finance) · rule last reviewed 1 September 2026 · 14 salary payments a year modelled
Forward year
Partly legislated; the rest is carried over. Only the graduated ALV boundaries for low earners, which follow the ASVG Aufwertungszahl rather than the tax indexation — they are estimated at the same 2.27%. Next update expected: ASVG Aufwertungszahl, late 2026.

Known limitations

These are properties of the engine that no guard can express, so unlike everything above they are written by hand. They are here because a verification page that lists only what passes is marketing.

Weak verification does not catch a wrong interior rate

For the weakly verified countries the guard asserts only the shape of the curve and its ceiling. A published band rate that is a point or two out, or a boundary in the wrong place, would pass. Those countries are the ones where the published statutory schedule and the function the engine evaluates are not the same object — averages of municipal rates, credit-based systems, two tax bases in one table — so there is nothing to compare band for band. This is the largest known blind spot and it is why the distinction is on this page at all.

Switzerland has no canton selector in the calculator, and its rates are interpolated

Swiss income tax is modelled as combined federal + cantonal + communal effective rates anchored at four income levels per canton and interpolated between them, not by evaluating a tariff (src/lib/engine/countries/ch.ts). The canton is an input to the engine, but the web calculator does not expose it, so every Swiss figure on the site assumes Zurich. Interpolation also means the marginal rate between anchors is an average rather than a real bracket rate, and it can fall as income rises. Use the Swiss federal administration’s own calculator for anything that has to be right to the franc.

Portugal is modelled on 12 monthly payments, not 14

Portuguese employment normally pays a subsídio de férias and a subsídio de Natal, making 14 payments a year. The engine models 12 for Portugal, so an annual figure built by multiplying the monthly result understates Portuguese pay. Austria is the only country whose rule declares 14 payments. Monthly figures are unaffected.

The earliest tax year received far less scrutiny than the current one

The bracket guard runs against the current tax year only; the rendered-table guard runs on both. When the country rules were reviewed against the tax authorities, four countries’ earlier-year figures were checked and all four were wrong: two had no earlier-year branch at all, so selecting that year silently returned the current year’s numbers; one had every bracket rate shifted by a row plus a deduction that is not in the statute; one had all five bracket thresholds left at pre-budget projections. Those four were fixed. The remaining countries’ earlier-year paths have not had the same review, and the honest prior is that some are wrong. Each country card above says whether the earlier year produces different numbers at all.

Every result is a single, standard case

Unless an input says otherwise the engine computes a single taxpayer with no dependants on ordinary employment income, resident for the whole year, in the default region of each country. Where a country’s tax varies by municipality, canton or region the calculator uses a national average or a default — the per-country notes above name which. Self-employed income, multiple employments, mid-year moves, equity compensation, benefits in kind and cross-border treaty relief are not modelled.

Approximations the country rules declare in their own source

Four are worth naming because they change a number rather than a caveat. Lithuania: the 60×VDU annual ceiling on the VSD pension contribution is not modelled, so an employee above roughly €138,700 a year is shown paying more social contribution — and so less net — than they actually do. Poland: the pension and disability contribution ceiling is applied as an annual average rather than “full until the cap is reached, then nothing”, so the annual total is right but no individual month matches a real payslip; and umowa zlecenie is modelled with sickness insurance included, which is in fact voluntary for that contract type. Ireland: the dependants input applies a €1,900 credit per dependant, but the Single Person Child Carer and Home Carer credits are once-off rather than per child, so two or more dependants overstate the credit. Estonia: the mandatory second pillar is taken at the 2% default, but a contributor may elect 4% or 6% and a non-member pays nothing, which the calculator has no way to know.

The guards run before release, not in a CI gate

Both guards are scripts run against the committed source; neither blocks a deploy automatically. This page is the compensating control: it runs both guards while it renders, so if a check were failing on the deployed code it would say so here, per country, rather than staying quiet.

Found something wrong?

Send the country, the gross, the period, the tax year and the figure you expected, with the authority page you are reading it from, via the contact form. A discrepancy that turns out to be real gets fixed in the engine and, because this page is generated from the engine, it changes here at the same time. If you are integrating the API, every response carries the date the country’s rules were last reviewed.

Tools

  • AI Calculator
  • $200k+ Jobs
  • Invoice
  • API
  • 2027 tax changes
  • Account

Site

  • About
  • Guides
  • Contact
  • Privacy policy
  • Terms of use

Countries

  • 🇱🇻 Latvia
  • 🇱🇹 Lithuania
  • 🇪🇪 Estonia
  • 🇵🇱 Poland
  • 🇩🇪 Germany
  • 🇪🇸 Spain
  • 🇫🇮 Finland
  • 🇸🇪 Sweden
  • 🇳🇴 Norway

 

  • 🇳🇱 Netherlands
  • 🇦🇪 UAE (Dubai)
  • 🇧🇷 Brazil
  • 🇵🇹 Portugal
  • 🇨🇭 Switzerland
  • 🇮🇪 Ireland
  • 🇬🇧 United Kingdom
  • 🇦🇹 Austria
  • 🇧🇪 Belgium
Not financial advice

All data provided is for informational purposes only. Tax calculations are estimates based on current rates and may not reflect all individual circumstances. Always consult with a tax professional for accurate advice.

About·Contact·Privacy policy·Terms of use

© 2026 NetSalaryApp. All rights reserved.

Tools

  • AI Calculator
  • $200k+ Jobs
  • Invoice
  • API
  • 2027 tax changes
  • Account

Site

  • About
  • Guides
  • Contact
  • Privacy policy
  • Terms of use

Countries

  • 🇱🇻 Latvia
  • 🇱🇹 Lithuania
  • 🇪🇪 Estonia
  • 🇵🇱 Poland
  • 🇩🇪 Germany
  • 🇪🇸 Spain
  • 🇫🇮 Finland
  • 🇸🇪 Sweden
  • 🇳🇴 Norway

 

  • 🇳🇱 Netherlands
  • 🇦🇪 UAE (Dubai)
  • 🇧🇷 Brazil
  • 🇵🇹 Portugal
  • 🇨🇭 Switzerland
  • 🇮🇪 Ireland
  • 🇬🇧 United Kingdom
  • 🇦🇹 Austria
  • 🇧🇪 Belgium
Not financial advice

All data provided is for informational purposes only. Tax calculations are estimates based on current rates and may not reflect all individual circumstances. Always consult with a tax professional for accurate advice.

About·Contact·Privacy policy·Terms of use

© 2026 NetSalaryApp. All rights reserved.