Skip to content
ParaplanAI
§ TrustReplayable to the pence

A calc your compliance officer will sign.

Four pillars: HMRC corpus to zero pence, replayable for six years, deterministic code (never an LLM), and the post-2021/22 top-slicing rule by default.

— 01

Correctness

85 HMRC and statutory worked examples. Zero pence tolerance.

We run every example in our test corpus — HMRC PTM (pension), IPTM (bond), and care statutory means-test cases — against the engine on every commit. The tolerance is 0 pence (integer equality, not a rounding band). A single mismatch blocks merge to main. The full list is in §06.

Beyond the corpus, a separate first-principles harness re-derives 144 statutory probes directly from the legislation, independently of the engine — 0-pence tolerance on every one.

Method: PTM 057100 · IPTM 3830 · IPTM 3820 / HMRC Agent Update 83 (2021)

— 02

Replayability

Twelve months on, against the same versioned config.

Every signed calculation persists the full inputs, engine version, tax-year config, date and intermediate steps on its audit record. Replay the row a year later at the same versions and you get a byte-identical result. The client-facing annex stays a clean planning illustration — every page carries the planning disclaimer, your firm’s branding and FCA attribution when set, the page number, and a single “Prepared by {name} · {date}” line. The tool version, config version and full inputs live on the audit record and the JSONL audit export, not on the page a client sees.

— 03

Separation

AI extracts the figures. Code calculates the tax. Never the other way around.

The LLM lifts figures from a document and shows them to you with their source; you approve before any calc runs. The engine itself is pure TypeScript — no network, no randomness, no model access, no hidden state. The separation is enforced by the codebase, not by intention.

Named sub-processors + data locations: /privacy §4 →

— 04

The TSR rule

The post-2021/22 top-slicing rule. Done right.

Errors still exist in HMRC's tax calculations.

AccountingWEB →·Tax Adviser Magazine: Learn to slice correctly →

IPTM 3820 / HMRC Agent Update 83 changed the PSA/SRB recalculation for gains arising on or after 6 April 2021. HMRC's own calculator applied the pre-2021/22 method for a time, and third-party spreadsheets and back-office tools that copied it still do. ParaplanAI applies the post-2021/22 rule by default — every step appears on the annex with its IPTM 3820 citation — and the IPTM corpus tests it on every commit.

— 05

Retention

Source PDFs gone in 24 hours. Everything else is yours to delete.

An hourly cron purges raw uploads on a 24 hour horizon. The structured figures lifted from each document persist with the calculation so the audit trail still resolves; the PDF bytes don't need to. You are the controller — delete any record on demand, and finalised calculations are kept only for the window your firm sets (six years by default).

— 01 · Source documents
24 hours

Uploaded PDFs (P60, PSS, chargeable-event certificates) are parsed, then permanently deleted from UK-region object storage 24 hours later. An hourly cron enforces the cutoff; nothing carries over between paraplanner sessions.

— 02 · Your records
You decide

Clients, policies and calculations are yours to delete — one click, whenever you want. You hold your own FCA record; we never force a period on you. Finalised calculations you keep are auto-retained for the window your firm sets (six years by default), then deleted. Drafts you never finalise are removed after 90 days.

— 03 · Output PDFs
With the record

The compliance annex you download stays available so it can be re-fetched without re-running the calc. It is kept alongside its calculation under your firm’s retention policy, and goes the moment you delete the record — export it first if you need a copy.

Data-minimisation page →

— 06

Open HMRC corpus

Updated 11 Jun 2026

Every example in our HMRC and statutory test corpus. In public.

85 corpus examples passing · 0p toleranceLast green: 11 Jun 2026 · f350162+ 6 deferred · documented

The HMRC PTM, IPTM, and care statutory worked examples — 85 of them, each set out in full in the table below. Every row runs on every commit at 0-pence tolerance (integer equality, not a rounding band); a single failing example blocks merge. Find a mismatch? info@paraplanai.co.uk — confirmed mismatches in matched rows are patched within seven calendar days.

