Functional Weave
Code in TypeScript

charity.payroll-giving@1.0.0

README.md

1,812 bytes · view raw

# charity.payroll-giving

Payroll Giving (Give As You Earn) for one pay period. The employer deducts
the donation from pay **before income tax** (ITEPA 2003 s713) but **after
National Insurance**, and passes it to a Payroll Giving agency. The relief is
simply the PAYE the lower pay saves, so this runs payroll.income-tax twice,
with and without the donation, and reports the difference.

That is deliberately not `donation x marginal rate`. PAYE works on taxable
pay rounded down to whole pounds, so the saving each period comes in whole
multiples of the rate on £1: a £5 donation at basic rate saves exactly £1, a
50p donation saves nothing that month, and a donation that straddles a band
boundary gets each rate on its own part. The PAYE is the real deduction the
payroll will make, cumulative codes, Scottish and Welsh bands, K codes and
all.

- `pay` is the period's taxable pay before the donation (after any net pay
  pension deduction); `previousPayToDate` should already be net of earlier
  Payroll Giving deductions, as it is on the payroll record.
- National Insurance is not affected by the donation and is not computed
  here (payroll.national-insurance on the full pay).
- A charity cannot claim Gift Aid on Payroll Giving donations (s416(4)
  Condition C excludes them), and agency fees are the caller's to handle.
- The tax years are those payroll.income-tax has bands for (2023-24 on).

## Sources

- Income Tax (Earnings and Pensions) Act 2003 s713, https://www.legislation.gov.uk/ukpga/2003/1/section/713
- GOV.UK, "Payroll Giving" ("taken from your employees' pay before tax but
  after National Insurance"; "You can't claim Gift Aid on Payroll Giving
  donations"), https://www.gov.uk/payroll-giving
- Income Tax Act 2007 s416(4), https://www.legislation.gov.uk/ukpga/2007/3/section/416