What does an in-house developer really cost compared with an outsourced one?
A fully loaded in-house software engineer in Western Europe typically costs meaningfully more than their gross salary — once employer social contributions, recruitment, equipment, workspace, benefits, management time and unbilled capacity are counted, the real number is usually somewhere between 1.4 and 1.7 times the salary line. An outsourced engineer, by contrast, costs the contracted rate plus the internal coordination time you spend on them. Comparing a European salary against an offshore day rate is the most common budgeting mistake in this decision, because the two numbers do not measure the same thing.
This guide gives you a total cost of ownership (TCO) model you can fill in with your own figures, shows where each option quietly leaks money, and sets out the conditions under which outsourcing genuinely wins — and the conditions under which it does not.
Why is comparing salary to day rate misleading?
A salary is an input to a cost. A day rate is an output of one. When a vendor quotes you a rate, that number already contains the engineer's pay, the employer's statutory contributions, office and equipment, HR, recruitment, bench risk, management, and the vendor's margin. When your finance team quotes you a salary, it contains one of those things.
The second distortion is utilisation. An employed engineer is paid for 12 months regardless of whether there is 12 months of work in the roadmap. A contracted engineer is paid for the months you engage them. If your product work is lumpy — a heavy build phase followed by a quieter maintenance phase — the employed model charges you for the trough as well as the peak.
The third distortion is time. A vacancy that takes four months to fill is four months of roadmap that did not happen. That cost never appears in a salary comparison, but it is often the largest single number in the whole exercise.
What goes into the fully loaded cost of an in-house team?
Build the in-house number bottom-up. The components below are the ones that show up in almost every European engineering budget, whether or not they are tracked against the engineering cost centre.
| Cost component | What it covers | Typical treatment |
|---|---|---|
| Gross salary | Base pay plus bonus | The visible line |
| Employer social contributions | Pension, health, unemployment, care insurance employer shares | In Germany, roughly a fifth on top of gross; varies by country |
| Recruitment | Agency fee or in-house recruiter time, tooling, interview hours | Agency fees commonly quoted as a percentage of first-year salary |
| Onboarding and ramp | Reduced output in the first months, plus senior time spent teaching | Amortise over expected tenure |
| Workspace and equipment | Desk, laptop, licences, security tooling | Per-head annual figure from facilities and IT |
| Benefits and training | Pension top-ups, insurance, conference and learning budget | Per-head annual figure from HR |
| Management overhead | Engineering manager, HR business partner, payroll administration | Divide the manager cost by direct reports |
| Attrition and backfill | Notice periods, knowledge loss, re-hiring | Multiply recruitment plus ramp by your annual attrition rate |
| Idle capacity | Months where the roadmap does not fill the team | Estimate honestly from last year's sprint data |
Two of these are almost always understated. Management overhead gets buried in a different cost centre, and idle capacity is politically uncomfortable to admit. Both are real money.
What goes into the cost of an outsourced team?
The outsourced number is not just the invoice. A serious comparison adds the internal effort the engagement consumes:
- Contracted rate — the day or monthly rate, including the vendor's overhead and margin.
- Vendor selection — the RFP, reference calls, technical assessment and legal review before anyone writes code.
- Knowledge transfer — your senior engineers' time during the first weeks, which is real capacity you lose.
- Coordination tax — the standups, written specs, reviews and demos that a distributed team needs more of than a co-located one.
- Tooling and access — additional seats, VPN, device management, security review.
- Rework — the share of delivered work that has to be redone because the brief was ambiguous. This shrinks as the relationship matures.
- Exit and transition — handover, documentation and any overlap period if you change vendor or bring work back in-house.
Most of the avoidable cost in outsourcing sits in coordination and rework, not in the rate. We covered the ones that surprise buyers most in our breakdown of the hidden costs of software outsourcing in Europe.
How do the two models compare side by side?
The table below is a structure, not a benchmark — fill it with your own payroll and your own quoted rates. The point is to make sure both columns contain the same categories of cost.
| Category | In-house (annual, per engineer) | Outsourced (annual, per engineer) |
|---|---|---|
| Direct compensation or rate | Gross salary and bonus | Contracted rate x engaged months |
| Statutory employer costs | Yes — add to your number | Included in the rate |
| Recruitment | Yes, amortised over tenure | Vendor selection cost, amortised over the relationship |
| Workspace, equipment, benefits | Yes | Included in the rate |
| Management | Line management plus HR | Vendor delivery lead plus your product owner time |
| Ramp and knowledge transfer | Yes | Yes |
| Idle capacity | Yours to absorb | Can be released with notice |
| Attrition risk | Yours | Vendor's, if the contract requires named-role continuity |
| Exit cost | Redundancy and notice | Handover period defined in the contract |
For current European versus Indian rate levels to plug into the first row, see our comparison of the cost to hire a developer in India versus Europe.
Where does outsourcing stop saving money?
The saving is real, but it is not automatic. It disappears in five recognisable situations:
- Teams that are too small to be self-sufficient. One or two remote engineers with no local lead generate more coordination cost than they absorb work.
- Undefined scope. If the requirement is discovered during the sprint rather than before it, you pay for the discovery twice — once in rework, once in schedule.
- Wrong seniority mix. A cheap rate for junior engineers who need constant review is not cheap. Rate per engineer is the wrong metric; cost per delivered outcome is the right one.
- Rotating people. Every replacement resets the ramp cost. Contract for continuity, not just headcount.
- Treating the vendor as a body shop. If your side owns every decision and the vendor owns only typing, you have bought capacity but no leverage.
Which model fits which situation?
| Situation | Better fit | Why |
|---|---|---|
| Core product differentiator, long horizon | In-house, or a dedicated long-term partner team | Continuity and deep domain knowledge dominate cost |
| Fixed-scope build with a deadline | Outsourced project team | Capacity when you need it, released when you do not |
| Skill you need for six months, not six years | Outsourced or staff augmentation | Hiring and then making redundant is expensive and slow |
| Roadmap growing faster than you can hire | Blended — in-house leads, outsourced delivery | Keeps architecture ownership local while adding throughput |
| Regulated workload with strict residency rules | In-house or an EU-hosted partner arrangement | Compliance constraints outrank rate arbitrage |
If the answer is a blend, the next decision is the contracting model — the trade-offs are laid out in our comparison of staff augmentation, managed services and freelancers.
How should you run the comparison so the result is trustworthy?
- Compare over three years, not one. Ramp and attrition only show up across a multi-year window.
- Use cost per delivered outcome — per shipped feature, per story point, per release — not cost per head.
- Include the cost of not shipping. Put a euro figure on a four-month vacancy and add it to the in-house column.
- Model a downside case: 20% rework, one key person leaving, and a two-month scope slip. Run both columns through it.
- Ask finance to own the model. If engineering builds it alone, nobody believes the numbers.
What to do next
Build the model before you talk to vendors, not after — it turns a rate negotiation into an outcome negotiation, and it tells you immediately when a quote is too good to be credible. If you want a sanity check on the numbers, or a costed proposal for a dedicated senior team you can compare against your in-house column, our engineering talent and dedicated team service is built for exactly that comparison.