Skip to content

Updated · NextMigrate Team

Bicycles locked along a canal bridge lined with autumn trees in Amsterdam
Photo: David L. Espina Rincon / Unsplash

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

Imagine you are a backend developer in Bengaluru. Five years of late nights, a stalled promotion, and a rent that eats more of your salary every year. Then, in the same week, two offers arrive. One from a company in Germany. One from a company in Amsterdam.

The German letter shows the bigger number. Your heart says "take it". But a friend who moved last year warns you: "The gross means nothing. Check what lands in your account."

So you open a spreadsheet at midnight, with no idea what to type.

The short answer: While the Dutch expat facility applies, a Dutch offer often leaves more in the bank each month than a German offer with a higher gross. Once that facility ends, the two results get close, and Germany is often ahead for a married single-earner household with a good tax class. Rent in your city then decides a large share of what is left. So the gross figures on two offer letters tell you very little.

Why the bigger number can lose

Think of your gross salary as a bag of oranges. Germany and the Netherlands are two different juicers. Put the same oranges in each and you get a different amount of juice. A German offer a few thousand euros bigger can land lower in the bank, because health, pension, unemployment and long-term care contributions apply from the first euro up to published ceilings. A Dutch offer can land higher while you hold the expat facility run by the Belastingdienst, then drop close to the German result when it ends.

The only number that answers your question is monthly net pay, after tax, social contributions, health insurance and the rent you will really pay in that city. It often flips the order of the two offers.

Tax bands, rates, ceilings and the Dutch expat ruling change, some every year. Confirm each with the authority named. This is general information only. A tax adviser (Steuerberater in Germany, belastingadviseur in the Netherlands) and a lawyer or registered immigration adviser should confirm your case before you act.

Is this comparison for you?

It is for a non-EU software engineer with about three to eight years of experience, weighing a German and a Dutch offer. It assumes an EU Blue Card or similar skilled worker permit in Germany, and the highly skilled migrant route in the Netherlands, sponsored by an employer with recognised sponsor status at the Immigration and Naturalisation Service (IND). It fits singles, couples and young families, though your household changes the German maths far more than the Dutch. It does not fit contractors or freelancers, who face different rules in both countries.

What to get in writing first

You cannot model take-home pay from a headline number. Ask each employer for these, in writing:

  • The annual gross, and whether it includes holiday allowance. Dutch contracts often quote an annual gross that includes holiday allowance (vakantiebijslag), usually paid as a lump sum in May. The legal minimum, often cited as 8 percent of gross annual pay, comes from the Dutch minimum wage and holiday allowance law (Wet minimumloon en minimumvakantiebijslag). Confirm the current minimum, and how your contract treats it, with Dutch government pages and the employer. German contracts usually quote a gross paid in twelve, sometimes thirteen, instalments.
  • The pension arrangement. Germany's statutory pension contribution is compulsory and on the payslip. Dutch occupational pensions are sector or employer based. In most schemes, the employee share comes off gross before payroll tax, which changes the taxable base.
  • In Germany: is the salary above the line where you may leave statutory health insurance? This can move your net noticeably.
  • In the Netherlands: will the employer apply for the expat facility, and will they say so in the contract? Get it in writing.
  • The city, and any relocation or housing allowance. Amsterdam, Munich and Berlin are three different rental markets. Leave bonuses out of your baseline.

How German take-home pay is built

Income tax (Lohnsteuer). The Finanzamt applies a progressive schedule under rules set by the Bundesministerium der Finanzen. First comes a tax-free basic allowance (Grundfreibetrag). Then the marginal rate rises smoothly from roughly 14 percent, reaches 42 percent, and tops out at 45 percent for very high incomes. What most people miss: the 42 percent rate starts well inside a senior engineer's salary range. A solidarity surcharge still exists, but most ordinary employees no longer pay it. Church tax applies only if you register as a member of a taxed religious body. Confirm the current bands and the surcharge with the Bundesministerium der Finanzen or the Finanzamt.

Tax classes. Germany gives each employee a tax class (Steuerklasse) based on marriage and household. A married couple can choose combinations that move monthly withholding between them. So a married engineer with a lower-earning spouse can take home clearly more each month than a single engineer on the same gross. The Netherlands has nothing quite like it.

