/backtest

Market backtesting for retirement withdrawals

Primary LanguageHTMLBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

backtest

  • TODO is there a correlation between recent returns and crashes?
  • TODO getting to 100% stocks
  • TODO stepping up methods?

Useful Links

Results

ACTUAL RESULTS - withdrawFloor / Fixed

Alloc: 90.000%
|         |    init |     low |     p10 |     p25 |     med |     p75 |     p90 |
|  3.100% |  $39.53 |  $39.53 |  $46.90 |  $46.90 |  $75.75 | $110.73 | $152.90 |
|  3.110% |  $39.65 |  $39.65 |  $46.67 |  $46.67 |  $75.75 | $110.73 | $152.49 |
|  3.120% |  $39.78 |  $39.78 |  $46.42 |  $46.42 |  $75.76 | $110.73 | $152.33 |
|  3.130% |  $39.91 |  $39.91 |  $46.17 |  $46.17 |  $75.76 | $110.74 | $152.69 |
|  3.140% |  $40.03 |  $40.03 |  $45.92 |  $45.92 |  $75.77 | $110.74 | $153.04 |
|  3.150% |  $40.16 |  $40.16 |  $46.04 |  $46.04 |  $75.77 | $110.87 | $153.39 |
|  3.160% |  $40.29 |  $40.29 |  $46.17 |  $46.17 |  $75.77 | $111.05 | $153.75 |
|  3.170% |  $40.42 |  $40.42 |  $46.29 |  $46.29 |  $75.77 | $111.23 | $154.10 |

Rebalance vs Prime vs PrimeNew

100% Maximum Safe Withdrawal Rates, 50 year retirements

Method           | MSWR | Median End Portfolio
---------------------------------------------
Rebalance Fixed  | 3.3% | $2.770M
Swedroe 5/25     | 3.4% | $5.952M
Prime Harvesting | 3.4% | $2.380M
Prime Buy Stocks | 3.4% | $2.578M

98% Maximum Safe Withdrawal Rates, 50 year retirements

Method           | MSWR | Median End Portfolio
---------------------------------------------
Rebalance Fixed  | 3.5% | $2.370M
Swedroe 5/25     | 3.7% | $5.071M
Prime Harvesting | 3.7% | $2.018M
Prime Buy Stocks | 3.8% | $2.171M

96% Maximum Safe Withdrawal Rates, 50 year retirements

Method           | MSWR | Median End Portfolio
---------------------------------------------
Rebalance Fixed  | 3.5% | $2.370M
Swedroe 5/25     | 3.7% | $5.071M
Prime Harvesting | 3.8% | $1.929M
Prime Buy Stocks | 3.9% | $2.080M

Raw Results (MSWR, Success%, Median End Portfolio)

Years: 50

Rebalance Fixed
----------------
("RateResult",3.300%,100.000%,$2.770M)
("RateResult",3.400%,97.849%,$2.541M)
("RateResult",3.500%,97.849%,$2.370M)
("RateResult",3.600%,92.473%,$2.186M)
("RateResult",3.700%,91.398%,$2.028M)
("RateResult",3.800%,90.323%,$1.812M)
("RateResult",3.900%,82.796%,$1.496M)
("RateResult",4.000%,79.570%,$1.299M)
("RateResult",4.100%,74.194%,$1.114M)
("RateResult",4.200%,66.667%,$0.871M)
("RateResult",4.300%,63.441%,$0.744M)
("RateResult",4.400%,60.215%,$0.559M)
("RateResult",4.500%,56.989%,$0.374M)

Swedroe 5/25 bands
------------------
("RateResult",3.300%,100.000%,$6.289M)
("RateResult",3.400%,100.000%,$5.952M)
("RateResult",3.500%,98.925%,$5.645M)
("RateResult",3.600%,97.849%,$5.347M)
("RateResult",3.700%,97.849%,$5.071M)
("RateResult",3.800%,93.548%,$4.833M)
("RateResult",3.900%,92.473%,$4.621M)
("RateResult",4.000%,91.398%,$4.404M)
("RateResult",4.100%,88.172%,$4.176M)
("RateResult",4.200%,83.871%,$3.752M)
("RateResult",4.300%,78.495%,$3.419M)
("RateResult",4.400%,76.344%,$3.137M)
("RateResult",4.500%,73.118%,$2.850M)

