Skip to main content
PaySlipIQ

Payslip Analysis — methodology

Last verified · Next review

Plain-English summary

PayslipIQ takes a picture or PDF of your payslip and turns it into a structured set of fields that we can check. The analysis pipeline has four logical stages: optical character recognition (OCR), field extraction, a layered set of checks (some rule-based, some LLM-assisted), and a final synthesis step that produces the human-readable result you see on screen.

The point of the methodology is to give you a confidence-weighted view of whether each line of your payslip looks consistent with the tax and national-insurance rules that apply to your situation. We do not claim to replicate your employer's exact payroll engine. We compare what appears on the slip against published HMRC and Revenue rules, and against what should plausibly arise from the inputs we can see (tax code, NI category, gross pay, period type).

When something does not match, we tell you what we expected, why we expected it, and what to ask your employer to confirm. We use cautious wording throughout because payroll has many legitimate edge cases — taxable benefits, tax-code changes mid-period, salary sacrifice — and a flag is a prompt for a question, not a verdict on your employer's behaviour.

What this methodology covers

  • UK and Republic of Ireland payslips, weekly or monthly
  • PAYE income tax checks against current HMRC tables
  • National Insurance (UK) and PRSI / USC (IE) recalculation
  • Pension auto-enrolment percentage checks
  • Statutory minimum-wage / minimum-living-wage sanity checks
  • Year-to-date consistency where the slip exposes YTD figures

What it does not cover

  • P11D taxable benefits valued elsewhere
  • Court orders and complex attachments of earnings
  • Foreign-sourced income subject to double-taxation relief
  • Share-scheme settlements (RSU, EMI, CSOP)
  • Bespoke salary-sacrifice arrangements without disclosed scheme rules
  • Construction Industry Scheme (CIS) deductions

Data inputs accepted

  • Image upload: JPEG, PNG, HEIC (auto-converted), max 10 MB
  • PDF upload: single or multi-page, max 10 MB
  • Optional context: pay frequency, employment start date, country (UK/IE)
  • Optional context: known tax code from your previous slip or HMRC notice
  • Optional account context: previous extracted figures for trend comparison

Step-by-step calculation logic

  1. Pre-processing. We rotate, deskew, and normalise the image. PDFs are rasterised page-by-page at 220 dpi. We strip EXIF and never persist the file.
  2. OCR pass. A text layer is built using a vision model that returns character-level confidence. We keep both the recognised text and confidence scores so the extraction step can reason about ambiguity.
  3. Layout segmentation. We segment the slip into header, earnings block, deductions block, and YTD block using positional clues (column alignment, label tokens like "Gross", "Net", "PAYE", "NI", "USC", "PRSI"). Where the layout is non-standard, we fall back to LLM-assisted region tagging.
  4. Field extraction. Specific fields (gross pay, net pay, tax code, NI category, employer name, pay date, period number) are extracted with typed schemas. Each field carries a confidence score and the source tokens that produced it.
  5. Rule-based primary checks. Where a deterministic rule applies — for example PAYE against an annual personal allowance and the tax-code prefix — we run the calculation in code, not in the LLM, so the result is reproducible.
  6. LLM-assisted contextual checks. Where rules require interpretation (for example identifying that "Sal Sac Pension" indicates salary sacrifice and adjusting NIable pay accordingly), we call a constrained LLM step that returns a structured judgement plus a short explanation.
  7. Cross-checks. We reconcile gross minus deductions to net pay within a tolerance, compare YTD against a back-calculated expectation, and flag cumulative drift.
  8. Result synthesis. Findings are scored, deduplicated, and grouped into three tiers: confirmed-OK, needs-confirmation, and likely-issue. Each finding ships with plain-English context and a "what to ask your employer" prompt.
  9. Discard. The image and OCR buffer are released. Only the structured result is returned to the browser. Account holders may opt-in to save the figures only.

Worked example

Sarah is a monthly-paid employee in England. She uploads her April 2026 payslip with the following figures:

  • Gross pay (period): £3,200.00
  • Tax code: 1257L (cumulative)
  • NI category: A
  • PAYE deducted: £335.00
  • NI deducted: £160.27
  • Net pay: £2,704.73

Our pipeline runs the following: tax code 1257L gives a personal allowance of £12,570; monthly free pay is £1,047.50. Taxable pay for the period is £2,152.50. At the 20% basic rate, expected PAYE is £430.50, against £335.00 reported. That is a £95.50 difference for the period. The cumulative tax code suggests this is a refund effect from prior under-use of allowance, so we mark it "needs confirmation against YTD" rather than "likely-issue". NI Category A above the primary threshold (£12,570 annual / £1,048 monthly equivalent) at 8% on earnings up to the upper earnings limit gives an expected £172.16. Reported £160.27 is £11.89 short, which we flag as "needs confirmation" — possibly explained by a salary sacrifice contribution we cannot see on this slip.

Edge cases handled

  • W1/M1 emergency codes — we switch to non-cumulative calculation and disable YTD reconciliation.
  • Mid-period tax-code change — we look for an annotation and broaden the tolerance band.
  • Salary sacrifice — we infer reduced NIable pay where a sacrifice line is present.
  • Multiple jobs — when BR or D0 is detected, we treat the slip as a secondary employment.
  • Scottish (S) and Welsh (C) prefixes — we apply the correct band thresholds.
  • Bonus periods — large one-off pay is annualised before applying band logic.
  • Statutory pay (SSP, SMP) — recognised line items are excluded from NI base.

Limitations and known gaps

  • OCR can mis-read figures on heavily compressed phone photos. We surface a low-confidence warning.
  • We cannot see employer-side P11D benefits unless the slip itself shows them.
  • Pension scheme rules vary; we approximate auto-enrolment minimums and flag for review where unclear.
  • Court orders and other attachments of earnings are reported as a line item but not validated.
  • Mid-tax-year employer changes can produce legitimate YTD discontinuities we treat as ambiguous.
  • Northern Ireland uses the same UK PAYE rules as England in this engine; specific NI Executive deviations are not modelled.

Sources used

  • HMRC, Income Tax rates and Personal Allowances — gov.uk/income-tax-rates
  • HMRC, National Insurance rates and categories — gov.uk/national-insurance-rates-letters
  • HMRC, PAYE Manual — gov.uk/hmrc-internal-manuals/paye-manual
  • HMRC, CWG2 Employer Further Guide to PAYE and NICs
  • The Pensions Regulator — auto-enrolment minimum contributions guidance
  • Revenue.ie — PAYE, USC and PRSI guidance for employers
  • Department of Social Protection (Ireland) — PRSI classes and subclasses

Disclaimer

PayslipIQ provides informational analysis only. We do not provide tax, legal, or employment advice. Findings are intended as prompts for you to seek confirmation from your employer or a qualified adviser. Where figures appear inconsistent, this may be due to a legitimate payroll arrangement we cannot see from the slip alone.