· NextMigrate Team

Germany vs Netherlands for Software Engineers: Take-Home Pay Compared

The short answer for a software engineer weighing a German salary against a Dutch one after tax: while the Dutch expat facility applies, a Dutch offer commonly leaves more in the bank each month than a German offer with a higher gross, and once that facility ends the two results converge, with Germany often ahead for a married single-earner household using a favourable tax class. Rent in the specific city then decides a large share of what is left. Both countries take income tax and compulsory social contributions from the payslip, and the two systems turn the same gross into different nets, so the gross figures on two offer letters tell you very little.

A software engineer comparing a German offer with a Dutch offer is usually comparing the wrong two numbers. Germany and the Netherlands both tax employment income progressively, both attach compulsory social contributions to a payslip, and both handle health insurance in a way that shows up as a deduction. The gross figure printed on an offer letter is the input to two different machines, and the machines produce different answers. A German offer that looks a few thousand euros larger can land lower in the bank once statutory health insurance, pension, unemployment and long-term care contributions are taken out, because those contributions apply from the first euro up to published assessment ceilings. A Dutch offer can land higher for a period if the applicant qualifies for the expat facility administered by the Belastingdienst, and can land close to the German result once that facility expires.

The comparison that answers the question is monthly net pay after tax, after social contributions, after health insurance and after the rent you will actually pay in the city where the job sits. That calculation is possible before you answer the recruiter, and it usually reorders the two offers.

This article is general information about how the two systems are structured. Every figure below is a planning range to check against a current published source. Tax bands, contribution rates, ceilings and the Dutch expat ruling are all revised, in some cases annually. Confirm each one against the authority named before you sign anything. This is general information only, and a registered or licensed adviser in the destination country, a tax adviser (Steuerberater in Germany, belastingadviseur in the Netherlands) and a lawyer or registered immigration adviser, should confirm how any of it applies to your own case before you act on it.

Who this comparison is for

This is written for a non-EU software engineer with either one live offer and a second in progress, or two offers on the table, from an employer in Germany and an employer in the Netherlands. It assumes you will enter Germany on an EU Blue Card or a comparable skilled worker residence permit, and the Netherlands as a highly skilled migrant sponsored by an employer with recognised sponsor status at the Immigration and Naturalisation Service (IND).

It fits backend, frontend, platform, data and machine learning engineers with roughly three to eight years of experience. It fits a single applicant, a couple, or a couple with one child, though the household composition changes the tax arithmetic in Germany far more than it does in the Netherlands, and that difference is covered below.

It does not fit contractors, freelancers or anyone planning to invoice a foreign company from inside either country. Self-employment sits under a different tax and social insurance regime in both places and needs its own analysis.

What you need before you start the calculation

You cannot model take-home pay from a headline number. Before you build the comparison, get these six items in writing from each employer.

  • The annual gross, and whether it includes holiday allowance. Dutch employment contracts commonly express an annual gross that includes a holiday allowance (vakantiebijslag), usually paid as a lump sum in May. A statutory minimum holiday allowance, commonly cited as 8 percent of gross annual pay, is set under the Dutch minimum wage and holiday allowance law (Wet minimumloon en minimumvakantiebijslag); confirm the current minimum and how your contract treats it with the Dutch government information pages and the employer. German contracts usually quote an annual gross paid in twelve or occasionally thirteen instalments. Two numbers that look equal are not equal if one of them has the holiday allowance folded in.
  • The pension arrangement. Germany's statutory pension contribution is compulsory and appears on the payslip. Dutch occupational pension schemes are sector or employer based, and the employee share is deducted from gross before payroll tax in most schemes, which changes the taxable base.
  • In Germany, whether the salary is above the threshold at which you may opt out of statutory health insurance. This single question can move a monthly net figure noticeably.
  • In the Netherlands, whether the employer will apply for the expat facility and whether they will state that in the contract. Ask for the answer in writing.
  • The city, and any relocation or housing allowance. Amsterdam, Munich and Berlin are three different rental markets, and the difference between them can exceed the difference in tax. Ask about bonus structure too, and exclude variable pay from your baseline model.

How German take-home pay is built

German payroll subtracts two distinct things: income tax and social insurance contributions. They are set by different bodies and they behave differently.

