Post

Headcount Planning & Cost Modeling

People are 65-80% of your engineering budget. If you can't model headcount costs accurately -- fully loaded, with attrition, ramp time, and hiring velocity -- your entire budget is fiction.

Headcount Planning & Cost Modeling

Key Dimensions

Dimension Definition Typical Range
Fully Loaded Cost Total employer cost per person per year 1.25-1.45x gross salary (Germany)
FTE Full-Time Equivalent – 1.0 = one full-time person Fractional for part-time, shared roles
Contractor Day Rate Daily rate for external staff augmentation €600-1,200/day (Germany, mid-senior)
Hiring Velocity Time from req opening to start date 3-6 months (Germany, engineering)
Ramp Time Time for new hire to reach full productivity 3-6 months
Attrition Rate Annual voluntary turnover 8-15% (tech, Germany)
Backfill Lag Gap between departure and replacement start 4-8 months
Bench Engineers between projects / without assigned work Target: <5% of team

FTE vs Contractor – The Real Trade-Offs

Cost Comparison (Germany, Senior Engineer)

Factor FTE (Permanent) Contractor (Staff Aug) Freelancer
Annual gross salary €85,000 N/A N/A
Daily rate N/A €900/day €800-1,000/day
Annual cost (220 working days) €110,000-120,000 (fully loaded) €198,000 (€900 x 220) €176,000-220,000
Vacation days 30 (paid by employer) 0 (not paid, but don’t work) 0
Effective working days ~190 ~200 ~200
Sick leave Paid (6 weeks full, then insurance) No cost to you No cost to you
Termination 3-7 months notice (Germany) 2-4 weeks (contract terms) 2-4 weeks
Knowledge retention High Low – walks out with knowledge Low
Ramp-up investment Worth it (long tenure) Painful (short tenure) Painful
Works Council involvement Yes (Germany) No (usually) No

When to Use Each

Use FTEs when:

  • The work is core to your competitive advantage
  • You need deep domain knowledge that builds over years
  • You’re building a team culture and long-term capability
  • The role exists for >18 months

Use contractors when:

  • You need to scale quickly for a time-bound project (6-12 months)
  • The skill is specialized and not needed permanently (e.g., Terraform migration)
  • You’re covering a backfill gap while hiring
  • Budget is available but headcount is frozen (common in large enterprises)
  • You need to test a new team structure before committing to permanent hires

Use freelancers when:

  • Very specialized short-term work (security audit, performance tuning)
  • You need flexibility (can scale hours up/down)
  • The person has unique expertise not available through agencies

The Contractor Trap

Many engineering managers fall into the pattern of filling permanent needs with contractors because it’s “faster than hiring.” The math looks terrible over time:

1
2
3
4
5
6
7
8
9
Scenario: 3 contractors for 2 years vs. hiring 3 FTEs

Contractors: 3 x €900/day x 220 days x 2 years = €1,188,000
FTEs:        3 x €115,000/year x 2 years        = €690,000
                                                    ─────────
Difference:                                        €498,000 wasted

Plus: contractors leave, taking knowledge with them.
Plus: contractors don't grow into tech leads, architects, or managers.

Fully Loaded Cost – The Complete Picture

Formula

1
2
3
4
5
6
7
8
9
10
11
12
Fully Loaded Cost = Gross Salary
                  + Employer Social Contributions (≈20-22% in Germany)
                  + Health Insurance Employer Share (≈7.3%)
                  + Pension Employer Share (≈9.3%)
                  + Unemployment Insurance (≈1.2%)
                  + Long-term Care Insurance (≈1.7%)
                  + Accident Insurance (≈1.3%)
                  + 13th Month Salary (if applicable)
                  + Bonus / Variable Pay (if applicable)
                  + Benefits (meal vouchers, transit, gym, etc.)
                  + Equipment (laptop, monitors, desk)
                  + Overhead Allocation (facilities, HR, IT support)

Quick Multipliers by Country

Country Multiplier on Gross Notes
Germany 1.25-1.35x High social contributions, 30 days vacation
UK 1.15-1.25x Lower NI contributions, fewer mandatory benefits
US 1.25-1.40x Health insurance is the big variable
India 1.15-1.20x Lower statutory contributions
Poland 1.20-1.25x Growing tech hub, ZUS contributions

Worked Example (Germany, MMS Context)

1
2
3
4
5
6
7
8
9
10
11
12
Senior Software Engineer — Munich

Gross Annual Salary:              €90,000
Employer Social Contributions:     €19,800  (22% of gross)
13th Month Salary:                 €7,500   (if contractual)
Annual Bonus (target):             €9,000   (10% of gross)
Benefits (meal, transit, etc.):    €3,000
Equipment (amortized):             €1,500   (€4,500 laptop / 3 years)
Overhead Allocation:               €5,000   (HR, facilities, IT per head)
──────────────────────────────────────────
Fully Loaded Cost:                €135,800  (1.51x gross)
Monthly Cost:                      €11,317

