ni_class_1_employer applies the full employer rate (15% from 2025-26) above the secondary threshold to every earner aged 16 or over. The model does not implement:
- SSCBA 1992 s.9A. 0% secondary rate for earners under 21, up to the upper secondary threshold (SI 2001/1004 reg 10(e); £967 a week in 2026-27).
- s.9B. 0% for relevant apprentices under 25, up to the apprentice upper secondary threshold (reg 10(f)).
is_apprentice exists, but NI does not use it.
- The Employment Allowance (NICA 2014 s.1): £10,500 per eligible employer in 2026-27, set against the employer's total secondary Class 1. It is employer-level, so the right representation in a person-level model needs a design decision.
- The elective veterans and freeport/investment zone reliefs (NICA 2022 ss.1 and 6–7), for completeness.
So ni_employer is overstated for under-21s and young apprentices, and gross of the Employment Allowance.
policyengine-uk-data calibrates weights to OBR "Class 1 Employer NICs" using this model's ni_employer (targets/sources/obr.py, obr/ni_employer). Any fix interacts with calibration.
Found while fixing #1894 (PR #1895). There, the property test checks the statutory s.9 amount only from age 21, because of this gap.
ni_class_1_employerapplies the full employer rate (15% from 2025-26) above the secondary threshold to every earner aged 16 or over. The model does not implement:is_apprenticeexists, but NI does not use it.So
ni_employeris overstated for under-21s and young apprentices, and gross of the Employment Allowance.policyengine-uk-datacalibrates weights to OBR "Class 1 Employer NICs" using this model'sni_employer(targets/sources/obr.py,obr/ni_employer). Any fix interacts with calibration.Found while fixing #1894 (PR #1895). There, the property test checks the statutory s.9 amount only from age 21, because of this gap.