Income tax (Lohnsteuer). Germany applies a progressive schedule administered by the Finanzamt under rules set by the Bundesministerium der Finanzen. As published, the structure runs: a tax-free basic allowance (Grundfreibetrag), then a band where the marginal rate rises continuously from roughly 14 percent, then a band where the marginal rate reaches 42 percent, then a top band at 45 percent for very high incomes. The 42 percent marginal rate begins well inside the range a senior engineer earns, which is the fact most people miss when they assume a high marginal rate only affects executives. A solidarity surcharge still exists but has been narrowed so that most ordinary employees no longer pay it, and church tax applies only if you register as a member of a taxed religious body. Confirm the current bands and the current status of the surcharge with the Bundesministerium der Finanzen or the Finanzamt before you model.

Tax classes. Germany assigns employees a tax class (Steuerklasse) based on marital status and household. A married couple can choose combinations that shift monthly withholding between the two spouses, so a married engineer with a lower-earning spouse can see a materially better monthly net than a single engineer on the same gross. The Netherlands has no equivalent joint arrangement in the same form, which means a household comparison and a single-person comparison give different answers.

Social insurance contributions. These are separate from income tax and are shared between employer and employee. As published by the German Federal Ministry of Health and the statutory insurers, the employee side covers statutory health insurance, long-term care insurance, pension insurance and unemployment insurance. Two features drive the arithmetic:

  1. Each branch has a contribution assessment ceiling (Beitragsbemessungsgrenze), published annually. Earnings above the ceiling attract no further contribution in that branch. The practical effect is that the marginal deduction rate falls once you pass the ceilings, so a raise above them keeps more of itself than a raise below them.
  2. Statutory health insurance charges a general rate plus a fund-specific supplementary rate (Zusatzbeitrag) that varies by insurer. Two engineers on identical salaries with different sickness funds have slightly different net pay.

Statutory versus private health insurance. Above a published annual income threshold (the Jahresarbeitsentgeltgrenze, which sits in the German Social Code Book V and is updated each year by federal ordinance; confirm the current figure with your statutory health insurer, the Federal Ministry of Health or the Federal Ministry of Labour and Social Affairs), an employee may leave statutory insurance and buy private cover. Private premiums are rated on age and health at entry, so a healthy engineer in their early thirties can quote lower than the statutory contribution, which is charged as a percentage of income. Three consequences deserve real weight before anyone treats this as free money:

  • Private premiums rise with age and with medical inflation, and they are not capped by an income ceiling.
  • Family members are not automatically covered. Statutory insurance covers a non-earning spouse and children at no extra contribution. Private insurance charges a separate premium per person. For a family, statutory cover is frequently the cheaper arrangement even when the private quote for the engineer alone looks attractive.
  • Returning to statutory insurance later is restricted. Treat the decision as difficult to reverse and take advice from a licensed insurance adviser (Versicherungsmakler) in Germany before switching.

How Dutch take-home pay is built

The Dutch payslip is simpler to read and has a different shape.

Box 1 income tax and national insurance. The Belastingdienst taxes employment income in box 1 on a bracketed schedule, and the national insurance contributions (AOW state pension, Anw survivor benefit and Wlz long-term care) are collected inside the lowest bracket rather than as a separate line. The published effect is a high combined rate on the first slice of income and a lower marginal step above the bracket boundaries. This is why Dutch marginal rates look alarming on the first tranche and flatter afterwards, which is close to the mirror image of the German pattern.

Tax credits. Two credits do most of the work in Dutch net pay: the general tax credit (algemene heffingskorting) and the labour credit (arbeidskorting). Both phase out as income rises, and the phase-out is what makes the effective marginal rate for a mid-to-upper earner higher than the headline bracket rate suggests. Any calculator that ignores the credit phase-out will overstate a Dutch engineer's net pay.

Health insurance. The Netherlands requires every resident to buy a basic health insurance policy (basisverzekering) from a private insurer under the Zorgverzekeringswet. You pay the monthly premium yourself, direct to the insurer, so it never appears on the payslip and it is regularly left out of comparisons. Add it manually. There is also a compulsory annual deductible (eigen risico) you pay before most non-primary care is reimbursed, and a separate employer contribution collected through payroll. A healthcare allowance (zorgtoeslag), administered by the Belastingdienst, exists for lower incomes, and the income ceiling published for it sits far below a highly skilled migrant engineer salary, so as published an engineer on this route would not qualify. Confirm the current premium range and the current deductible with the insurers and the Dutch government information pages, and the allowance ceiling with the Belastingdienst.

