{"schema":"paraplanai-transparency-corpus-v1","license":"See https://paraplanai.co.uk/terms — corpus reproduces HMRC PTM/IPTM worked examples (HMRC content is Crown Copyright; non-commercial reproduction permitted under the Open Government Licence v3.0).","note":"Open HMRC regression suite. Every row is a worked example from the HMRC PTM (pension) or IPTM (bond) manuals or a canonical case built to exercise the load-bearing post-2021/22 top-slicing rule (HMRC Brief 12/2021). Status=\"matched\" runs on every commit at zero-pence tolerance; status=\"deferred\" is parked pending operator review (see reason).","sources":{"ptmMarkdown":"https://github.com/harrydunn/paraplanai/blob/main/docs/research/hmrc-ptm-pension-corpus.md","iptmMarkdown":"https://github.com/harrydunn/paraplanai/blob/main/docs/research/hmrc-iptm-bond-corpus.md","ptmJson":"https://github.com/harrydunn/paraplanai/blob/main/app/calc-engine/corpus/ptm-corpus.json","iptmJson":"https://github.com/harrydunn/paraplanai/blob/main/app/calc-engine/corpus/iptm-corpus.json"},"ptm":{"$schema":"ptm-corpus-v1","source":"docs/research/hmrc-ptm-pension-corpus.md","extracted":"2026-05-07","notes":"All amounts in pounds (will be ×100 to pence in tests). Examples 7, 9 require features (earnings-cap PIA reduction, DB-from-capital) deferred to v2; flagged below.","examples":[{"id":"PTM-EX-01","name":"Basic Standard AA - No Taper, No Carry Forward","source":"PTM052000, PTM053100","input":{"taxYear":"2025-26","thresholdIncome":100000,"adjustedIncome":100000,"relevantUKEarnings":100000,"currentYearPIA_DC":45000,"currentYearPIA_DB":0,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"applicableAA":60000,"taperActive":false,"carryForwardAvailable":0,"totalAllowance":60000,"effectivePIA":45000,"excess":0,"aaChargeAmount":0,"unusedAAThisYear":15000}},{"id":"PTM-EX-02","name":"Carry Forward from Prior 3 Years","source":"PTM055100, PTM055200","input":{"taxYear":"2025-26","thresholdIncome":150000,"adjustedIncome":150000,"relevantUKEarnings":150000,"currentYearPIA_DC":58000,"currentYearPIA_DB":0,"priorUnusedAA":{"2022-23":10000,"2023-24":15000,"2024-25":8000},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"applicableAA":60000,"carryForwardAvailable":33000,"totalAllowance":93000,"effectivePIA":58000,"excess":0,"aaChargeAmount":0}},{"id":"PTM-EX-03","name":"Tapered Annual Allowance, Taper Active, No CF","source":"PTM057100, PTM057200","input":{"taxYear":"2025-26","thresholdIncome":280000,"adjustedIncome":280000,"relevantUKEarnings":280000,"currentYearPIA_DC":55000,"currentYearPIA_DB":0,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"taperActive":true,"applicableAA":50000,"carryForwardAvailable":0,"totalAllowance":50000,"effectivePIA":55000,"excess":5000,"aaChargeAmount":2250}},{"id":"PTM-EX-04","name":"Tapered AA with Carry Forward Interaction","source":"PTM057100, PTM055100","input":{"taxYear":"2025-26","thresholdIncome":300000,"adjustedIncome":300000,"relevantUKEarnings":300000,"currentYearPIA_DC":58000,"currentYearPIA_DB":0,"priorUnusedAA":{"2023-24":12000,"2024-25":5000},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"taperActive":true,"applicableAA":40000,"carryForwardAvailable":17000,"totalAllowance":57000,"effectivePIA":58000,"excess":1000,"aaChargeAmount":450}},{"id":"PTM-EX-05","name":"MPAA Triggered - DC Cap Applied, CF Lost","source":"PTM056500","input":{"taxYear":"2025-26","thresholdIncome":150000,"adjustedIncome":150000,"relevantUKEarnings":150000,"currentYearPIA_DC":42000,"currentYearPIA_DB":50000,"priorUnusedAA":{"2024-25":8000},"mpaaTriggeredThisYear":true,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"applicableAA":60000,"mpaaActive":true,"dcAfterMPAA":10000,"dbUnaffected":50000,"effectivePIA":60000,"carryForwardAvailable":0,"totalAllowance":60000,"excess":0,"aaChargeAmount":0}},{"id":"PTM-EX-06","name":"MPAA Already Active in Prior Year","source":"PTM056500","input":{"taxYear":"2025-26","thresholdIncome":150000,"adjustedIncome":150000,"relevantUKEarnings":150000,"currentYearPIA_DC":8000,"currentYearPIA_DB":30000,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":true},"expected":{"mpaaActive":true,"dcAfterMPAA":8000,"dbUnaffected":30000,"effectivePIA":38000,"carryForwardAvailable":0,"totalAllowance":60000,"excess":0,"aaChargeAmount":0}},{"id":"PTM-EX-08","name":"Taper Reaches Minimum Floor (£10k for 2023/24+)","source":"PTM057100","input":{"taxYear":"2025-26","thresholdIncome":380000,"adjustedIncome":380000,"relevantUKEarnings":380000,"currentYearPIA_DC":15000,"currentYearPIA_DB":0,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"applicableAA":10000,"taperActive":true,"totalAllowance":10000,"effectivePIA":15000,"excess":5000,"aaChargeAmount":2250}},{"id":"PTM-EX-10","name":"Multiple Schemes - Combined PIA","source":"PTM053100","input":{"taxYear":"2025-26","thresholdIncome":170000,"adjustedIncome":170000,"relevantUKEarnings":170000,"currentYearPIA_DC":35000,"currentYearPIA_DB":28000,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"effectivePIA":63000,"applicableAA":60000,"totalAllowance":60000,"excess":3000,"aaChargeAmount":1350}},{"id":"PTM-EX-11","name":"2022/23 - £40k AA with £4k Floor Taper","source":"PTM052000, PTM057100","input":{"taxYear":"2022-23","thresholdIncome":250000,"adjustedIncome":250000,"relevantUKEarnings":250000,"currentYearPIA_DC":22000,"currentYearPIA_DB":0,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":40000,"taperActive":true,"applicableAA":35000,"totalAllowance":35000,"effectivePIA":22000,"excess":0,"aaChargeAmount":0}},{"id":"PTM-EX-12","name":"2023/24 - First Year of £60k AA","source":"PTM052000","input":{"taxYear":"2023-24","thresholdIncome":180000,"adjustedIncome":180000,"relevantUKEarnings":180000,"currentYearPIA_DC":48000,"currentYearPIA_DB":0,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"standardAA":60000,"applicableAA":60000,"totalAllowance":60000,"effectivePIA":48000,"excess":0,"aaChargeAmount":0,"unusedAAThisYear":12000}},{"id":"PTM-EX-13","name":"Carry Forward Partially Consumed","source":"PTM055100, PTM055200","input":{"taxYear":"2025-26","thresholdIncome":165000,"adjustedIncome":165000,"relevantUKEarnings":165000,"currentYearPIA_DC":75000,"currentYearPIA_DB":0,"priorUnusedAA":{"2022-23":6000,"2023-24":9000,"2024-25":7000},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"carryForwardAvailable":22000,"totalAllowance":82000,"effectivePIA":75000,"excess":0,"aaChargeAmount":0}},{"id":"PTM-EX-14","name":"AA Charge - Multi-Scheme High PIA","source":"PTM057200","input":{"taxYear":"2025-26","thresholdIncome":175000,"adjustedIncome":175000,"relevantUKEarnings":175000,"currentYearPIA_DC":52000,"currentYearPIA_DB":22000,"priorUnusedAA":{},"mpaaTriggeredThisYear":false,"mpaaTriggeredInPrior":false},"expected":{"effectivePIA":74000,"applicableAA":60000,"totalAllowance":60000,"excess":14000,"aaChargeAmount":6300}}],"dbPiaExamples":[{"id":"PTM-EX-09","name":"DB PIA from opening/closing capital values (16x factor)","source":"PTM053100","input":{"openingAnnualPension":5000,"openingLumpSum":25000,"closingAnnualPension":5500,"closingLumpSum":27000},"expected":{"openingCapitalValue":480000,"closingCapitalValue":520000,"pensionInputAmount":40000,"capitalValuationFactor":16}}],"deferred":[{"id":"PTM-EX-07","reason":"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."},{"id":"PTM-EX-09","reason":"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."}],"lsaExamples":[{"id":"PTM-LSA-01","name":"PCLS within unused LSA — no excess","source":"PTM171000, PTM176100; F(2)A 2023 Sch 9","url":"https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm171000","input":{"taxYear":"2025-26","event":{"kind":"PCLS","lumpSumAmount":200000,"eventDate":"2025-06-01"},"prior":{"lsaUsedToDate":0,"lsdbaUsedToDate":0,"hasTransitionalCertificate":false},"protection":{"kind":"none"}},"expected":{"lsaStandard":268275,"lsaConsumedThisEvent":200000,"lsaConsumedCumulative":200000,"lsaRemaining":68275,"lsaExcess":0,"lsaExceeded":false}},{"id":"PTM-LSA-02","name":"PCLS exceeds remaining LSA after prior usage","source":"PTM171000, PTM176100; F(2)A 2023 Sch 9","url":"https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm176100","input":{"taxYear":"2025-26","event":{"kind":"PCLS","lumpSumAmount":100000,"eventDate":"2025-09-15"},"prior":{"lsaUsedToDate":200000,"lsdbaUsedToDate":200000,"hasTransitionalCertificate":false},"protection":{"kind":"none"}},"expected":{"lsaStandard":268275,"lsaConsumedThisEvent":68275,"lsaConsumedCumulative":268275,"lsaRemaining":0,"lsaExcess":31725,"lsaExceeded":true}}],"lsdbaExamples":[{"id":"PTM-LSDBA-01","name":"PCLS consumes LSDBA in lock-step with LSA","source":"PTM172000; F(2)A 2023 Sch 9","url":"https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm172000","input":{"taxYear":"2025-26","event":{"kind":"PCLS","lumpSumAmount":200000,"eventDate":"2025-06-01"},"prior":{"lsaUsedToDate":0,"lsdbaUsedToDate":0,"hasTransitionalCertificate":false},"protection":{"kind":"none"}},"expected":{"lsdbaStandard":1073100,"lsdbaConsumedThisEvent":200000,"lsdbaConsumedCumulative":200000,"lsdbaRemaining":873100,"lsdbaExcess":0,"lsdbaExceeded":false}}]},"iptm":{"$schema":"iptm-corpus-v1","source":"docs/research/hmrc-iptm-bond-corpus.md","extracted":"2026-05-07","notes":"Single-event TSR cases only. Examples 1, 3, 5 in source markdown have reasoning passes / disputed arithmetic and per CLAUDE.md §Testing are NOT extracted until canonicalised by domain-expert review (Harry). Examples here are constructed/canonical cases that exercise the engine's load-bearing paths.","examples":[{"id":"IPTM-CORE-01","name":"Onshore basic-rate slice with PSA recalc — relief offsets full attributable tax","source":"IPTM3820 + Brief 12/2021 (constructed case)","input":{"bondType":"onshore","taxYear":"2023-24","gain":60000,"completeYears":6,"nonSavingsIncome":35000,"savingsIncome":0},"expected":{"topSlicing.annualEquivalent":10000,"topSlicing.psaStep4":1000,"topSlicing.notionalTaxOnSlice":0},"notes":"Notional £45k income is basic rate → PSA £1k → tax on slice fully offset by 20% credit. Relief = full attributable tax."},{"id":"IPTM-CORE-02","name":"Offshore, no credit, basic-rate slice","source":"IPTM3820 (constructed)","input":{"bondType":"offshore","taxYear":"2023-24","gain":40000,"completeYears":5,"nonSavingsIncome":30000,"savingsIncome":0},"expected":{"topSlicing.annualEquivalent":8000,"topSlicing.psaStep4":1000,"topSlicing.notionalTaxOnSlice":1400,"topSlicing.relievedLiability":7000}},{"id":"IPTM-CORE-03","name":"PSA recalc divergence: full-gain pushes to higher rate, slice stays basic","source":"Brief 12/2021 (constructed; canonical post-2021/22 case)","input":{"bondType":"onshore","taxYear":"2025-26","gain":60000,"completeYears":6,"nonSavingsIncome":35000,"savingsIncome":0},"expected":{"topSlicing.psaStep3":500,"topSlicing.psaStep4":1000},"notes":"Full income £95k = higher rate → PSA £500. Notional £45k = basic rate → PSA £1k. Demonstrates the recalc actually fires (Brief 12/2021 differentiator)."},{"id":"IPTM-CORE-04","name":"Additional-rate member, no PSA, no SRB","source":"IPTM3820 + IPTM3870 (constructed)","input":{"bondType":"offshore","taxYear":"2025-26","gain":100000,"completeYears":10,"nonSavingsIncome":200000,"savingsIncome":5000},"expected":{"topSlicing.psaStep3":0,"topSlicing.psaStep4":0,"topSlicing.srbStep3":0,"topSlicing.srbStep4":0,"topSlicing.annualEquivalent":10000}},{"id":"IPTM-EX-03-OFFSHORE","name":"Brief 12/2021 differentiator — offshore: PSA recalc drives £600 TSR uplift","source":"IPTM3820 + HMRC Brief 12/2021 (canonical post-2021/22 rule case; supersedes deferred IPTM-EX-03)","input":{"bondType":"offshore","taxYear":"2025-26","gain":60000,"completeYears":6,"nonSavingsIncome":35000,"savingsIncome":0},"expected":{"topSlicing.psaStep3":500,"topSlicing.psaStep4":1000,"topSlicing.srbStep3":0,"topSlicing.srbStep4":0,"topSlicing.taxWithoutGain":4486,"topSlicing.taxWithGain":25332,"topSlicing.taxAttributableToGain":20846,"topSlicing.relievedLiability":10800,"topSlicing.topSlicingRelief":10046},"notes":"Headline TSR-relief differentiator regression test. Full income £95k = higher rate → PSA Step 3 = £500. Notional £45k = basic rate → PSA Step 4 = £1,000 (recalculated per Brief 12/2021). The £500 PSA delta widens the slice's PSA-covered band, dropping AET by £100/yr × 6 yrs = £600 of additional relief vs. the pre-2021/22 carry-forward rule. taxWithGain has no 20% credit (offshore). Verified against engine 2026-05-15."},{"id":"IPTM-EX-03-ONSHORE","name":"Brief 12/2021 differentiator — onshore sibling: PSA divergence masked by 20% slice credit","source":"IPTM3820 + HMRC Brief 12/2021 (pedagogical sibling to IPTM-EX-03-OFFSHORE; supersedes deferred IPTM-EX-03)","input":{"bondType":"onshore","taxYear":"2025-26","gain":60000,"completeYears":6,"nonSavingsIncome":35000,"savingsIncome":0},"expected":{"topSlicing.psaStep3":500,"topSlicing.psaStep4":1000,"topSlicing.srbStep3":0,"topSlicing.srbStep4":0,"topSlicing.taxWithoutGain":4486,"topSlicing.taxWithGain":13332,"topSlicing.taxAttributableToGain":8846,"topSlicing.relievedLiability":0,"topSlicing.topSlicingRelief":8846},"notes":"Pedagogical sibling: same inputs as offshore EX-03 with bondType:onshore. PSA recalculation still fires (£500 → £1,000) at the engine level (verifiable on the audit trail), but the 20% slice credit on the basic-rate notional slice (£10,000 × 20% = £2,000) exceeds the gross AET, so AET floors at zero in both pre- and post-2021/22 rules — TSR delta = £0. Documents when the recalc bites and when it doesn't. taxWithGain reflects the £12,000 onshore credit on the full gain. relievedLiability=0 ⇒ topSlicingRelief equals taxAttributableToGain. Verified against engine 2026-05-15."}],"deferred":[{"id":"IPTM-EX-01","reason":"Time Apportionment Rules (non-residence years) — out of scope for v1; require period-of-residence tracking inputs."},{"id":"IPTM-EX-02","reason":"Source markdown calculation has internal restarts and disputed arithmetic (\"AET = full notional tax\" interpretation vs. standard IPTM3820 \"AET = slice tax\"). Per CLAUDE.md §Testing, do not extract until canonicalised."},{"id":"IPTM-EX-03","reason":"Superseded — primary markdown example is degenerate (notional income £57,500 stays in higher rate, PSA recalc has no rate-band effect; markdown line 960 explicitly notes \"PSA recalculation made NO DIFFERENCE\"). Replaced by canonical IPTM-EX-03-OFFSHORE + IPTM-EX-03-ONSHORE.","superseded":true,"superseded_by":["IPTM-EX-03-OFFSHORE","IPTM-EX-03-ONSHORE"]},{"id":"IPTM-EX-05","reason":"Multi-CEC aggregation. Engine v1 supports single-event TSR; multi-CEC via aggregateMultipleBonds is open per ADR-014."}]}}