Skip to content
InvestmentCalculator
All calculators

Retirement calculator — methodology

How the two halves of a retirement plan are projected and joined, how "what do I need to save?" is solved backwards through three engine calls, why inflation and an inflation-linked income are separate inputs, why the State Pension is offered as a benchmark and never filled in, when the legislated State Pension age falls and how an income that starts partway through a retirement changes what the pot has to do, why the longevity figures are a range rather than a life expectancy, and which part carries a gov.uk verification and which part cannot.

Open the retirement calculator

This calculator answers two questions that are usually run together and should not be. What happens to the pot — while it is being paid into, and then while it is being drawn on — is a projection, built by projection-core, which knows no tax and contains no figure published by anybody. What the resulting income costs is income tax, computed by tax-core from rates this site checks against gov.uk. The two make different kinds of claim, so they are set out separately below and the verification attaches to one of them only.

Step one: two projections, joined at one figure

A retirement plan has two halves and they cannot be one projection, because one projection carries one contribution and one withdrawal for its whole term. So there are two calls, and the second one opens on the balance the first one closed at:

saving      = project(pot today, contribution, growth, charge, years)
pot at retirement = saving.finalValue
retirement  = project(pot at retirement, no contribution, retirement growth, charge, retired years)

The growth rate is asked for twice on purpose. A pot being drawn on is often invested differently from one being paid into, and using a single rate for both would assert something about the reader’s investments they never said.

Contributions are applied at the end of each period. That is the more conservative of the two conventions — money paid in at the start of a period earns one extra period of growth, every period, for the whole term — and it is stated rather than offered as a field. The investment calculator offers both and prices the difference on your own figures.

Step two: the period step, and the rule the table can be checked against

The projection runs in periods — a month, a quarter or a year, whichever the contribution is paid on — and every step is integer pence. In order: add the contribution, apply the period’s growth, deduct the platform charge, take the withdrawal last.

balance ← balance × (1 + periodic rate)
balance ← balance − charges
balance ← balance + contribution
balance ← balance − min(withdrawal, balance)

Two consequences of that last line, and they are the reason a retirement page needs a schedule rather than a formula. The balance floors at zero: a request larger than the pot is truncated to what is there rather than driving the balance negative. And once a payment cannot be made in full, the income stops for good. The page reports the year of that first short payment, which is earlier than the year the balance reaches zero and is the answer somebody living on the income needs.

Every row satisfies opening + paid in + growth − charges − taken out = closing exactly, in whole pence, and the year-by-year table on the calculator is the engine’s own rollup of those rows — each year’s opening is its first period’s opening and its closing is its last period’s closing, so an annual row balances on the identity a period row does. A sixty-year monthly plan is 720 periods and would be 720 rows; it is shown as 60, and the page says so.

Step three: the largest income the pot supports

“What could I take and still have it last?” is solved by bisection on the withdrawal: the largest per-period amount for which every requested payment is made in full, right through to the final period. One penny more and it is not. The solver runs the same projection loop as everything else, so its answer cannot disagree with the schedule it produces.

The residual left at the end is small but not zero, and cannot be zero in general — the pot moves in whole pence and in steps of roughly a period’s growth, so between the largest income that survives and the smallest that does not there is a discrete jump.

That figure is arithmetic and is not a recommendation. It is not a rate anyone has judged prudent, it is not adjusted for how long anybody lives, and it moves whenever the growth assumption moves. This site publishes information, not advice, and this is the figure on the page most likely to be mistaken for advice, so it is worth saying twice.

Step four: “what do I need to save?”, solved backwards

This is the question people actually type, and answering it means walking the plan the other way. Three steps, each one a search that re-runs the same projection loop:

income the pot must pay = target income − other retirement income
required pot            = least pot whose income lasts the whole retirement
required contribution   = least contribution reaching that pot by retirement

