Tools

Real Return after Fees and Inflation Calculator

Your balance grew, but did your purchasing power grow after fees and inflation?

A future balance is a number in future money. What matters is what that number would buy. This calculator takes your own figures: what is invested, what you add, for how long, at what assumed return, at what cost, and under what assumed inflation. It projects the nominal balance after fees, translates it into what it would buy at the start of your scenario, and compares that with the inflation-adjusted value of every amount you paid in, each one valued at the date you actually paid it rather than at the end.

What this tool does not decide

  • Whether an investment is suitable, or whether you should buy, sell, hold, switch or contribute more.
  • Whether your return or inflation assumption is realistic. Both are yours. UBWHY publishes no inflation figure, fetches none, and prefills none.
  • Your personal inflation. The figure you enter stands for a general price level, and what you actually buy is not what an index measures.
  • Whether a product's fee is justified by what the fee buys.
  • Anything about tax. There is no tax field, and no figure here is an after-tax outcome.
  • Whether an investment protects against inflation on any particular market path. The model uses constant rates and cannot represent sequence risk or volatility.
  • Whether a positive real projection is likely to occur. This is not advice.

Your figures

Your scenario

Currency changes formatting only. No exchange-rate conversion occurs.

Invested at the start of the scenario, so it is already expressed in start-date purchasing power. Leave blank if there is none.

A fixed amount in nominal currency. It does not rise automatically with inflation, and each one is valued at its own contribution date.

Monthly is an interface convention, not a recommendation. The amount is contributed once per selected period.

Whole years, 0 to 100. One hundred years is a technical ceiling, not a planning recommendation.

Optional whole months beyond the years above, 0 to 11. The projection steps monthly and must cover at least one month in total.

Your assumption, before the costs below. It is not a forecast, and UBWHY prefills none.

Use a combined fee when you already know the total; use the stack to show its parts. Choosing the stack opens the Advanced section, where its fields are.

The model treats this as one effective annual charge on the invested balance. Enter 0 if there is none.

Your assumption about the general price level, not a UBWHY forecast and not your personal inflation. Every real value on this page is translated into purchasing power at the scenario start date.

Advanced: contribution timing, cost stack and fixed fees
Advanced timing and cost details

End of period is an interface convention. Timing changes both portfolio growth and the purchasing-power date of each contribution.

A fixed charge, not a percentage of the balance. It is deducted at the end of each selected fee period.

Annually is an interface convention. The fixed fee runs on its own schedule, independent of contributions.

Sensitivity: compare a second inflation assumption
Alternative inflation assumption

Only the price-level assumption changes. The nominal investment path is reused unchanged: the balance, the fee deductions and the contributions all stay exactly as they were, because inflation translates a nominal amount into purchasing power rather than altering it. While this box is unticked the field below is switched off and cannot be edited, and it is ignored entirely: not read, not parsed and not validated. UBWHY supplies no low, base or high band, and fetches no inflation figure from anywhere.

Alternative inflation field

A second assumption of your own. Entering the same value as above produces no difference, which the result will say.

Your projected result

Two figures appear here after you choose Calculate.

  • Estimated ending purchasing power: what the projected after-fee balance would buy at the start of your scenario.
  • Real gain or loss over the inflation-adjusted contribution basis: the figure this tool exists to produce, and the one that decides something. A larger balance is not the same as a stronger one.

The calculation runs in your browser: UBWHY does not receive the values you enter, nothing is sent anywhere, and no inflation figure is fetched from any source.

Inflation, fees and the horizon each move the real outcome on their own. Change one assumption at a time to see which one drives your scenario, and use the comparison field to price a second inflation assumption against the same nominal path.

How this is calculated

The projection steps one month at a time. In each month the balance grows at the monthly equivalent of the assumed gross annual return, the percentage fee is taken from the grown balance, any scheduled fixed fee is taken after that, and a contribution is added at whichever end of the period you selected. That is the whole nominal path, and it is the same path the Investment Fee Drag calculator steps.

Converting annual rates to monthly ones

A rate quoted for a year is converted by the twelfth root, so twelve monthly steps reproduce the annual figure exactly:

monthly growth factor    = (1 + g) ^ (1/12)
monthly retention factor = (1 - F) ^ (1/12)
monthly inflation factor = (1 + i) ^ (1/12)

g is the assumed effective annual gross return, F the combined effective annual percentage fee and i the assumed effective annual change in the general price level. Dividing an annual rate by twelve would describe a different quantity, a nominal rate compounded monthly. This model does not use that form anywhere.

