Methodology & data sources
Every country’s calculator on mytakehomepay.app is checked against that country’s own reference calculator. This page lists the reference, the tolerance, how many cases the engine is locked against, and whether that lock is a live scrape of the reference or a hand-derived fixture set — so you can decide for yourself how much to trust each result.
Last verification run: 19 May 2026 · 63 fixtures across 5 countries · questions: hello@mytakehomepay.app
How verification works
Two kinds of verification run on every commit:
- Scraped snapshot. Today Germany only. A Playwright script (
pnpm verify:de) drives the BMF Lohnsteuer-Rechner headlessly for the 29 fixture inputs, writes the snapshot, and a Vitest loop replays every input through the engine and asserts the result within the published tolerance. The build fails the moment any fixture drifts. - Hand-derived fixtures.UK, US, France and Spain. The expected net for each case was computed by hand from the authority’s published bands and cross-checked against the country’s reference calculator on the day the fixture was written, then locked into the test suite. The same Vitest loop replays every commit; the build fails if the engine drifts. The roadmap is to extend the scraper pattern (
verify:<cc>) to all four so the snapshot is recomputed from the reference on a schedule, not pinned to a single point in time.
The verification table below makes the distinction explicit per country.
Per-country status
| Country | Tax year | Reference | Verification | Tolerance | Fixtures |
|---|---|---|---|---|---|
| United Kingdom | 2025/26 | HMRC Estimate your Income Tax | Hand-derived | ±£0.05 on each fixture | 19 |
| Germany | 2026 | BMF Lohn- und Einkommensteuerrechner | Scraped snapshot | ±€20 / month on net (±€240/yr); Lohnsteuer ±€240; Soli + Kirchensteuer ±€50 | 29 |
| United States | 2025 | SmartAsset state paycheck calculators | Hand-derived | ±$5 on each fixture | 10 |
| France | 2025 | URSSAF mon-entreprise | Hand-derived | ±€500 per year | 3 |
| Spain | 2025 | Cinco Días sueldo neto | Hand-derived | ±€500 per year | 2 |
United Kingdom
Reference: HMRC Estimate your Income Tax. HMRC is the UK tax authority; the ready-reckoner uses the same logic as PAYE itself, so it's the closest thing to an oracle.
Tolerance: ±£0.05 on each fixture. Fixtures: 19. Tax year: 2025/26.
Cases hand-derived from HMRC bands (Personal Allowance, basic/higher/additional + PA taper above £100,000), then locked in as fixtures. Covers NI Class 1 thresholds + UEL, student-loan plans 1/2/4/5 + postgrad, and pension as net-pay. Headless HMRC scraper is on the roadmap.
Germany
Reference: BMF Lohn- und Einkommensteuerrechner. The Bundesfinanzministerium calculator is the legally-binding reference (the Programmablaufplan). Scraped via the Handelsblatt embed because the embed exposes a friendlier DOM.
Tolerance: ±€20 / month on net (±€240/yr); Lohnsteuer ±€240; Soli + Kirchensteuer ±€50. Fixtures: 29. Tax year: 2026.
Steuerklasse I covered (single, no children). All 16 Bundesländer respected (8 % vs 9 % Kirchensteuer for BY/BW vs the rest). Steuerklassen II–VI, Midijob, PKV, and the §32a 2026 zone-2 polynomial constants are still pending. Snapshot regenerated by `pnpm verify:de` (Playwright).
United States
Reference: SmartAsset state paycheck calculators. The IRS publishes no public gross-to-net calculator; SmartAsset is the de-facto industry reference and the one professional payroll teams audit against. The portfolio's rule that engines pin to a government calculator has the United States as its explicit exception.
Tolerance: ±$5 on each fixture. Fixtures: 10. Tax year: 2025.
Federal brackets + standard deduction, FICA (SS + Medicare), Additional Medicare surtax; California / New York / Texas / Florida / Illinois. Single filer only at v1; MFJ / MFS / HoH and the remaining 45 states roll out in subsequent releases. Headless SmartAsset scraper is on the roadmap.
France
Reference: URSSAF mon-entreprise. URSSAF is the French social-security collector. mon-entreprise is its public-facing simulator — government source, brut → net → net-après-impôt in one pass. Used because the DGFiP simulator at impots.gouv.fr is auth-gated and harder to scrape politely.
Tolerance: ±€500 per year. Fixtures: 3. Tax year: 2025.
Cotisations sociales, CSG/CRDS, abattement 10 % capped at €14,426, PAS at marginal rate. Cases cross-checked against URSSAF mon-entreprise; single filer v1. Quotient familial and prélèvement à la source individualisé deferred. Headless mon-entreprise scraper is on the roadmap.
Spain
Reference: Cinco Días sueldo neto. AEAT (Spanish tax authority) does have a renta simulator, but it's auth-gated. Cinco Días (Grupo PRISA) is the Spanish-industry reference calculator used in financial-press coverage; pinned to here as the closest publicly-scrapeable proxy. AEAT direct verification is on the roadmap.
Tolerance: ±€500 per year. Fixtures: 2. Tax year: 2025.
IRPF state + autonomic brackets (Madrid default), Seguridad Social with the contribution ceiling, mínimo personal y familiar baseline. Cases cross-checked against Cinco Días. Regional surcharges for Catalunya / Andalucía / País Vasco follow once the multi-region UX lands.
The US exception
Every other country on the site is pinned to its government-operated calculator. The United States is the explicit exception: the IRS publishes no public gross-to-net tool that covers state-level withholding, and the state DOR calculators differ wildly in completeness. SmartAsset is the de-facto industry reference, used by professional payroll teams as their own audit baseline, and is the most consistent multi-state source available. If the IRS or a state DOR ever ships a public calculator, the US engine will switch its reference and the change will be flagged here.
What “within tolerance” means in practice
A tolerance of ±£0.05 per fixture (UK) means: for every fixture in the test matrix, the engine’s annual net result is within five pence of the hand-derived number cross-checked against HMRC’s ready-reckoner. The wider tolerances (±€20/month for Germany, ±€500/year for France and Spain, ±$5 per case for the US) reflect known undocumented constants in the reference calculators — for example, the BMF’s 2026 §32a zone-3 polynomial coefficients aren’t publicly published. These tolerances narrow as the underlying coefficients become available or as we land live scrapers for each country.
What the engine doesn’t do
The calculator is a pre-tax-code estimator: it computes what the published rules say a typical employee on a standard tax code should net. It does not model:
- Prior-year underpayments or HMRC tax-code adjustments (UK), Steuerklasse changes mid-year (DE), zonal city-tax overlays beyond the listed states (US).
- Salary-sacrifice schemes, share-scheme withholdings, or employer-administered benefits-in-kind.
- Foreign-tax credits, double-taxation treaties, or non-resident scenarios.
- Family-status optimisations (UK marriage allowance, DE Steuerklassen II/III/IV shifts, FR quotient familial, ES mínimo familiar above the baseline).
These are deliberate omissions for the v1 surface, not bugs — the bracket pages would become unusable if every input had to handle every edge case. They are tracked on the roadmap and prioritised by traffic.
Reporting a discrepancy
If your payslip disagrees with a result here by more than the published tolerance, mail hello@mytakehomepay.appwith the inputs you typed (gross + country + options) and the number from your country’s reference calculator. Bugs with a reproducer get fixed in the same release cycle.