Repository navigation
Description
Problem
ni_class_1_employer computes rates.employer × max(ni_class_1_income − 52 × secondary_threshold, 0) for every earner over 16, and ni_employer only adds that. The Employment Allowance (EA) is not modelled, so ni_employer, gov_tax, employer_cost and the employer-NI incidence variables are all gross of the EA.
OBR's and HMRC's employer NICs figures are net of it. Employers offset the EA against their secondary Class 1 payments through payroll, so it never reaches receipts.
#1918 lists the EA alongside the under-21 and apprentice zero rates and the veterans and freeport reliefs. This issue takes the EA on its own for two reasons: it is the largest of those gaps from 2025-26, and it is the only one that needs a design decision, because the EA is set per employer and the model has no employer entity.
Size (public figures)
| Tax year | Maximum EA per employer | Cost of the EA (HMRC) | Employers claiming |
|---|---|---|---|
| 2020-21 | £4,000 | £2.4bn | 1,086,000 |
| 2021-22 | £4,000 | £2.6bn | 1,153,000 |
| 2022-23 | £5,000 | £3.1bn | 1,171,000 |
| 2023-24 | £5,000 | £3.1bn | 1,173,000 |
| 2024-25 | £5,000 | £3.3bn | 1,223,000 |
| 2025-26 | £10,500 | £7.4bn (forecast) | not yet published |
Source: HMRC tax relief statistics, January 2026, section 3.14.
OBR's March 2026 EFO puts Class 1 employer NICs for 2025-26 at £145.3bn. The £7.4bn EA is 5.1% of that. A model with exactly the right pay but no EA would produce about £152.7bn.
- Under-21 zero rate. This is also missing (Employer NI ignores the under-21 and apprentice zero rates and the Employment Allowance #1918) and is worth another £1.9bn in 2025-26 (section 3.28).
- The 2025 changes and who they reach. The Autumn Budget 2024 employer NICs package yields +£23.77bn in 2025-26, net of the EA changes (HMRC impact note). The same note estimates about 1.2 million employers affected, with about 250,000 paying less. The Budget said 865,000 employers would pay no NICs.
Rules
-
What it is. An annual amount per eligible employer, offset against the employer's total secondary Class 1 liability across its payroll. It is claimed through the EPS and covers secondary Class 1 only, not Class 1A or 1B. Any amount unused at the end of the tax year is lost. The legal basis is NICA 2014 ss.1–7 and Sch 1, with the amount in s.1(2)(a).
-
Amounts.
- £2,000: 2014-15 and 2015-16
- £3,000: 2016-17 to 2019-20
- £4,000: 2020-21 and 2021-22
- £5,000: 2022-23 to 2024-25
- £10,500: from 2025-26, including 2026-27
Sources: past years, April 2020 note.
-
£100,000 restriction. From 2020-21 to 2024-25, an employer could not claim if its secondary Class 1 liabilities in the previous tax year, together with those of connected employers, were £100,000 or more. The restriction was removed from 6 April 2025 by NICs (Secondary Class 1 Contributions) Act 2025 s.3, which omits NICA 2014 s.2(4B)-(4G).
-
Exclusions (eligibility guidance):
- public authorities that are not charities;
- employers more than half of whose work is of a public nature, unless they are charities;
- personal, household or domestic employment, except care and support workers;
- deemed payments under the off-payroll rules (IR35);
- from 6 April 2016, companies whose director is the only employee paid above the secondary threshold.
-
Connected companies and charities. Only one employer in a connected group can claim, against one PAYE scheme. A business that controls a charity is not connected to it for this purpose.
-
Subsidy limits. De minimis subsidy limits still apply in a few cases, for example Northern Ireland businesses that make or sell goods. This is negligible for modelling.
Modelling options
A household survey cannot tell which workers share an employer, so the EA cannot be attributed exactly. There are three options.
-
Aggregate scaling.
ni_employer = ni_class_1_employer × (1 − s_t), wheres_tis the EA's share of gross liability (about 4.8% in 2025-26). The total is right on the base data. The distribution is wrong, because the EA is a much bigger share of liability at small employers. Reforms to the EA can only be scored through a rough rule. Acceptable as a calibration stopgap only. -
Per-employee share using firm size as a proxy. For worker i at an eligible employer in size band b:
ea_i = L_i × min(1, EA_max / (n_b × L̄_b)) × take_up_bHere
L_iis the worker's gross liability,n_bthe number of employees andL̄_bthe mean liability in the band. The inputs are size band, public sector and domestic employment, imputed in policyengine-uk-data; the FRS job-level establishment size is to be checked there. Calibrate to HMRC's cost and claimant counts and to the 865k employers paying nothing. This version responds to changes in the EA amount, the £100k rule, the rate and the threshold. Its caveats are that an establishment is not an enterprise, that connected groups can't be seen, and that single-director companies will be under-identified. -
Parameterised effective allowance. Model the EA as a share of liability by employer-size band or earnings band, taken from HMRC distributional data. This is transparent and responds to reforms to first order.
Proposal: add the parameters and a person-level employment_allowance variable. Use option 2 when the dataset carries size inputs, and fall back to option 3's parameters when it doesn't, as in the household calculator. Apply the EA after the s.9A and s.9B zero rates, and coordinate with #1918.
Acceptance criteria
- Parameters for the EA amount from 2014-15 and for the £100,000 restriction from 2020-21 to 2024-25, with legislative references.
-
ni_employeris net of the EA, and the gross statutory charge remains available.total_national_insurance,gov_tax,employer_cost,baseline_employer_costandemployer_ni_fixed_employer_cost_changeuse the net amount consistently. - On the default dataset, the modelled EA is within about 15% of HMRC's £3.1bn (2023-24), £3.3bn (2024-25) and £7.4bn (2025-26 forecast; revisit when the outturn is published).
- Reform tests:
- setting the EA to zero raises
ni_employerby the modelled EA; - raising the EA from £3,000 to £4,000 in 2020-21 costs about £445m, with the right sign and order of magnitude (Budget 2020 Table 2.1);
- lifting the £100,000 restriction in 2025-26 raises the EA total.
- setting the EA to zero raises
- Situation tests:
- liability below the EA gives zero
ni_employer; - public-authority employers get no EA;
- domestic employers get no EA, except for care workers.
- liability below the EA gives zero
- The documentation states that the EA is an approximation.
- The policyengine-uk-data
obr/ni_employercalibration has been re-checked.
Not in scope
- The under-21 and apprentice zero rates and the veterans and freeport reliefs stay in Employer NI ignores the under-21 and apprentice zero rates and the Employment Allowance #1918.
- Calendar-year windows. Model year Y means tax year Y-Y+1 (
convert_to_fiscal_year_parameters). Datasets that calibrate to a calendar-year blend of OBR fiscal years have to blend the engine's rules themselves. For 2025 this matters, because the 15% rate, the £5,000 threshold and the £10,500 EA all started on 6 April 2025. That is a dataset-side issue, and this one won't fix it. - Pay levels in calibrated datasets.
Sources:
- HMRC impact note on the 2025 employer NICs changes
- Autumn Budget 2024 policy costings
- Autumn Budget 2024
- HMRC tax relief statistics, January 2026
- HMRC non-structural tax relief statistics, December 2024
- NICs (Secondary Class 1 Contributions) Act 2025 s.3
- Claim Employment Allowance: past years
- Claim Employment Allowance: eligibility
- Eligibility for Employment Allowance: further employer guidance
- Employment Allowance increases from April 2020
- OBR: National Insurance contributions
- OBR EFO March 2026
- HMRC employer further guide to PAYE and NICs 2025-26
Activity
juaristi22 commentedon Nov 1, 2026
A note from Microcosm, so this issue and the row that waits on it stay in step.
Since PolicyEngine/microcosm#1430, Microcosm's
obr.ni_employerrow bindsni_class_1_employer, notni_employer. OBR's employer NICs line (EFO table 4.4 row 18) is Class 1 alone, and Class 1A sits in row 21 ("Other NIC").ni_employerhas addedni_class_1asince 2.165.0 (#2750).The row is held out of Microcosm's calibration until the Employment Allowance is modelled. Its rebind condition is the allowance netted out of the measure it binds. So if this issue nets the allowance out of
ni_employeralone,ni_class_1_employerstays gross, and the row still can't rebind. Netting it out ofni_class_1_employer, or exposing a net Class 1 secondary variable, would meet it.🤖 Generated with Claude Code
vahid-ahmadi commentedon Nov 6, 2026
Review of main at 5c0850d: I read the plan against the employer NI variables, the employer-cost incidence formulas and the PRs merged since the issue was opened (#2505, #2750).
The headline gap still holds. Neither
ni_class_1_employernorni_employerhas an Employment Allowance term, and the amounts, the £100,000 restriction and its repeal (NICs (Secondary Class 1 Contributions) Act 2025 s.3) all match the sources cited.Must
ni_employerwill not reachemployer_costor the incidence variables.employer_costreadsni_class_1_employerdirectly (variables/contrib/policyengine/employer_ni/employer_cost.py:31).baseline_employer_cost.py:64-67,adjusted_employer_cost.py:46-49andemployer_ni_fixed_employer_cost_change.py:74-77each work out employer NI again from the rate and threshold, asr * max(0, c - t), without reading any variable. The fixed-cost formula also solves that expression in closed form (employer_ni_fixed_employer_cost_change.py:101-102,(c_b + r_r * k_r) / (1 + r_r)).ni_employerof £0, butemployer_coststill includes the £2,000.employer_costread it, and give the three formulas that recompute employer NI an allowance term. With option 2, the inversion stays linear only if the per-worker share is fixed:r(1 - s_b)above the threshold, withs_btaken from parameters by band. Ifs_bdepends on simulated liabilities, the plan needs to say how the inversion is solved.Should
One acceptance test conflicts with
ni_employeras it now stands. "Liability below the EA gives zeroni_employer" cannot hold, becauseni_employeraddsni_class_1a(variables/gov/hmrc/national_insurance/ni_employer.py:14-17, since Model the company car and car fuel benefits, with Class 1A NICs #2750). The issue's own rules say the allowance does not cover Class 1A. Failure case: £3,000 of secondary Class 1 and £1,000 of Class 1A on a company car should giveni_employerof £1,000, not £0. Suggested fix: run the test on the net Class 1 variable and assert thatni_employerequals Class 1A.Bring the background and scope up to date now that Employer NI ignores the under-21 and apprentice zero rates and the Employment Allowance #1918 is closed. Zero-rate employer NI for under-21s and apprentices under 25 #2505 closed Employer NI ignores the under-21 and apprentice zero rates and the Employment Allowance #1918 on 25 Oct and added the s.9A and s.9B zero rates (
ni_class_1_employer.py, viautils/employer_ni.secondary_class_1_threshold). Three passages in the issue are now out of date:"Not in scope" says the veterans and freeport reliefs "stay in Employer NI ignores the under-21 and apprentice zero rates and the Employment Allowance #1918". Zero-rate employer NI for under-21s and apprentices under 25 #2505's body says they remain unmodelled (NICA 2022 ss.1 and 6-7), so they now have no open tracker. Suggested fix: rewrite those passages against current
main, and either take the two reliefs in here or name a new issue for them.Checked and fine: the 5.1% and £152.7bn arithmetic (7.4 / 145.3; 145.3 + 7.4); the EA amount history from 2014-15 and the single-director exclusion from 6 April 2016; the exclusion of Class 1A and 1B; that unused allowance is lost at the end of the year.
Item 1 changes the design, so it should be settled before work starts. Items 2 and 3 are edits to the text.
🤖 Generated with Claude Code