Questions I would like to know:

◼
  • How long will a retirement portfolio last?
  • ◼
  • Would 4% retirement distribution rate or withdrawal of 100K$ per year work out?
  • I start working and saving at the age of 20 and plan to retire at 65 (All parameter values can be adjusted). My initial wage, W[t=20], is $50,000 per year. The wage grows by 3% per year (gW) until 65. I save 10% (s) of my wage every year, and the rate (r) of return on savings or capital, k[t], is 5% per year. The initial value of capital is zero. After retirement at 65, there is no wage income and thus no saving, and the capital still grows at 5% per year. At the retirement, I have two options. I can choose to either (1) withdraw 4% of the savings per year or (2) withdraw a fixed, constant amount.

    Stock and Flow Diagram: income (W), capital (K), saving

    Model Equations

    W[t]
    t
    =
    ift<=retirementage,
    gW*W[t]
    else,
    0
    ,​​W[t]=wage($/Yr),​​gW=annualgrowthrateofwage(%),​​retirementage=65​​
    (
    1
    )
    K[t]
    t
    =
    ift<=retirementage,
    s*W[t]+r*K[t],
    else,
    -d1*K[t]+r*K[t](*option1*),or,-d2+r*K[t](*option2*)
    ​​K[t]=savingsorcapital($),​​s=savingfraction(%),e.g.,"10% of W[t] is saved annually"​​d1=constantpercentageofwithdrawfromK[t],e.g.,"4% of K[t] is withdrawn annually",​​d2=constantamountofwithdrawfromK[t],e.g.,"100K$/year is withdrawn annually",​​r=rateofreturnforsavings(%),e.g.,"r=5%",
    (
    2
    )
    W[tMin]=w0,K[tMin]=k0​​tMin=20,tMax=100
    (
    3
    )

    Simulate: These values can be changed for different scenarios

    In[]:=
    tMin=20(*thefirstyearofinvesting*);​​tMax=100(*endofsimulationyear*);​​retireYear=65(*retirementyear*);​​​​w0=50.0(*initialwageatthefirstyearofinvesting(tMin),$/year*);​​k0=0.0(*initialsavingsatthefirstyearyoustartinvesting(tMin),$*);​​​​gW=0.03(*gW=3%.annualgrowthrateofwage*);​​s=0.10(*s=10%.savingfraction*);​​​​r=0.05(*r=5%,returnoncapital*);​​​​(*Twowithdrawoptions*)​​d1=0.04(*d=5%,widthdrawthed%ofcapital(%/year)*);​​d2=80.0(*d2=incomerequaredatretirement($/year)*);
    In[]:=
    ndsol=NDSolve[{​​(*Iwillretireat65*)​​w'[t]==If[t<=retireYear,gW*w[t],0.0],​​​​(*Option2:aconstantwithdrawlamountafterretirement:d2*)​​k'[t]==If[t<=retireYear,s*w[t]+r*k[t],-d2+r*k[t]],​​​​(*Option1:acontantpercentageofwithdrawafterretirement*)​​(*k'[t]==If[t<=retireYear,s*w[t]+r*k[t],-d1*k[t]+r*k[t]]*)​​​​w[tMin]==w0,k[tMin]==k0(*initialvaluesofwageandsavingsatt=tMin*),​​​​WhenEvent[t>retireYear,{w[t]->0.0}](*aftert=65,nowageincome*)},​​​​{k,w},{t,tMin,tMax},​​​​Method->{"TimeIntegration"->{"ExplicitRungeKutta","DifferenceOrder"->4}}]
    Out[]=
    kInterpolatingFunction
    Domain: {{20.,100.}}
    Output: scalar
    ,wInterpolatingFunction
    Domain: {{20.,100.}}
    Output: scalar
    

    Plot the retirement scenario

    In[]:=
    ​​PlotEvaluate[w[t]/.ndsol],
    ,​​PlotEvaluate[k[t]/.ndsol],
    ,​​PlotIf[t<=retireYear,0.0,d2],
    ​​//Row
    Out[]=

    Examples of 3 scenarios:

    ◼
  • Scenario 1 (My savings will earn a 5% rate of return thorough lifetime and I withdraw 100K$/year after retirement)
  • ◼
  • Begin saving when I am 20 years old and plan to retire at 65 with an initial salary of $50,000 and no initial savings. My annual salary will increase by an average of 3%, and I’ll save 10% of my salary each year until retirement. My savings will earn a 5% rate of return (This is a key assumption!) between 20 and 65 years. After I reach 65, I’ll withdraw $100,000 annually from my savings.
  • ◼
  • The saving is depleted at 90 years
  • ◼
  • Scenario 2 (My savings will earn a 5% rate of return thorough lifetime and I withdraw 80K$/year after retirement):
  • ◼
  • The savings last beyond 100 years old
  • ◼
  • Scenario 3 (My savings will earn a 6% rate of return thorough lifetime and I withdraw 100K$/year after retirement)
  • ◼
  • All parameter values remain unchanged as the Scenario 1 except my savings will earn a 6% rate of return, instead of 5% return .
  • ◼
  • The saving continue to grow to 3 million dollars.
  • Table

    Key learning

    ◼
  • The key parameter throughout one’s lifetime is the overall rate of return on savings (r). For example, comparing a 5% return to a 6% return will determine whether my savings can last or if I will run out of saving
  • ◼
  • The saving rate (s) is also another key parameter.
  • ◼
  • The key fact in post-retirement financial planning hinges on the difference between the rate of return on my investments and the amount or percentage I withdraw. In simple terms, it’s the gap between what I am earning from the savings (i.e., financial gain or inflow) and what I am spending (withdrawals or outflow). When this gap is small but positive, it results in the ongoing growth of my financial assets. Conversely, if the gap is negative, it leads to a depletion of my savings.
  • CITE THIS NOTEBOOK

    Dynamical model for retirement planning: how much to save and how much to withdraw​
    by Sangdon Lee​
    Wolfram Community, STAFF PICKS, October 19, 2023
    ​https://community.wolfram.com/groups/-/m/t/3052634