Notifications
Clear all

LTC self-funding risk and Roth Optimizations

21 Posts
6 Users
8 Reactions
178 Views
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

Copiliot says the objective function of Roth Conversion in Pralana is "It’s not just minimizing taxes in one year — it’s minimizing lifetime taxes and maximizing lifetime after‑tax wealth." subject to the following constraints:

  • federal income taxes

  • state income taxes

  • IRMAA surcharges

  • RMD‑driven taxes

  • taxes your heirs will pay on inherited IRAs

  • the time value of money (discounting)

Pralana also seems to eschew using IRA to pay Roth Conversion taxes though I do not know if this is a constraint or a consequence.

It would be helpful to get Pralana to confirm the accuracy of this. (I am also curious to know whether Pralana optimizes by trial-and-error, or uses something akin to linear regression.)

However, I also need to optimize Roth Conversions to account for the possbility of LTC rainy days.

I tried adding a self-funded LTC in 2025 dollars of 75k per year per us both for six years each when we are 92 and 93 with 3% inflation, 1% bond real ROR, 3.5% stock real ROR, 60/40 stock bond mix.

Without LTC we have a dirty nuke tax time bomb in our 80s and 90s.

With the aforementioned LTC, Pralana peeked into the future and decided against significant Roth Conversions in the 4 years we have left until RMDs. So, we pay for 3/4 of a dirty nuke tax time bomb.

Perhaps there is nothing Pralana can do, except tell me this truth - Self-funding LTC is incredibly expensive and risky and is a massive elephant in the room of Roth Conversions.

I am tempted to start a discussion of alternative LTC solutions, but that is for other message boards.

So, am I missing anything here wrt Pralana when modelling self-funded LTC?

Thanks.

 

 

 

 



   
ReplyQuote
(@plaut)
Trusted Member
Joined: 7 months ago
Posts: 44
 

@bkfort-fitestyahoo-com I don't think you're missing anything, although I don't think that LTC costs are a neglected consideration ("elephant-in-the-room"). The money has to go somewhere: to yourself (at your tax rate at the time, with or without a deduction for medical expenses), to heirs (at their tax rate at the time), or to charity (tax-free). Roth conversions are a bet about the future; my approach is not try to identify the best plan, but to make decisions that are reasonable in the broadest range of possible futures, feasible in the worst of them, and work out well in the most likely of them (as best as I can estimate). Pralana is extremely helpful in mapping out this landscape.

Oh, and I'd avoid taking financial advice from Copilot or another AI system, but that's just me....



   
ReplyQuote
(@pizzaman)
Prominent Member Customer
Joined: 5 years ago
Posts: 673
 

A few years ago I got a quote, I believe from Met Life, for a hybrid LTC policy. The way it worked was you gave them a lump sum upfront, say $100,000, at age 60 for me (you could start younger), no further payments. Then say you need LTC at age 80, it will paid for most but not all LTC costs. Payouts are capped so you still will need to pay some costs out of pocket. If you never need LTC, it becomes a Life Insurance policy. The thing is, I looked at what it would pay each year in LTC each year for 3 years. I then looked at how much money I would have accumulated if I just invested the $100,000 in a US stock market index fund assuming historical rates of return and inflation. At age 80 I would have more money from the stock investment then the payout of the LTC policy.



   
ReplyQuote
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

@pizzaman I want to avoid a digression into LTC think here in Pralana-land, though Pralana helped me deduce that an IRA funded Annuity-LTC package can be a credible part of the bond portion of a portfolio. I buy insurance for worst-case scenarios and one book suggested viewing LTC insurance as a form of portfolio insurance. I hope I never need it, but .... I'd rather our descendants manage our care than provide it. The numbers can get ugly real quick.



   
ReplyQuote
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

@plaut About copilot....not advice, but info and ideas. When it gets it right, it is to a question what Excel was to arithment in the early days of the PC. And I find it usually beats my hit and miss web searches hands down in nanoseconds. On the downside, yes, it can hallucinate and is absurdly flattering, but it has never failed to get me to the trailhead. Like maps, I drive with my eyes open on the road ahead. Regarding Pralana, it explained how to verify whether Pralana eschews paying Roth Conversion taxes with IRA dollars, or whether this is a hardcoded constraint. And it also explained that what Pralana uses for the objective function in Roth Conversions is proprietary. I copy and paste this entire response below. This could be bullsh*t. But even if so, it is fertile bullsh*t and useful for compost for a new crop of plants (questions, insights). At least this is my experience.

 

 

