Educational tool only — not financial advice. Past performance does not predict future results. By using this site you accept our Terms and Privacy Policy; consult a qualified professional before making financial decisions.

How It Is Calculated

The data, formulas, and withdrawal modes used by the current calculator

Full Walkthrough

Methodology Overview

The current app uses monthly historical backtesting. It evaluates every possible 30-year monthly retirement window in the January 1928 through December 2021 dataset, then compares the withdrawal rate entered in the app with each window's break-even withdrawal rate.

1,128

Monthly data points
Jan 1928 - Dec 2021

769

Overlapping 30-year
monthly start dates

95.97%

4% success rate
inflation-adjusted, 60/40

3.8316%

Worst-case sustainable rate
inflation-adjusted, 60/40

Data Sources

Monthly Return Series
  • S&P 500 total return: Robert Shiller monthly price, dividend, and CPI data. Monthly stock return is calculated as (Pt + Dt/12) / Pt-1 - 1.
  • 3-month Treasury Bills: FRED TB3MS monthly observations from 1934 onward; 1928-1933 values are estimated from annual T-bill returns and flagged in the dataset.
  • 10-year Treasuries: Shiller long-rate data, equivalent to FRED GS10 from 1953 onward, converted from yields to monthly total returns with a duration-plus-convexity approximation.
  • CPI: Shiller CPI values, used only when inflation-adjusted withdrawals are selected.

All series are reproducible: the build script and raw inputs are part of the project repository.

Portfolio Assumptions
  • The stock allocation earns the S&P 500 total return.
  • The non-stock allocation earns a bond mix of 30% 3-month T-bills and 70% 10-year Treasury returns.
  • The portfolio is treated as rebalanced to the selected stock/bond allocation each month.
  • Shiller prices are monthly averages of daily closes, which slightly smooths month-to-month volatility relative to point-in-time closes (~15.5% vs ~18.5% annualized).
  • Overlapping 30-year windows share data, so the 769 trials are not 769 independent observations.

Withdrawal Modes

The withdrawal mode changes the dollar amount withdrawn each month. It does not change the market returns, CPI data, allocation, or retirement window.

Inflation-Adjusted

This is the classic 4% rule. The first monthly withdrawal is based on the initial portfolio and withdrawal rate. Each later monthly withdrawal is scaled by that trial's realized CPI change since the trial's first month. The intent is to keep spending at roughly the same purchasing power.

Base withdrawal = Initial Portfolio x Withdrawal Rate / 12

Monthly withdrawal = Base withdrawal x Current CPI / Starting CPI

Fixed Nominal

The monthly withdrawal stays the same dollar amount for the entire trial. This usually looks safer because inflation reduces the real value of the spending over time.

Base withdrawal = Initial Portfolio x Withdrawal Rate / 12

Monthly withdrawal = Base withdrawal every month

Same Inputs, Different Results

These are the current engine results for the same inputs used by the quick calculator example: $1,000,000 portfolio, 4.0% withdrawal rate, 60% stocks, and 30 years.

Mode Monthly Withdrawal Successful Trials Success Rate Worst-Case Sustainable Rate Binding Period
Inflation-adjusted Starts at $3,333.33, then follows CPI 738 of 769 95.97% 3.8316% Dec 1965 - Nov 1995
Fixed nominal $3,333.33 every month 769 of 769 100.00% 4.0827% Oct 1929 - Sep 1959
Important: Fixed nominal withdrawals are not the same as the classic 4% rule. They become easier for the portfolio when prices rise because the retiree is spending less in inflation-adjusted terms.

Monthly Calculation Example

This example uses the same inputs as above and the first month in the dataset, January 1928.

1Historical Returns

Date: January 1928

  • S&P 500 total return: +0.7716%
  • Bond mix return: +0.2751%
  • CPI: 17.3
2Portfolio Return

Allocation: 60% stocks / 40% bonds