Prime Harvesting
----------------
("RateResult",3.300%,100.000%,$2.477M)
("RateResult",3.400%,100.000%,$2.380M)
("RateResult",3.500%,98.925%,$2.276M)
("RateResult",3.600%,97.849%,$2.183M)
("RateResult",3.700%,97.849%,$2.018M)
("RateResult",3.800%,96.774%,$1.929M)
("RateResult",3.900%,92.473%,$1.840M)
("RateResult",4.000%,92.473%,$1.762M)
("RateResult",4.100%,91.398%,$1.687M)
("RateResult",4.200%,87.097%,$1.611M)
("RateResult",4.300%,86.022%,$1.497M)
("RateResult",4.400%,81.720%,$1.405M)
("RateResult",4.500%,75.269%,$1.236M)

Prime Harvesting 2
------------------
("RateResult",3.300%,100.000%,$2.664M)
("RateResult",3.400%,100.000%,$2.578M)
("RateResult",3.500%,98.925%,$2.493M)
("RateResult",3.600%,98.925%,$2.398M)
("RateResult",3.700%,97.849%,$2.262M)
("RateResult",3.800%,97.849%,$2.171M)
("RateResult",3.900%,96.774%,$2.080M)
("RateResult",4.000%,92.473%,$1.958M)
("RateResult",4.100%,91.398%,$1.870M)
("RateResult",4.200%,90.323%,$1.734M)
("RateResult",4.300%,87.097%,$1.640M)
("RateResult",4.400%,83.871%,$1.548M)
("RateResult",4.500%,75.269%,$1.436M)

Notes

  • 6040 is optimal for PrimeNew
  • At higher stock allocations prime strategies lose their edge
  • At 8020 Prime New is identical to Prime
  • Both still outperform Basic at all portfolios, but less with more stocks
  • 120 / 80 targets for prime new are ideal