Method: HMRC PTM and IPTM manuals · IPTM3820 (HMRC Agent Update 83, 2021) · Care Act 2014 / CSCAR Regs 2014 · Open Government Licence v3.0

PTM · Pension Annual Allowance, Carry Forward, Tapered AA, MPAA, LSA / LSDBA, LTA History, TTFAC · 30 rows

IDWhat it tests
PTM-EX-01Basic Standard AA - No Taper, No Carry Forward
matched
PTM-EX-02Carry Forward from Prior 3 Years
matched
PTM-EX-03Tapered Annual Allowance, Taper Active, No CF
matched
PTM-EX-04Tapered AA with Carry Forward Interaction
matched
PTM-EX-05MPAA Triggered - DC Cap Applied, CF survives to the default/alt-AA tests (ADR-026 + ADR-038)
matched
PTM-EX-05BMPAA Triggered - alternative chargeable amount binds (DC>MPAA, large DB) (ADR-026 / P01-09)
matched
PTM-EX-06MPAA Already Active in Prior Year
matched
PTM-EX-08Taper Reaches Minimum Floor (£10k for 2023/24+)
matched
PTM-EX-10Multiple Schemes - Combined PIA
matched
PTM-EX-112022/23 - £40k AA with £4k Floor Taper
matched
PTM-EX-122023/24 - First Year of £60k AA
matched
PTM-EX-13Carry Forward Partially Consumed
matched
PTM-EX-14AA Charge - Multi-Scheme High PIA
matched
PTM-EX-15B1/ADR-051 — MPAA prior-year trigger, DC £0, DB £55k: s.227ZA(1)(b) gate closed, no alternative test
matched
PTM-EX-16B2/ADR-051 — unusedAAThisYear s.228A(8) substitution: DC £30k post-trigger, DB £0
matched
PTM-EX-17B4/ADR-051 — taper reduction floors to the nearest whole pound: AI £260,001
matched
PTM-EX-09DB PIA from opening/closing capital values (16x factor, 2025-26 CPI revaluation)
matched
PTM-LSA-01PCLS within unused LSA — no excess
matched
PTM-LSA-02PCLS exceeds remaining LSA after prior usage
matched
PTM-LSDBA-01PCLS consumes LSDBA in lock-step with LSA
matched
PTM-LTA-06072006/07 standard LTA (A-Day) is £1,500,000
matched
PTM-LTA-07082007/08 standard LTA is £1,600,000
matched
PTM-LTA-08092008/09 standard LTA is £1,650,000
matched
PTM-LTA-09102009/10 standard LTA is £1,750,000
matched
PTM-LTA-10112010/11 standard LTA is £1,800,000 (A-Day peak)
matched
PTM-LTA-11122011/12 standard LTA is £1,800,000 (peak held; clean join to 2010/11)
matched
PTM-LTA-12132012/13 standard LTA steps down to £1,500,000
matched
PTM-LTA-20212020/21 standard LTA is £1,073,100 (the abolition basis)
matched
PTM-TTFAC-DB-01Pre-2024 death benefit: own amount ignored for the LSDBA, but it flips the standard deduction to 100% for the original PCLS
matched
PTM-EX-07PTM-EX-07

The author-constructed combined-reading fixture is not accepted as current behaviour or runnable ground truth. ADR-011 accepts the separate/warn-only implementation: the orchestrator surfaces the PTM044100 relief-limit warning but does not reduce PIA for the annual-allowance test. No chartered-specialist review of the alternative is recorded. Keep this classified as a v2 modelling question unless a new owner-and-specialist decision, primary-source-backed fixture and coordinated engine/annex change replace ADR-011.

v2

IPTM · Investment Bond Chargeable Event Gain & Top-Slicing Relief · 28 rows