Social insurance. Employer and employee share it. As published by the German Federal Ministry of Health and the statutory insurers, the employee side covers health, long-term care, pension and unemployment insurance. Two features drive the maths:

  1. Each branch has a contribution ceiling (Beitragsbemessungsgrenze), published every year. Think of it as a bucket. Once it is full, no more is poured in for that branch. So once you pass the ceilings, a pay rise keeps more of itself.
  2. Statutory health insurance charges a general rate plus a supplementary rate (Zusatzbeitrag) that varies by insurer. So your fund choice shifts net pay slightly.

Statutory or private health insurance? Above a published annual income threshold, you may leave statutory insurance and buy private cover. That threshold is the Jahresarbeitsentgeltgrenze. It sits in the German Social Code Book V and is updated each year by federal ordinance. Confirm it with your statutory insurer, the Federal Ministry of Health or the Federal Ministry of Labour and Social Affairs. Private premiums are priced on your age and health when you join, so a healthy engineer in their early thirties may get a quote below the statutory contribution. Before you treat that as free money, weigh three things:

  • Private premiums rise with age and medical inflation. No income ceiling caps them.
  • Family is not covered for free. Statutory insurance covers a non-earning spouse and children at no extra cost. Private cover charges per person.
  • Going back to statutory insurance later is restricted. Treat this as hard to reverse, and get advice from a licensed insurance adviser (Versicherungsmakler) in Germany first.

How Dutch take-home pay is built

Box 1 income tax and national insurance. The Belastingdienst taxes employment income in box 1 using brackets. National insurance (AOW state pension, Anw survivor benefit and Wlz long-term care) is collected inside the lowest bracket, not as a separate line. The result: a high combined rate on the first slice of income, and a smaller step above it. That is almost the mirror image of Germany.

Tax credits. Two credits do most of the work: the general tax credit (algemene heffingskorting) and the labour credit (arbeidskorting). Both shrink as income rises. That shrinking pushes the real marginal rate for a mid-to-upper earner above the headline rate. A calculator that ignores it will overstate a Dutch engineer's net pay.

Health insurance. Every resident must buy a basic policy (basisverzekering) from a private insurer under the Zorgverzekeringswet. You pay the premium yourself, straight to the insurer. So it never appears on your payslip, and people often forget it. Add it by hand. There is also a compulsory yearly deductible (eigen risico) before most non-primary care is paid, plus a separate employer contribution through payroll. A healthcare allowance (zorgtoeslag) exists, but as published its income ceiling sits far below a highly skilled migrant salary. Confirm the premium range and deductible with insurers and Dutch government pages, and the allowance ceiling with the Belastingdienst.

Pension. Most Dutch employers use an occupational scheme, often compulsory for the sector. Your share is real money out of gross pay. Ask for the employee contribution percentage.

The Dutch expat ruling: lovely, but temporary

The expat facility, often called the 30 percent ruling, lets a qualifying employer pay part of your salary as a tax-free allowance for the extra costs of moving. The Belastingdienst grants it when employer and employee apply together. It is separate from your IND residence permit.

Think of it like the first-year discount on a phone contract. It feels great. But you have to plan for the price after the promotion ends. Four things matter more than the headline percentage.

The rules keep changing. The percentage, the maximum length and the salary cap have all been amended in recent years. Transition rules depend on the year you first used the facility. As published by the Belastingdienst, the maximum duration for recent arrivals is five years, down from longer before. Both the percentage and a cap linked to the senior pay norm in the Dutch top incomes law (Wet normering topinkomens) have been amended several times. Any percentage or duration you read, including here, may not fit your year of arrival. Check the Belastingdienst's own pages and ask the employer's tax adviser.

It has its own salary test, separate from the IND one. The facility needs a minimum taxable salary, with a lower figure for younger employees with a qualifying master's degree. Because the tax-free part reduces your taxable salary, what is left must still clear that bar. An offer can pass the IND immigration threshold and still get the facility at a lower percentage, or not at all.

It ends. Model year six as well as year one. If you choose the Dutch offer because year one beats Germany, and you plan to stay for permanent residence, you will spend most of that time without the facility.

There is a distance rule. As published by the Belastingdienst, the facility is generally only for people recruited from abroad who lived more than a set distance from the Dutch border, often stated as 150 kilometres, for part of the period before the job. Check the current distance and look-back period on the Belastingdienst's pages, as both have changed. If you already live in Belgium or western Germany, you may not qualify at all.

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

Side by side: what each system does to the same offer

This table compares how things work, not amounts, which change every year. Use it as a checklist to fill in with current figures.

