Skip to content

UK: impute ISA subscriptions per adult by type, calibrated to HMRC's ISA tables #1415

Open

Description

@juaristi22

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.
  • 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. isaamt is 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.zip hasn'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:

  1. Per-person balances by type. Carry DVCISAvR8 and DVIISAvR8 from the WAS person tab the way was_lisa carries DVFLISAvR8, 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.
  2. 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.
  3. 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.
  4. 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.
  5. Age. Table 9.7 has no age. Hold the impact note's 22% under-65 share as a check or a target.
  6. 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

Activity

  1. juaristi22 commented on Oct 28, 2026

    @juaristi22
    CollaboratorAuthor

    Scope after Budget 2026

    The Budget on 28 October 2026 has four ISA and savings measures (Budget 2026 Table 6.1; OOTLAR):

    • Line 11, OOTLAR 2.5: the cash ISA limit stays at £20,000 from April 2027. The £12,000 cut won't happen.
      • Subscriptions per adult are still what's needed to model any change to a limit.
      • They're also needed to cost keeping the £20,000 against the cut.
    • Line 39, OOTLAR 2.4: a 20% Lifetime ISA withdrawal charge for first-home purchases above the £450,000 cap, from 29 October 2026.
    • Line 38, OOTLAR 2.3: a First Time Buyer ISA from 6 April 2029, replacing the Lifetime ISA for new savers.
    • Line 62, OOTLAR 1.1: savings income tax rates of 24%, 44% and 49% from 6 April 2027.

    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

    1. Lifetime ISA payments per holder (lifetime_isa_payments).
    2. Interest on cash held in stocks-and-shares ISAs (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

    • Amounts that build up over years:
      • balances moved out of ISAs under a limit;
      • First Time Buyer ISA balances at purchase;
      • Lifetime ISA balance growth.
    • Behaviour: where money above a limit goes, First Time Buyer ISA take-up, and shifts into ISAs as savings rates rise.
    • First-time-buyer status, first-home purchases, prices and Lifetime ISA withdrawals towards a home, including purchases above the cap.
      • HMRC records about 100,000 Lifetime ISA house purchases a year. That leaves too few survey records to impute them reliably or to publish from them.
      • The purchase draws in frs_household_draws stay as they are, for stamp duty only.
    • First Time Buyer ISA population scoring, and the first-time stocks-and-shares investor incentive, which has no design yet.

    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.

  2. vahid-ahmadi commented on Oct 28, 2026

    @vahid-ahmadi
    Contributor

    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.

    • I valued each 9.7 cell at its band's lower edge (£1, £2,001, … £18,001, £20,000). Subscribers come to at least £114bn in 2023-24. The £20,000 column alone is 3.76m × £20,000 = £75bn.
    • Table 9.4 gives £100.6bn subscribed to cash and stocks-and-shares ISAs in 2023-24 (£69.5bn and £31.1bn).
    • Cash-only subscribers alone come to at least £78bn, against £69.5bn for all cash subscriptions, which also include the "both" group's cash.
    • The counts do agree: cash-only plus both is 9.94m, which is 9.4's cash accounts, and stocks-and-shares-only plus both is 4.09m, which is 9.4's. So the gap is in what 9.7 counts as a subscription, or in its estimation; its note says the holder totals rest partly on a sample.
    • Fix: take one amount anchor. Use 9.4 for the level, since it comes from managers' returns. Use 9.7 for shape: who subscribes, the type, and the band shares by income. Scale amounts within bands to 9.4's type totals.
    • Worth asking HMRC (personaltax.statistics@hmrc.gov.uk) what 9.7's subscription measure includes before any cell is bound.

    2. must: the Lifetime ISA tables have no subscriptions or bonus (scope comment, added item 1).

    • The September 2026 Lifetime ISA file has only withdrawals: Table 1a yearly and Table 1b monthly, for house purchases and unauthorised withdrawals.
    • Accounts and amounts subscribed are in ISA Table 9.4's Lifetime ISA rows: 964k and £2,346m in 2023-24, 1,136k and £2,818m in 2024-25 (provisional).
    • Bonus paid is in neither file. Use 25% of 9.4's subscriptions as a derived check, or find another source.
    • Table 1a does confirm the "about 100,000" house purchases: 99,750 in 2025-26.

    3. should: step 6, growing by accounts overstates people from 2024-25.

    • From 6 April 2024 savers can pay into more than one ISA of the same type in a year, so 9.4's 2024-25 accounts (cash 10.71m, stocks and shares 4.89m) are no longer people.
    • Amounts also moved much faster than accounts: the cash average per account rose from £6,993 to £8,922. And 2024-25 is provisional.
    • Fix: grow amounts by type with 9.4. Treat account growth as an upper bound on people.

    4. should: step 5, the 22% is a different year and a different population.

    • The impact note's 22% is cash ISA subscribers under 65 paying in over £12,000 in 2022-23.
    • In 9.7 (2023-24, all ages), 38.6% of cash-only subscribers are above £12,000. Cash subscriptions rose from £41.6bn to £69.5bn between the two years (9.4).
    • Binding 22% to 2023-24 would fight 9.7. Keep it as a loose check.

    5. should: Lifetime ISA payments count against the same £20,000.

    • #2712's isa_subscriptions adds cash, stocks and shares, and lifetime_isa_payments, and isa_subscriptions_above_limit tests that sum.
    • 9.7 leaves Lifetime ISAs out: its type counts match 9.4's cash and stocks-and-shares rows exactly, which also answers "the notes don't say how Lifetime ISAs are classed".
    • So draw the Lifetime ISA payment and the other two jointly, capped at £20,000 combined. Otherwise baseline people sit above the limit.

    6. nit: table descriptions. Confirmed as written:

    • 9.7's 11 income bands and 11 amount bands, with the £12,000 edge and the exact £20,000 band;
    • 9.8's 21 age bands by sex, with no amounts;
    • counts of people under "(thousands)" headings;
    • Innovative Finance ISAs excluded;
    • 9.6's stocks-and-shares "Cash on deposit" line (£22.4bn at 5 April 2025).

    For the names in "Export": all five match the Person inputs in #2712 and on main (lifetime_isa_payments and non_cash_isa_cash_interest are 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

    • Donor: tables only. The round-7 to round-8 change is a two-year net flow that mixes payments with market returns, withdrawals and transfers between types. It covers 2018–2022, before the 2023-24 jump in cash subscriptions. The round-7 tabs are unconfirmed, and a panel adds disclosure work. For who pays large amounts, rank within a cell by the step-1 per-person balances.
    • Calibration: stage-time fit and gates, not solver targets. The draw is conditional and person-grain, and 9.7 and 9.4 can't both bind (1). Fit 9.7's shares at stage time, gate 9.4's type totals and the £20,000 count after calibration, and keep the cells out of the weight solve.
    • Split for subscribers to both: use the person's balance shares within the combined amount, and gate the type totals against 9.4. A residual split (9.4 less the single-type blocks) won't work while 1 stands; at band midpoints the cash residual goes negative.
    • Timing: ship the per-person balances in this issue. Steps 2 and 3 need them as predictors, #2712 reads them, and was_wealth needs the A/B either way.

    Not checked

    • The WAS round-8 person variable names (DVCISAvR8, DVIISAvR8, HASISAR8, FISA1R8–FISA4R8, FCISAWdR8, CASER7, personr7). Microcosm's code carries only the household DVCISAVR8_aggr/DVIISAVR8_aggr (was_wealth.py:297-298) and the person DVFLISAvR8 in was_lisa. I didn't open microdata or the WAS documentation.
    • Whether the round-7 tabs are in the mirror.
    • The November instrument on the cash-interest charge.
    • Tables 9.9 to 9.12.

    🤖 Generated with Claude Code

  3. juaristi22 commented on Oct 28, 2026

    @juaristi22
    CollaboratorAuthor

    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.

    • The plan keeps 9.7's people and their amounts within each band (spread evenly, with £20,000 as a point mass). It uses 9.4 for growth ratios only.
    • It reports the gap with 9.4. At band midpoints, cash comes to about £92.5bn (cash-only £84.5bn plus the "both" group's cash), against £69.5bn. Stocks and shares equals 9.4's £31.1bn, through the split below.
    • No 9.7 or 9.4 cell is bound.

    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_limit is 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.

    • Donor: tables only, as you say.
    • Calibration: no ISA cell enters the weight solve. After calibration we report the type totals and the £20,000 count as drift, without blocking a build.
    • Split for "both" subscribers: each person's balance shares plus one common shift. The shift is set so the group's stocks-and-shares total equals 9.4's, less what stocks-and-shares-only subscribers paid. That residual is positive, unlike the cash one. It is about 27% of the group's total at band midpoints, but 50% at band floors and 7% at band tops, so it depends on where amounts sit within bands. The doc will say so.
    • Timing: the per-person balances ship in this issue.
  4. added a commit that references this issue on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions