Projects the education funding picture you declare: you declare the goal, the horizon in years, an assumed annual return, and the current balance; the page grows the balance at the declared rate and subtracts it from the goal, returning the future value, the funding gap, and a GAP_COMPUTED or GOAL_MET verdict with a full trace. Every input here is yours: the page holds no account, no plan record, no market data, and no clock.
Related journey on ApexLogics, the sister suite for personal and career decisions: Education Savings Projector and Extra-Semester Funding Gap Planner.
Declare the funding goal, the horizon, the assumed annual return, and the current balance. These are your declarations: the page never verifies them against an account or a plan record. The future value is current_balance grown at (1 + annual_return_pct/100) for years, rounded half-up to 2 decimal places (a declared convention); funding_gap is goal minus that future value. rollover_cap is optional and only shapes the overfunded note.
When the grown balance meets or exceeds the goal, the verdict is GOAL_MET and, if you declared a rollover_cap, the trace carries an overfunded-to-Roth rollover note naming it. The cap is echoed exactly as you declared it: the note never determines that any rollover is available or advisable. For context, the statutory reference for the 529-to-Roth IRA rollover is the SECURE 2.0 Act of 2022, Division T, Section 126 (Public Law 117-328, enacted 2022-12-29): a 35000 USD lifetime limit per beneficiary beginning 2024, subject to a 15-year account-age rule and annual Roth contribution limits (measured 2026-09-05; derive by reading Public Law 117-328, Division T, sec. 126). The contribution solver is out of scope for this version.