Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

ISA income, capital and account flows

Income inputs

Household situations use additive income inputs. savings_interest_income means ordinary interest outside tax-free accounts, before tax. ISA interest belongs in individual_savings_account_interest_income, and ISA dividends or distributions belong in individual_savings_account_dividend_income. Ordinary dividend_income excludes those ISA distributions. ISA gains do not belong in capital_gains.

tax_free_savings_income defaults to ISA interest. An explicitly supplied aggregate, including zero, overrides that default. Market income, capital income and HBAI income add this exempt-interest aggregate once. They do not also add its ISA component. For example, £2,000 ordinary interest, £500 ISA interest and £300 ISA dividends produce £2,800 market returns and £2,000 taxable savings interest before allowances. The £500 does not offset interest from an unrelated taxable account. ISA Regulations regulation 22 provides the income-tax exemption.

The supported dataset loaders also accept older gross-interest datasets. Their adapter subtracts effective exempt interest from gross savings interest before calculation, preserves explicit exempt-interest overrides, and records the input and projection conventions. See the dataset-source engineering guide for the versioned metadata contract. A raw household situation has the additive convention; it has no dataset provenance to identify older gross amounts. Producers must mark newly additive datasets before switching their exports. The model must not infer the convention from account amounts. Local council-tax reduction non-dependant tests that use normal gross income add ordinary and exempt returns together, preserving their gross-income bands. Income-tax and Tax Credit income bases exclude the separately supplied ISA returns; their input definitions do not turn a tax exemption into a general exclusion from every means test.

PolicyEngine-UK maintainers retain responsibility for this compatibility adapter, including its integration with private PolicyEngine Core input and formula APIs. Changes to Core require checking the ISA contract regressions for legacy and additive datasets, explicit overrides, projections and resets. Retiring the adapter requires an explicit maintainer decision supported by a versioned producer and consumer migration.

non_cash_isa_cash_interest is an of-which component of total ISA interest, covering cash interest and corresponding alternative-finance returns in a stocks-and-shares or innovative finance ISA. If only this detail is supplied, it supplies the ISA-interest total; an explicit total takes priority. A supplied total must include the detail. The detail is never added to market income a second time.

For household inputs carried into later years, ISA dividends use the same nominal GDP-per-capita index as ordinary dividend_income. non_cash_isa_cash_interest uses the same ONS household-interest-income index as ordinary savings_interest_income. An explicit observation for a later year takes priority and provides the starting amount for subsequent years. Dataset projections grow stored ISA dividends and non-cash ISA cash interest by nominal GDP per capita, matching the dataset rules for ordinary dividends and savings interest. This also applies before 2031. The non-cash interest detail therefore follows the existing dataset interest rule, while direct household inputs use the ONS index above. Alignment of the interest indices is tracked separately in #2638. The legacy and additive interest contracts retain their recorded conventions.

From 6 April 2027, isa_cash_interest_flat_rate_charge applies the savings basic rate to that detail, without personal allowances or the personal savings allowance. The manager’s final charge enters gov_tax, household_tax and HBAI income deductions separately from income_tax. The gross interest enters market income once. SI 2026/1018 regulations 1 and 15 establish this charge; Finance Act 2026 section 5 sets the 2027–28 savings basic rate at 22%.

Winter Fuel Payment and projections

From fiscal 2025, the model calculates gross Winter Fuel Payment entitlement separately from the personal income-tax charge. The charge recovers the full payment when the recipient’s total taxable income exceeds £35,000, subject to the relevant-benefit exemption. ISA interest and distributions are exempt income and stay outside that total. The gross payment itself also stays outside taxable income. These treatments follow HMRC’s Winter Fuel Payment charge guidance and the ISA tax exemption.

The £35,000 threshold is fixed in nominal terms in the model. Growth in taxable income can therefore move recipients across it. Dataset projections extend through 2032; where a growth series ends in 2030, the extension repeats its final annual growth rate in 2031 and 2032. The dataset-source and economic assumptions documentation describe these conventions. This extension is an extrapolation rather than a new published forecast.

These mechanisms alone do not establish the cause or magnitude of a population trend. A comparison must distinguish gross payments from the income-tax charge and use the same dataset, policy version, year and income convention. Earlier model versions represented recovery through a household eligibility proxy, so results from that version require a separate comparison with the current personal charge. No current population attribution is established by the household tests.

Capital stocks

cash_isa is a household stock separate from savings. It sums the members’ cash_isa_balance, and stocks_and_shares_isa sums their stocks_and_shares_isa_balance, as household_lifetime_isa_balance sums lifetime_isa_balance. A dataset or situation that stores a household total keeps it: the model sums the person balances only for a year with no stored total. In each later year the model grows the latest total that a dataset stores by the index of savings, corporate_wealth or lifetime_isa_balance respectively, including years after the dataset projection ends, unless the dataset holds the person balances for a later year than the total, or a reform changes what the total sums or stops a person balance reading its inputs. A household input in a situation applies only to its own year; the person balances carry the variable-level uprating to later years.

