Glide Paths¶
A glide path defines how a child's 529 account allocation shifts between equities and bonds over time. This controls the blended investment return used each simulation year.
How it works¶
A GlidePath is a list of GlidePathStep entries, each specifying an age and an equity fraction (0.0 to 1.0). The engine interpolates between steps to determine the equity allocation for any given age.
The blended return for each year is:
Vanguard Target Enrollment preset¶
The vanguard_target_enrollment() function returns a glide path modeled after Vanguard's Target Enrollment funds:
This starts with a high equity allocation for young children and gradually shifts toward bonds as enrollment approaches.
Custom glide paths¶
Create a custom glide path with GlidePath and GlidePathStep:
from collegeplan import GlidePath, GlidePathStep
conservative = GlidePath(steps=[
GlidePathStep(age=0, equity_fraction=0.60),
GlidePathStep(age=10, equity_fraction=0.40),
GlidePathStep(age=18, equity_fraction=0.10),
])
Flat allocation¶
For a fixed allocation that does not change with age:
from collegeplan import flat_equity_glide_path
# 80% equities at all ages
flat = flat_equity_glide_path(0.80)
Using glide paths with children¶
Pass the glide path when creating a Child, along with equity and bond return assumptions:
from collegeplan import Child, make_public_instate_profile, vanguard_target_enrollment
child = Child(
name="Alice",
current_age=5,
cost_profile=make_public_instate_profile(),
current_529_balance=25_000,
annual_contribution=6_000,
glide_path=vanguard_target_enrollment(),
)
When a glide path is set, the Assumptions must include equity_return and bond_return fields so the engine can compute the blended return for each year.