The middle step is the inverse of step three — that one asks what income a pot supports, this one asks what pot supports an income — and it is a bisection over the projection itself: a candidate pot is tried, the whole retirement is projected at it, and the search narrows to the penny at which one penny less would not last the term. Bisection is only trustworthy over a monotone predicate, and this one is: every stage of a period is weakly increasing in the balance it starts from, so a larger pot leaves a larger balance in every period, and a pot that pays in full is therefore never overtaken by a smaller one that does not.

The last step is the projection engine’s own contribution solver, bisecting on integer pence, holding every other figure fixed. The answer is always “this much a month on these conventions”, which is the only form of it that means anything.

An unreachable target is reported as unreachable. Neither search ever returns its own ceiling dressed up as an answer — the page says what the largest figure searched reached and how far short it fell, because a calculator that quietly hands back its search bound is lying to somebody planning their retirement, and it is the specific lie that is hardest to notice. The pot search stops at £1,000,000,000, past which the honest answer is “not on these assumptions” rather than a number.

The target is a gross income. Solving for a take-home figure would mean inverting the income tax rules — through an allowance that tapers, in a band structure that differs by region, under rates that will not still be these rates when the income is drawn — and then presenting the result as though it were as solid as the arithmetic. The tax is computed and shown separately instead.

Real terms: a presentation step, never an adjustment inside the loop

A thirty-year projection quoted in the pounds of thirty years hence is a number nobody can size. So the page also states the answers in today’s money:

today's money = nominal ÷ (1 + inflation)^years from now

It is applied once, to a finished schedule, and never inside the loop. Deflating inside the loop would give a table whose growth column was neither the real return nor the nominal one, and whose rows still had to add up. Deflating at the end keeps the schedule checkable and makes the real-terms figure exactly what it claims to be: the same pot, priced in today’s pounds.

The deflation runs from today, straight through the join between the two halves. Year 3 of retirement on a 25-year plan is 28 years away and is deflated by 28 years, not by 3.

Inflation and an inflation-linked income are two different inputs, and conflating them is the mistake this page is built to avoid. Inflation changes the units the answer is written in and moves no balance, no income and no depletion year. Increasing the retirement income each year is a real cash flow: it takes more money out of the pot every year and the pot empties sooner because of it. If they were one control, ticking “show me today’s money” would silently empty the pot faster — an answer that changed depending on the units it was quoted in.

Nothing in the projection is verified against anything, because there is nothing in it to verify. The growth rates, the charge, the two terms, the contribution and the income are all yours. No rate, threshold or allowance published by government goes into any of it, so it carries no gov.uk stamp and must not borrow the one the tax section below has earned. The only claim it makes is an arithmetic one: given the numbers entered and the conventions stated here, the schedule is what those inputs produce.

A fixed-rate projection is not a forecast. Nothing grows at the same rate every period. Real returns arrive in an order and the order changes the outcome — and it changes it most in the years either side of retirement, because an income taken during a bad run sells units that are not there to recover afterwards. A plan that works on the average can fail on the sequence. Treat the figures about the pot as what a constant rate would have produced: useful for comparing two plans, poor for predicting a balance.

Why the State Pension is shown beside the field and never written into it

The State Pension is the largest single line in most people’s retirement income, and a calculator that ignores it tells the reader to save for a shortfall they do not have. The published full rates are in this site’s rules files and are covered by the verification below, so the page shows them — the weekly figure DWP publishes and the annual figure the income box takes. What it will not do is put either of them in the box.

  • The full rate is not most people’s rate. It is what a complete National Insurance record buys. Fewer qualifying years pay less, a pre-2016 record can carry a protected payment and pay more, and deferring pays more again — none of which this page asks about. Filling it in would understate what some readers need to save, in the one direction a retirement calculator must never err.
  • A benchmark that applies itself is not a benchmark. The figure on screen changes nothing. The income used by the plan, the goal seek and the tax calculation changes when the reader presses the button beside it, or types their own number, and at no other moment.
  • The amount and the date are different questions, and both are asked. The panel looks up the legislated State Pension age from a date of birth and shows the date and the age, out of the same transcribed timetables the sources below cite. The date of birth itself is not in the calculator’s state, reaches no arithmetic, and is left out of the shared link deliberately — it is the most identifying thing anybody types on this site. What reaches the arithmetic is the plain number beside the income box: years into retirement before it starts.
  • It is not the only thing that belongs in that box. A defined benefit pension, an annuity and a rental profit all behave the same way here: taxable income in retirement that does not come out of the pot.