Each means-test formula counts the claimant’s and partner’s cash and stocks and shares ISA balances in their own benefit unit, through cash_isa_countable_capital and stocks_and_shares_isa_countable_capital in its person_sources, and excludes a dependant’s balance, a child’s junior ISA among them. The formulas subtract a household’s counted balances from cash_isa and share_like_capital before they allocate the remainder between benefit units. Where the balances sum to less than the total the model holds for the year, the remainder stays in the pool. Where their stored sum exceeds the total, the model scales them to sum to the total exactly: it rounds each proportional share down to a whole step of the total’s float32 spacing and gives the steps left over, one each, to the members whose shares lost most in rounding. The pool then keeps nothing of that total; for totals under £268 million, each holding passes a capital limit only where its proportional share does; and a sole holder whose balance reaches the total counts exactly the total. For stocks and shares ISAs the model takes the smaller of stocks_and_shares_isa and share_like_capital as the total. Data that store only household totals hold no balances, so the pool keeps the whole total. The formulas count a balance only while the programme’s sources lists the household source that includes it, so a reform that drops cash_isa or share_like_capital from sources drops the balances with it. For a Universal Credit unit that reports its capital (benunit_reported_capital or uc_reported_capital, zero or more), the formula leaves the unit’s claimant’s and partner’s ISAs in the pool and subtracts the report, as it does for their company holdings. A nonnegative pension_credit_reported_capital replaces the unit’s calculated Pension Credit capital.

Ordinary accessible cash ISA balances enter the capital sources for Universal Credit, Housing Benefit, Pension Credit, Income Support, income-based JSA and income-related ESA. There is no general ISA-wrapper disregard and no generic 10% sale-cost deduction for cash. Existing source-specific disregards, ownership allocation assumptions and reported-capital overrides still apply. A complete reported capital amount already includes relevant ISA holdings; it replaces covered components rather than adding them again.

For example, £5,000 savings and a £3,000 ordinary cash ISA give £8,000 UC capital. UC regulation 72 then gives eight £4.35 monthly tariff units, or £34.80 a month. Stocks-and-shares ISA holdings remain within share_like_capital. The separate existing lifetime_isa_countable_capital valuation is unchanged. It does not gain transaction-level first-home or terminal-illness valuation from the new flow inputs.

Population estimates depend on the input balances, reported-capital overrides, benefit take-up and calibrated weights as well as the capital rules. Microcosm issue 1360 tracks coordinated producer migration and calibration work. A released producer dataset recalibrated for this expanded capital definition has not been verified here. The numerical gap between a consistent population estimate and the relevant DWP outturn also remains unverified. Household consumer tests establish the routing into benefit calculations; they do not establish a population magnitude or fit to outturn.

Lifetime ISA payments and withdrawals

lifetime_isa_payments contains qualifying additions in the year, including qualifying transfers from other ISA types. Exclude growth, government bonuses, transfers between Lifetime ISAs, returned failed-purchase withdrawals, defaulted payments and rebated fees. The bonus is 25% of qualifying payments up to £4,000, from age 18 until before age 50. Payments at ages 40–49 assume a valid account first funded before age 40. The model does not decide whether an account may be opened. ISA Regulations regulations 4ZA and 10A and Schedule paragraph 1 define these conditions.

lifetime_isa_withdrawals is the gross withdrawal, including any charge, excluding qualifying transfers between Lifetime ISAs and withdrawals on death. All such withdrawals are exempt at the charge-free age of 60 or when lifetime_isa_terminally_ill is true. That flag means the investor has a registered medical practitioner’s written evidence of life expectancy below one year; it is not a generic benefit-eligibility flag.

lifetime_isa_withdrawals_towards_first_home is the part paid directly to an eligible conveyancer towards the purchase price, with required declarations and completion or return procedures satisfied. It excludes fees and payments through the investor. The model separately requires:

Only the bounded qualifying home-payment portion is exempt. The residual gross withdrawal is charged at 25%, or 20% during the temporary coronavirus period. These rules come from Schedule paragraphs 4–7 and 5A.

From 29 October 2026, a purchase that meets every one of these conditions except the £450,000 price cap pays 20% on the home payment instead of 25% (Schedule paragraphs 5 and 6A, inserted by SI 2026/1130). The rest of the withdrawal still pays 25%. gov.hmrc.isa.lifetime.above_cap_purchase holds the rate and its start. Parameters are read on 30 April, so the model applies the 20% rate from fiscal 2027–28; a withdrawal from 29 October 2026 to 5 April 2027 pays 25% in the model. When such a purchase fails and the money is returned, the charge is restored to the account (paragraph 10A), so a returned withdrawal should be left out of the inputs.

