The Minafi Retirement Simulator is a Monte Carlo Simulation runner for retirees to understand potential futures based on historical returns.
Here’s how it works. You put in your numbers and click run. Behind the scenes we’ll run a bunch of different simulations on potential futures. For each, we’ll pick a one years returns of stocks, bonds and cash and assume your investments grow by that amount. We repeat that once for each year, then repeat the entire process once for each simulation.
At the end of this, you’ll have 5,000 potential futures. After averaging them out we calculate which cases are the most and least common. The most important results from all this are the success rate, the median result, and the bottom 10% result.
- 2020.09.27 – Added ability to set stock/bond split & specify a date range.
- 2020.09.27 – Added stock, bond, and cash growth rates based on Robert Shiller’s data.
- 2020.09.27 – Launched the basic Retirement simulator with hardcoded prices.
This simulator is a work in process! If you notice any issues or have any feedback, please let me know in the comments.
- Add the ability to specify future spending and income events.
- Add additional withdrawal options besides a static amount each year.
About this Simulator
I mentioned this above, but it deserved repeating: this isn’t a guess at what the future will be. Here’s an analogy to how this works:
Imagine you have a deck of cards with one card for each year between now and 1882. On each card is the stock market growth, bond growth and cash growth. You shuffle the cards until they’re randomized. Next, you set your starting amount – say $1,000,000 – and your number of years (we’ll say 30).
Imagine you turn over the top card. You increase your investment by an asset allocation that reflects the stock, bond and cash split on that card. That’s 1 simulation of your year 1 growth. If you repeat that process 29 times you’ll determine whether this simulation ran out of money or left you with something left.
That’s 1 simulation. We do that 5,000 times (or however many simulations you run). After running these simulations, we loop through each year and get every balance at that year. Then we figure out how many of them succeeded and failed.
It’s important to note the difference between this type of calculator and one that looks at the historic sequence of events. With a calculator like FIRECalc, Engaging Data’s Calculator or FI Calc they look actual sequence of returns that have happened in the past to be able to say “your money would have survived if you retired in year X”. That’s helpful information! This calculator will also say whether your money would last, but with a shuffling of years.
Frequently Asked Questions
What success percentage is considered safe?
There’s no way of knowing what the future will hold. Historically, a score of 95%+ is safe enough to last the current period in every past scenario. This is roughly about a 3% withdrawal rate. A score of 90% is still very safe historically – roughly equal to about a 4% withdrawal rate.
What date range should I use?
It should be a date range long enough to include booms and busts. It should include times when bonds outperformed stocks and stocks outperformed bonds. The last 100 years is a good starting point. 1960 to present is also a good benchmark. Just don’t limit your date range to a market run-up (like 1920s, 2010s) and expect that to mirror reality.
How many simulations should I run?
The more the better! Above 5,000 simulations the results even out to be roughly the same. I recommend experimenting with 5,000, then increasing the number for scenarios you care most about.
How do the taxes and fees work?
The amount you spend each year will whatever you specify. The taxes and fees will be taken out each year on top of that amount. For example, if you plan to spend $50,000 with taxes and fees of 10%, then your account we’ll deduct $55,556 from your balance each year. $5,556 of that will go towards taxes and fees, and $50,000 would go towards your yearly spending.
How does the cash on hand work?
In a perfect world, you could sell investments every year (or month) and use that cash to fund the next period. At the end of that period, your checking account balance would be $0. That’s completely unrealistic. In real life, you want to have an emergency fund of at least 3-6 months’ expenses. Most retirees also keep 1-3 years of cash in a bank account. That gives you the flexibility to ride out short-term recessions without dipping into your investments. Cash on hand grows at the federal funds rate (which is what savings account rates are based on) from 1955-now. Before 1955 this grows at half of the interest rate. (Side note: I plan to switch this to using historical savings rates from the start once I find a good source of data).
How does rebalancing work?
This simulator assumes your account is rebalanced yearly to your stock/bond/cash allocation without paying any taxes. Honestly, this is unlikely. The more likely case is that your yearly spending comes from selling whatever asset has appreciated the most while rebalancing whatever is left.
Where does the underlying data come from?
The stock data is based on the inflation-adjusted value of the S&P 500 with dividends reinvested. The bond data is based on the after-inflation rate of the 10-year Treasury Bond Yield. The cash growth is based on the real one-year interest rate. All of this comes from Early Retirement Now’s SWR Toolbox v2.0.
What’s more likely, the bottom 10% or the top 10%?
They’re equally as likely. They’re also most heavily influenced by the first few years of retirement. This is called sequence of return risk. If you look at the worst-case scenario, you’ll see that it has an awful first year. Subsequent years aren’t as bad, but that first year is where it all goes wrong. In a real retirement scenario, you’d most likely want to reduce your risk during these years then take on more risk.
When I set my X to Y I get a 100% success rate – but that would never happen. What’s up?
This the problem with Monte Carlo simulations. They’re pulling random years from a very big pool. This doesn’t take into account how there’s often a decade of similar markets in a row. In the late 1800s, cash had a high return. In the 1970s, bonds had a high return. In the 1920s and 2010s stocks have a high return.
The Development Side
- Vue.js – This site is built using Vue.js. This simulator is a Vue.js component that can be dropped anywhere on the site.
- Vue-slider-component – All the sliders use this nifty component.
- Web Workers – In order to run thousands of simulations without locking your web browser, all calculations take place in a web worker.
- Chart.js is used to create the graphs using vue-chartjs as a wrapper.
- v-spark – Is a custom data binding library used for the ranged inputs and that I built and it used throughout Minafi. It’s not open source yet, but someday!