This is going to be a rather abstract post on the safe rate of withdrawal because too much ink has been spent on this problem.
I think the bigger tragedy is that too little code has been written to address this issue.
As of this week, I have been able to inch closer to resolving this for retail investors by combining several programs I wrote on Python.
Here's how I think the issue can be resolved once and for all:
a) Define a retirement portfolio that generally works and is uncontroversial.
This can be done by any advisor. I did this with a 50/50 portfolio of VT and AGG. A large global equity ETF combined with a US Govt Bond ETF.
Once we have defined this, we can look at historical returns. In such a case, we programmatically find out the statistics of using such a portfolio over the past 10 years. My program output looks like this....