Headcount Planning Framework

Step 1: Start with Outcomes, Not Headcount

Wrong approach: “I need 3 more engineers.” Right approach: “Delivering the AI platform MVP by Q3 requires 2 additional backend engineers and 1 ML engineer. Without them, we push to Q1 next year, losing €500K in projected efficiency gains.”

Step 2: Map Headcount to Work Streams

1
2
3
4
5
6
7
8
9
10
11
12
HEADCOUNT PLAN — [Team] — FY[Year]

Work Stream          Current HC    Needed HC    Gap    Priority    Justification
───────────────────────────────────────────────────────────────────────────────
AI Platform            3             5          +2     P1          MVP by Q3
Service Desk Bot       2             2           0     P1          On track
Legacy Maintenance     4             3          -1     P2          Migrate to new platform
Platform/DevOps        2             3          +1     P1          Shared infra scaling
QA & Automation        3             3           0     P2          On track
Management             2             2           0     —           —
───────────────────────────────────────────────────────────────────────────────
TOTAL                 16            18          +2

Step 3: Model the Timeline

New hires don’t produce value on day one. Model the actual productivity ramp:

Month Productivity What They’re Doing
Month 1 10-20% Onboarding, environment setup, reading docs
Month 2 30-40% First small PRs, pair programming, learning domain
Month 3 50-60% Independent work on defined tasks
Month 4 70-80% Contributing to sprint goals
Month 5 80-90% Fully integrated, starting to mentor
Month 6 90-100% Full productivity

Budget implication: A hire starting in July delivers ~4 months of partial productivity in that fiscal year, not 6 months of full productivity. Model accordingly.

Step 4: Factor in Attrition

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ATTRITION MODEL

Current team size:                    16
Expected attrition rate:              12%
Expected departures this year:         2 (16 x 0.12, rounded)
Average notice period:                 3 months
Average hiring time:                   4 months
Average backfill gap:                  5 months (some overlap with notice)
Cost of vacancy:                       €11,000/month (fully loaded cost not spent,
                                       BUT: delayed projects, overtime, morale impact)

Budget impact:
- Salary savings from departures:      2 x €11,000 x 5 months = €110,000 saved
- Recruiting costs for backfills:      2 x €15,000 = €30,000
- Net budget impact:                   €80,000 under budget on people line

Step 5: Build Scenarios

Always present three scenarios:

Scenario Headcount Annual Cost What Gets Delivered What Doesn’t
Minimum 16 (no new hires) €1.8M Maintenance + 1 key initiative AI platform delayed 6 months
Plan 18 (+2 new hires) €2.05M Full roadmap
Stretch 20 (+4 new hires) €2.3M Full roadmap + platform acceleration

Hiring Velocity Model

Funnel Metrics to Track

Stage Typical Conversion Typical Duration
Job posting live Week 0
Applications received 100-200 per role Weeks 1-4
Recruiter screen 20-30% pass Week 2-3
Technical screen 40-50% pass Week 3-4
On-site/final round 50-60% pass Week 5-6
Offer extended 80-90% accept Week 6-7
Start date Week 12-20 (notice period)

Hiring Velocity Formula

1
2
3
4
5
6
7
8
9
Time to Fill = Sourcing Time + Interview Time + Offer to Accept + Notice Period

Germany typical:
  Sourcing:        2-4 weeks
  Interviews:      3-4 weeks
  Offer to Accept: 1-2 weeks
  Notice Period:   4-12 weeks (3 months common for senior roles)
  ─────────────────────────────
  Total:           10-22 weeks (2.5-5.5 months)

Budget planning rule: If you need someone productive by Q3, you need to open the req by Q1 at the latest. For senior roles in Germany, assume 5 months from req to start date.


Bench Management

What Is Bench?

“Bench” refers to engineers who are currently between projects or don’t have clearly assigned work. Common in consulting firms but also relevant in product companies during transitions.

Why Bench Happens

  • Project ended, next project not ready
  • Hired for growth that didn’t materialize
  • Reorg in progress, team assignments unclear
  • Acquired company integration pending

How to Manage Bench Productively

Duration Approach
1-2 weeks Tech debt, tooling improvements, documentation
2-4 weeks Internal hackathon, POC for upcoming initiative, cross-training
1-3 months Loan to another team, training program, open-source contribution
3+ months Serious problem – need to find permanent work or have an honest conversation

Bench Cost Formula

1
2
3
4
5
6
Monthly Bench Cost = # Engineers on Bench x Fully Loaded Monthly Cost
Bench Rate = Engineers on Bench / Total Engineers x 100

Example:
  2 engineers on bench for 1 month = 2 x €11,000 = €22,000
  Bench rate = 2/16 = 12.5% (too high — target <5%)

