zfin/examples/pre-retirement-spending/projections.srf

49 lines
2.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!srfv1
# Pre-retirement projection: target spending only.
#
# Pat (born 1981) and Sam (born 1983) want to spend $80k/yr in
# retirement (today's dollars, CPI-adjusted). Combined annual
# contribution while working: $80k/yr.
#
# This file exercises the target-spending input - the user has
# anchored a spending number (`target_spending:num:80000`) but no
# retirement date. The projections command searches for the
# earliest accumulation length that sustains that spending at each
# configured (horizon × confidence) pair, renders the resulting
# grid, and promotes one cell into the Accumulation phase block as
# the headline. The default promotion rule prefers an age-of-death
# (`horizon_age`) column at 99% confidence - the "plan to the last
# survivor" answer - falling back to the longest numeric horizon that
# keeps the oldest person under age 100. See
# `pre-retirement-spending-target/` for the explicit-override variant.
# Asset allocation target (80% stocks / 20% bonds - typical pre-retirement)
type::config,target_stock_pct:num:80
# Distribution-phase horizons to simulate
type::config,horizon:num:25
type::config,horizon:num:35
# Plan through age 95 - anchored on the youngest partner (the last
# survivor), so the money lasts until they reach 95.
type::config,horizon_age:num:95
# Annual household contribution to retirement accounts
type::config,annual_contribution:num:80000
type::config,contribution_inflation_adjusted:bool:true
# Target retirement spending - the projections command searches for
# the earliest accumulation year at which this spending level is
# sustainable across each configured (horizon × confidence) pair.
type::config,target_spending:num:80000
type::config,target_spending_inflation_adjusted:bool:true
# Birthdates (drives life-event ages even without a configured retirement date)
type::birthdate,date::1981-04-12
type::birthdate,date::1983-09-08,person:num:2
# Social Security at age 70 (more conservative claim age)
type::event,name::Social Security (Pat),start_age:num:70,person:num:1,amount:num:38400
type::event,name::Social Security (Sam),start_age:num:70,person:num:2,amount:num:36000
# College tuition for the kids - 4-year overlap when Pat is age 50-53
type::event,name::College Tuition,start_age:num:50,person:num:1,duration:num:4,amount:num:-55000