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

Where the mechanism is a simple flat rate or clear exempt percentage, we can show a high-level arithmetic illustration. We do not label that figure ‘take-home pay’ unless the calculation includes the other payroll layers. Social security, deductions, municipal taxes, pensions, benefits in kind and non-salary income can all change net cash.

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

Language versions use separate URLs and the same underlying structured facts. Legal scheme names may remain in their official form where translating them could create ambiguity. Currency and country names are localised for readability while official thresholds retain their legal currency codes.

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. SEO without manufacturing thin pages

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.