Pralana does not currently support bootstrapping monte carlo. I'm not sure how much I'd prioritize it, but Bootstrapping would be a nice compliment to statistical monte carlo and historical recreation. The big advantage of bootstrapping is that it generalizes the historic record rather than enforces a normal curve we know is false. The "fat tails" we find in the historic data are especially important in stress test modeling since the "worst case" (e.g. 5th percentile) happens much more frequently than shows with a normal curve. Correlations between assets also get lost in the existing monte carlo, where we are forced to either choose 100% correlated or uncorrelated. The percentile we get in Pralana's historic simulation is limited by the fact history unfolds in exactly the same order, repeated as many times as possible, with fewer and fewer samples as one gets more recent. In bootstrapping this all gets generalized: there is no bias between far back and recent, there is no assumptions of historical events like depressions and wars, inflations and depressions occuring in any particular order. You can think of bootstrapping as history generalized
Ideally, users would pick the size of the block of years to use for bootstrapping "chunks" that get randomly reordered. The larger the base chunks, the closer the results comes to the historical record, but the more reversion to the mean and other aspects of actual history gets captured. The smaller the size of the chunks the more samples we get and the closer it comes to a normal curve (although still reflecting fat tails). The historical correlations between assets would also get perfectly reflected with a bootstrap without needing fancy math; in the current monte carlo correlations between assets get lost, and we're given the 'crude' hack of "perfectly correlated" or "perfectly uncorrelated."
All in all, bootstrapping captures the best of both worlds, and I think would be fairly easy to implement since the bones are already there in the historical simulation. FWIW, portfolio visualizer offers bootstrapping option and it's the simulation of choice in Ben Mathew's TPAW, and much retirement research.
Yes, right now, historical ranges of success are dominated by the 1950-1990's, with the earliest and most recent data points getting less and less weight as you go to the ends of the sequence. Bootstrap provides a natural way to set inflation in Monte Carlo; I could be wrong, but I think right now Monte Carlo is using the user input inflation rate each year - or at least there's no discussion I could find in the manual or in the program of what it's doing.
I think you are right that bootstrap has some advantages over either pure historical or MC. What's even more clear is that we can come up with ideas faster than Charlie and Stuart can program them. 😀
I too am a fan of bootstrapping, but just with historical back testing. There is a whole tread entitled Historical vs Monte Carlo under Pralana Gold that goes into great detail 🤓. I am not a big fan of Monte Carlo to begin with for various reasons, and adding bootstrapping to it will make a statistical mess 😟. Yes, it can help maintain the correlation between assets, and it produces a lot of data, but also strips out all forms of return disposition (i.e. autocorrelation) and produces return and volatility characteristics far beyond the historical market boundaries (Michael H. McClung - Living Off Your Money 2015, page 33). Using simulations is a way of measuring risk, which is of course the most important thing in retirement planning. You want your money to last your entire retirement, and you want to achieve this goal with the least amount of risk. Simulations allow you to play around with the various risk factors to see what happens, within the limitations of said simulations. At this point in my early retirement, the greatest risk for me is sequence of return risk and will be for another 5 years or so. It's hard to simulate just a certain time block out of your entire retirement to see what might happen. So I look for certainty. I do this with laddering zero coupon US Treasuries (which I talked about in another thread). I know exactly what will happen in that time frame, so I can sleep at night instead of staying up and running another simulation 😏.
I think you are right that bootstrap has some advantages over either pure historical or MC. What's even more clear is that we can come up with ideas faster than Charlie and Stuart can program them. 😀
True, and I'm not demanding it by any means. (The deterministic results are valuable enough.) However, given the importance of the stress testing of monte carlo and historical, I think bootstrapping might be higher on the priority list than some other things.
Thinking it over, my biggest problem with monte carlo as currently implemented (a statistical "pure" normal curve where user defines mean and sd for broad asset classes) is that (1) it assumes a normal curve, (2) you can only choose 100% correlated or 0% correlated between broad asset classes (3) return to mean/momentum/regimes are not captured.
The normal curve is fine for results around the median (which we already roughly know from the deterministic results/line); but I'd argue it's at the 0-25th percentiles where the normal curve is very wrong compared to history--and it's those rarer cases that matter when you turn to a monte carlo. (If you're gonna stress test, you need the actual stress!) I know some others have used log curves rather than normal or garch to overcome this deficiency; but this is not practical in a program like Pralana. To show this is a real issue and not just "math talk", compare the normal curve probability of what happened with the plummet in bond returns a couple years ago compared to bootstrapping. it was rare event either way, but the normal curve would make it much less likely to occur than bootstrapping, where the hundred year "fat tail" indeed happened!
Only being able to choose 0% correlated or 100% correlated between e.g. stock and bonds is not a good solution IMO. The manual is incorrect to say Pralana offers "two extremes". No, the extremes would be 100% correlated (rising and falling together) or minus 100% correlated (rising 100% of time when other falls, and vice versa). Now that I think about it, I wonder if the manual uses the phrase "uncorrelated" by mistake when it implements "-100% correlated"?
Historical data doesn't suffer any of this of course. And I think the ability to show a single run historically from any start year is invaluable (what pralana calls "historical sequence analysis"). There is no substitute for history. My biggest problem with the historical analysis as currently implemented is that in its stastical success and blue bands it has too much repetition of the same order of history in its results. The compiled percentages used for all the results are too dependent on the arbitrariness of the 1928 start date. (a) You would get very different percentages if you added 40 more runs starting 40 years before the 1928 start date (which we don't have data for of course) (b) each run is less and less historical (i.e valid) the further you get toward the end of the run, where Pralana has to add more and more assumptions about what "would have" happened. In other words, history is valid in any particular run, but looses validity when run 86 times and compiled.
Let's compare this to bootstrapping. Bootstrapping in short takes a random block of history for all asset classes but rearranges them in random order. As implemented the bootstrapping option would allow the user to choose a block size (1+) in order to tailor how much momentum/return-to-mean/regime effects from history they wanted to capture, (The Pralana team would need to decide whether blocks would loop around to earlier years if the block ended too soon, or ignore those blocks, or make assumptions like they do now in the historical analysis. I would argue for user choosing one of two options: use circular history for blocks or not use the blocks at all.
The tailoring of choosing block sizes I'm suggesting fits the Pralana brand! For instance, I personally tend to use 7 year blocks in my own personal bootstraps (not done with pralana), because I want to capture some of the return-to-mean that seems to occur in history, especially between asset classes, while capturing that we have no reason to think history will unfold the way it happened to in one possible reality that occurred (depression at the start, WW2, US dominance over the world, etc). Other times I might choose a 1 year block, when I want to mimic a "statistical monte carlo" but without the problem identified above. This will completely remove momentum/return-to-mean/regime effects--just like monte carlo--but will preserve all of the aggregate statistical truths of the historical data--including correlations between assets and its fat tails. In other words, it has all the benefits of the current monte carlo without its deficiencies. At the other extreme (which I never do) you could choose huge blocks say 12 or 15 years, without circular looping, or even "without replacement" (to use stats terminology). This would be quite close to actual history but assume it unfolded in random temporal order. (Say depression at the end, WW2 at the beginning.) I'm not sure how valuable this would be, but I think the percentages shown with large blocks would still be more meaningful than the percentages shown currently in historical analysis.
Finally, I'll note that programming bootstrapping is much easier than monte carlo, because it does not depend on statistics! It simply takes a block starting from a random year. That is conceptually much easier to program, without needing to worry about inputting deviations and means and all that jazz. It's very similar to historical analysis as it exists but with a random first year and block size (rather than always using 86 and 1928).
I too am a fan of bootstrapping, but just with historical back testing. ... I am not a big fan of Monte Carlo to begin with for various reasons, and adding bootstrapping to it will make a statistical mess 😟.
Bootstrapping is always based on historical data, by definition. My apologies but I don't understand what it would mean to "add bootstrapping to monte carlo". Of course one can derive pseudo-summary statistics from a historical bootstrapping, and in fact that is often the main purpose for bootstrapping outside of the investment context. I apologize if I misunderstood your point.
Yes, it can help maintain the correlation between assets, and it produces a lot of data, but also strips out all forms of return disposition (i.e. autocorrelation) and produces return and volatility characteristics far beyond the historical market boundaries (Michael H. McClung - Living Off Your Money 2015, page 33).
I've not read McClung, but so long as you choose long enough blocks (e.g. 5-12y) you capture the auto-correlation (i.e return-to-mean) for all assets. In fact, that is perhaps the biggest advantage of bootstrapping over monte carlo! A question I've been asking myself is: what is the ideal (ie smallest) block size that accurately captures autocorrelation? One problem is that autocorrelation in assets like bonds is quite different from what we find in stocks!
At this point in my early retirement, the greatest risk for me is sequence of return risk and will be for another 5 years or so. It's hard to simulate just a certain time block out of your entire retirement to see what might happen. So I look for certainty. I do this with laddering zero coupon US Treasuries (which I talked about in another thread). I know exactly what will happen in that time frame, so I can sleep at night instead of staying up and running another simulation 😏.
I hear you! I'm in the same position. I know that at least one bootstrap program (PortfolioVisualizer.com) allows the option to have all the worst results occur at the beginning of the run! To me this is too pessimistic a way to plan; but it would capture what you're trying to do. I personally don't look for "certainty" (i.e. "fail-safe") beyond my projected essential expenses through death because that means I would likely have way too much left on the table when I die!
In spite of our differences, it does sound like you and I end up in a similar place in our handling of this uncertainty. I too cover the "floor" of my basic expenses (not covered by social security) going into the future with 90% TIP ladder/10% stocks. I then invest any part of my portfolio beyond that each year at a given risk level (in my case 50/50). My own reasons for this "safety first with the floor" is that my wife and I both come from modest backgrounds, did not have a have a high paying career, and do not have family money or safety nets. So we need to have certainty about the floor, which frees me to have uncertainty about the amount beyond the floor. I know a lot of people save "5-10 years" to cover drops; but my looking at history (and bootstrapping!) shows equity can go 30 years or so underwater. So I need to cover the floor with TIPs. (To sleep rather than run simulations, as you put it). And with TIPs being around 1.9-2.5% real right now (with 0% deviation!), and with expected equity returns being around 4-6% real but with 18% deviation, equities are much less attractive to me. I just retired this year, and preserving my money is a very different puzzle than making enough to retire! Unfortunately Pralana is not set up for the "bond ladder for your floor" approach, but I'm not sure how they would accommodate that given its complexity. If you haven't seen it, I highly recommend looking at the tpaw simulator for the safety first approach we take. (And, yes, it includes bootstrapping.)
@jkandell I thought that bootstrapping only applied to historical results but I wasn't sure, I was responding to an earlier post by @ricke.
We are definitely in a similar position 😏. I'm not to up on how TIPs work, I get zero coupon US Treasuries so that I know exactly what will happen as I let them go to maturity. I'm not to concerned about how equities will perform over time. I think if you look closely at the history of the S&P 500 there has never been a 20 time span in which it has not made money. We are at about a 80/20 asset allocation right now with the next 10 years covered by a mix of US Treasury ladders (average yield is 4.7%, I got them in Oct 2023), short term CD's and Fidelity money market. This will result in a rising equity glide path as we will not touch our equities for the next 10 years (except for this past year and now this year when I took money out of my ROTH to keep my MAGI low enough to get the enhanced ACA tax credit, not sure it will be extended into 2026 and beyond).
Can you explain more about how TIPs work and why you chose them instead of straight US Treasuries? 🧐 Thanks.
@pizzaman This thread is really getting off topic. π TIPs--treasury inflation protected bonds--are basically like Treasuries with a built-in inflation protection factor. Just like nominal Treasuries, you can buy them at auction through Treasury Direct or a broker, or on the secondary market. Just like nominal treasuries bonds/notes, they pay a coupon that is fixed for the life of the bond. And just like treasuries they come with a price set at auction/market, and are taxed federally but not by the state. The main difference with nominal treasuries is that every six months the principle is adjusted up or down with the official inflation rate. So, assuming you hold to maturity, you know exactly what your real rate of interest is. For instance, I have a TIP I am holding till 2040 that yields to maturity at 2.4% interest (plus inflation). Because nominal bonds have fixed rates (the coupons) and fixed principal, they are extremely susceptible to unexpected inflation, and I got hit hard in 2022. When you buy a TIP you know exactly what its inflation-adjusted return will be; it is guaranteed. To use your analogy, I can sleep at night. Of course nominal bonds have an implicit expected inflation built into their price. And if actual inflation matches expected inflation the TIP and nominal bond will have very similar returns. But since I am a "safety first" investor I want to know that my liabilities are covered by my bonds, not "covered unless we have a lot of inflation along the way". Of course there is a price for this insurance: often TIPs will end up paying slightly less than nominal bonds. But it is worth it to me for my liabilities that I simply cannot falter on.
@jkandell Are you using yield and principal interchangeably?
When a TIPS matures, you get either the increased (inflation-adjusted) price or the original principal, whichever is greater. You never get less than the original principal.
Federal tax due each year on interest earned. Any increase or decrease in the principal during the year may affect your federal taxes.
No state or local taxes.
The rate is fixed at auction and is never less than 0.125%.
This web site explains TIPs very well: https://www.treasurydirect.gov/marketable-securities/tips/
@pizzaman Yep. I filled some of my ladder with the recent 10 year TIP at 2.43 yield. I prefer to buy treasuries of all kind at auction since the small investor like me gets the same yield as the big guys. Outside of treasury auctions, when you get smaller amounts on the secondary market you normally have a slightly lower yield, they take on a bit to the price compared to those buying 100s of thousands of dollars worth.
Cool. So what's the inflation add-on for this 6 month period to the 2.43 yield?
Here is an article from the WSJ that you may find interesting. I have used the online tool that he discusses and it is super easy. I use a TIPS fund because I do not have a liability at any certain time in the future that I need to match but I have a healthy allocation to TIPs. Here is another TIPs website that can also be educational and useful.
Here is an article from the WSJ that you may find interesting. I have used the online tool that he discusses and it is super easy. I use a TIPS fund because I do not have a liability at any certain time in the future that I need to match but I have a healthy allocation to TIPs. Here is another TIPs website that can also be educational and useful.
@golich428 Good article! The article indicated a cost for buying the TIPS on the secondary market from the likes of Fidelity and the other big boys. If you are a customer of Fidelity, there is no cost to buy TIPS or regular US Treasuries.
@jkandell So I looked on the secondary market for TIPS via Fidelity. For the one that matures in 10 years I see this:
Basic Analytics
Price (Bid) | 100.734 |
---|---|
Price (Ask) | 100.859 |
Depth of Book | View |
Ask Yield to Worst | 2.028% |
Ask Yield to Maturity | 2.028% |
Current Yield | 2.106% |
Inflation Factor | 0.99992 |
Inflation Adjusted Price | 100.850931 |
Third Party Price | 100.732 |
Inflation Adjusted Third party Price | 100.718 |
Spread to Treasuries | -2.343 |
Treasury Benchmark | 11 YR.(4.500% 02/15/2036) |
This from a new 10 year issue:
So the interest rate paying out this 6 month period is 4.45% is that correct??
Inflation breakeven rate
With the nominal 10-year Treasury note trading with a yield of 4.64% at the auctionβs close, CUSIP 91282CML2 gets an inflation breakeven rate of 2.40%, a bit higher than recent results for this term. It means the TIPS will outperform a nominal Treasury if inflation averages more than 2.4% over the next 10 years.
That breakeven rate is high enough to make the nominal 10-year Treasury attractive, but Iβd still prefer the inflation protection the TIPS provides. Here is the trend in the 10-year inflation breakeven rate over the last 5 years, showing the fairly stable pattern in the 2.0% to 2.5% range:

So, what do you think the average inflation rate will be over the next 10 years?? Very interesting indeed 🧐
Not trying to rain on anyone's parade, just doing my research, I saw Investopedia's take on TIPS:
https://www.investopedia.com/articles/investing/102215/3-reasons-stay-away-tips.asp
Doesn't really talk about the benefits of "Safety First".