IDWhat it tests
IPTM-HMRC-01HMRC IPTM3850 Example 1 (Amanda) — onshore single event, no PA withdrawal
matched
IPTM-HMRC-EX3HMRC IPTM3850 Example 3 (Mike) — onshore single event, PA withdrawn
matched
IPTM-DERIVED-01Onshore basic-rate slice with PSA recalc — relief offsets full attributable tax
matched
IPTM-DERIVED-02Offshore, basic-rate slice — s.531(1) deemed-tax credit clamps the notional slice tax to £0
matched
IPTM-DERIVED-03PSA recalc divergence: full-gain pushes to higher rate, slice stays basic
matched
IPTM-DERIVED-04Additional-rate member, no PSA, no SRB
matched
IPTM-EX-03-OFFSHOREIPTM3820 Step-4 PSA recalculation — offshore: PSA £500 → £1,000, relief unchanged (s.531(1) credit floors the relieved liability at £0)
matched
IPTM-EX-03-ONSHOREIPTM3820 (HMRC Agent Update 83, 2021) differentiator — onshore sibling: PSA divergence masked by 20% slice credit
matched
IPTM-DERIVED-05Non-taxpayer + large offshore gain sliced into allowances — net £0 via top-slicing
matched
IPTM-DRV-W3-01Savings interest retained in Step-4 notional legs — offshore, interest shifts slice band (CX-W3)
matched
IPTM-DRV-W3-02Savings interest retained — onshore credit clamp masks the band shift (CX-W3 sibling)
matched
IPTM-DRV-W3-03Onshore gain with real savings interest — full five-step anchor (CX-W3 / PQ-CALC-03)
matched
IPTM-DRV-W6-01Pre-2021/22 rule: Step-3 PSA carries unchanged into Step 4 (CX-W6)
matched
ABRDN-OFFSHORE-01abrdn published offshore Example 1 — external anchor for the A1 fix
matched
TECHZONE-JACK-S530techzone "Jack" — s.530(3)-(5) restricted deemed-tax credit (A4)
matched
GFH-01-singleSingle premium, no withdrawals — full surrender gain SV−P.
matched
GFH-02-topupTop-up premium (2 premiums); gain unchanged, premiums aggregated; N from first premium.
matched
GFH-03-excessRegular withdrawals breaching 5% → excess events years 4-9 (prior tax years); year-10 excess absorbed into the surrender.
matched
GFH-04-under5pctRegular withdrawals UNDER 5% → no excess; withdrawals added back to the gain.
matched
GFH-05-midyearMid-year surrender (not on an anniversary) with excess history; all excess in prior tax years.
matched
GFH-06-fees-topupFee-inclusive withdrawals + a top-up; multiple premiums and a withdrawal history.
matched
GFH-07-20yr-cap25-year-old bond — the 5% allowance is capped at 20 years per premium.
matched
GFH-08-segment-divisionNon-round per-segment division (12 segments). the calculator floors the per-segment gain to whole pounds; our engine keeps pence.
matched
IPTM-HMRC-EX2IPTM-HMRC-EX2

HMRC IPTM3850 Example 2 (Amanda, two onshore events £50k/5yr + £10k/4yr, employment £40k, 2022/23): HMRC's published TSR is £8,185.20 using the 7-step multi-event method (sum of per-policy annual equivalents £12,500; relieved liability via the (relieved × total gain)/total AE apportionment). RESOLVED 2026-05-26 (V2-F-020 / ADR-028 — supersedes ADR-014's weighted-N): the engine now implements the IPTM3840 sum-of-slices method and reproduces this example BYTE-EQUAL (£8,185.20). It is asserted in calc-engine/bond/__tests__/top-slicing.multi-gain.test.ts (both calculateMultiGainTopSlicingRelief directly and via the calculateBondTSR orchestrator). Remains in `deferred` here only because the JSON corpus harness consumes single-event inputs and cannot express extras.additionalBonds — the dedicated test is the runnable home. The superseded weighted-N path gave annual equivalent £12,000 / TSR £8,616.

covered
IPTM-EX-01IPTM-EX-01

Time Apportionment Rules (non-residence years) — out of scope for v1; require period-of-residence tracking inputs.

out of scope
IPTM-EX-02IPTM-EX-02

