Skip to content

Formulas

A formula replaces a fixed number with an expression FinZot recomputes each year from the plan’s live state, such as net worth, age, balances, or the year’s return. Travel spending set to net_worth * 1% then rises and falls with the portfolio instead of holding a preset figure.

The plan can also decide when and how much for itself, keyed to conditions it reaches rather than dates you set. A milestone that fires on invested_assets > FUTURE_DOLLARS(2_000_000) retires the household the first year invested assets clear an inflation-adjusted $2M, rather than in a year you picked. Everything timed to that milestone moves with it. A withdrawal wrapped in IF(PCT_CHANGE(invested_assets, 1) < -0.20, ...) cuts spending only after a down year.

Each trial reaches those conditions differently. It draws its own slice of market history, so invested_assets, portfolio_return, and the values LAG and ROLLING_* read back all differ. Retirement triggers in a different year in each trial, and in some it never triggers. That changes what the Monte Carlo reports. It no longer reports how often one fixed schedule survives. It reports how often a plan that adjusts survives, with its milestones and spending policies tested trial by trial rather than assumed to hold.

These pages cover the language, meaning syntax, operators, and functions, and the planner context, meaning the variables a formula reads.

  • Formula Language — The spreadsheet-style syntax, operators, and functions used to customize FinZot’s calculations.
  • Planner Context — The live variables and helper functions a formula can read, such as net worth, age, balances, income, and returns.