Analysis of a hypothetical UK salary sacrifice pension contribution cap using PolicyEngine.
This package models the fiscal and distributional impacts of capping salary sacrifice pension contributions, with configurable behavioral assumptions about how employers and employees respond.
The model explores a 2x2 matrix of behavioral responses:
- SPREAD_COST: Spread the additional employer NI cost across all employees (cost-neutral for employer)
- ABSORB_COST: Employer absorbs the full extra NI cost
- MAINTAIN_PENSION: Redirect excess to employee pension contributions (maintains total pension saving)
- TAKE_CASH: Take the excess as taxable cash instead (reduces pension saving)
This gives 4 scenarios:
- Spread + Maintain: Broad haircut, full pension maintained
- Spread + Take Cash: Broad haircut, lower pension saving
- Absorb + Maintain: No haircut, full pension maintained (best for employee pension)
- Absorb + Take Cash: No haircut, max take-home (best for employee cash)
pip install -e ".[dev]"salary-sacrifice matrix --cap 2000 --year 2026salary-sacrifice single --cap 2000 --employer spread --employee maintainsalary-sacrifice distributional --cap 2000 --year 2026# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest -v
# Format code
black .MIT