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
Advanced: contribution timing, cost stack and fixed fees
Sensitivity: compare a second inflation assumption
These entries need attention before the calculation can run
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.
Estimated ending purchasing power
The projected after-fee balance, translated into what it would buy at the scenario start date.
| Component | Amount |
|---|
| Component | Amount |
|---|
| Period | Nominal contributions | Fee-free nominal balance | After-fee nominal balance | Cumulative nominal fees | Contribution basis, start-date purchasing power | Fee-free balance, start-date purchasing power | After-fee balance, start-date purchasing power | Real gain or loss to date |
|---|
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 levelThis 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 basisMoney 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 deductedThat 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) - 1With 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) - 1Subtracting 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.
| Starting investment | €50,000.00 |
|---|---|
| Recurring contribution | €500.00 |
| Contribution frequency | Monthly |
| Contribution timing | End of period |
| Investment horizon | 20 years |
| Assumed gross annual return | 6.00% |
| Combined annual percentage fee | 0.80% |
| Fixed fees | €0.00 |
| Annual inflation assumption | 2.50% |
| 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 |
| Cumulative price-level factor | 1.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.
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.