How ExpatEngine builds its tools

Our calculators are built from primary rules and structured data. This page explains how sources, currencies, thresholds, timelines and estimates are handled.

1. Source hierarchy

Hard eligibility facts are taken from primary material where practical: tax authorities, immigration ministries, government portals and legislation. Professional summaries are useful for context, but a salary threshold or residence period should be anchored to an authority source before it enters a calculator.

2. Structured rules, not free-form articles

The calculators read structured fields: jurisdiction, scheme status, profile, legal currency, salary threshold, duration, tax mechanism, prior-residence tests and source links. Separating data from prose lets us update one rule consistently across the finder, directory and deep page.

3. Currency handling

Salary comparisons are normalised to EUR internally so that a €130,000 offer can be screened consistently against DKK, GBP, CHF and other thresholds. The user still sees the official local-currency threshold. Exchange rates are planning inputs, not legal substitutes for the amount defined by an authority.

4. Tax estimates

Published-rate schemes show the tax from that rate and the income remaining, with exclusions. Partial-exemption schemes show the relieved amount and the remaining salary tax base. No assumed 30–40% ordinary tax band is used. A payroll estimate still requires social insurance, deductions, pensions, benefits and personal circumstances.

5. Residence and citizenship timelines

The timeline adds a published residence-duration milestone to the qualifying start date and shows elapsed time. It does not assume that every day automatically counts. Absence limits, permit continuity, status-specific rules, language or civic requirements, permanent-residence prerequisites and decision timing can all matter.

6. Schengen calculation

The 90/180 tool evaluates the rolling 180-day window. Completed stays must use dates that have already occurred; future travel is handled separately in planning mode. Each day of a proposed consecutive stay is tested because older stay days can fall out of the rolling window during the trip.

7. Translation and localisation

The maintained edition is in English. Former translated URLs redirect to the corresponding English page so that visitors reach the same rules, examples and sources. Official scheme names and statutory currency codes are retained.

8. Change control

Rules are reviewed as a data set rather than as isolated articles. Material changes to thresholds, duration or eligibility are reflected in the structured record and the affected pages are regenerated. A future tax year can still change before you move, so time-sensitive decisions should be checked again close to the event.

9. Editorial independence

ExpatEngine separates factual tool logic from advertising or affiliate relationships. Commercial links do not determine which country or regime appears as a match. Sponsored placements, if added later, will be labelled and kept separate from eligibility results.

10. Testing calculator logic

Before a calculator is published, representative scenarios are tested for expected matches, obvious non-matches, boundary values and invalid input. Date tools are also tested around leap years, overlapping stays, future dates and rolling-window edges. A calculation that cannot distinguish an invalid input from a genuine result is not useful enough to publish.

11. What an estimate can and cannot do

ExpatEngine distinguishes between an eligibility screen, a tax-effect illustration and a full take-home-pay calculation. These are different tasks. A regime finder can identify plausible routes from structured facts; a tax-effect illustration can apply a clear flat rate or exemption; a full payroll calculation would also need social insurance, local surtaxes, deductions, pension treatment, benefits and personal circumstances. The label shown in the tool reflects that difference.

12. Country-specific conditions

Cross-border rules often contain decisive conditions that do not belong on the first screen. Examples include prior residence, distance tests, employer relationships, professional qualifications, application deadlines and minimum periods of future residence. We keep the first comparison short, then surface these conditions against the relevant result so the user can understand why a scheme may or may not work.

13. Page scope

ExpatEngine uses indexable pages where there is a distinct user question and enough information to answer it. We do not generate thousands of near-identical salary combinations or empty country pages merely to increase page count. Directory pages, guides and scheme profiles are intended to stand on their own, while calculators provide the personalised layer.