Order of events in each month

[contribution, if you chose beginning of period]
gross growth
percentage fee
fixed fee, if one is scheduled this month
[contribution, if you chose end of period]

A fixed fee is floored at the balance available when it falls due. The balance never goes negative, no unpaid remainder is carried forward, and later contributions continue to arrive on schedule. Debt, account closure and provider-specific treatment are not modelled.

Translating a balance into purchasing power

Every real figure on this page is expressed in the purchasing power of the scenario start date. "Today's money" means the start of the period you entered, not the date you happen to be reading this: the tool reads no clock and fetches no price index.

price level after m months = (1 + i) ^ (m / 12)
balance in start-date terms = nominal balance / price level

This is a translation, not a deduction. Inflation does not remove money from the account and does not change a single nominal balance or fee deduction on this page. It changes what those amounts would buy. Changing the inflation assumption therefore moves every real figure and no nominal one, which is exactly what the optional second assumption demonstrates.

The inflation-adjusted contribution basis

The starting investment happens at the start of the scenario, so it is already in start-date terms. Every later contribution is discounted at its own contribution date, not at the end of the horizon:

real value of one contribution = C / (1 + i) ^ (t / 12)
contribution basis             = S + sum of every contribution's real value
real gain or loss              = ending value in start-date terms - contribution basis

Money contributed later did not have the same purchasing power as money contributed at the start, so each contribution is valued at its own date before the comparison. The nominal total is shown separately and is never used for it.

The nominal total of everything paid in is still shown, because it is a fact about the scenario. It is never the figure the real gain or loss is measured against. Subtracting a nominal sum of amounts paid across twenty years from a start-date value would be subtracting two different units, and the answer would look precise while meaning nothing. The companion explainer works through why.

The fee-free reference

The reference path uses the same starting amount, the same contribution events, the same timing, the same monthly growth and the same horizon, with no percentage fee and no fixed fee. Giving it a different contribution schedule would make it a different scenario rather than a reference, and the difference between the two would then quietly include a timing effect this page attributes entirely to fees.

The fee-free path is a mathematical reference used to isolate the modelled cost. It is not presented as an available product.

How the fee difference divides, in nominal terms only

nominal fee drag        = fee-free nominal value - after-fee nominal value
estimated fees deducted = sum of every percentage and fixed deduction
fee compounding effect  = nominal fee drag - estimated fees deducted

That residual is signed, and it is not always positive. On a rising path, money removed early stops compounding, so the terminal difference exceeds the deductions and the residual is positive. On a falling path the same mechanism runs the other way: money removed early is also no longer exposed to the later decline, so the terminal difference can be smaller than the deductions and the residual is negative. A negative residual does not reverse the fees deducted and does not make the fee beneficial. The money was still taken in full.

This decomposition is entirely in future currency. It is never added to, or shown in the same column as, a start-date figure, because the two use different price bases.

The purchasing-power break-even

The tool also reports the gross annual return at which the real gain would be exactly zero, holding every other input fixed. With no contributions and no fixed fee it has a closed form:

required gross return = (1 + i) / (1 - F) - 1

With contributions or a fixed fee there is no closed form, and the figure is solved numerically. Where no reliable answer exists the page says so in words rather than printing a number that looks solved. It is a mathematical break-even, not a target, a recommendation or an expected return.

Rate identities

gross real annual rate                 = (1 + g) / (1 + i) - 1
real annual rate after percentage fees = ((1 + g) * (1 - F)) / (1 + i) - 1

Subtracting inflation from the return is an approximation, and it is wrong in a knowable direction: it always overstates the real rate. The exact identity is a division. These are rate identities, not a cash-flow-weighted return for your contributed portfolio.

Assumptions

  • The gross return is the figure you entered, constant across the whole horizon.
  • Inflation is the figure you entered, constant across the whole horizon.
  • Every percentage cost behaves as one effective annual charge on the invested balance. Real providers may calculate components on different balances, accrue daily, deduct at different times, or use tiers and minimums.
  • Contributions arrive exactly on schedule, are never missed, and are never indexed.
  • Values are not rounded during the calculation; rounding happens only for display.

The boundaries of every figure on this page

Blueprint §9.4 states these as boundaries rather than as alerts: each one is true of every result this model can produce, whatever you enter. They are stated here, once, rather than reprinted under each calculation, and they hold with JavaScript switched off.

  • Inflation here is one assumed general price level. It is not your personal inflation, which depends on what you actually buy.
  • Contributions stay fixed in nominal currency. They are not indexed to inflation in this version.
  • Tax is excluded entirely. No figure here is an after-tax outcome.
  • Constant annual rates are modelling assumptions, not forecasts of return or inflation.
  • Nominal and real amounts use different price bases. They are shown separately and are never added together.