= (0.60 x 0.007716) + (0.40 x 0.002751)

= 0.004630 + 0.001100

= 0.005730, or +0.5730%

3Withdrawal

Base monthly withdrawal:

$1,000,000 x 0.04 / 12 = $3,333.33

Because January 1928 is the starting month, current CPI equals starting CPI. Both modes withdraw $3,333.33 in month one.

4Portfolio Update

Apply return:

$1,000,000 x 1.005730 = $1,005,730

Subtract withdrawal:

$1,005,730 - $3,333 = $1,002,397

End of month value: $1,002,396.89

How Inflation Adjustment Changes Later Months

In the January 1928 trial, CPI moved from 17.3 in January to 17.1 in February. The inflation-adjusted withdrawal for February is lower because that month had deflation in the source CPI series.

Inflation-adjusted:

$3,333.33 x 17.1 / 17.3 = $3,294.80

Fixed nominal:

$3,333.33

The same rule works in the other direction. When CPI rises, inflation-adjusted withdrawals rise; fixed nominal withdrawals do not.

Trial Period Analysis

How Every Scenario Is Tested

We slide a 360-month window through the 1,128-month dataset:

  • Trial 1: January 1928 - December 1957
  • Trial 2: February 1928 - January 1958
  • Trial 3: March 1928 - February 1958
  • ...
  • Trial 769: January 1992 - December 2021

Each trial uses the actual monthly return and CPI sequence from its own start date through its own end date.

769

Total trial periods


738

Inflation-adjusted 4% successes at 60/40


95.97%

Success rate

Mathematical Formulation

Portfolio Value

For each month in a trial, the portfolio earns the blended return first, then the withdrawal is subtracted.

Vt+1 = Vt x (1 + Rt+1) - Wt+1

Wt+1 is either CPI-scaled or fixed nominal, depending on the selected withdrawal mode.

Portfolio Return

The monthly portfolio return is the weighted average of the stock and bond-mix returns.

Rt = Stock Weight x Stock Returnt + Bond Weight x Bond Returnt

Bond return is 30% T-bills plus 70% 10-year Treasury returns.

Break-Even Rate and Success Rate

For each 30-year historical window, the engine computes the withdrawal rate that would leave the portfolio exactly at $0 at the end of the window. A trial succeeds when the entered withdrawal rate is below that trial's break-even rate. The success rate shown in the app is the percentage of trials that succeed.

Success Rate = Successful Trials / Total Trials

Important Limitations

What This Analysis Includes
  • Monthly historical U.S. market returns from the dataset above
  • Monthly withdrawals
  • Optional CPI-based withdrawal adjustments
  • Static stock/bond allocation selected by the user
What This Analysis Does Not Include
  • Taxes
  • Investment fees
  • Rebalancing costs
  • Social Security, pensions, or other outside income
  • Spending changes in response to life events or market conditions
Educational use only: Historical backtesting does not guarantee future results and should not be treated as personalized financial advice.

Academic Foundation & References

Foundational Research
  • Bengen, W.P. (1994). "Determining Withdrawal Rates Using Historical Data." Journal of Financial Planning, 7(4), 171-180.
  • Cooley, P.L., Hubbard, C.M., & Walz, D.T. (1998). "Retirement Savings: Choosing a Withdrawal Rate That Is Sustainable." AAII Journal, 20(2), 16-21.
  • Pfau, W.D. (2010). "An International Perspective on Safe Withdrawal Rates from Retirement Savings: The Demise of the 4 Percent Rule?" Journal of Financial Planning, 23(12), 52-61.
Data Sources Used by This App
  • Federal Reserve Economic Data (FRED): https://fred.stlouisfed.org
  • Robert Shiller: S&P 500 price, dividend, CPI, and long-rate data accompanying Irrational Exuberance
  • NYU Stern / Aswath Damodaran: Annual T-bill return estimates used for the 1928-1933 monthly T-bill bridge