This legacy author-draft identifier has no recoverable authoritative worked-example number set; the earlier metadata also misidentified which markdown example it represented. It is classified no-source and is not accepted as calculation ground truth. Retain it only as an evidence-ledger row: it must not be promoted to a runnable oracle without a new primary source and explicit owner and specialist acceptance. The separately identified verbatim HMRC IPTM3850 examples and constructed Brief-12/2021 regression anchors keep their own statuses and do not retrospectively validate this row.

no HMRC source
IPTM-EX-03IPTM-EX-03

Superseded — author's primary markdown example is degenerate (notional income £57,500 stays in higher rate, PSA recalc has no rate-band effect; markdown explicitly notes 'PSA recalculation made NO DIFFERENCE'). Replaced by constructed IPTM-EX-03-OFFSHORE + IPTM-EX-03-ONSHORE.

superseded
IPTM-EX-05IPTM-EX-05

Multi-CEC aggregation. RESOLVED 2026-05-26 (V2-F-020 / ADR-028): the engine implements the IPTM3840 sum-of-slices multi-gain TSR (calculateMultiGainTopSlicingRelief), verified byte-equal against HMRC IPTM3850 Example 2 in top-slicing.multi-gain.test.ts. Stays in `deferred` only because this JSON harness consumes single-event inputs; the dedicated test is the runnable home.

covered

Care · Local Authority Means-Test (England, Wales, Scotland, Northern Ireland) · 33 rows

IDWhat it tests
CARE-ENG-01England residential — 1p above the upper limit self-funds
matched
CARE-ENG-02England residential — exactly at the upper limit is in the tariff band (£36/wk)
matched
CARE-ENG-03England residential — exactly at the lower limit: income-assessed, no tariff
matched
CARE-ENG-04England residential — £20,000 mid-band tariff (£23/wk)
matched
CARE-ENG-05England residential — 1p above the lower limit rounds up to one £1 step
matched
CARE-ENG-06England nursing — self-funder still gets FNC £267.68 (not means-tested)
matched
CARE-ENG-07England residential — qualifying occupant disregards the £300k home
matched
CARE-ENG-08England residential — 12-week disregard window excludes the home
matched
CARE-ENG-09England — CHC indicated for a £500k self-funder (independent of means)
matched
CARE-ENG-10England — s.117 aftercare line on top of a computed position
matched
CARE-ENG-11England — recent gifts raise the deprivation caution
matched
CARE-ENG-12England home care — home never counted; £30k savings self-fund
matched
CARE-ENG-13England home care — tariff band with MIG floor and an AA prompt at 80
matched
CARE-ENG-14England residential — counted home makes a self-funder; DPA rate surfaced
matched
CARE-SCO-01Scotland residential — 1p above £36,750 self-funds; FPC still paid
matched
CARE-SCO-02Scotland residential — exactly at the upper limit: tariff band £56/wk
matched
CARE-SCO-03Scotland residential — exactly at the lower limit: income-assessed, no tariff
matched
CARE-SCO-04Scotland nursing — tariff band plus FPC and free nursing care lines
matched
CARE-SCO-05Scotland home care — free personal care at all ages
matched
CARE-SCO-06Scotland — an unsure CHC answer maps to the consider level
matched
CARE-WAL-01Wales residential — 1p above the £50,000 single limit self-funds
matched
CARE-WAL-02Wales residential — exactly £50,000: the LA assists, no tariff, MIA floor
matched
CARE-WAL-03Wales nursing — dated 2026/27 FNC components remain separate
matched
CARE-WAL-04Wales home care — £25,000 savings is above the £24,000 limit, but the £100 cap still binds (charged, not self-funding)
matched
CARE-WAL-05Wales home care — £20,000 savings: assisted, capped at £100/wk
matched
CARE-WAL-06Wales — CHC indicated routes to the local health board
matched
CARE-NI-01NI residential — £20,000 mid-band tariff with the NI PEA
matched
CARE-NI-02NI nursing — self-funder still gets the £100 RNCC
matched
CARE-NI-03NI home care — trust-discretionary position, no figures claimed
matched
CARE-NI-04NI residential — benefit in payment surfaces the trust-funded 28-day stop rule
matched
CARE-ENG-15England home care — 66-year-old confirmed BELOW Pension Credit age gets the working-age MIG band (E1)
matched
CARE-ENG-16England home care — 66-year-old confirmed to have REACHED State Pension age gets the pensioner MIG band (E1)
matched
CARE-ENG-17England home care — 66-year-old with NO answer supplied defaults conservatively to the working-age MIG band and warns (E1)
matched
— 07