Cost Per Engineer – Benchmarking

What It Includes

The “cost per engineer” metric is used by finance to benchmark your team against industry. It typically includes:

1
2
3
4
5
6
7
8
9
10
11
12
13
Cost per Engineer = (Total Team Budget) / (Number of FTEs)

Example:
  Total budget: €2,000,000
  Engineers: 16
  Cost per engineer: €125,000

Breakdown:
  - Direct compensation:    €85,000 (68%)
  - Social contributions:   €20,000 (16%)
  - Tools & licenses:        €5,000 (4%)
  - Cloud (allocated):       €8,000 (6.4%)
  - Other (training, etc.):  €7,000 (5.6%)

Industry Benchmarks (Europe, 2024-2025)

Company Type Cost per Engineer Notes
Big Tech (FAANG) €180-250K High comp, premium tools, high cloud spend
Large Enterprise (MMS-like) €110-140K Moderate comp, enterprise tooling
Mid-size SaaS €100-130K Leaner operations
Startup €80-110K Lower comp, minimal tooling
Nearshore/Offshore €40-70K Lower labor costs, higher management overhead

Anti-Patterns and Common Mistakes

1. Headcount as Vanity Metric

The mistake: Measuring team importance by headcount size rather than output. Why it’s wrong: A team of 8 strong engineers outperforms a team of 16 mediocre ones, and costs half as much. Instead: Measure output per engineer (features shipped, incidents resolved, customer impact) alongside headcount.

2. Ignoring Ramp Time in Planning

The mistake: Assuming a new hire starting in March delivers full productivity from March. Why it’s wrong: They deliver maybe 30% in March, 50% in April, 70% in May. Your roadmap commitments based on “18 engineers” when 2 just started are over-committed. Instead: Use the productivity ramp model above. Commit based on productive capacity, not headcount.

3. Perpetual Contractor Dependency

The mistake: Using contractors for 2+ years because “we can’t get headcount approved.” Why it’s wrong: See the cost math above. Plus knowledge risk, no career growth, no team culture. Instead: Build the business case for converting high-performing contractors to FTE. Show the cost savings.

4. Not Budgeting for Attrition

The mistake: Budgeting for 16 people all year when you’ll statistically lose 2. Why it’s wrong: Either you underspend on people (and miss roadmap) or you scramble to backfill without budget. Instead: Budget for expected attrition explicitly. Include recruiting costs, productivity gap, and overtime risk.

5. Hiring in Panic Mode

The mistake: Not opening reqs until someone leaves, then rushing to fill. Why it’s wrong: Panic hiring leads to lower bars, cultural misfits, and higher short-term attrition. Instead: Maintain a pipeline. If your attrition model says you’ll lose 2 people, start at least 1 hire proactively.


Templates

Monthly Headcount Tracker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HEADCOUNT TRACKER — [Month] [Year]

                    Budget HC  Actual HC  Variance  Notes
────────────────────────────────────────────────────────────
Start of Month      18         16         -2        2 hires in pipeline
  + New Hires        0          1         +1        Backend eng started Mar 15
  + Internal Transfers 0       0          0
  - Departures       0          0          0
  - Internal Transfers Out 0   0          0
────────────────────────────────────────────────────────────
End of Month        18         17         -1

Open Requisitions:  1 (ML Engineer — interviews in progress)
Pipeline Status:    2 candidates in final round
Expected Start:     May 2026

Headcount Business Case Template

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
HEADCOUNT REQUEST — [Role Title]

1. BUSINESS NEED
   What problem does this hire solve?
   What happens if we don't hire?

2. SCOPE & DURATION
   Permanent / Fixed-term / Contractor?
   If fixed-term: start date, end date, conversion plan?

3. COST
   Annual fully loaded cost:     €___________
   Prorated cost (this FY):      €___________
   Recruiting cost:              €___________
   Equipment / setup:            €___________
   Total first-year cost:        €___________

4. RETURN
   What revenue / savings / velocity does this generate?
   Payback period:               ___ months

5. ALTERNATIVES CONSIDERED
   - Could we solve this with existing team? Why not?
   - Could we use a contractor? Why permanent?
   - Could we buy/outsource instead of build?

6. TIMING
   When do we need this person productive? ___________
   Working backward: req must open by ___________

References

  • An Elegant Puzzle – Will Larson (2019) – Hiring, organizational design, and team sizing
  • The Manager’s Path – Camille Fournier (2017) – Building and managing engineering teams
  • Glassdoor Salary Data – Germany – Benchmarking compensation
  • Levels.fyi – Compensation benchmarking for tech companies
  • German Social Insurance Rates – Current employer contribution rates
  • Gartner IT Key Metrics Data – IT spending benchmarks by industry
  • Scaling Teams – Alexander Grosse & David Loftesness (2017) – Hiring velocity and team growth
This post is licensed under CC BY 4.0 by the author.