Inside or outside IR35: what you take home
The same day rate leaves a contractor with different pay inside and outside IR35. Here is why, with the 2026/27 rates and a worked example.
The short answer
On £500 a day (£130,000 a year) in England in 2026-27, a contractor outside IR35 through their own limited company takes home £77,960.34; inside IR35 through an umbrella, £73,151.25. Outside is £4,809.09 a year more.
Inside and outside IR35
- Inside IR35 the work is taxed like employment. Through an umbrella company, the day rate pays the umbrella’s margin, the employer’s NI and the Apprenticeship Levy first; what is left is a salary, taxed through PAYE with the employee’s NI.
- Outside IR35, through your own limited company, the company pays corporation tax on its profit (19% up to £50,000, 25% above £250,000, with marginal relief between), and pays you a small salary and the rest as dividends, taxed at 10.75%, 35.75% and 39.35% after the £500 allowance.
A worked example: £500 a day
| Inside (umbrella) | Outside (limited company) | |
|---|---|---|
| Income | £130,000 | £130,000 |
| Salary | £112,078.45 | £12,570 |
| Dividends | £87,021.59 | |
| Corporation tax | £26,272.91 | |
| Take-home | £73,151.25 | £77,960.34 |
With an umbrella margin of £25 a week and £3,000 a year of company expenses. What the comparison assumes:
- Inside IR35 is through an umbrella company; outside IR35 is through your own limited company with no other employees (so no Employment Allowance), a salary from the usual choices and the rest of the profit as dividends.
- Only what applies to both routes is asked for, so the difference is for the same income. Inside IR35 through your own company (the deemed payment) is not modelled.
- Corporation tax is for a 12-month accounting period with no associated companies, with marginal relief between the limits.
- Employment Allowance (employment_allowance) is not available to a company whose only employee paid above the secondary threshold is a director: the caller checks it applies.
- The director's NI is on the annual earnings period, category A. Income tax is on the year's salary and dividends together, as Self Assessment settles it.
Working it out with the API
One call compares the two routes for any rate and region; umbrella pay and director pay give each route on its own. The IR35 comparison reference has every field.
POST /v1/ir35-compare cURL
curl https://api.checktakehomepay.co.uk/v1/ir35-compare \
-H "Authorization: Bearer $CHECKTAKEHOMEPAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"region": "england",
"income": {
"amount": 500,
"per": "day"
},
"margin": {
"amount": 25,
"per": "week"
},
"expenses": {
"amount": 3000,
"per": "year"
}
}'Node.js
const response = await fetch('https://api.checktakehomepay.co.uk/v1/ir35-compare', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHECKTAKEHOMEPAY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"region": "england",
"income": {
"amount": 500,
"per": "day"
},
"margin": {
"amount": 25,
"per": "week"
},
"expenses": {
"amount": 3000,
"per": "year"
}
}),
});
const result = await response.json();Python
import os
import requests
response = requests.post(
"https://api.checktakehomepay.co.uk/v1/ir35-compare",
headers={"Authorization": f"Bearer {os.environ['CHECKTAKEHOMEPAY_API_KEY']}"},
json={
"region": "england",
"income": {"amount": 500, "per": "day"},
"margin": {"amount": 25, "per": "week"},
"expenses": {"amount": 3000, "per": "year"},
},
)
result = response.json()