Repository navigation
UK: impute ISA subscriptions per adult by type, calibrated to HMRC's ISA tables #1415
Description
Summary
The UK build carries ISA balances but no ISA subscriptions:
- cash and stocks-and-shares balances per household (
was_wealth); - Lifetime ISA balances per person (
was_lisa).
PolicyEngine/policyengine-uk#2710 adds per-person cash_isa_subscriptions and stocks_and_shares_isa_subscriptions inputs and the ISA limits. Without data the inputs stay at zero, so every ISA-limit reform scores £0 on Microcosm. This issue imputes yearly subscriptions per adult by ISA type, calibrated to HMRC's ISA statistics.
PolicyEngine/uk-isa-allowance#1 answers the current questions from HMRC's tables directly. This is what modelling them needs.
Why there's no donor
No survey we hold records how much people pay into ISAs:
- WAS round 8, person tab:
- whether the person holds ISAs (
HASISAR8) and which types (FISA1R8–FISA4R8); - the value of each type (
DVCISAvR8,DVIISAvR8); - whether they took money out of a cash ISA in the last two years (
FCISAWdR8). - No amounts paid in.
- whether the person holds ISAs (
- FRS 2024-25: ISA interest, under account code 21 with no type field. No payments.
- LCFS 2024-25: the diary item "ISA" is pooled into code 20.5.1.1.1 ("Savings, investments (excl AVCs)") with bank savings, shares and premium bonds. It covers two weeks.
isaamtis ISA interest. - WAS panel (possible donor, unchecked): round-8 records carry round-7 case and person ids (
CASER7,personr7).- A person's change in balance by type from round 7 to round 8 is a net-flow proxy: about two years of payments, plus growth, minus withdrawals.
- Whether the round-7 tabs are in the private mirror's
was_2006_22.ziphasn't been checked.
Targets: HMRC's ISA tables, through Chronicle first
HMRC, ISA tables, September 2026 (2023-24 unless noted). These go into Chronicle first, as a new hmrc/isa_statistics_2026 dataset following hmrc/cgt_size_of_gain_2026:
- Table 9.7: individuals by income (11 bands), size of subscription and ISA type (cash only, stocks and shares only, both).
- The size has 11 bands, with an edge at £12,000 and a top band of exactly £20,000.
- The table also counts holders who made no further subscription.
- Table 9.8: by age (21 bands), sex and type. No amounts.
- Table 9.9: by region and type.
- Table 9.4: accounts and amounts subscribed by type, 2008-09 to 2024-25. These give growth to 2024-25.
- Tables 9.10–9.12: holders by market value and by income, age or region. A check on the balances the build already imputes.
- HMRC's impact note (17 September 2026): 22% of cash ISA subscribers under 65 paid in more than £12,000 in 2022-23. This is the only published fact that crosses age with amount.
Notes for the Chronicle dataset:
- The cells are counts of people, although the headings say "(thousands)".
- Innovative Finance ISAs are excluded.
- The notes don't say how Lifetime ISAs are classed.
- In the "both" block the band is the combined amount across types.
Proposed stage
A person-grain stage after was_lisa:
- Per-person balances by type. Carry
DVCISAvR8andDVIISAvR8from the WAS person tab the waywas_lisacarriesDVFLISAvR8, with the household totals as sums.- They are predictors here, and #2710's per-person balances need them.
- It changes
was_wealth's outputs, so it needs an A/B against main.
- Who subscribes, and to which types. A subscriber class for each adult (cash only, stocks and shares only, both, or a holder who didn't subscribe), conditional on age, income and the balances. Calibrated to the margins of Tables 9.7 and 9.8.
- How much. A subscription band per subscriber from Table 9.7's distribution given income and type, then an amount within the band.
- The £20,000 band is exact.
- Within a cell, rank by balance so larger holders tend to pay in more; this needs deciding.
- The split for subscribers to both types. No table splits their combined amount. Options:
- split by the person's balance shares;
- split by Table 9.4's subscribed amounts by type.
- Age. Table 9.7 has no age. Hold the impact note's 22% under-65 share as a check or a target.
- Year. Grow the 2023-24 counts to the build year with Table 9.4's accounts by type.
Export the person cash_isa_subscriptions and stocks_and_shares_isa_subscriptions that #2710 defines, and the per-person balances if (1) lands.
Decisions owed
- Donor: a draw from the tables only, or the WAS round-7 to round-8 panel as a donor for who pays in large amounts.
- Calibration: bind the Table 9.7 cells as calibration targets, or hold them in stage-time gates.
- Split: the rule for subscribers to both types.
- Timing: whether per-person balances ship in this issue or later.
Disclosure
- Receipts and diagnostics follow the unit-record guard: no per-record survey values, no extremes, and no cell on one or two records.
- The HMRC targets are published statistics.
Related
- Model ISA subscription limits and per-person cash and stocks-and-shares ISA subscriptions policyengine-uk#2710 (engine inputs and limits)
- Answer the ISA allowance questions from HMRC's ISA tables uk-isa-allowance#1
- UK: impute LISA ownership and balances from WAS; document the annual-contribution gap #1003 (Lifetime ISA holdings)
- Export versioned additive UK ISA income and migrate calibration and projection together #1360 (versioned ISA income export)
- UK: every open data item: uk-data parity, engine locks, the local surface, consumption and high-value homes #1095 (UK tracker)
Activity
juaristi22 commentedon Oct 28, 2026
Scope after Budget 2026
The Budget on 28 October 2026 has four ISA and savings measures (Budget 2026 Table 6.1; OOTLAR):
The build is one survey year and the engine is static by year. So this issue keeps to static imputations calibrated to published tables, and leaves the rest out.
Added to this issue
lifetime_isa_payments).lifetime_isa_bonusstops scoring zero on Microcosm.non_cash_isa_cash_interest).Priority
#1360 (the additive ISA income export) matters more now. Under the legacy gross contract, projected interest outside ISAs is slightly overstated, and the higher savings rates make that error cost more.
Out of scope: accepted limitations
frs_household_drawsstay as they are, for stamp duty only.These measures stay in the household calculator. Population figures for them cite the official costings.
The four decisions in the issue body (the donor, calibration or gates, the split for people paying into both types, and timing) are still open.
Related: PolicyEngine/policyengine-uk#2710, PolicyEngine/uk-isa-allowance#1.
vahid-ahmadi commentedon Oct 28, 2026
Review of the plan and the 28 October scope comment. I checked them against HMRC's ISA tables and Lifetime ISA tables (September 2026), the impact note, microcosm main (7bf1ed8), policyengine-uk main (df239bc) and PolicyEngine/policyengine-uk#2712. All the figures below are from the published tables.
Findings
1. must: Table 9.7's amounts can't be reconciled with Table 9.4's, so steps 3 and 6 can't both hold.
2. must: the Lifetime ISA tables have no subscriptions or bonus (scope comment, added item 1).
3. should: step 6, growing by accounts overstates people from 2024-25.
4. should: step 5, the 22% is a different year and a different population.
5. should: Lifetime ISA payments count against the same £20,000.
isa_subscriptionsadds cash, stocks and shares, andlifetime_isa_payments, andisa_subscriptions_above_limittests that sum.6. nit: table descriptions. Confirmed as written:
For the names in "Export": all five match the Person inputs in #2712 and on main (
lifetime_isa_paymentsandnon_cash_isa_cash_interestare already on main).Verdict
The stage design is right, and so is keeping to static imputations. Fix the amount anchor (1) and the Lifetime ISA source (2) before anything is bound. Together they decide how steps 3, 4 and 6 work.
Decisions owed
was_wealthneeds the A/B either way.Not checked
DVCISAvR8,DVIISAvR8,HASISAR8,FISA1R8–FISA4R8,FCISAWdR8,CASER7,personr7). Microcosm's code carries only the householdDVCISAVR8_aggr/DVIISAVR8_aggr(was_wealth.py:297-298) and the personDVFLISAvR8inwas_lisa. I didn't open microdata or the WAS documentation.🤖 Generated with Claude Code
juaristi22 commentedon Oct 28, 2026
Thanks, Vahid. I checked each finding against the September 2026 tables, and the numbers all reproduce. Replies by item, with what changes in the plan:
1. 9.7 against 9.4 (must). Agreed that both can't hold. Scaling amounts within bands can't reconcile them either. At band floors, cash-only subscribers come to £78.1bn, more than 9.4's £69.5bn for all cash. Reaching 9.4 would mean moving people out of their 9.7 bands, including some of the 3.76m at exactly £20,000 that any limit analysis rests on.
2. Lifetime ISA source (must). Agreed. Payers and amounts come from 9.4's Lifetime ISA rows: 964k and £2,346m in 2023-24, and 1,136k and £2,818m in 2024-25. The bonus is checked as 25% of 9.4's amount, as no table publishes it. The Lifetime ISA file is used only for the house-purchase check (99,750 in 2025-26).
3. Growing by accounts (should). Amounts grow by 9.4's amount growth for each type, capped at £20,000, as you suggest. For people, account growth stays the central case, labelled as the upper bound, and we report the flat-people bound beside it.
4. The 22% (should). Agreed. It is a loose check against the impact note's 2022-23 figure for under-65s, and is not bound.
5. Lifetime ISA payments and the £20,000 (should). Agreed. The stage draws the Lifetime ISA payment jointly with cash and stocks and shares, capped at £20,000 combined, so
isa_subscriptions_above_limitis zero in the baseline. The dataset guide in PolicyEngine/policyengine-uk#2712 now asks producers for this (18aa2a46).6. Thanks for confirming the descriptions and the names.
Decisions.
Merge pull request #392 from PolicyEngine/hmrc-isa-statistics-2026