Skip to content

This site describes solve-engine as it is on main: 2.43.0, which npm does not have yet. npm installs 2.40.0, so a page may show an answer that version does not give yet.

PAYROLL_PACKAGE

const PAYROLL_PACKAGE: IEnginePackage;

Defined in: packages/engine/src/packages/payroll/PayrollPackage.ts:148

Take-home pay from a UK salary (issue #277).

<salary> after tax (and take home on <salary>) answers what actually reaches the bank after income tax and National Insurance; per month after tax gives that as a monthly figure; hourly for <salary> is the gross salary as an hourly rate.

The banded forms take pounds and nothing else. HMRC’s bands are a fact about the United Kingdom, so a dollar salary was being answered confidently about a country they say nothing about, and a bare number was assuming Britain in silence. Both refuse now and name after 20% tax, the form that states its own rate and is therefore national about nothing. hourly for is not gated: a salary over a working year is a division, with no bands in it. A salary below zero is refused by every form, banded, at a stated rate or hourly, since no one is paid one (see negativeSalaryRefusal).

The figures are the full HMRC bands for England, Wales and Northern Ireland, for whichever year DEFAULT_TAX_YEAR names, which is the latest the package ships a table for (see data/HmrcBands.ts): the personal-allowance taper over £100,000, the 20/40/45% income-tax bands, and employee NI at 8% then 2%.

Case clauses after the form (issue #747) change whose take-home it is: in Scotland charges Scotland’s six income tax bands (National Insurance is UK-wide), with plan 2 student loan and the other plans take a student loan repayment, and with 5% pension takes a pension contribution before income tax (a net pay arrangement). A different tax code and self-employment stay out, the same boundary the sales-tax rule draws: what is not shipped is not assumed. On by default and removable.