It was a blustery winter day, just about a year ago, when I stayed indoors all afternoon to work at my desk. The snowflakes stacked on the railing outside as I broke ground on new software, something I hadn’t done in years. It would be a modeling framework that I could use to research and analyze various retirement questions such as the best retirement withdrawal strategies and uncertainty in retirement calculations.
Despite all the time I’d spent using and reviewing retirement calculators over the years, this was the first time I’d personally tried to create one. As the snow piled up outside, I typed in the first lines of code for the fundamental modeling “loop” — the section of software that would process transactions for each year of the simulation.
Almost immediately it hit me. I was face-to-face with a mysterious problem. It was a key question that would turn out to have substantial impact on the answers produced by the calculator. And, yet, despite my extensive reviews of retirement calculators, despite the hundreds of hours I’d spent reading about and using these tools, I’d never seen anybody else raise the issue….
Before I explain that problem in more detail, let’s take a very short digression into the architecture of retirement modeling:
Most real-world financial software that you and I and the banks use, will process monetary transactions identified by days: So, you deposit your paycheck every other week on Tuesday, perhaps. It earns some interest which is credited to your account on the last day of the month. Then you withdraw to pay rent or a mortgage on the first day of the month. So, every transaction is processed on a definite day within the annual time span.
But retirement calculators attempt to model your financial life over many decades. Working in days over such a long time span would be impractical. So, logically enough, the majority of retirement calculators use years as their fundamental time “step.” That means all your cash flow coming in or going out, whether it be salary from work, bills paid, income from investments, or taxes levied, is generally evaluated and lumped together on an annual basis. So, for example, at only one point in each year is your salary deposited, or are the bills paid.
Ok, back to the mysterious problem: In the fundamental modeling loop in front of me on my screen that wintry day, there were four essential actions that had to happen: applying income and expenses to accounts, growing accounts to account for investment gains, paying taxes on income, and inflating values subject to inflation. The latter two were easy: It was pretty clear to me that paying taxes and applying inflation should happen at the end of each modeling year.
But here was the issue: What about applying income and expenses versus growing accounts? In what order should those events happen? In real life, of course, they are interwoven: Your investments produce income and capital gains throughout the year, at the same time you are depositing paychecks and paying bills. Your bank doesn’t have any trouble sequencing those transactions because, unlike a retirement calculator, it isn’t trying to compress an entire years’ worth of cash flow into a single transaction.
But, should my modeling loop look like this:
|1. apply income/expenses|
|2. grow accounts|
|3. pay taxes|
|4. apply inflation|
Or, should it look like this:
|1. grow accounts|
|2. apply income/expenses|
|3. pay taxes|
|4. apply inflation|
Not knowing which way was “right,” I implemented them both, with a software option to switch between them…
Within a few days, my modeling framework was functional enough that I could begin running simulations and comparing results. So I started using my new software option to evaluate results from different retirement scenarios depending on whether I grew accounts before or after applying income and expenses. The answers astounded me. I was seeing as much as a 20% variation in ending portfolio values, depending on the order in which the model evaluated those financial events!
And, as far as I could tell, there was no “right” or “wrong” here: The sequencing of events was a seemingly arbitrary choice by the software engineer, for how to model the real world. But it turns out to be a potentially critical choice: For many retirement scenarios, 20% in ending value could represent hundreds of thousands of dollars or years of retirement gained or lost!
Two Heads Better than One
Soon after my discovery, I reached out to my friend Stuart Matthews over at Pralana Consulting, who just happened to be starting work on what would become PRC2017/Gold, the next iteration of his flagship retirement calculator. Stuart had the hood up on his own software and was in a good position to apply the same option for sequencing growth to his internal modeling engine that I had implemented.
He ran some simulations to check my results. In our test cases he observed differences of from 1% to 21% in outcomes, depending on when he applied growth to accounts! So the variations I had observed weren’t a mistake, or an artifact of how I’d written my program. Stuart’s model and mine use completely different computer languages and software platforms. What to make of this?
It was then that Stuart — who arguably has one of the best minds for retirement modeling on the planet — made the conceptual leap to both understand the problem and propose an ultimate solution….
Why the different outcomes, and what did they mean for accurate retirement modeling? In a flash of insight, Stuart explained the essential mechanism to me in an email: “…growth taken at the start of the year would yield pessimistic results during the accumulation period [when cash flow is positive] but optimistic results during the distribution period [when cash flow is negative] … On the other hand, growth taken at the end of the year would yield optimistic results during the accumulation period but pessimistic results during the distribution period.”
So, neither way — growing accounts at the beginning of the year, or the end of the year — was exactly right. What to do? Here, Stuart had another conceptual breakthrough. The answer seems obvious in retrospect. (It always does, once some wizard has discovered it.) Stuart proposed applying the growth to accounts in the middle of the year — to the estimated mid-year value of a given account. His thesis: “Growth taken at the middle of the year would be correct in all cases unless there’s a large difference in the growth rates of the accounts.”
To the layman, it sounds so obvious and so simple: Split the difference and apply account growth in the middle of the year. But, as a software engineer, I can tell you it’s anything but simple to implement. The programming to accomplish that “mid-year growth” in the context of a model that operates in annual times steps can be fiendishly complex. I have an approximation of the technique running in my modeling framework. But, to my knowledge, the only commercially-available retirement calculator that can do it accurately right now, is Stuart’s PRC2017/Gold….
In January, Pralana Consulting released the 2017 annual update to its flagship PRC/Gold retirement calculator. PRC/Gold, which I’ve reviewed in depth and used in a number of my analyses here on this site, is, by a healthy margin, the most sophisticated consumer-facing retirement planning tool that I’ve ever used. And this year it only gets better….
In addition to a number of smaller improvements to the user interface and modeling accuracy, PRC continues to add significant modeling features. With 2017, PRC includes inherited traditional and Roth IRAs, Substantially Equal Periodic Payments, user-specified ceiling and/or floor for the cash account, and the ability to prioritize the order of withdrawals from the available taxable investment and retirement accounts.
PRC has always generated rich tabular and graphical output. This year, the program offers a number of standard, predefined graphs including income and expense streams, taxes, account balances, account withdrawals, rollovers, and net worth. And PRC’s signature side-by-side presentation of fixed rate, Monte Carlo, and historical analysis for multiple scenarios looks better than ever. PRC was one of the very first, if not the first, calculator to implement this key function from my perfect calculator feature set, offering all three of the major analysis types in one software package.
And now in 2017, if that weren’t enough, PRC offers the mid-year growth option described in the first part of this article, for the ultimate in accurate retirement modeling: A user-controlled switch governs the timing of account growth within the modeling year.
Yet, with all the new features, PRC’s humble sticker price has stayed the same. It’s an incredible value, given the amount of savvy domain knowledge and software skill embedded in this impressive tool. Considering the potential hundreds of thousands of dollars at stake in managing your retirement nest egg, the price seems trivial. Add to that an extensive User Manual (a rarity with any software these days) that can teach you a great deal about retirement planning in itself, and same-day support via e-mail from the extremely knowledgeable developer (also a rarity). PRC2017/Gold is simply a superb analytical tool — arguably the highest fidelity retirement calculator available — and a great value.
Another worthy entry on the high-fidelity retirement calculator scene, that only recently came onto my radar, is NewRetirement — a friendly planning and information platform for prospective retirees. Try this online tool if you’d like an unintimidating walk through your entire retirement scenario. It’s particularly helpful in the areas of retirement income including Social Security and annuities, health care planning including Medicare Supplemental Insurance and Long Term Care Insurance, and follow-on retirement tasks like estate planning.
NewRetirement’s web interface is attractive, with lots of friendly help available, and excellent graphical and tabular output. You can start with simplified input and expand later as you refine your retirement scenario. The site handles your spouse’s finances alongside yours. You can enter your savings in multiple accounts, including real estate, and add events to capture expected financial changes down the road. The tool makes it easy to try and compare different retirement scenarios. The detailed tax calculations and attention to RMDs offer you a more accurate picture of retirement for higher net worth scenarios.
Create an account at NewRetirement, and you can save your data to return to and analyze later. The site may offer to connect you with a financial advisor, if you want help with your plan, but there are no high-pressure sales tactics, and currently the service is entirely free.
P.S. Shortly after this post appeared, the developers of NewRetirement got in touch to let me know that their recently upgraded financial projection engine uses months as the fundamental time step. That’s potentially an efficient solution to the issue of applying growth. So kudos to them. Depending on the specific software implementation, it could introduce other complexities, so not every model may be able to adopt that approach.
P.P.S. For a more detailed discussion of these issues from Pralana’s perspective, including their own research and solutions, see An Optimized Solution for Modeling Account Growth in a Retirement Calculator.
* * *
Note: Stuart Matthews of Pralana Consulting and I are engaged in an informal technical collaboration aimed at raising general standards for accuracy in retirement modeling. We have no business relationship, no compensation arrangements, and no commercial intentions together.