Pension. Most Dutch employers participate in an occupational pension scheme, often mandatory by sector. The employee contribution is real money out of gross pay, and it is easy to omit when reading an offer that quotes only the annual salary. Ask for the scheme's employee contribution percentage.

The Dutch expat ruling, and why you should not plan on it

The expat facility, widely called the 30 percent ruling, allows a qualifying employer to pay part of an incoming employee's salary as a tax-free reimbursement of extraterritorial costs. It is granted by the Belastingdienst on a joint application from employer and employee. It is a tax matter and it is entirely separate from your IND residence permit.

Four things matter more than the headline percentage.

The rules have been changed more than once, and changed again after being changed. The percentage, the maximum duration and the cap on the salary it can be applied to have all been amended in recent years, in some cases legislated and then revised before taking full effect, with transitional arrangements that depend on the year in which you first started using the facility. As published by the Belastingdienst, the maximum duration for recent arrivals has been set at five years, having previously been longer, and both the percentage and a cap linked to the statutory senior pay norm in the Dutch top incomes law (Wet normering topinkomens) have been the subject of successive amendments. Treat every one of those specifics as a category to check with the authority, and assume no number you read elsewhere is settled. Any percentage or duration you read in an article, including this one, may not describe the position for someone starting work in your year of arrival. Verify the figure that applies to your start date on the Belastingdienst's own pages and with the employer's tax adviser before you let it influence a decision.

It has its own salary condition, separate from the IND threshold. The facility carries a minimum taxable salary requirement, with a reduced figure for younger employees holding a qualifying master's degree. Because the tax-free portion reduces taxable salary, what remains taxable still has to clear that norm. An offer can satisfy the IND's immigration threshold while the facility has to be applied at a reduced percentage, or not at all, to keep the taxable remainder above the norm.

It ends. Model year six as well as year one. An engineer who accepts a Dutch offer because the first-year net beats Germany, and who intends to stay long enough to qualify for permanent residence, will spend most of that period without the facility.

A distance condition applies. As published by the Belastingdienst, the facility is generally available only to employees recruited from outside the Netherlands who lived beyond a set distance from the Dutch border, commonly stated as 150 kilometres, for a defined qualifying portion of the period before the job started. Check the current distance and the current qualifying period on the Belastingdienst's own pages, since both the measure and the look-back window have been the subject of amendment. Someone already living in Belgium or western Germany may not qualify at all.

For the mechanics of the Dutch route itself, including the recognised sponsor requirement and the age-banded salary criterion, see our detailed piece on the Dutch highly skilled migrant salary threshold and sponsor list.

Side by side: what the two systems do to the same offer

The table below compares mechanisms rather than amounts, because amounts move every year and a wrong amount here would cost you money. Use it as the checklist you fill in with current published figures.

ElementGermanyNetherlandsWhere to verify
Income tax structureContinuously progressive, tax-free basic allowance, 42 percent marginal rate reached inside senior engineer range, 45 percent top bandBracketed box 1 schedule with national insurance folded into the lowest bracketBundesministerium der Finanzen and the Finanzamt; Belastingdienst
Household effectTax classes allow a married couple to shift withholding, materially helping a single-earner householdNo equivalent joint withholding arrangement in the same formFinanzamt; Belastingdienst
Pension contributionStatutory pension insurance, compulsory, employee share on payslip, capped at an assessment ceilingOccupational scheme, often sector mandatory, employee share deducted from grossDeutsche Rentenversicherung; the employer's pension fund
Unemployment insuranceCompulsory statutory contribution, capped at a ceilingUnemployment funding sits in employer-side contributions collected through payroll, so as published it does not appear as an employee deduction line in the same way. Confirm on your own payslip and with the employerBundesagentur für Arbeit; Belastingdienst
Health insuranceStatutory contribution as a percentage of income up to a ceiling, or private cover above a published income thresholdFlat monthly premium paid personally to a private insurer plus a compulsory annual deductibleYour statutory health insurer and the Federal Ministry of Health; Dutch government health insurance information and insurers
Family health coverNon-earning spouse and children covered under statutory insurance at no extra contributionEvery adult buys a policy; children are covered without a separate premiumYour statutory health insurer and the Federal Ministry of Health; Dutch insurers
Temporary tax relief for arrivalsNo general equivalent facilityExpat facility, percentage and duration amended repeatedly, capped, with its own salary normBelastingdienst
Immigration salary criterionEU Blue Card gross salary threshold, published and revised annually, with a lower threshold for shortage occupations that has included IT rolesIND highly skilled migrant gross monthly criterion, banded by age, published by the IND and adjusted at the start of each yearBAMF and the Federal Ministry of the Interior; IND
Employer preconditionEmployer must offer a qualifying contract; degree recognition checked against the ANABIN databaseEmployer must hold IND recognised sponsor statusANABIN and the local Ausländerbehörde; IND public sponsor register