Methodology

Open-question defaults

Where HMRC is ambiguous, here's what we apply.

Where the guidance is ambiguous, we record the interpretation we apply and which way any error leans (available on request). Defaults hold the conservative direction — never silently understating a charge or over-relieving. Firms should confirm acceptance in writing before adopting the output.

Questions? info@paraplanai.co.uk →

— 08

Professional responsibility

A calculation tool. Not a substitute for the adviser.

ParaplanAI is a calculation tool, not a provider of financial or tax advice. The regulated adviser using it retains full professional responsibility for every figure that reaches a client file — which is why every calculation is independently verifiable against the cited HMRC method shown on this page.

ParaplanAI does not hold separate professional-indemnity insurance. The tool’s assurance is its transparency: every step shown, every HMRC reference cited, every result replayable against a published corpus. The adviser’s own review and their firm’s PI cover are the professional backstop.

— 09

Verified against

Every calculation, and the primary source it's checked against.

Each calculation family is built and tested against the HMRC manual section and the Act below. The references link to the gov.uk manual and to legislation.gov.uk — the same citations stamped on the compliance annex.

Annual allowance · carry forward · taper · MPAA
Defined-benefit pension input amount
Lump sum / lump sum & death benefit allowance
Chargeable-event gain (investment bond)
Top-slicing relief — post-2021/22 PSA/SRB recalc
Multiple gains in a tax year (aggregation)

HMRC manual text reused under the Open Government Licence v3.0.

— 10

Changelog

What changed, and when. Real edits only.

A date appears here only when a rule, the configuration, or the verification actually changed — never a cosmetic refresh.

8 Aug 2026

Top-slicing relief corrected to HMRC's current executable method, superseding independent-liability subtraction: Gift Aid still reduces adjusted net income but does not extend the TSR rate bands; one personal allowance, personal savings allowance and starting-rate-band set is selected at each TSR level, used against other income first, and the gain or slice is then rate-walked.

HMRC MTR v1.5.1a · Tester v1.5.4 · ITTOIA 2005 ss.535–536 · ITA 2007 s.58

10 Jun 2026

2025-26 tax-year configuration verified (AA £60,000; taper floor £10,000; MPAA £10,000; LSA £268,275; LSDBA £1,073,100).

F(2)A 2023 Sch 9

10 Jun 2026

MPAA + carry-forward interaction clarified: carry forward survives the MPAA but is never added to the MPAA itself; it stays available for the default chargeable amount and the alternative annual allowance.

PTM055100 · PTM056510

4 Jun 2026

DB pension input amount: a separate automatic lump sum is taken at face value (1×), not multiplied by 16.

PTM053301 · FA 2004 s.234

26 May 2026

DB pension input amount: the opening value is revalued by the prior-September CPI before subtraction.

PTM053301 · FA 2004 s.235

26 May 2026

Multiple chargeable events in a tax year are aggregated by the sum-of-slices method.

IPTM3840 · ITTOIA 2005 s.536

7 May 2026

Top-slicing relief Step-4 PSA/SRB recalculation applied for gains arising on or after 6 April 2021.

IPTM3820 · HMRC Agent Update 83 (April 2021)

— More

— Cookies

We use essential storage to keep you signed in, remember work in progress and save your privacy choice. We use limited cookieless usage counts before you choose. With your permission, optional product analytics help us understand and improve the signed-in service. Account-linked analytics stay off unless you accept. Session replay is disabled on authenticated and client workspace pages; with your permission, anonymous masked replay may run only on queryless public pages. We do not use advertising trackers or sell personal data. Read our privacy policy.