The model records lifetime_isa_bonus in government spending and lifetime_isa_withdrawal_charge in government revenue. Both are capital flows, excluded from household current benefits, taxes and net income. The flows do not automatically update a supplied account balance. This is an accounting convention for the model’s current-income measures.

Subscription limits

gov.hmrc.isa.annual_subscription_limit is the £20,000 limit on a person’s subscriptions in a tax year to all their ISAs other than Junior ISAs (ISA Regulations regulation 4ZA(1)). It was £15,000 from 1 July 2014 and £15,240 from 6 April 2015. The model reads these limits from 2015–16; 2014–15 and earlier years, with their lower limits and cash sub-limits, are not modelled. Cash has had no limit of its own since 1 July 2014, so gov.hmrc.isa.cash.subscription_limit is infinite and cash counts only towards the annual limit. SI 2026/1018 regulation 6 sets a £12,000 cash limit from 6 April 2027 for a person who is 64 or under at the end of the tax year, but Budget 2026 retains the £20,000 cash limit for all savers, with secondary legislation to be laid in November 2026 (OOTLAR paragraph 2.5). Current law here therefore has no cash limit, and the £12,000 is a reform setting. gov.hmrc.isa.cash.full_limit_age (65) is the age at which a cash limit stops applying. cash_isa_subscription_limit reads the age at the end of the year (5 April) from the date of birth, so a person aged 64 on 6 October whose 65th birthday falls on or before 5 April has the annual limit for cash.

The inputs are per-person flows in the year: cash_isa_subscriptions, stocks_and_shares_isa_subscriptions and the existing lifetime_isa_payments, which isa_subscriptions adds up. They sum over all of a person’s accounts of each type, net of current-year subscriptions withdrawn from a flexible ISA. They exclude transfers between ISAs, interest and growth, and the subscriptions that regulation 5D disregards, such as replacement subscriptions to a flexible ISA, additional permitted subscriptions, defaulted subscriptions and transfers from a matured Child Trust Fund (HMRC guidance). lifetime_isa_payments includes transfers into a Lifetime ISA from other ISAs, which count towards the Lifetime ISA limit but are not new subscriptions for the annual limit, so the total overstates subscriptions where that input includes them. A withdrawal charge restored under Schedule paragraph 10A is neither a subscription nor a Lifetime ISA payment (SI 2026/1130 regulations 3 and 4). Innovative finance ISAs are not included. The inputs are not uprated: growing them would put people who pay in exactly the annual limit above it in the baseline. Nominal subscriptions grow, so flat amounts understate how much a lowered limit leaves out in later years. A producer can grow them instead and cap each person at the limit in force.

The model compares the inputs with the limits in force and does not cap them. cash_isa_subscriptions_above_limit is cash above the person’s cash limit, and isa_subscriptions_above_limit is the total above the annual limit. Cash above both limits counts in both, so the two must not be added. Both are zero for data that met the limits in force when it was collected. A reform that lowers a limit reports what it leaves out. For example, a person aged 40 paying £20,000 into cash ISAs in 2027–28 has £8,000 above a £12,000 cash limit.

The model reports these amounts and no more. It does not say where money above a limit goes or change any tax for it: the model is static by year and the data has no ISA history, so it holds no balances moved out of ISAs in earlier years. A population run gives the first year’s amount above a limit; the tax on money moved out of ISAs over several years rests on the official costing.

Annual resolution and coverage

A bare year Y represents the fiscal year from 6 April Y to 5 April Y+1. Parameters retain their legal effective dates; the annual model samples rates at 30 April. Fiscal 2020 therefore uses the temporary 20% withdrawal charge and fiscal 2021 uses 25%. The annual model cannot distinguish a withdrawal in late March 2020 within fiscal 2019. Likewise, the 20% charge for a purchase above the price cap has effect for withdrawals from 29 October 2026, but fiscal 2026 samples 30 April 2026. So a 2026–27 run charges 25% on such a withdrawal made from 29 October 2026 to 5 April 2027 (159 of the year’s 365 days), and the 20% applies from fiscal 2027. Annual ages and purchase conditions similarly represent the relevant transactions at one annual status. Multiple transactions with different conditions require externally prepared qualifying amounts.

Help to Buy ISA bonuses are not modelled here. Junior ISAs, Child Trust Funds, transfers between ISA types (including the SI 2026/1018 restrictions on transfers into cash ISAs) and the First Time Buyer ISA announced at Budget 2026 for April 2029 are also outside this implementation. Population data without payment, withdrawal, subscription or non-cash-interest detail inputs retain zero for those flows; data without per-person ISA balances keeps its stored household totals. Household tests establish the rules; population effects require a separate certified dataset measurement.