The health insurance row is the one people leave out. The Dutch premium never appears on a payslip, so it vanishes from most side-by-side spreadsheets, while the German statutory contribution is visible and gets counted twice in people's heads, once as a deduction and again as evidence that Germany is expensive.

What the comparison usually shows

Three patterns come up repeatedly when engineers actually run the numbers with current published figures.

A German offer needs to be meaningfully higher to match a Dutch offer during the expat facility period. If the facility applies, the Dutch net in the first years can be strong enough that a German gross several thousand euros higher still loses. This is the case where the higher gross offer loses, and it is a real effect.

Once the facility ends, the two converge. After it expires, the Dutch net for a mid to upper income falls, and the German result, particularly for a married single-earner household, can pull ahead. If you plan to stay five years or more, model the whole period rather than the first year.

Rent frequently decides it. The gap between Amsterdam and a mid-sized German city can consume the entire tax advantage. A tax saving of a few hundred euros a month is erased by a rent difference of the same size, and the Amsterdam and Utrecht rental markets are tight, competitive and often require agency fees, a deposit of one or more months, and proof of income at a multiple of the rent. Berlin, Munich and Frankfurt vary enormously among themselves. Price the actual city you would live in.

Not sure which country you’d qualify for?

Take our free 2-minute eligibility assessment and get personalised results across 29 destinations, with no signup wall.

Start the free assessment →

If you are holding two offers and a recruiter deadline, the expensive mistake is answering before the numbers are modelled. A NextMigrate personal migration roadmap costs $499, reduced from $999, started with a $99 deposit with the balance settled afterwards. It models your actual offer through both systems, sets out the permit steps in order with the authority responsible for each, and gives you a document you can hold against a recruiter's timeline. See pricing, or start with the free eligibility assessment if you want to know first which routes you qualify for.

How long each route takes

Timelines below are planning ranges based on how each system is structured. Processing times are published by the authorities named and are revised, so confirm each one before you promise a start date to an employer.

StepGermanyNetherlandsSet by
Employer preconditionContract meeting the Blue Card or skilled worker criteria; degree checked in ANABINEmployer must already hold recognised sponsor status, or apply for it separatelyAusländerbehörde and BAMF; IND
Degree or qualification checkANABIN listing, or a statement of comparability from the ZAB where the degree is not listedNo separate immigration assessment of the degree for this routeZAB; IND
Application filed byApplicant at a German mission abroad, with the employer supplying documents; accelerated procedures existThe employer, as sponsor, files with the INDGerman missions abroad and the Ausländerbehörde; IND
Typical decision windowWeeks to a few months, heavily dependent on visa appointment availability at the missionShort by comparison, since a recognised sponsor files a streamlined applicationFederal Foreign Office and the German mission; IND
Biggest practical delayGetting an appointment at the German mission in your countryFinding housing, and having documents legalised and translated in timeLocal missions; IND and your home country authorities
Registration on arrivalAnmeldung at the local registration office, then residence title collectionBSN registration at the municipality, then permit collectionLocal Bürgeramt; municipality and IND
Family membersSpouse and children apply alongside; spouse work rights are generally broad for Blue Card familiesFamily members are included in the sponsor's application; spouse work rights are generally broadAusländerbehörde; IND

The German mission appointment is the item most likely to break a start date, and the bottleneck is usually the booking queue for that appointment. Our guide to migrating as a software engineer to Germany or Canada covers the Blue Card route in more detail.

The residence and permanent residence clocks each choice starts

Take-home pay shapes the first few years and the permit shapes the decade after that. Engineers routinely skip this part of the comparison and regret it later.

Germany. A skilled worker or EU Blue Card residence permit is time limited and tied initially to the qualifying employment. German law provides an accelerated route to a settlement permit (Niederlassungserlaubnis) for Blue Card holders who meet a German language requirement, with a shorter qualifying period than the general rule, and the qualifying periods were revised by the reform legislation of recent years. Language ability is the lever: reaching the required German level shortens the wait. Naturalisation rules were also reformed recently, including the general residence period and the treatment of dual nationality. Confirm the current periods and language levels with BAMF and your local Ausländerbehörde, because these are exactly the figures that have changed.

The Netherlands. A highly skilled migrant permit is tied to the sponsoring employer, and changing jobs requires the new employer to hold recognised sponsor status as well. That constraint is worth pricing: it narrows your job market inside the country. Permanent residence generally follows a continuous legal residence period of several years, and both permanent residence and naturalisation normally require passing civic integration examinations including Dutch language. Confirm the current period, the exemptions and the exam requirements with the IND.

The EU dimension. Both permits sit inside EU frameworks that allow, subject to conditions, later movement to another member state. The Blue Card framework in particular provides for intra-EU mobility after a qualifying period. This is a real option and it is condition-heavy, so research the current conditions with the authority in the second member state before you count on it.

If you are weighing whether the destination is a five-year posting or a permanent home, our comparison of permanent residency and citizenship sets out what each status actually gives you.

When this comparison does not work

Be honest about the cases where a net-pay model is the wrong tool.

  • When one offer is from a company that cannot sponsor. A Dutch offer from a company without IND recognised sponsor status is not an offer you can accept on this route, whatever it pays. Check the IND's public register of recognised sponsors before you model anything.
  • When your degree is not recognised in Germany. The Blue Card route depends on a recognised higher education qualification, checked against ANABIN, with a separate provision, as published, allowing IT specialists to qualify on documented professional experience where they hold no recognised degree. Confirm the current experience requirement and the occupations it covers with BAMF and the local Ausländerbehörde. Our guide to ANABIN degree recognition for engineers in Germany explains how to check a specific university and programme.
  • When the salary sits near the immigration threshold. If a small currency movement or annual indexation could put the offer below the criterion, deal with eligibility first and model net pay afterwards.
  • When one offer includes equity. Share-based pay is taxed under specific rules in both countries, sometimes at grant, sometimes at vest, sometimes at sale, and it is a matter for a qualified tax adviser working from your grant documents.

Common mistakes

  1. Comparing gross to gross. The gross figure is only an input. Compare monthly net after tax, contributions, health insurance and housing.
  2. Forgetting the Dutch holiday allowance. Check whether the 8 percent sits inside or outside the quoted annual figure.
  3. Leaving the Dutch health insurance premium out. It is not on the payslip, so it disappears from spreadsheets. Add the monthly premium and the annual deductible.
  4. Assuming private health insurance in Germany is cheaper. It can be for a single young person, and it is frequently more expensive for a family, rises with age, and is hard to reverse.
  5. Building the whole case on the Dutch expat facility. It expires, and it has been amended more than once. Model the years after it ends.
  6. Ignoring the German tax class effect. A married single-earner household can see a very different German result from a single applicant on the same gross.
  7. Using a country-average rent. Rents inside each country vary enormously between cities. Use current listings for the specific city and the commute you would actually accept.
  8. Ignoring the job mobility constraint. A Dutch permit tied to recognised sponsors narrows where you can move next, and a German permit tied initially to qualifying employment has its own limits. Ask what happens if you are made redundant in month eight.
  9. Paying an agent for a job offer. No legitimate employer or recruiter in either country charges a candidate a fee for a job offer or a permit.

Verifying the employer and the adviser

Both routes are employer led, and that makes them targets for fraud. Concrete warning signs:

  • Any request for an upfront fee in exchange for a job offer, a permit, a work visa or a "sponsorship slot". Employers and recruiters in Germany and the Netherlands do not charge candidates for this.
  • Payment requested to a personal bank account, or by a money transfer service, or in cryptocurrency.
  • A guaranteed visa or a guaranteed approval. No one can guarantee a decision by the IND, BAMF or a German mission.
  • An adviser who will not name their registration. Legal advice in Germany is regulated under the Legal Services Act (Rechtsdienstleistungsgesetz), and lawyers are admitted through a regional bar (Rechtsanwaltskammer). In the Netherlands, check that a lawyer is registered with the Dutch bar association (Nederlandse Orde van Advocaten). Ask for the registration number and check it yourself on the regulator's own site. A screenshot proves nothing.

Two free checks catch most fraud. Confirm the Dutch company appears on the IND's published register of recognised sponsors, and confirm the German company exists in the commercial register with an email domain matching its corporate website exactly.

What to do next

