[
{
"name": "3,000 pounds a month on 1257L, category A, nothing else",
"args": [
{
"gross": {
"minor": 300000,
"currency": "GBP"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [],
"pension": null
}
],
"expect": {
"gross": {
"minor": 300000,
"currency": "GBP"
},
"pensionEmployee": {
"minor": 0,
"currency": "GBP"
},
"pensionEmployer": {
"minor": 0,
"currency": "GBP"
},
"taxablePay": {
"minor": 300000,
"currency": "GBP"
},
"tax": {
"minor": 39020,
"currency": "GBP"
},
"employeeNi": {
"minor": 15616,
"currency": "GBP"
},
"employerNi": {
"minor": 38745,
"currency": "GBP"
},
"studentLoan": {
"minor": 0,
"currency": "GBP"
},
"postgraduateLoan": {
"minor": 0,
"currency": "GBP"
},
"net": {
"minor": 245364,
"currency": "GBP"
},
"taxablePayToDate": {
"minor": 300000,
"currency": "GBP"
},
"taxToDate": {
"minor": 39020,
"currency": "GBP"
},
"period": 1,
"taxYear": "2026/27"
}
},
{
"name": "relief at source pension at the minimums, plan 2 and a postgraduate loan",
"args": [
{
"gross": {
"minor": 300000,
"currency": "GBP"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [
"plan-2",
"postgraduate"
],
"pension": {
"employeeBasisPoints": null,
"employerBasisPoints": null,
"earningsBasis": "qualifying-earnings",
"arrangement": "relief-at-source"
}
}
],
"expect": {
"gross": {
"minor": 300000,
"currency": "GBP"
},
"pensionEmployee": {
"minor": 9920,
"currency": "GBP"
},
"pensionEmployer": {
"minor": 7440,
"currency": "GBP"
},
"taxablePay": {
"minor": 300000,
"currency": "GBP"
},
"tax": {
"minor": 39020,
"currency": "GBP"
},
"employeeNi": {
"minor": 15616,
"currency": "GBP"
},
"employerNi": {
"minor": 38745,
"currency": "GBP"
},
"studentLoan": {
"minor": 4900,
"currency": "GBP"
},
"postgraduateLoan": {
"minor": 7500,
"currency": "GBP"
},
"net": {
"minor": 223044,
"currency": "GBP"
},
"taxablePayToDate": {
"minor": 300000,
"currency": "GBP"
},
"taxToDate": {
"minor": 39020,
"currency": "GBP"
},
"period": 1,
"taxYear": "2026/27"
}
},
{
"name": "a net pay arrangement comes off before tax but not before NI",
"args": [
{
"gross": {
"minor": 300000,
"currency": "GBP"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [],
"pension": {
"employeeBasisPoints": 500,
"employerBasisPoints": 300,
"earningsBasis": "all-earnings",
"arrangement": "net-pay"
}
}
],
"expect": {
"gross": {
"minor": 300000,
"currency": "GBP"
},
"pensionEmployee": {
"minor": 15000,
"currency": "GBP"
},
"pensionEmployer": {
"minor": 9000,
"currency": "GBP"
},
"taxablePay": {
"minor": 285000,
"currency": "GBP"
},
"tax": {
"minor": 36020,
"currency": "GBP"
},
"employeeNi": {
"minor": 15616,
"currency": "GBP"
},
"employerNi": {
"minor": 38745,
"currency": "GBP"
},
"studentLoan": {
"minor": 0,
"currency": "GBP"
},
"postgraduateLoan": {
"minor": 0,
"currency": "GBP"
},
"net": {
"minor": 233364,
"currency": "GBP"
},
"taxablePayToDate": {
"minor": 285000,
"currency": "GBP"
},
"taxToDate": {
"minor": 36020,
"currency": "GBP"
},
"period": 1,
"taxYear": "2026/27"
}
},
{
"name": "a Scottish taxpayer with plans 1 and 2 repays once, at plan 1's lower threshold",
"args": [
{
"gross": {
"minor": 300000,
"currency": "GBP"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "S1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [
"plan-2",
"plan-1"
],
"pension": null
}
],
"expect": {
"gross": {
"minor": 300000,
"currency": "GBP"
},
"pensionEmployee": {
"minor": 0,
"currency": "GBP"
},
"pensionEmployer": {
"minor": 0,
"currency": "GBP"
},
"taxablePay": {
"minor": 300000,
"currency": "GBP"
},
"tax": {
"minor": 39227,
"currency": "GBP"
},
"employeeNi": {
"minor": 15616,
"currency": "GBP"
},
"employerNi": {
"minor": 38745,
"currency": "GBP"
},
"studentLoan": {
"minor": 6800,
"currency": "GBP"
},
"postgraduateLoan": {
"minor": 0,
"currency": "GBP"
},
"net": {
"minor": 238357,
"currency": "GBP"
},
"taxablePayToDate": {
"minor": 300000,
"currency": "GBP"
},
"taxToDate": {
"minor": 39227,
"currency": "GBP"
},
"period": 1,
"taxYear": "2026/27"
}
},
{
"name": "weekly pay under the allowance and the primary threshold: only employer NI",
"args": [
{
"gross": {
"minor": 20000,
"currency": "GBP"
},
"frequency": "weekly",
"payDate": "2025-04-11",
"taxCode": "1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [],
"pension": null
}
],
"expect": {
"gross": {
"minor": 20000,
"currency": "GBP"
},
"pensionEmployee": {
"minor": 0,
"currency": "GBP"
},
"pensionEmployer": {
"minor": 0,
"currency": "GBP"
},
"taxablePay": {
"minor": 20000,
"currency": "GBP"
},
"tax": {
"minor": 0,
"currency": "GBP"
},
"employeeNi": {
"minor": 0,
"currency": "GBP"
},
"employerNi": {
"minor": 1560,
"currency": "GBP"
},
"studentLoan": {
"minor": 0,
"currency": "GBP"
},
"postgraduateLoan": {
"minor": 0,
"currency": "GBP"
},
"net": {
"minor": 20000,
"currency": "GBP"
},
"taxablePayToDate": {
"minor": 20000,
"currency": "GBP"
},
"taxToDate": {
"minor": 0,
"currency": "GBP"
},
"period": 1,
"taxYear": "2025/26"
}
},
{
"name": "a student loan plan listed twice is an error",
"args": [
{
"gross": {
"minor": 300000,
"currency": "GBP"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [
"plan-2",
"plan-2"
],
"pension": null
}
],
"expectError": "listed twice"
},
{
"name": "gross pay in euros is an error",
"args": [
{
"gross": {
"minor": 300000,
"currency": "EUR"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "1257L",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [],
"pension": null
}
],
"expectError": "must be in GBP"
},
{
"name": "a code HMRC does not issue is an error",
"args": [
{
"gross": {
"minor": 300000,
"currency": "GBP"
},
"frequency": "monthly",
"payDate": "2026-04-28",
"taxCode": "1257Q",
"previousTaxablePayToDate": {
"minor": 0,
"currency": "GBP"
},
"previousTaxToDate": {
"minor": 0,
"currency": "GBP"
},
"niCategory": "A",
"studentLoanPlans": [],
"pension": null
}
],
"expectError": "unrecognised tax code"
}
]