What this calculation cannot tell you

  • Whether the investment is suitable, or whether you should buy, sell, hold, switch or contribute more.
  • Whether your return or inflation assumption is realistic. Both are your assumptions, not UBWHY forecasts, and no figure here is drawn from any published index.
  • Your personal inflation. The entered figure stands for a general price level; what you actually buy is not what an index measures.
  • Anything about tax. There is no tax input, no tax drag, and no figure on this page is an after-tax outcome.
  • Whether an investment protects against inflation on any particular market path. The model uses constant rates and cannot represent sequence risk, volatility or the probability of any outcome.
  • Anything about withdrawals, inflation-indexed contributions, performance fees, transaction costs, currency conversion or risk-adjusted return. None of these is modelled.

A worked example

Illustrative only. One of the verified test cases behind this calculator, rendered from the same model the tool runs. The figures below were chosen to be checkable, not to be representative: the return and the inflation rate are assumptions entered into the model, not expectations, and the fee is a number to calculate with rather than a comment on any real charge. Nothing here changes the fields above.

Assumptions entered
Starting investment€50,000.00
Recurring contribution€500.00
Contribution frequencyMonthly
Contribution timingEnd of period
Investment horizon20 years
Assumed gross annual return6.00%
Combined annual percentage fee0.80%
Fixed fees€0.00
Annual inflation assumption2.50%
Nominal outputs, in future currency
Fee-free nominal ending value€387,076.09
After-fee nominal ending value€342,889.59
Estimated nominal fees deducted€27,709.87
Growth not earned after fees were deducted€16,476.62
Nominal fee drag€44,186.50
Nominal total contributed€170,000.00
Purchasing power, in start-date currency
Cumulative price-level factor1.6386
Ending value in start-date purchasing power€209,255.56
Inflation-adjusted contribution basis€144,601.95
Real gain or loss over the contribution basis€64,653.61

The nominal balance reaches €342,889.59 after fees. Divided by the price-level factor of 1.6386, that is €209,255.56 in start-date purchasing power. The money paid in came to €170,000.00 in nominal currency, but it was paid across 20 years, so in start-date terms it was worth €144,601.95. The difference between those last two figures is €64,653.61, and that is the answer this calculator exists to give.

The comparison that would be wrong. Subtracting the nominal €170,000.00 from the real €209,255.56 gives €39,255.56, and that number means nothing: it is a start-date amount minus a sum of amounts paid at twenty years of different price levels. It is smaller than the correct answer here, but the direction is not the point. The two figures are in different units, so their difference is not a gain, a loss, or a quantity at all.

Under the same fee and inflation assumptions, the gross annual return would need to be about 3.33% for the ending purchasing power to equal the inflation-adjusted value of everything contributed. That is a mathematical break-even, not a forecast and not a target.

Why subtracting inflation from a return is only an approximation, why contributions cannot be compared with a real ending value, and what a positive real projection still does not prove: Nominal Return vs Real Purchasing Power.

Go deeper

  • Understand the mechanism

    Nominal Return vs Real Purchasing Power

    Why a rising balance can still be a weaker outcome, why subtracting inflation from a return is only an approximation, and why money paid in over twenty years cannot be compared with a figure in today's money.

    Read the explainer: Nominal Return vs Real Purchasing Power

Numbers are only the start

Explore UBWHY analyses to see how costs, risks, liquidity and alternatives change a decision, and how UBWHY evaluates a product.

Calculation model and corrections

Calculation model
Real Return v1.0
Last reviewed
Purchasing-power basis
Scenario start date
Return convention
Effective annual gross return
Inflation convention
Effective annual price-level change
Percentage-fee convention
Combined effective annual balance fee
Projection interval
Monthly
Contribution convention
Fixed nominal amount at user-selected timing
Rounding
Display only; intermediate values remain unrounded
Tax treatment
Excluded

Correction history

  • Version 1.0 hardening review, 5 August 2026: the nominal fee residual was renamed to the fee compounding effect and its public meaning is now generated from its sign, because an always-positive label such as "growth never earned" is false on a falling path. Vector RR-7 was added as the regression guard, and the zero-growth condition was corrected to the exact annual factor. The purchasing-power basis, contribution-date discounting, break-even definition and tax exclusion are unchanged. Both corrections were made to the specification, before publication, so no published result was affected.