Skip to content
InvestmentCalculator
All calculators

Investment fee calculator — methodology

How the cost of a charge is measured by subtracting two schedules, why an ongoing charge and a platform fee are different arithmetic, and why the cost is always larger than the deduction.

Open the investment fee calculator

This calculator measures what charges cost by projecting the same plan twice — once with your charges, once with none — and subtracting. It applies no tax of any kind, uses no rate, threshold or allowance published by government, and therefore has no gov.uk sources to cite and no verification stamp to carry. What it has instead is a stated method and a year-by-year table in which every row adds up.

This page carries no “verified against HMRC guidance” stamp, and it should not. There are no tax rates, thresholds or allowances in this calculator — nothing published by government goes into it. The only claim it makes is an arithmetic one: given the numbers you entered and the conventions stated on the page, the schedule is what those inputs compound to. That is checkable, and the year-by-year table is there so you can check it.

A fixed-rate projection is not a forecast. Nothing grows at the same rate every year. Real returns arrive in an order, and the order matters — the same average return produces different outcomes depending on when the good and bad years fall, especially once money is being withdrawn. Treat the output as what a constant rate would have produced, which is a useful way to compare two contribution plans and a poor way to predict a balance.

The measurement

gross  = project(your plan, no charges at all).finalValue
net    = project(your plan, your charges).finalValue
cost   = gross − net
share  = cost ÷ gross

Nothing multiplies a balance by a fee rate outside the engine’s own period loop. Every figure on the calculator page — the headline share, each charge’s cost, every row of the platform-fee ladder — is a difference between two runs of that loop with one input changed and everything else held fixed. That is slower than a closed-form approximation and it is the only way the tables can be guaranteed not to disagree with each other.

The denominator is the charge-free pot rather than the pot you keep. Dividing by what you keep gives a figure that exceeds 100% for a large enough charge, which is arithmetically fine and completely unreadable; dividing by what you would otherwise have had is what the sentence “the charges took a quarter of it” means.

Three charges, three different mechanisms

Collapsing every charge into one percentage is the common shortcut and it is wrong in a way that gets worse as the pot grows:

ongoing charge (OCF)  reduces the rate:  net = (1 + r) × (1 − ocf) − 1
platform fee          reduces the pot:   fee = balance × (rate ÷ periods), capped per year
flat fee              reduces the pot:   the year's fee, spread across its periods

The ongoing charge never appears in the fee column of the schedule, because that is not where an investor meets it: the fund’s unit price is struck after the charge, so it arrives as a smaller return. Note the multiplication rather than a subtraction. Expanding it gives r − ocf − r·ocf, and the missing r·ocf term is the charge levied on the year’s own growth: at 7% and 0.75% it is 0.0525 percentage points a year, which sounds like nothing and compounds over forty years into roughly a 2% overstatement of the pot.

The platform fee divides nominally across the year’s periods rather than taking the effective root the growth rate takes. That is not an inconsistency: a platform’s published “0.45% a year, charged monthly” means one twelfth of 0.45% each month as a matter of the platform’s own tariff. It is a fee schedule, not a compounding return, and there is no annual figure it has to compound back to.

The flat fee is allocated by difference of running totals — round(annual × k/n) − round(annual × (k−1)/n) — rather than by rounding annual ÷ n every period. Both are “spread across the year’s periods”, and only the first sums to exactly the fee you typed: £100 a year charged monthly the naive way is 833p × 12 = £99.96, and a fee column that does not add up to the fee is the failure this whole site exists to avoid.

Why the individual charges do not add up to the total

Removing one charge leaves a bigger pot for the remaining charges to be levied on, so removing all of them is worth more than the three removals added together. The calculator measures both and reports the difference rather than allocating it, because there is no correct allocation — the interaction genuinely belongs to no single charge.

The same effect is why a charge’s cost is not proportional to its rate and not proportional to the term. It is a compound of both.

Taken, against cost

taken   = the schedule's own fee column, summed
cost    = gross − net
forgone = cost − taken

taken is what a statement would show. cost is larger for two separate reasons: the ongoing charge is never in that column, and every pound that was taken would otherwise have stayed invested and gone on compounding. The gap widens with the term, non-linearly, which is what makes a percentage charge different in kind from a subscription.

forgone goes negative at a growth assumption below zero, and the calculator prints it rather than clamping it. Money a charge took would have shrunk had it stayed, so the charge costs less than it takes. The pot is still smaller than it would have been; the charge is still a cost.

The annual cap, and why it is worth nothing then everything

A cap limits the platform fee chargeable in a single year and resets at each year boundary. Until the pot is large enough for the uncapped fee to exceed the cap it does nothing at all, and from the year it first bites it saves more every year, because the uncapped fee it is standing in for keeps growing with the pot and the cap does not. That is why a cap cannot be expressed as an equivalent percentage, and why a calculator that treats a capped fee as a flat percentage misleads exactly the people with the most at stake.

Rounding, and why the table adds up

Every figure is rounded to whole pence at each period boundary, so each row satisfies opening + paid in + growth − taken = closing exactly rather than approximately. The alternative — carrying fractions and rounding only for display — gives a table whose rows visibly do not add up, which is the one thing a page built to show its working must never do. The price is a drift of a pound or two against the textbook formula over a long schedule, on a projection whose growth rate is an assumption anyway.

What it does not model

  • Dealing charges and spreads. A commission taken on each purchase comes out of the money going in, so it never compounds at all — a different mechanism again, and the most expensive kind per pound. The ETF calculator models it. Fund transaction costs and the bid-offer spread are not modelled anywhere on this site, so a real portfolio costs more than any page here shows.
  • Exit fees, transfer fees and tiered charging. Several UK platforms charge a lower percentage above a threshold rather than capping in cash. Neither the tier nor the exit charge is expressible here.
  • Tax of any kind. No income tax, dividend tax, capital gains tax, ISA or pension wrapper rules. The stocks and shares ISA calculator prices what a wrapper saves.
  • Charges that change. One set of charges, every period, for the whole term. In practice a percentage fee that is capped, tiered or renegotiated does not stay put for thirty years.
  • Sequence of returns. The order returns arrive in changes the outcome, and a constant rate has no order.

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.