So it is a field, it defaults to zero because zero is the only value that asserts nothing, and the calculator says in as many words that leaving it at zero makes every shortfall look worse than it is. The personal forecast on gov.uk is the only figure that knows a particular record, and it is linked from the field, from the benchmark and from the sources below.

An income that starts partway through, and why it changes the answer

The other-income box used to be applied to every year of the modelled retirement. For the commonest reason anybody fills it in — a State Pension — that is false for everybody who stops work before State Pension age, and false in the direction this page must never err in: it credited the pot with help it would not have for years, and the goal seek sized the pot down to match.

So the retirement projection carries a step: the pot pays the whole income for the years before the other income starts, and the remainder afterwards. The figure the solvers vary is the reader’s total income rather than the pot’s share of it, and the engine subtracts whatever else is paying from the year it begins. That is why the step is expressed to projection-core as a reduction rather than as a second amount — a fixed second figure would have left the later income behind while the search raised the earlier one.

pot pays, year y:  y < startsAfter  ->  total
                    y >= startsAfter  ->  total - other income

both escalated from their own base by (1 + escalation) ** y

The step lands on the base before escalation, which is the same convention the contribution and income escalations already use and matters for the same reason: escalating first and subtracting after would take a fixed amount out of a growing one, and produce a larger, entirely plausible income nobody asked for.

Nought is the default and it changes nothing. Every answer and every shared link written before the field existed decodes to nought, and at nought the arithmetic is what it was: the engine’s own tests pin that a step applied from year nought reproduces a level withdrawal of the reduced figure, row for row. What the field cannot express is two different start dates — somebody with a scheme pension at 60 and a State Pension at 67 has two, and this page asks them to choose one and say so.

Two consequences the page shows rather than hides. The first-year table is the year the pot works hardest, so a second table names the year the other income arrives and what that year looks like once it has. And the goal seek no longer reports a target as “covered” merely because the other income exceeds it: an income that does not start for five years leaves five years for the pot to fund alone.

How long the money might have to last, and why no life expectancy is quoted

“Years the income has to last” is the one input on this page with nothing to anchor it, and the optional panel in the breakdown is the anchor. It reports, from the Office for National Statistics’ latest mortality projection, how many out of a hundred people the reader’s age today are projected to reach each of a ladder of ages — and, read the other way, the ages three-quarters, half and a quarter of them are projected to reach.

No life expectancy is quoted anywhere, and that is the design. Life expectancy is roughly the age half of a group outlives, so a pot built to last exactly that long runs out for one retiree in two — and for the half who lived longest, which is to say the half who needed it most. A single expected age hides the entire planning problem, so this site holds no name for one: the contextual data package exposes the distribution and nothing else.

The figures come from a committed, dated snapshot of the ONS projection rather than a live lookup, they are labelled with the projection base they came from, and they carry the Open Government Licence attribution wherever they appear. They describe a population — everyone in the United Kingdom born the same year — and not the reader; the spread between the most and least advantaged is wider than the spread between the two tables ONS publishes. Where its published projection stops, the panel shows nothing rather than carrying the last mortality rate forward.

Nothing on this page reads those figures. They do not shorten the term, size the pot or move the goal seek; the panel is off until the reader asks for it, and switching it on changes no figure anywhere else. Choosing how long to plan for remains the reader’s decision, and the sensible reading of the range is the last of the three ages rather than the middle one.