Work in this order.

  1. Get both offers in writing, with the pay structure itemised as described above.
  2. Check the Dutch employer against the IND recognised sponsor register, and check your degree against ANABIN for the German route.
  3. Pull the current published figures: German tax bands and contribution ceilings, the statutory health insurance rate and the private opt-out threshold, the Dutch box 1 brackets and credits, the Dutch basic insurance premium range, and the expat facility rules for your year of arrival.
  4. Model twelve months of net pay in each, then model year six.
  5. Subtract real rent from listings in the actual city, plus the deposit and any agency fee due on arrival.
  6. Write down the permanent residence timeline each choice starts, including language requirements, then have a licensed adviser in the destination country confirm the case before you resign.

If you want that done as a single document with the authorities and the sequence set out for your profile, a NextMigrate personal migration roadmap is $499, down from $999, and starts with a $99 deposit with the balance settled afterwards. See pricing for what is included, or take the free eligibility assessment first if you want to confirm which routes you qualify for before paying anything.

Frequently Asked Questions

Does Germany or the Netherlands leave a software engineer with more money after tax?

It depends on the year and the household. While the Dutch expat facility applies, a Dutch offer often nets more than a German offer with a higher gross. After it ends, the German result can pull ahead, particularly for a married single-earner household using a favourable tax class. Neither country wins as a general rule, so run the calculation on your actual offer and city using figures confirmed with the Belastingdienst and the Finanzamt.

Is the Dutch 30 percent ruling still 30 percent?

Treat any stated percentage as unverified until you check it for your year of arrival. The percentage, the maximum duration and the cap on the salary it applies to have all been amended in recent years, in some cases legislated and then revised, with transitional arrangements tied to when you first used the facility. The Belastingdienst publishes the current position, and the employer's tax adviser should confirm what applies to your specific start date.

Should I take private health insurance in Germany?

Only after advice, and only once the family question is answered. The opt-out is available above a published income threshold set by the German Federal Ministry of Health. Private cover is priced on age and health at entry, so it can be cheaper for a healthy single person, and it charges a separate premium for a spouse and each child where statutory insurance covers dependants at no extra contribution. Premiums rise with age and returning to statutory cover later is restricted. Speak to a licensed adviser in Germany first.

What salary do I need to qualify for each route?

Germany publishes an EU Blue Card gross salary threshold that is revised annually, with a lower threshold for shortage occupations that has included IT roles. The Netherlands publishes an IND highly skilled migrant gross monthly salary criterion banded by age, with a reduced band for younger applicants and a further reduced band, as published, for those who graduated in the Netherlands or used the orientation year, adjusted at the start of each year. Both are published figures that change, so read the current number on the BAMF and IND pages before you negotiate.

Can I change jobs after I arrive?

In the Netherlands, a new employer must also hold IND recognised sponsor status, which narrows your options inside the country. In Germany, a skilled worker or Blue Card permit is initially tied to qualifying employment, with rules on notifying or seeking approval for a change depending on how long you have held the permit. Ask the local Ausländerbehörde and the IND what applies in your case, and ask both employers what happens if the role ends during probation.

How long until permanent residence in each country?

Germany offers an accelerated settlement permit for Blue Card holders who meet a German language requirement, with a shorter qualifying period than the general rule, and the periods were revised by recent reform legislation. The Netherlands generally requires several years of continuous legal residence plus civic integration examinations including Dutch. Both timelines were changed within the last few years, so confirm the current periods with BAMF and your Ausländerbehörde for Germany and with the IND for the Netherlands.

Does the comparison change if I am moving with a family?

Substantially. German statutory health insurance covers a non-earning spouse and children at no extra contribution, and the tax class system can improve monthly net for a single-earner couple, while in the Netherlands each adult buys their own basic policy. Childcare, schooling and the spouse's job market usually move the household result more than the tax difference does. For the general framework of tax residence when a household moves, see our guide to taxes when you migrate abroad.

The bottom line

Germany and the Netherlands both want experienced software engineers and both have working routes to bring them in. The offer that pays more is decided by the interaction of progressive tax bands, capped social contributions, two very different health insurance systems, a temporary Dutch tax facility that has been amended repeatedly, and the rent in one specific city. Run that calculation on your two real offers, using figures confirmed with the Belastingdienst, the Finanzamt, the German Federal Ministry of Health, BAMF and the IND, before you answer the recruiter. Then look past the money at the permit clock each choice starts, because the residence and permanent residence timelines outlast the pay difference.

Get migration tips in your inbox

Practical guides, visa updates, and opportunities, delivered weekly.