69 lines
2.6 KiB
Python
Executable File
69 lines
2.6 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
## NOTE: at present we clear 170 after tax between us
|
|
# the amounts below are 'after tax' equivalent, but also just damien
|
|
# no consideration of lump sums in my or Mandy's super (adds ~500k lump sum)
|
|
### Quote: ". So ... 60-year old male will need a lump sum of almost $500,000 to provide an annual income in retirement of $42,000 for 20 years."
|
|
### Quote: "apply the 60% rule for a comfortable retirement saving"
|
|
|
|
# THEREFORE BEST GUESS... add $40k to the number below, AND it needs to be 60% of 170 => GOAL is 102k
|
|
# SO, can retire as soon as I can get my hands on my money and just make sure we can 'manage' for 4 years for Mandys
|
|
|
|
## FINALLY, govt. says I can't get my super until I'm 60
|
|
# but, we have 100k in ME B, 100k in shares, 150k in citi & if redundant, maybe another 100k? -- thats 4.5 years, call it 3 with the new car, and being not too crazy so, maybe 57... one more 5 year contract
|
|
|
|
three_ben_sal=195641.27
|
|
ben_serv_b4_2015=18.7096
|
|
pension_factor={}
|
|
avg_serv_fraction=0.999901
|
|
avg_cont_factor=1
|
|
five_ben_sal=173450.07
|
|
ben_serv_after_2015=8.8
|
|
ben_serv_b4_2000=3.71
|
|
avg_serv_frac_at_2003=0.999646
|
|
lump_sum_fac={}
|
|
four_pct=0.04
|
|
|
|
MAX_AGE=66
|
|
|
|
|
|
# unisuper defined "globals"
|
|
|
|
# pension factor is 1.3 at age 55 and climbs by 0.04 each year to 65+
|
|
for age in range (55, MAX_AGE):
|
|
pension_factor[age]=(1.3+(age-55)*0.04)/100
|
|
|
|
# at age 52 its 20.4 with a .2 each year to 65
|
|
base_lump_sum=20.4
|
|
for age in range (52, MAX_AGE):
|
|
lump_sum_fac[age]=base_lump_sum+(age-52)*.2
|
|
|
|
# cant retire here, so update 5bs, 3bs, ben_serv, etc. up to 55 as best I can guess
|
|
|
|
# ben_serv_after just increases by 1 each year, so add 3 from 52 to 55
|
|
ben_serv_after_2015 += 3
|
|
|
|
# within 2 years, then 5bs will be what my 3bs is now (at least)
|
|
five_ben_sal = three_ben_sal
|
|
|
|
# we get a 4% increase each year, over the next 3 years, so add them when I confirm
|
|
three_ben_sal *= 1.04
|
|
three_ben_sal *= 1.04
|
|
three_ben_sal *= 1.04
|
|
|
|
# this is a rough-ass guess (its 4% / 5 more each year)
|
|
# need to make this smarter, e.g.
|
|
# year 0 - five_bs
|
|
# year 1 - five_bs / 5 * 1.04 + five_bs*4/5
|
|
# year 2 - (five_bs / 5 * 1.04 + five_bs*4/5)/5 * 1.04 + 4/5 of above
|
|
# etc.
|
|
five_ben_sal * 1.008
|
|
#five_ben_sal * 1.008
|
|
#five_ben_sal * 1.008
|
|
|
|
for age in range (55, MAX_AGE):
|
|
line1=three_ben_sal*ben_serv_b4_2015*pension_factor[age]*avg_serv_fraction*avg_cont_factor
|
|
line2=five_ben_sal*ben_serv_after_2015*pension_factor[age]*avg_serv_fraction*avg_cont_factor
|
|
line3=three_ben_sal*ben_serv_b4_2000*four_pct*avg_serv_frac_at_2003*(pension_factor[age]/lump_sum_fac[age])
|
|
print(f"Pension amount at {age} = {line1+line2+line3}" )
|