| year | S100 | S95 | S90 | S85 | S80 | S75 | S70 | S65 | S60 | S55 | S50 | | 1 |100.000% |100.000% |100.000% |100.000% |100.000% |100.000% |100.000% |100.000% |100.000% |100.000% |100.000% | | 2 | 38.200% | 39.100% | 40.100% | 40.900% | 41.600% | 41.900% | 42.200% | 42.500% | 42.800% | 43.000% | 43.300% | | 3 | 24.000% | 24.400% | 24.800% | 25.100% | 25.500% | 25.900% | 26.200% | 26.600% | 26.800% | 26.900% | 27.100% | | 4 | 16.600% | 17.300% | 18.000% | 18.600% | 18.900% | 19.000% | 19.100% | 19.200% | 19.200% | 19.300% | 19.400% | | 5 | 13.000% | 13.600% | 14.200% | 14.500% | 14.500% | 14.600% | 14.700% | 14.800% | 14.800% | 14.900% | 15.000% | | 6 | 11.100% | 11.600% | 12.100% | 12.100% | 12.200% | 12.200% | 12.200% | 12.200% | 12.200% | 12.300% | 12.300% | | 7 | 9.500% | 9.900% | 10.300% | 10.400% | 10.400% | 10.500% | 10.500% | 10.500% | 10.500% | 10.600% | 10.600% | | 8 | 8.700% | 8.800% | 9.000% | 9.100% | 9.200% | 9.400% | 9.400% | 9.400% | 9.400% | 9.500% | 9.500% | | 9 | 7.800% | 7.900% | 8.000% | 8.100% | 8.200% | 8.300% | 8.400% | 8.500% | 8.600% | 8.600% | 8.600% | | 10 | 7.000% | 7.100% | 7.200% | 7.300% | 7.300% | 7.400% | 7.500% | 7.500% | 7.600% | 7.700% | 7.700% | | 11 | 6.500% | 6.500% | 6.600% | 6.700% | 6.800% | 6.800% | 6.900% | 6.900% | 7.000% | 7.000% | 7.100% | | 12 | 6.000% | 6.100% | 6.200% | 6.200% | 6.300% | 6.400% | 6.400% | 6.500% | 6.500% | 6.500% | 6.600% | | 13 | 5.700% | 5.800% | 5.800% | 5.900% | 5.900% | 6.000% | 6.000% | 6.100% | 6.100% | 6.100% | 6.200% | | 14 | 5.400% | 5.500% | 5.600% | 5.600% | 5.700% | 5.700% | 5.700% | 5.800% | 5.800% | 5.800% | 5.900% | | 15 | 5.300% | 5.300% | 5.400% | 5.400% | 5.500% | 5.500% | 5.500% | 5.600% | 5.600% | 5.600% | 5.700% | | 16 | 5.100% | 5.100% | 5.200% | 5.200% | 5.300% | 5.300% | 5.300% | 5.400% | 5.400% | 5.400% | 5.400% | | 17 | 4.900% | 5.000% | 5.000% | 5.000% | 5.100% | 5.100% | 5.100% | 5.200% | 5.200% | 5.200% | 5.200% | | 18 | 4.700% | 4.800% | 4.800% | 4.900% | 4.900% | 4.900% | 4.900% | 5.000% | 5.000% | 4.900% | 4.900% | | 19 | 4.600% | 4.700% | 4.700% | 4.700% | 4.800% | 4.800% | 4.700% | 4.700% | 4.700% | 4.700% | 4.700% | | 20 | 4.400% | 4.500% | 4.600% | 4.600% | 4.600% | 4.600% | 4.600% | 4.500% | 4.500% | 4.500% | 4.500% | | 21 | 4.300% | 4.400% | 4.400% | 4.400% | 4.400% | 4.400% | 4.400% | 4.400% | 4.400% | 4.400% | 4.400% | | 22 | 4.100% | 4.300% | 4.300% | 4.300% | 4.300% | 4.300% | 4.300% | 4.300% | 4.300% | 4.300% | 4.200% | | 23 | 4.100% | 4.200% | 4.200% | 4.200% | 4.200% | 4.200% | 4.200% | 4.200% | 4.200% | 4.200% | 4.100% | | 24 | 4.000% | 4.100% | 4.100% | 4.100% | 4.100% | 4.100% | 4.100% | 4.100% | 4.100% | 4.100% | 4.000% | | 25 | 3.900% | 4.000% | 4.000% | 4.000% | 4.000% | 4.000% | 4.000% | 4.000% | 4.000% | 4.000% | 4.000% | | 26 | 3.900% | 4.000% | 4.000% | 4.000% | 4.000% | 3.900% | 3.900% | 3.900% | 3.900% | 3.900% | 3.900% | | 27 | 3.800% | 3.900% | 3.900% | 3.900% | 3.900% | 3.900% | 3.900% | 3.900% | 3.800% | 3.800% | 3.800% | | 28 | 3.800% | 3.900% | 3.900% | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.700% | | 29 | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.800% | 3.700% | 3.700% | 3.700% | | 30 | 3.700% | 3.800% | 3.800% | 3.800% | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.600% | | 31 | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.600% | 3.600% | 3.600% | | 32 | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.700% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | | 33 | 3.700% | 3.700% | 3.700% | 3.700% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.500% | | 34 | 3.700% | 3.700% | 3.700% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.500% | 3.500% | | 35 | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.500% | 3.500% | 3.500% | | 36 | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.500% | 3.500% | 3.500% | 3.500% | | 37 | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.600% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | | 38 | 3.600% | 3.600% | 3.600% | 3.600% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | | 39 | 3.600% | 3.600% | 3.600% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | | 40 | 3.600% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | 3.400% | | 41 | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | 3.300% | | 42 | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | | 43 | 3.500% | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | | 44 | 3.500% | 3.500% | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | | 45 | 3.500% | 3.500% | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | | 46 | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.200% | | 47 | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | | 48 | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | | 49 | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | | 50 | 3.400% | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | | 51 | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | | 52 | 3.400% | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | | 53 | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | | 54 | 3.400% | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.100% | | 55 | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.100% | | 56 | 3.400% | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.100% | | 57 | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.100% | | 58 | 3.400% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.200% | 3.100% | | 59 | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.100% | 3.100% | | 60 | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.300% | 3.200% | 3.200% | 3.200% | 3.100% | 3.100% |