You got a German offer letter. €75,000 base. Goldman/SAP/Zalando/BMW/wherever. In Silicon Valley you'd push for €110k base and stock. The German HR person mentions €75k like it's settled. Do you walk away? Push for €100k? Or play the German game?
You play the German game. The headline base in Germany is constrained by internal salary bands that are harder to move than American HR seniority lets you push. What flexes: vacation days, 13th month, signing bonus, relocation, learning budget, VL, equity if available. Most expats leave 15-25% of total package value unnegotiated because they don't know which levers exist.
Here's the realistic playbook for 2026.
What the offer letter usually contains
A typical German offer letter for a mid-level tech or finance role specifies: base annual salary (Jahresgehalt), bonus structure if any, vacation days, start date, location, and notice period; relocation, signing bonus, equity, and supplementary benefits are often left out and negotiated separately.
Standard offer components:
- Base annual salary (Bruttogehalt): what most candidates focus on
- 13th month or variable bonus: sometimes mentioned, sometimes silent
- Vacation days (Urlaubstage): 20-30 days, often 25 default
- Start date (Eintrittsdatum): flexibility usually exists
- Probezeit length: 6 months default
- Notice period (Kündigungsfrist): usually 4 weeks during Probezeit
- Location: sometimes hybrid/remote flexibility unstated
What's usually missing and negotiable:
- Signing bonus
- Relocation budget
- Equity / stock options / RSUs
- Vermögenswirksame Leistungen (VL)
- Learning / conference budget
- Health insurance contribution above legal minimum (rare but exists)
- Gym/wellness allowance
- Job ticket (BVG/MVV monthly pass)
- Mobile phone subsidy
The base salary moves least. The peripheral package moves the most.
The 2026 German salary benchmarks
Real ranges from Stepstone, Glassdoor, and Robert Half for 2026:
| Role | Berlin | Munich | Frankfurt | Hamburg | Cologne |
|---|---|---|---|---|---|
| Software Engineer (junior, 0-2 yr) | €52-65k | €58-72k | €55-68k | €52-65k | €50-62k |
| Software Engineer (mid, 3-5 yr) | €65-85k | €72-95k | €68-88k | €65-83k | €62-80k |
| Software Engineer (senior, 6-10 yr) | €85-115k | €95-130k | €90-120k | €85-115k | €82-110k |
| Software Engineer (staff, 10+ yr) | €110-160k | €120-180k | €115-170k | €110-160k | €105-150k |
| Data Scientist (mid) | €70-95k | €78-105k | €75-100k | €70-93k | €68-90k |
| Product Manager (mid) | €75-105k | €85-115k | €80-110k | €78-105k | €72-98k |
| ML/AI Engineer (senior) | €100-145k | €115-165k | €105-150k | €100-140k | €95-135k |
| Cloud / DevOps (senior) | €90-125k | €100-140k | €95-130k | €90-125k | €88-120k |
| Investment Banking Analyst | €55-75k | €60-80k | €60-80k | €58-75k | €55-72k |
| Investment Banking VP | €130-180k | €140-200k | €150-220k | €130-185k | €128-175k |
These are base only. Add 10-25% for bonus + 13th month at most companies.
For a target negotiation, aim 5-15% above the median of your level + city.
What flexes vs what doesn't
In German salary negotiations, the base salary is constrained by internal bands and rarely moves more than 5-10% from the initial offer; everything else (signing bonus, vacation, relocation, equity, peripheral benefits) flexes more freely because it doesn't affect the company's published salary band.
| Component | Typical flex range | Push priority |
|---|---|---|
| Base salary | +5-10% (rarely more) | Medium |
| Signing bonus | +€0 to €10,000 | High (free cash) |
| Vacation days | +2-5 days above offer | High (worth ~0.4%/day) |
| 13th month / bonus | +5-10% if discretionary | Medium |
| Relocation budget | +€2,000 to €15,000 | High (covers real costs) |
| Equity (if offered) | +25-50% if scale-up | Very high |
| VL (€40/month) | Often add easily | Always ask |
| Learning budget | €1,500-€5,000/year | Medium-high |
| Job ticket | Usually yes | Easy ask |
| Wellness allowance | €30-150/month | Medium |
| Mobile phone | Easy add | Easy ask |
| Home office equipment | €500-€2,000 | High for remote roles |
The mental model: HR has a tight budget for base salary (it sets benchmarks for future hires). HR has a looser budget for one-time costs and benefits. Push the looser bucket harder.
The 75-minute negotiation
A typical German salary negotiation happens in a single 45-75 minute conversation after the formal offer; preparation matters more than aggression because German hiring culture rewards reasonableness and penalizes overreach.
Preparation (1 week before the call):
- Pull salary benchmarks for your exact role + location + experience level
- Calculate your ideal base + total package number
- Calculate your minimum acceptable number
- List 6-8 non-base items you want (signing bonus, vacation, etc.)
- Have alternative job offers or current salary documentation ready
The conversation structure:
- Open with enthusiasm. "I'm excited about this role and want to make this work."
- Anchor with research. "Based on Stepstone and Glassdoor data, the median for [role] in [city] is €X. I'm targeting €Y total package."
- Push base salary first (small ask, then negotiate down). Ask for 10-15% above the offer. Settle around 5-8%.
- Bundle non-base items in one ask. "Beyond base, I'd like to discuss signing bonus, vacation days, and learning budget."
- Get verbal commitment. "If we can agree on €X base, €5,000 signing bonus, 30 days vacation, and €3,000 learning budget, I'm ready to accept."
- Confirm in writing. Ask for revised offer letter within 48 hours. Don't sign anything until you see the revised numbers.
What German HR responds well to:
- Specific data references (Stepstone, kununu, Glassdoor)
- Reasonable bounded asks (not "I want €100k", but "I'd like to discuss bringing base up to €82k")
- Showing you understand the company's constraints
- Preparedness and quiet confidence
What German HR responds poorly to:
- Aggressive demands without justification
- "Take it or leave it" ultimatums (work only if you have alternative offers)
- Asking for percentages way above benchmarks
- Threatening to walk away without follow-through
The Arbeitsvertrag decoded article covers what to verify in the offer letter once negotiation closes.
Three real negotiation scenarios
Scenario 1: Mid-level software engineer, €75k initial offer, Berlin.
Target: €82-85k total package.
Asks:
- Base raise to €78k (instead of pushing to €82k base)
- Signing bonus €5,000
- 28 vacation days (from 25 default)
- VL €40/month included
- Learning budget €3,000/year
Likely outcome: Base €77k, signing bonus €4,000, 27 vacation days, VL €40, learning budget €2,500 = total package value ~€87k year 1.
Scenario 2: Senior ML engineer, €110k initial offer, Munich.
Target: €130-140k total package + equity if available.
Asks:
- Base raise to €120k
- Signing bonus €10,000 (or €15,000 if company is well-funded)
- 30 vacation days
- RSUs/options if not yet offered (€20-40k vesting over 4 years)
- Relocation budget €8,000
- Learning budget €5,000/year
Likely outcome: Base €117k, signing bonus €8,000, 30 vacation days, RSUs €25k/4-year-vest, €6,000 relocation, €4,000 learning = ~€135k year 1 + equity.
Scenario 3: Investment banking analyst, €65k initial offer, Frankfurt.
Target: €75-80k total package + bonus structure.
Asks:
- Base raise to €68k
- Confirmation that year-end bonus target is 25-50% of base (industry standard)
- 30 vacation days (push back on bank's typical 25)
- Relocation budget €5,000
- 13th month guaranteed (not discretionary)
Likely outcome: Base €67k, bonus target 30% (€20,100 target), 27 vacation days, €4,000 relocation, 13th month guaranteed = ~€91k expected year 1.
Salary negotiation as a non-EU citizen
Specific dynamics apply to non-EU citizens on Blue Card or Chancenkarte routes:
Blue Card threshold strategy:
- The Blue Card requires €48,300+ general or €43,760+ shortage threshold in 2026
- If your offer is €52,000, push hard for €60,000+ to clear the threshold with margin
- If your offer is €45,000 (below general threshold), confirm shortage occupation status before signing
Visa-bound salary: Once you accept a Blue Card-tied offer, switching jobs in year 1 is harder (employer change rules apply). Negotiate hard before signing because your bargaining position drops afterward.
Relocation budget priority: Non-EU expats incur €3,000-€10,000 in relocation costs (flights, visa fees, deposit, temporary housing). Push for explicit relocation budget rather than implicit "we'll cover it."
The Chancenkarte vs Blue Card decision tree covers visa-specific salary calculations.
Common negotiation mistakes
Three mistakes that catch expats in German negotiations:
Mistake 1: Treating it like a US negotiation. "I have multiple competing offers and need €30,000 more" works in San Francisco. In Frankfurt it makes HR think you're not committed to Germany. Use research-backed numbers, not bidding-war pressure.
Mistake 2: Negotiating only base salary. Most expats forget that signing bonus + vacation + equity + relocation can be worth €10,000-€30,000 of total package value. The headline base might not move much; the surrounding components move dramatically.
Mistake 3: Accepting verbal promises. "We'll figure out relocation after you start" or "the bonus is usually paid in full" without written commitment means the promise may evaporate. Always get the revised offer letter in writing before signing.
What to do next
- Pull Stepstone and Glassdoor benchmarks for your role/level/city this week.
- Prepare your 8-item negotiation list before the offer call.
- Push for the revised offer letter in writing within 48 hours of the negotiation; don't sign before you see the numbers.