ElementGermanyNetherlandsWhere to verify
Income tax structureSmoothly progressive, tax-free basic allowance, 42 percent marginal rate reached inside senior engineer range, 45 percent top bandBracketed box 1 schedule with national insurance inside the lowest bracketBundesministerium der Finanzen and the Finanzamt; Belastingdienst
Household effectTax classes let a married couple shift withholding, clearly helping a single-earner householdNo equivalent joint withholding in the same formFinanzamt; Belastingdienst
Pension contributionStatutory pension insurance, compulsory, employee share on payslip, capped at a ceilingOccupational scheme, often compulsory by sector, employee share taken from grossDeutsche Rentenversicherung; the employer's pension fund
Unemployment insuranceCompulsory statutory contribution, capped at a ceilingFunded mainly through employer contributions in payroll, so as published it does not show as an employee deduction in the same way. Check your own payslip and ask 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 by you to a private insurer, plus a compulsory yearly deductibleYour statutory insurer and the Federal Ministry of Health; Dutch government health pages and insurers
Family health coverNon-earning spouse and children covered under statutory insurance at no extra costEvery adult buys a policy; children are covered without a separate premiumYour statutory insurer and the Federal Ministry of Health; Dutch insurers
Temporary tax relief for arrivalsNo general equivalentExpat facility, percentage and length amended repeatedly, capped, with its own salary testBelastingdienst
Immigration salary criterionEU Blue Card gross salary threshold, revised every year, with a lower threshold for shortage jobs that has included IT rolesIND highly skilled migrant gross monthly criterion, banded by age, adjusted at the start of each yearBAMF and the Federal Ministry of the Interior; IND
Employer preconditionEmployer offers a qualifying contract; degree checked in 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 skip. The Dutch premium never shows on a payslip, so it vanishes from spreadsheets. The German one is visible, so people count it twice in their heads.

What engineers usually find

When engineers run the numbers with current figures, three patterns keep appearing.

During the expat facility, Germany needs a clearly higher offer to match. The Dutch net in the first years can beat a German gross several thousand euros higher.

After the facility ends, the two get close. The Dutch net falls, and Germany can pull ahead, especially for a single-earner couple. Staying five years or more? Model the whole period.

Rent often decides it. The gap between Amsterdam and a mid-sized German city can swallow the entire tax advantage. Amsterdam and Utrecht are tight, competitive markets. They often need agency fees, a deposit of one month or more, and proof that you earn a multiple of the rent. Berlin, Munich and Frankfurt vary a lot among themselves. Price the actual city.

Ask yourself: if you stayed five years, which offer leaves you more each month after rent, not just in year one?

If you are holding two offers and a recruiter's deadline, the expensive mistake is answering before you have run the numbers.

Want a person to check your route?

A 60-minute plan check and a written roadmap in 48 hours, for up to 3 countries. $99 books it, $499 in total. Full refund if you cancel 24 hours before.

See what you get →

How long each route takes

Planning ranges only. Confirm processing times with each authority before you promise a start date.

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 itAusländerbehörde and BAMF; IND
Degree checkANABIN listing, or a statement of comparability from the ZAB if the degree is not listedNo separate immigration check of the degree on this routeZAB; IND
Who filesYou, at a German mission abroad, with documents from the employer; faster procedures existThe employer, as sponsor, files with the INDGerman missions and the Ausländerbehörde; IND
Typical decision timeWeeks to a few months, mostly down to mission appointmentsShort by comparison, via a streamlined sponsor filingFederal Foreign Office and the German mission; IND
Biggest practical delayGetting an appointment at the German mission in your countryFinding housing, and getting documents legalised and translated in timeLocal missions; IND and your home authorities
Registration on arrivalAnmeldung at the local registration office, then collect the residence titleBSN registration at the municipality, then collect the permitLocal Bürgeramt; municipality and IND
FamilySpouse and children apply alongside; spouse work rights generally broadIncluded in the sponsor's application; spouse work rights generally broadAusländerbehörde; IND

The German mission appointment is the step most likely to break your start date, usually because of the booking queue. Our guide to migrating as a software engineer to Germany or Canada covers the Blue Card route in more detail.

The permanent residence clock each choice starts

Pay shapes the first few years. The permit shapes the next ten.

Germany. A skilled worker or EU Blue Card permit is time-limited and first tied to the qualifying job. German law offers Blue Card holders who meet a German language requirement a faster route to a settlement permit (Niederlassungserlaubnis), with a shorter wait than the general rule. Recent reforms changed those periods. Language is your lever. Citizenship rules, including the residence period and dual nationality, were also reformed. Confirm current periods and language levels with BAMF and your local Ausländerbehörde.

