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

77 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 still applies the pre-2021/22 method (as at June 2026), and several widely-used third-party tools follow it. 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.

77 corpus examples passing · 0p toleranceLast green: 11 Jun 2026 · b8dcf3d+ 7 deferred · documented

The HMRC PTM, IPTM, and care statutory worked examples — 77 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 · 28 rows

IDWhat it testsStatus
PTM-EX-01Basic Standard AA - No Taper, No Carry Forwardmatched
PTM-EX-02Carry Forward from Prior 3 Yearsmatched
PTM-EX-03Tapered Annual Allowance, Taper Active, No CFmatched
PTM-EX-04Tapered AA with Carry Forward Interactionmatched
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 Yearmatched
PTM-EX-08Taper Reaches Minimum Floor (£10k for 2023/24+)matched
PTM-EX-10Multiple Schemes - Combined PIAmatched
PTM-EX-112022/23 - £40k AA with £4k Floor Tapermatched
PTM-EX-122023/24 - First Year of £60k AAmatched
PTM-EX-13Carry Forward Partially Consumedmatched
PTM-EX-14AA Charge - Multi-Scheme High PIAmatched
PTM-EX-09DB PIA from opening/closing capital values (16x factor, 2025-26 CPI revaluation)matched
PTM-LSA-01PCLS within unused LSA — no excessmatched
PTM-LSA-02PCLS exceeds remaining LSA after prior usagematched
PTM-LSDBA-01PCLS consumes LSDBA in lock-step with LSAmatched
PTM-LTA-06072006/07 standard LTA (A-Day) is £1,500,000matched
PTM-LTA-07082007/08 standard LTA is £1,600,000matched
PTM-LTA-08092008/09 standard LTA is £1,650,000matched
PTM-LTA-09102009/10 standard LTA is £1,750,000matched
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,000matched
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 PCLSmatched
PTM-EX-07PTM-EX-07

100% earnings cap binding scenario reduces tested PIA below AA. Current orchestrator surfaces a warning but does not reduce PIA — see ADR-011 for default. Implement when v2 introduces full PTM044100 PIA-reduction semantics.

v2
PTM-EX-09PTM-EX-09

DB scheme PIA from 16× capital valuation. PIA computation exists at calc-engine/pension/db-pia.ts (calculateDBPensionInputAmount) but the AA-orchestrator corpus harness only consumes pre-computed PIA inputs. Wire the DB-PIA computation into the corpus harness so this example can run end-to-end with capital-value inputs.

covered

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

IDWhat it testsStatus
IPTM-HMRC-01HMRC IPTM3850 Example 1 (Amanda) — onshore single event, no PA withdrawalmatched
IPTM-HMRC-EX3HMRC IPTM3850 Example 3 (Mike) — onshore single event, PA withdrawnmatched
IPTM-DERIVED-01Onshore basic-rate slice with PSA recalc — relief offsets full attributable taxmatched
IPTM-DERIVED-02Offshore, no credit, basic-rate slicematched
IPTM-DERIVED-03PSA recalc divergence: full-gain pushes to higher rate, slice stays basicmatched
IPTM-DERIVED-04Additional-rate member, no PSA, no SRBmatched
IPTM-EX-03-OFFSHOREIPTM3820 (HMRC Agent Update 83, 2021) differentiator — offshore: PSA recalc drives £600 TSR upliftmatched
IPTM-EX-03-ONSHOREIPTM3820 (HMRC Agent Update 83, 2021) differentiator — onshore sibling: PSA divergence masked by 20% slice creditmatched
IPTM-DERIVED-05Non-taxpayer + large offshore gain sliced into allowances — net £0 via top-slicingmatched
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 5-step anchor incl. PSA cross-term (CX-W3 / PQ-CALC-03)matched
IPTM-DRV-W6-01Pre-2021/22 rule: Step-3 PSA carries unchanged into Step 4 (CX-W6)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). Quilter 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

Author's source-markdown worked example (docs/research/hmrc-iptm-bond-corpus.md EXAMPLE 3) has internal restarts and disputed arithmetic ('No, this is wrong... let me restart Step 4 properly'; multiple candidate AET interpretations). It is NOT an HMRC-published number set. Per CLAUDE.md §Testing it is not extracted. RESOLUTION (P06-07, 2026-05-23): superseded as a ground-truth source by the verbatim HMRC IPTM3850 examples now in this corpus (IPTM-HMRC-01 passing; IPTM-HMRC-EX2/EX3 deferred). The constructed Brief-12/2021 anchors IPTM-EX-03-OFFSHORE/ONSHORE remain the engine regression tests for the recalc rule. IPTM-EX-02 stays deferred — its arithmetic could not be canonicalised against an authoritative source.

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) · 30 rows

IDWhat it testsStatus
CARE-ENG-01England residential — 1p above the upper limit self-fundsmatched
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 tariffmatched
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 stepmatched
CARE-ENG-06England nursing — self-funder still gets FNC £267.68 (not means-tested)matched
CARE-ENG-07England residential — qualifying occupant disregards the £300k homematched
CARE-ENG-08England residential — 12-week disregard window excludes the homematched
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 positionmatched
CARE-ENG-11England — recent gifts raise the deprivation cautionmatched
CARE-ENG-12England home care — home never counted; £30k savings self-fundmatched
CARE-ENG-13England home care — tariff band with MIG floor and an AA prompt at 80matched
CARE-ENG-14England residential — counted home makes a self-funder; DPA rate surfacedmatched
CARE-SCO-01Scotland residential — 1p above £36,750 self-funds; FPC still paidmatched
CARE-SCO-02Scotland residential — exactly at the upper limit: tariff band £56/wkmatched
CARE-SCO-03Scotland residential — exactly at the lower limit: income-assessed, no tariffmatched
CARE-SCO-04Scotland nursing — tariff band plus FPC and free nursing care linesmatched
CARE-SCO-05Scotland home care — free personal care at all agesmatched
CARE-SCO-06Scotland — an unsure CHC answer maps to the consider levelmatched
CARE-WAL-01Wales residential — 1p above the £50,000 single limit self-fundsmatched
CARE-WAL-02Wales residential — exactly £50,000: the LA assists, no tariff, MIA floormatched
CARE-WAL-03Wales nursing — FNC at the most recent officially published rate (operator ruling)matched
CARE-WAL-04Wales home care — £25,000 savings is above the £24,000 limit; £100 cap shownmatched
CARE-WAL-05Wales home care — £20,000 savings: assisted, capped at £100/wkmatched
CARE-WAL-06Wales — CHC indicated routes to the local health boardmatched
CARE-NI-01NI residential — £20,000 mid-band tariff with the NI PEAmatched
CARE-NI-02NI nursing — self-funder still gets the £100 RNCCmatched
CARE-NI-03NI home care — trust-discretionary position, no figures claimedmatched
CARE-NI-04NI residential — benefit in payment surfaces the trust-funded 28-day stop rulematched
— 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.

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 · PTM056500

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