What an employee really costs in 2026/27
Salary is the start: employer’s National Insurance, the workplace pension and a few smaller costs come on top. Here is each for 2026/27, with a worked example.
The short answer
A £40,000 salary in England costs its employer £46,262.20 a year in 2026-27: the pay, £5,249.40 of employer's National Insurance and £1,012.80 into the workplace pension at the auto-enrolment minimum. That is 15.7% on top of the salary.
What goes into it
| Cost | 2026-27 |
|---|---|
| Pay | The salary, before the employee’s own tax, NI and pension come off it. |
| Employer’s NI | 15% of pay above the secondary threshold, £5,000 a year, worked out each pay period. No upper limit. |
| Employment Allowance | Up to £10,500 a year off the employer’s NI, for employers who qualify (not a company whose only employee paid above the threshold is a director). |
| Workplace pension | At least 3% of qualifying earnings, the pay between £520 and £4,189 a month. Many schemes pay more, or on all pay. |
| Benefits in kind | Class 1A NI at 15% of their taxable value (a company car, health cover). |
| Apprenticeship Levy | For employers whose pay bill is over £3 million: 0.5% of the whole pay bill, less a £15,000 allowance. |
A worked example: £40,000 in England
| A year | |
|---|---|
| Salary | £40,000 |
| Employer’s NI | £5,249.40 |
| Employer pension (auto-enrolment minimum) | £1,012.80 |
| Benefits in kind and Class 1A NI | £0 |
| Apprenticeship Levy | £0 |
| Total cost | £46,262.20 |
| The employee takes home | £32,322.04 |
NI and the pension are worked out on each month’s pay, as payroll does, so the year is twelve monthly figures added up, not one sum on the salary.
Working it out with the API
One call gives the employer’s whole cost and the employee’s pay from the same salary, for any region, pay frequency, pension or benefit. The employer cost reference has every field.
POST /v1/employer-cost cURL
curl https://api.checktakehomepay.co.uk/v1/employer-cost \
-H "Authorization: Bearer $CHECKTAKEHOMEPAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"gross": {
"amount": 40000,
"per": "year"
},
"region": "england",
"employer_pension": "auto_enrolment_minimum"
}'Node.js
const response = await fetch('https://api.checktakehomepay.co.uk/v1/employer-cost', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHECKTAKEHOMEPAY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"gross": {
"amount": 40000,
"per": "year"
},
"region": "england",
"employer_pension": "auto_enrolment_minimum"
}),
});
const result = await response.json();Python
import os
import requests
response = requests.post(
"https://api.checktakehomepay.co.uk/v1/employer-cost",
headers={"Authorization": f"Bearer {os.environ['CHECKTAKEHOMEPAY_API_KEY']}"},
json={
"gross": {"amount": 40000, "per": "year"},
"region": "england",
"employer_pension": "auto_enrolment_minimum",
},
)
result = response.json()