The tax on the income, and the two limits that are larger here than anywhere else

Income from a pension is taxed as earned income in the year it is taken. It is not a separate charge with its own rates: it goes on top of everything else taxable received that year and is charged at whatever rates that income has already reached.

taxable income = other retirement income + income from the pot
income tax     = computeTaxPosition(taxable income, region, tax year)
tax caused by
the pot        = income tax with it − income tax without it

The last line is a measurement rather than a rate applied to the income, and it has to be: the income routinely spans two or three bands, and inside the personal allowance taper it is charged at a rate that appears nowhere in the rates table below. Above £100,000 of total income the personal allowance is withdrawn at £1 for every £2, so a pound of income there is taxed at its band rate and exposes another £0.50 besides.

Two limits are worth more than the arithmetic. The rates are today’s. The calculator offers the tax years it holds rules files for and no others, and it applies them to an income starting years from now — nobody knows what the bands, the rates or the allowance will be by then, and that is the single largest reason to read the after-tax figures as illustrative rather than as an answer. And tax-free cash is not modelled here. Most people can normally take part of a defined contribution pot free of income tax; this page taxes the whole of the income from the pot, so it charges more tax and leaves less to spend than somebody taking that cash would see. That is a decision about the day the pot is accessed rather than about whether enough is being saved, and the pension drawdown calculator models the split, the tax band by band and the cap that applies to it.

No National Insurance is charged on a pension income, at any age, so none is shown.

Rates and allowances

Read from the rules files this calculator runs on
Figure2025/262026/27
Personal allowance£12,570£12,570
Personal allowance taper starts at£100,000£100,000
Earned income, England / Wales / NIBasic rate 20.00% from £0; Higher rate 40.00% from £37,700; Additional rate 45.00% from £125,140Basic rate 20.00% from £0; Higher rate 40.00% from £37,700; Additional rate 45.00% from £125,140
Earned income, ScotlandStarter rate 19.00% from £0; Basic rate 20.00% from £2,827; Intermediate rate 21.00% from £14,921; Higher rate 42.00% from £31,092; Advanced rate 45.00% from £62,430; Top rate 48.00% from £125,140Starter rate 19.00% from £0; Basic rate 20.00% from £3,967; Intermediate rate 21.00% from £16,956; Higher rate 42.00% from £31,092; Advanced rate 45.00% from £62,430; Top rate 48.00% from £125,140

Thresholds are taxable income, after allowances. The Scottish bands apply to a pension income because it is earned income and income tax on it is devolved. There is no State Pension row in this table, and the section above says why.

Sources

The verification, and the part of this page it covers

The rates, thresholds and allowances used by this calculator were verified against gov.uk on . That covers the published rates, thresholds and allowances this page calculates with. It does not verify any figure the page produces for you: that is arithmetic on verified inputs. Parts of the engine behind it are checked against HMRC’s own published worked examples, which tests the method on a small number of scenarios rather than your answer, and most of the test suite derives its expected values by hand. That check was carried out automatically and no named person has signed it off yet.

The verification log, as recorded in the source repository
Figures coveredVerified onVerified byHuman sign-off
2025-262026-08-12Automated verification (Claude Opus 5)not yet signed off
2026-272026-08-12Automated verification (Claude Opus 5)not yet signed off
2020-21 to 2024-25 — pension annual allowance only2026-08-12Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — share identification window only2026-08-13Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — pension relief at source only2026-08-13Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — inheritance tax only2026-08-13Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — family tax, LISA and pension-access additions2026-08-13Automated verification (Codex)not yet signed off
2025-26 and 2026-27 — student loan deductions only2026-08-18Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — property acquisition tax only2026-08-18Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — automatic enrolment only2026-08-18Automated verification (Claude Opus 5)not yet signed off
2025-26 and 2026-27 — State Pension age and rates only2026-08-18Automated verification (Claude Opus 5)not yet signed off

The log covers the rules directory, not only this calculator. 8 rows are deliberately narrow — 2020-21 to 2024-25 — pension annual allowance only; 2025-26 and 2026-27 — share identification window only; 2025-26 and 2026-27 — pension relief at source only; 2025-26 and 2026-27 — inheritance tax only; 2025-26 and 2026-27 — student loan deductions only; 2025-26 and 2026-27 — property acquisition tax only; 2025-26 and 2026-27 — automatic enrolment only; 2025-26 and 2026-27 — State Pension age and rates only — and they verify the figures named there and nothing else. Those tax years are not modelled by any calculator on this site: the years this page can compute are the ones its tax-year selector offers, and no others.

A verification goes stale the moment one of its sources is updated past the date above. If a source below carries a later date than this stamp, trust the source.

Rates, thresholds and allowances on this page are taken from material published by HM Revenue & Customs and the Scottish Government. Contains public sector information licensed under the Open Government Licence v3.0.

That stamp covers the income tax calculation only. It is a check on the published rates, thresholds and allowances in the rules files, and it does not reach the projection at all — there is no published figure in a growth rate, a charge or a term for anyone to check, which is why the note above says the projection makes an arithmetic claim and no other. It also says nothing about whether those rates will still be in force when the income is drawn, which on a page about the next thirty years is worth stating twice.

The bounds on the input fields, and why they are not round numbers

  • Both growth rates are floored at -99%, not −100%. The projection engine rejects an annual rate of exactly −1 — a total loss is not a growth assumption — and the field’s clamp is inclusive, so a floor of −100 would be an unhandled error reachable by typing a minus sign. The income escalation is floored at -99% for the same validator.
  • Inflation is floored at -99% for a different validator. The deflation divides by (1 + inflation)^years, which is a division by zero at −100% and by a negative below it, so the engine refuses anything at or under −1 and the field stops just above it.
  • The charge is capped at 5% a year. Both solvers bisect, and bisection is only trustworthy while its objective is monotone — which fails when a periodic charge exceeds the balance it is charged on. That needs more than 1,200% a year at monthly periods, so the cap discharges the precondition rather than a guard doing it after the fact.
  • Both terms are capped at 60 years. The limit is the reader and the table rather than the arithmetic. Nought is legal on both: nought years to retirement means retiring now, and nought years of retirement is reported as a question with no content rather than divided by.
  • An empty field means zero, not the bottom of the range. Clearing the growth box asserts no growth, which is what “I have not told you a growth rate” means. It does not assert the -99% at the floor.

What this calculator does not model

  • Tax-free cash and the lump sum allowance. Covered above, and modelled on the drawdown page.
  • The annual allowance and the money purchase annual allowance. A contribution larger than the annual allowance is projected without comment here; those limits belong to the pages about paying in and taking out, and the money purchase allowance in particular is reported by the drawdown calculator, where triggering it is the live risk.
  • Tax relief on the way in. The contribution field is what actually lands in the pot after relief, not what leaves a bank account. The salary sacrifice calculator prices what a contribution costs in take-home pay.
  • A contribution that changes. It is level for the whole term — no pay rises, no career break, no lump sum part way through, no employer change.
  • Sequence-of-returns risk, in either direction. One rate, every period. The order returns arrive in changes the outcome and this model has no order.
  • Anything about the reader. No life expectancy, no health, no partner, no property, no care costs, no other savings, no state pension age. This is information, not advice: nothing here recommends a contribution, a rate, a product or a provider, and no figure on the page is a personal recommendation.

This site publishes information, not advice. It cannot know your circumstances, it does not recommend any product, provider or course of action, and nothing on it is a personal recommendation. For a decision that matters, check the figures against gov.uk or speak to an accountant or a regulated adviser.

Every calculation runs in your browser. There is no application server and no database, so nothing you type is transmitted or stored. A share link is the exception: it carries your figures in the URL.

Found an error? It belongs on the corrections log, and how to report one is on that page.