Spreadsheet
Investment Fee Drag Calculator
One question, answered in the two units that mean something: what do my fees cost me in dollars, and how many extra years of saving do they represent?
Download the calculator
Opens in Microsoft Excel, Google Sheets, Apple Numbers, and LibreOffice Calc. To use it in Google Sheets, upload the file to Drive and open it with Sheets.
A fee is quoted against your assets and paid out of your returns
That gap is the whole problem. A percentage of assets sounds like a rounding error and behaves like a partner in your portfolio, and because it is deducted from a balance rather than billed to you, it never appears as a cost. It appears as a slightly lower return, which is indistinguishable from a slightly worse market.
This spreadsheet converts that percentage into the two numbers a person can act on. Enter what you hold and what you pay, and it returns the dollars and the years.
What it gives you
In dollars. Two ending balances, with and without the fee, and the gap between them. The gap is split into fees that actually left your account and returns those fees never earned, because the second number is usually the larger one and no disclosure will ever show it to you.
As a share. What the fee takes as a percentage of your ending balance, and as a percentage of your investment gains, which is the honest denominator. It also shows the fee as a share of your expected annual return, which is the comparison the standard quote is built to avoid.
In years. How much longer you have to keep contributing to reach the balance you would have reached without the fee. This is the figure that changes behavior, and it is the one to read first.
Worked example
Starting from a balance of zero, $500 a month for 30 years, 7% gross, 1.50% all in. The file ships with a starting balance filled in, so set that cell to zero to reproduce these exact figures
- Without the fee
- $613,544
- With the fee
- $458,142
- Fees actually charged
- $76,421
- Returns those fees never earned
- $78,981
- Extra years of contributions to catch up
- 4.4
Slightly over half the damage, 51% of it, was never a fee at all. It is the compounding on money that left the account early.
What is inside
- A month-by-month engine, 600 rows, so fees accrue on the running balance at one twelfth of the annual rate the way they are actually charged, rather than as an annual approximation.
- A holdings tab where you list each fund and its expense ratio, and the sheet computes your true blended fund cost weighted by balance. It is usually higher than the number you had in mind.
- A cost ladder from 0.03% to 2.00% at your own inputs, so you can see what a switch is worth before you make it.
- A horizon table at 10, 20, 30, and 40 years, showing the share of the outcome the fee takes at each.
- Two independent methods. The ladder and horizon tables use a closed-form annuity rather than the engine, so the two act as a cross-check on each other. At any given cost they agree to the cent.
- Every output is a live formula. Change one input and the whole file moves. Nothing is pasted in.
Using it in twenty minutes
- List every fund you hold, in every account, with its expense ratio, on the Holdings tab.
- Add any advisory, platform, wrap, or administrative fee on the Inputs tab.
- Set the horizon honestly, meaning the year you would actually stop contributing.
- Read the years figure first, then the dollars.
- Take that number into any conversation with whoever charges the fee.
Why no fund list is built in
Expense ratios change, funds merge, and share classes get replaced. A list typed into a spreadsheet keeps producing confident answers long after it has gone stale, and nothing in the file will tell you it is wrong. The Holdings tab ships with two example rows to show the shape and is otherwise empty on purpose, so the number comes off your own statement on the day you run it. Same reason the order of operations allocator leaves the contribution limits blank.
The assumption to be careful with
Expected gross return is an assumption and not a promise, and the fee drag figure scales with it. A higher assumed return makes fees look worse in dollars, because there is more compounding for the fee to eat. That is the mechanism rather than a trick, but it does mean the honest way to use this file is to run it at a return you would defend rather than one you would like. The default is 7%. It is a convention, not a forecast.
What this tool cannot tell you
It ignores taxes, which are a separate and larger subject. It ignores trading costs and bid-ask spreads inside a fund, which do not appear in the expense ratio and are real. It assumes a constant return rather than a realistic path, so it says nothing about the order your returns arrive in.
Most importantly, it cannot tell you whether a fee is worth paying. It prices the fee. Some fees buy something valuable, and one prevented panic sale can pay for a decade of them. The point of putting the cost in dollars is not to prove that every fee is waste. It is to make keeping one a decision instead of a default.
Found an error, or think a calculation should work differently? Tell me. Corrections get published with a date attached, the same as they do for the research reports.