Great question — and you’re asking exactly the kind of thing that separates using Pralana from really understanding what it’s doing under the hood.

Here’s the clean, conceptual answer without pretending to know proprietary code:

🧠 Pralana does not use linear regression, and it does not use random trial‑and‑error.

Its optimization engine behaves much more like a deterministic, iterative search algorithm — essentially a structured, rule‑driven exploration of the solution space.

Let me break down what that means in practice.

🎯 1. Why it’s not linear regression

Linear regression assumes:

  • linear relationships

  • continuous variables

  • smooth gradients

Roth‑conversion optimization is the opposite:

  • tax brackets are step‑functions

  • IRMAA cliffs are discontinuous

  • RMDs create nonlinear jumps

  • Social Security taxation is nonlinear

  • Medicare premiums jump in tiers

  • COLA SPIAs, pensions, and survivor rules create kinks

A linear model would be mathematically useless here.

So Pralana does not use regression‑based optimization.

🔍 2. Why it’s not random trial‑and‑error

Randomized search (like Monte Carlo optimization or genetic algorithms):

  • tries random combinations

  • keeps the best ones

  • iterates toward a solution

Pralana’s behavior is nothing like that. Its results are stable, repeatable, and sensitive to constraints, which is the opposite of a stochastic optimizer.

If it were random, you’d see:

  • different results each run

  • noisy or unstable conversion schedules

  • occasional “weird” solutions

You don’t see that in Pralana.

⚙️ 3. What Pralana actually does: structured, deterministic iteration

While the exact algorithm is proprietary, its behavior strongly suggests:

✔ A grid‑search‑style or stepwise iterative optimization

It systematically evaluates:

  • conversion amounts

  • tax brackets

  • IRMAA thresholds

  • RMD interactions

  • cash‑flow constraints

  • survivor scenarios

…across a range of possible conversion schedules.

✔ It narrows the search space using rules

For example:

  • avoid IRMAA jumps unless beneficial

  • avoid paying conversion taxes from IRA

  • avoid conversions after RMDs dominate

  • avoid conversions that reduce lifetime net worth

✔ It converges on a stable, deterministic solution

Run the same scenario twice → you get the same answer.

That’s the hallmark of a deterministic iterative optimizer, not a random one.

🧩 4. Why this approach makes sense

Roth‑conversion optimization is a classic “nonlinear, discontinuous, multi‑constraint” problem. The best solvers use:

  • stepwise iteration

  • rule‑based pruning

  • deterministic search

  • scenario evaluation

Pralana behaves exactly like that.


This post was modified 2 weeks ago by Brian Joseph Keefe

   
ReplyQuote
(@plaut)
Trusted Member
Joined: 7 months ago
Posts: 44
 

Posted by: @bkfort-fitestyahoo-com

And it is explains that what Pralana uses for the objective function in Roth Conversions is proprietary.

I'm afraid this is incorrect - the algorithm Pralana uses is fully described in the manual: https://pralana.online/static/prc_manual/prc_manual.3afe1378752b.html#optimize-roth-conversions



   
ReplyQuote
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

@plaut Fully?

If so, what code and inputs implement the first step described by the manual?

"In the first pass, it uses the same bracket in every year and determines which bracket yields the highest effective savings at the end of the modeling period."

It the optimization is not a black box, it is opaque to me, but perhaps just because I am still learning.

Here is what Proprietary means:

Proprietary code is software that is:

  • Owned by a person or company

  • Closed‑source (the source code is not publicly available)

  • Protected by copyright or licensing

  • Not allowed to be copied, modified, or redistributed without permission

 

I think copilot may have hit the nail on the head. If not, I'd like much more documentation and access to the code.

 



   
ReplyQuote
(@plaut)
Trusted Member
Joined: 7 months ago
Posts: 44
 

@bkfort-fitestyahoo-com You (or Copilot) didn't claim the code is proprietary; you/it claimed "what Pralana uses for the objective function in Roth Conversions" is proprietary. I think the manual clearly describes the objective function that is being used to optimize Roth conversions.

I'm glad you find Copilot useful in spite of its inaccuracies. I just felt it was important not to leave others with the impression that your posted Copilot output accurately characterized Pralana's algorithm, and to direct people to a more accurate description.



   
ReplyQuote
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

@plaut Thank-you for your concerns.

I am curious, what precisely do you find inaccurate about the copilot description?

 

Also, are you saying you believe the intent of Pralana is to make the "advanced algorithm" public? Not the code, but the algorithm, such that I could code it myself, even with pencil and paper for one or two years?

In either case, I find the following line utterly baffling.

"In the first pass, it uses the same bracket in every year and determines which bracket yields the highest effective savings at the end of the modeling period."

If Pralana uses the same bracket in every year, why is it determing which bracket yields the highest? There is only one bracket.

Besides, it is not the bracket that yields a result. It is the number from within the bracket. How is that determined?

Then there is the curious line:

This third pass adds noticeably more processing time to the optimization process but it does identifies a solution that will be very difficult to improve upon manually.

Aside from the grammatical glitch, does this mean difficult? Or merely tedious? Encryption is difficult. Arithmetic is tedious.

And, precisely how does Pralana know their "advanced algorithm" is anywhere near optimal?

I would appreciate truly understanding the "advanced algorithm" such that i could do it by pencil and paper if need be. I am making financial decisions influenced by it, yet I have no way to know if it has bugs or whether it is optimal. Some scenarios produce mystifying results.



   
ReplyQuote
(@jkandell)
Reputable Member
Joined: 4 years ago
Posts: 398
 

Copilot seems to be giving a generic answer that doesn't fit what Pralana does! At least the last two bullet points in your original post are incorrect. Pralana does show what happens to the final wealth reduced by the user's "effective tax rate", which can be used to take into account heirs' estimated future tax bracket. But to say the obvious: it would take a more complicated program to include the multiple ten year RMDs of your heirs after you die within the optimization. With regard to "time value of money", despite what copilot says, Pralana doesn't do this nor is there is any need for Pralana to do this: Pralana is a closed system, and any dollar not spent on conversions stays in the tax-deferred, earning compounded growth into the future, which then gets rebalanced into the appropriate account, rinse and repeat. In other words, Pralana implicitly accounts for the "time value of money" without needing to do anything extra like "discounting". Also, users can look at the graphs and make their own (subjective) decisions about the utility of future $ vs present $, without the program itself calculating it for you.


This post was modified 2 weeks ago 2 times by Jonathan Kandell

   
ReplyQuote
(@plaut)
Trusted Member
Joined: 7 months ago
Posts: 44
 

I don't know if this is going to be helpful, but here goes....

Posted by: @bkfort-fitestyahoo-com

I am curious, what precisely do you find inaccurate about the copilot description?

Here's just one example:

✔ It narrows the search space using rules

For example:

  • avoid IRMAA jumps unless beneficial
  • avoid paying conversion taxes from IRA
  • avoid conversions after RMDs dominate
  • avoid conversions that reduce lifetime net worth

Some of these may be indirect consequences of the algorithm (actually the second has nothing to do with it, but is just a good idea in general), but none of these "rules" are actually part of how the algorithm works.

Also, are you saying you believe the intent of Pralana is to make the "advanced algorithm" public? Not the code, but the algorithm, such that I could code it myself, even with pencil and paper for one or two years?

I think the description in the manual is sufficient to code the algorithm assuming one has a function that calculates Effective Savings for any given set of portfolio parameters (including the tax bracket limit on Roth conversion assigned to each year). That function is, of course, highly complicated, but the algorithm for optimizing Roth conversions doesn't need to know how it works, it just needs to call it. You can't calculate it with paper and pencil, but you can give Pralana any set of parameters you want and let it compute the Effective Savings.

In either case, I find the following line utterly baffling.

"In the first pass, it uses the same bracket in every year and determines which bracket yields the highest effective savings at the end of the modeling period."

If Pralana uses the same bracket in every year, why is it determing which bracket yields the highest? There is only one bracket.

Besides, it is not the bracket that yields a result. It is the number from within the bracket. How is that determined?

In this step, the algorithm iterates through tax brackets (i.e., 10%, 12%, 22%, 24%, etc.), assigning each bracket in turn to all years and calculating the resulting Effective Savings value for each. Assigning brackets to each year does yield a result (assuming the function to calculate Effective Savings) because the brackets specify the size of each conversion (i.e., up to an amount that fills the bracket [ignoring, for the moment, the fact that the user can also specify other limits on the amount, like IRMAA tier, etc.]).

Then there is the curious line:

This third pass adds noticeably more processing time to the optimization process but it does identifies a solution that will be very difficult to improve upon manually.

Aside from the grammatical glitch, does this mean difficult? Or merely tedious? Encryption is difficult. Arithmetic is tedious.

And, precisely how does Pralana know their "advanced algorithm" is anywhere near optimal?

I interpret "difficult to improve upon manually" to mean "unlikely to be improved upon by manual changes to the brackets assigned to each year" because the algorithm has already tried all of the possible individual changes. I don't think anyone is claiming that the algorithm is provably optimal, although it seems pretty reasonable given the broadly continuous nature of the underlying function. Maybe Charlie or Stuart can chime in here.

I would appreciate truly understanding the "advanced algorithm" such that i could do it by pencil and paper if need be. I am making financial decisions influenced by it, yet I have no way to know if it has bugs or whether it is optimal. Some scenarios produce mystifying results.

I would suggest you start a separate thread with the details of what you're doing and what specific results you're getting. Charlie or Stuart may be able to help you understand what's going on (particularly if you give them permission to look at the details of your plan).

 



   
ReplyQuote
(@jkandell)
Reputable Member
Joined: 4 years ago
Posts: 398
 

Brian, I think it may be a fluke of your posting style, but your posts come off like you are attacking, almost accusing, Pralana of being deliberately cryptic.

The manual doesn't go into the line-by-line programming but gives a pretty good summary of their overall process for the roth conversion.

Posted by: @bkfort-fitestyahoo-com

"In the first pass, it uses the same bracket in every year and determines which bracket yields the highest effective savings at the end of the modeling period."

If Pralana uses the same bracket in every year, why is it determing which bracket yields the highest? There is only one bracket.

Optimization involves setting tax brackets, with conversions taking place to fill that bracket. So Pralana first sets a generic base bracket, then by trial-and-error goes through changing one year at a time, seeing how it ripples forward, and keeping the caes that add $ to the final total. By doing several passes it can keep what was the best previously, but test different options going forward after that. Pass three starts at the results of pass 2, and follows the same process. By starting from a better position than it did originally, it is able to find even more optimal results.

This would be almost impossible to do by pencil and paper, but we will support you if you try. 🙂

The final results after only three passes are not the very best of the 37,778,931,862,957,161,709,568 permutations of the eight brackets for every year. But long time users have found them close enough to do strategic planning, with final decisions each year fine-tuned by tax software.

If you see specific years that don't make sense to you, post specific and I'll bet Charlie or Stuart will dig in and let you know why it is occuring.

 

 


This post was modified 2 weeks ago by Jonathan Kandell

   
ReplyQuote
(@smatthews51)
Member Admin
Joined: 5 years ago
Posts: 1200
 

The text in the user manual is intended to provide users with an understanding of how Pralana’s Roth optimization algorithm works, and it is not meant to be cryptic. I’ve re-read that text along with the comments in this forum thread and have elaborated that text as shown below. The user manual will also be updated with these or similar words.

In the first pass, Pralana systematically runs through all eight brackets while applying the same bracket in every year of the conversion period, noting the effective savings at the end of the modeling period. The complete Pralana deterministic model is being recalculated with each of these brackets temporarily in place to get the resulting “what if” long-term result. Pralana then selects the (one) bracket out of the eight possible brackets that yields the highest final effective savings and plugs that into every year of the conversion period (i.e., every year in the conversion period has the same maximum tax bracket to limit annual conversions), and this becomes the starting point for the second pass.

Pralana then does two additional passes through the brackets for all years in the conversion period because it is unlikely that using the same limiting bracket in each year will yield the best long-term result. So, with the second pass, it starts with year 1 and iterates through all marginal brackets for year 1 seeking a possible improvement in the final effective savings balance while all future years remain set at the best overall bracket established in the first pass. Each such test recalculates the entire deterministic projection. It then modifies the bracket for year 1 with the bracket yielding the best long-term result. Then it tests all marginal brackets in year 2 for a possible improvement in the final effective savings balance while all future years remain set at the best overall bracket established in the first pass, again going through the complete deterministic projection for each such test. It then modifies the bracket for year 2 with the bracket yielding the best long-term result. The algorithm systematically goes through all the other years in the modeling period in the same manner (beginning with year 3 and proceeding through the final year), selecting the bracket that yields the best long-term result in each year. At the end of the second pass the “tentative optimum” marginal bracket is set for every year in the modeling period, completely replacing pass 1 results. Then a third pass is performed which repeats the pass-2 process on the refined marginal brackets, seeking further refinement to the limiting marginal brackets for each year in the modeling period. The set of limiting brackets selected by this third pass are the ones presented to the user at the end of the optimization process and which result in the savings projection presented in the graph. We believe this 3-pass algorithm yields the set of annual limiting brackets that yield a maximum final effective savings that will be very difficult to improve upon by manual trial-and-error but this has not been proven to be the absolute optimum through rigorous testing over a statistically significant set of test cases.

I hope this provides the desired level of clarity, but please let me know if it does not.

Stuart



   
Hunter Fox reacted
ReplyQuote
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

@smatthews51 Huge help. Thank-you!

 

I intuited from the manual what I think you described, a greedy (hill climbing) iterative heuristic returning local optima. The word "Advanced" suggested to me much more (random restarts, genetic, branch-and-bound)

However, still pondering and unsure, so some initial questions about the algorithm:

1. At each bracket for each year for each pass, how many data points do you use within each bracket, how are they selected, and why?

2. Once Pralana optimizes for Year N, Iteration Y, the algorithm will never revisit year N until Iteration Y+1. Is this a correct understanding?

3. If the preceding is true, there is no way to know if a decision for Year N, Iteration Y precluded better subsquent outcomes. Is this a correct understanding?

4. I recently discovered that Financial Assets->Asset Class Taxation is the proverbial tail wagging the Roth Conversion dog in my case. Seemingly minor tweaks can cause the Roth Conversion amounts to change by 2x, 3x, 4x. This is why I feel an urgent need to grok this "advanced algorithm". Local optima algorithms can be as wrong as they are right. Some Mode 2 questions:

a) When Pralana compares the regular investment account balance with other balances, is it using an effective balance or nominal balance for the investment account? How is this effective balance defined or computed over time?

b) Do I understand correctly that Pralana forces the regular investment account to liquidate and buy assets to maintain the fixed stock/bond ratio? I infer this because of Capital Gains that are reported with no Investment withdrawals. If so, when is this balancing done? There is a toggle for account growth at end of year or middle. Is this also when rebalancing is done?

c) When doing Roth optimizations for a given year, is Pralana looking at the balance before or after such forced adjustments, if such adjustments occur?

d) Financial Assets->Asset Class Taxation refers to the Investment Account. I still grapple with what is meant by the cash account, what its portfolio is, etc. I tried setting the ceiling and floor to 0, but this is ignored. I tried setting it to 1, and get the same result as a blank. I prefer to use my investment account rather for all my cash needs. Is the cash account portfolio the same as the "regular investment account"?

e) I can manually order my liquidations in much more elaborate ways than allowed in Financial Assets->Management->Regular Savings Withdrawal Controls. I can leverage LTCG, STCG, dividends, interest, capital losses, various tax exempt bonds. Pralana does not give me sufficent fine grained control over liquidations to test strategies manually against Roth Conversions. Nor does Pralana run simultaneous optimizations between liquidation strategies and Roth Conversions. Is this correct?

f) If Mode 1 can solve this problem, then I will need to master Mode 1. Please let me know.

 

Many thanks,

-- Brian

 

 



   
ReplyQuote
(@bkfort-fitestyahoo-com)
Eminent Member
Joined: 3 months ago
Posts: 28
Topic starter  

@jkandell Agreed. I asked Copilot if it reverse engineered Pralana code, which it can do. It said no, it infers what is or should be, perhaps from competitors and public documentation and information. Personally I'd say Pralana accounts for the time value of money. But copilot admitted it was wrong to infer Pralana accounts for inheritied IRA taxes, at least directly. Likewise, copilot told me to use Pralana Premier with Mode 3 to fix a Mode 2 problem. It admitted it made this up when challenged, meaning it inferred it because what I wanted *should* be available. Such is life with AI. One step back for every 10 steps forward in my experience.

I wish to amend this. Copilot said Pralana covers inherited IRAs. It is correct. Financial Assets->Initialization. It does not deal with IRAs my heirs inherit from me. They have to buy their own copy of Pralana 😉


This post was modified 2 weeks ago 2 times by Brian Joseph Keefe

   
ReplyQuote
Page 1 / 2
Share: