Potential examples: - Calculate minimum retirement age - Optimize drawdown order - Optimize Roth Conversions / 72t distributions
I’ve used the following manual algorithm to optimize roth conversion. input: start year, and end year to consider conversions.
Using Net Worth as they key metric to optimize for. * Start in Year 1 * Calculate taxable income remaining in current tax bracket (or desired tax bracket limit). Set this amount as the roth conversion amount for Year 1. If Net Worth increases, keep this amount, If it decreases, skip roth conversion this year * Repeat for the next year in consideration.
Other metrics to optimize for:
* “Tax-free Net Worth” (Roth accounts),
* Tax-free on inheritance (Roth, taxable accounts, real property – up to limits)
* Lifetime Tax Paid
It also might be worth doing a trial beginning at each year in the period. Typically, the more years the conversion has to work, the better the result, but I think it’s possible for some plans to tilt this in favor of starting later. If you get to this point, remind me to contrive an example where this is this case.
I think there should be some sane defaults but I wonder if there could be an advanced optimizer where I could choose some variable to vary (maybe it’s % contribution to 401k or milestone calculation for retirement, etc) and metric to optimize for (end of plan net worth, min retirement age, etc) and run the optimizer as if the entire plan is a function. I assume the optimizer could either act as a grid search over the input parameters or it could run many Monte Carlo simulations and show the comparison of min,avg,max outcomes on the output variables.
I’ve been putting a bit of thought into this as I’ve tried various methodologies in PL to come up with a conversion plan.
So I think a full scale linear program model is probably outside the scope of PL, and probably of questionable utility despite how much I appreciated iORP. A grid search with some level of heuristic to avoid a full search is probably reasonable.
One thing to consider is that while total spendable income is the real objective function, I think that might be harder to obtain than a proxy for “good enough”; namely that most conversion studies seem to admit there’s way too many variables to come up with a single answer, and that the best path is to try to levelize effective tax rate and call it good; maybe a nod to accepting a little higher rate in the early years to allow Roth funds more time to grow.
So a heuristic could be some version of starting from the current plan’s series of effective tax rates, take the average, then starting with year 1 and working forward, do enough conversions to hit that average effective tax rate (again maybe a little higher in the earlier years), move on to the next year, until the end. that is likely to get really close to as good an answer as anyone could try without a full LP and is a starting point for a human to make some other decisions.
A few trigger point to be mindful of would be not intentionally triggering IRMAA at 65 when medicare starts, and then again at SS age. But these also might need to be manual massage points to tell the model, “hey I’ll pay a little RMD but try harder to avoid IRMAA” or conversely for someone with a huge pre-tax account, “forget about IRMAA, bump up the early effective tax rate to further reduce RMD” But that also might just work out with levelliving effective tax rate. It somewhat did for me as I was doing this all by hand.
It may or may not be worth doing this without major one-off expenditures included in the mix (up to the user to decide) since they can skew the effective tax rate too much. Then again, flip side, that might be exactly what’s needed for the heuristic to decide “today is not a good day to convert” and move to the next year.
There probably should be some nod to drawdown each year as well but that might be a bridge too far, or be a second scan across the years as a refinement to the initial conversion result.
Another heuristic to consider, which is also where I started but I’m not sure it is was really useful or not other than to show me I was clearly not near an optimal solution, was the go with the traditional, “just convert up to X bracket” in my case 22%. I took every year and did max conversions to 22% until I ran out of money to convert. Clearly very specific to me and my financial situation. But regardless, maybe that’s the first (or possible option) run through the process. Then with that result in hand, the optimizer can see if effective tax rate is really quite too high in the earlier years compared to the middle/later years (mine was) and decide how to proceed from there; maybe using the above method to levelize rates. When I did it the first time I actually started to levelize from the latest year, instead of year 1, in a nod to converting more in the early years. But I ended up adjusting all the way back to year 1 anyway and then did a few more passes (an algorithm would have been SO much faster) until I had a fairly downward sloping effective tax rate from Year 1 thru 70 which then slowly ramped back up again as I still had some intentional RMDs because to have converted everything would have unbalanced the effective tax rate and was giving me worse results.
Also, there is still something to be said for leaving some pre-tax in the plan since you can pay 0% in later years if you spend it on medical. But that can also be a user settable variable for the optimizer
The concept of “optimize” is variable. Some might want to optimize Net Worth at death, others may want to optimize a smooth spendable cash flow during life. Then you get into issues that if you want to leave legacy money to a charity, you can give there a taxable IRA. Alternatively, if you are giving it to a person, a Roth is preferred. You can add in the consideration that upon death, taxable assets with capital gains get brought up to current market value. This is a really complex issue and finding a straightforward way to model it will be difficult.
Agreed. I think Maximize Legacy Value and Maximize Lifetime Income are the most basic. If PL could these two it would be a huge start. I don’t care so much about minimizing taxes so long as these other two criteria are met. A powerful addition would be to be able to Maximize Lifetime Income with a minimum Legacy Value of X AND Maximize Legacy Value with a Lifetime Income of X percent above my entered expenses. Give me these four and it would be perfect…for me, at least.
With Roth conversions, I have a hard time in the app figuring out how much total taxes will be paid. For example, in one particular year, almost all of my income is from LTCG, $73k, and of that, $3.4k is state tax, $2.3 capital gains, (and $15k local). Then when I add Roth conversion to this year (used $60k in this instance), I get state tax $9k, LTCG $11k, income $5.5k, (and $15k local). I can’t tell if it’s better to do this or not, even though the Analysis section in Accounts > 401k/403b screen says it is not that helpful in terms of total taxes paid and final net worth.
So I think somehow given current milestones/planned purchases/events/etc, if you target minimizing lifetime taxes, you figure out when and how many years to do Roth Conversion, how much each year. And then you pick if you want to keep net worth the same or have it increase.