The Netherlands. A highly skilled migrant permit is tied to the sponsoring employer. To change jobs, the new employer must also be a recognised sponsor. That shrinks your job market, so count it as a cost. Permanent residence generally follows several years of continuous legal residence. Both permanent residence and citizenship normally need civic integration exams, including Dutch. Confirm the period, exemptions and exams with the IND.

The EU angle. Both permits sit inside EU frameworks that allow, under conditions, a later move to another member state. The Blue Card in particular allows movement within the EU after a qualifying period. It is real but condition-heavy, so check with the second country first.

Is this a five-year posting or your future home? Our comparison of permanent residency and citizenship sets out what each status really gives you.

When a net-pay model is the wrong tool

  • One employer 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 first.
  • Your degree is not recognised in Germany. The Blue Card route depends on a recognised degree, checked in ANABIN. As published, a separate rule lets IT specialists qualify on documented professional experience without a recognised degree. Confirm the experience requirement and covered jobs with BAMF and the local Ausländerbehörde. Our guide to ANABIN degree recognition for engineers in Germany shows how to check your university and programme.
  • The salary is near the immigration threshold. Sort eligibility first.
  • One offer includes equity. Share-based pay is taxed under special rules in both countries, at grant, vest or sale. That needs a qualified tax adviser.

Common mistakes

  1. Comparing gross to gross. Compare monthly net after everything.
  2. Forgetting the Dutch holiday allowance. Is the 8 percent inside or outside the quoted figure?
  3. Leaving out the Dutch health premium and the yearly deductible.
  4. Assuming German private insurance is cheaper. Often dearer for a family, and hard to reverse.
  5. Building everything on the expat facility. It ends. Model the years after.
  6. Ignoring the German tax class if you are a single-earner couple.
  7. Using a national average rent instead of real listings in your city.
  8. Ignoring job mobility. Ask what happens if you are made redundant in month eight.
  9. Paying an agent for a job offer. No real employer or recruiter in either country charges for one.

How to spot a fake employer or adviser

Employer-led routes attract fraud. Warning signs:

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

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

What to do next, in order

  1. Get both offers in writing, with the pay broken down as above.
  2. Check the Dutch employer on the IND sponsor register, and your degree in ANABIN for Germany.
  3. Pull current figures for tax bands, contribution ceilings, health premiums and the expat facility for your arrival year.
  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.
  6. Write down the permanent residence timeline each choice starts, including language. Have a licensed adviser in the destination country confirm your case before you resign.

Frequently asked questions

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

It depends on the year and your household. While the Dutch expat facility applies, a Dutch offer often nets more than a German offer with a higher gross. After it ends, Germany can pull ahead, especially for a married single-earner household. Run your own offer and city.

Is the Dutch 30 percent ruling still 30 percent?

Treat any percentage as unverified until you check it for your arrival year. The percentage, maximum length and salary cap have all been amended recently, with transition rules 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 start date.

Should I take private health insurance in Germany?

Only after advice, and only after you answer the family question. Private cover is priced on your age and health when you join, so it can be cheaper for a healthy single person. But it charges for a spouse and each child, while statutory insurance covers dependants at no extra cost. Premiums rise with age, and going back to statutory cover is restricted.

What salary do I need to qualify for each route?

Germany publishes an EU Blue Card gross salary threshold each year, with a lower one for shortage jobs that has included IT roles. The Netherlands publishes an IND highly skilled migrant gross monthly criterion banded by age. As published, it has a reduced band for younger applicants and another for those who graduated in the Netherlands or used the orientation year, adjusted each January. Read the current numbers on the BAMF and IND pages before you negotiate.

Can I change jobs after I arrive?

In the Netherlands, your new employer must also be an IND recognised sponsor. In Germany, a skilled worker or Blue Card permit is first tied to qualifying work, with rules on reporting or approving a change depending on how long you have held it. Ask the local Ausländerbehörde and the IND.

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

A lot. German statutory health insurance covers a non-earning spouse and children at no extra cost, and the tax class system can lift a single-earner couple's monthly net. In the Netherlands, each adult buys their own policy. Childcare, schools and your partner's job prospects often matter more than the tax gap. See our guide to taxes when you migrate abroad.

The bottom line

Both countries want experienced engineers. Which offer pays more depends on tax bands, capped contributions, two different health systems, a Dutch facility that keeps changing, and rent in one city. Run your real numbers, confirmed with the Belastingdienst, the Finanzamt, the German Federal Ministry of Health, BAMF and the IND, before you reply. Then look at the permit clock each choice starts. It will matter long after the pay gap is forgotten.

Your next step