Skip to content
RyFinancePublic

About

A household's money, year by year: a Canadian retirement and savings planner (Rust + Tauri Mac app). Nothing leaves your computer.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pathways: a household's money, year by year

Pathways

A household's money, year by year. Enter who you are, what you own and what you want to spend; Pathways searches about a thousand plans, tests the best against 2,000 market histories and tells you, in plain sentences, what to do and why:

  • when to start CPP and Old Age Security
  • which account to draw from each year, and how fast to empty the RRSP
  • how to save while you're working (TFSA or RRSP first)
  • how much you can spend, how much tax you'll pay over a lifetime, and what's left

It works at any age: for a 30-year-old it is a savings plan, for a 60-year-old a draw-down plan. A Mac app, about 10 MB. Nothing leaves your computer.

A planning tool, not advice. Rules: Canada (federal) and British Columbia, 2026.

How it is built

Part What it does
rules/ca-bc-2026.toml The rulebook: brackets, credits, CPP, OAS, RRIF minimums, account limits. Every value names the official page it was read from; values not re-confirmed are marked check. A new tax year is a new file, not new code.
crates/engine (Rust) tax (one person, one year), sim (one household, one policy, one market path), plan (search, test, explain), returns (history resampled five years at a time).
crates/bridge One door between the interface and the engine.
crates/cli pathways plan in a terminal; pathways serve runs the interface in a browser for development.
app/ The desktop app (Tauri): ui/ is plain HTML, CSS and JavaScript with hand-drawn SVG charts.

A plan is a policy, a handful of decisions small enough to read aloud: CPP and OAS start ages, a taxable-income level to draw the RRSP up to each year, the order of the other accounts, and how to save. The planner tries 1,080 of them on a few histories, then runs the best eight (and the usual rule of thumb) through all 2,000. The whole search takes about a third of a second.

No language model does the arithmetic, or anything else here: the inputs are a short form, because a misread number would quietly produce a wrong plan.

Build

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh    # Rust, once
cargo test --release                  # the engine against hand-worked tax examples
cargo run --release -p pathways-cli -- plan     # a plan in the terminal
tools/build_app.sh                    # Pathways.app into ~/Applications

What it leaves out

  • Provinces other than B.C.; the Guaranteed Income Supplement; pension bridges.
  • Dividends: the taxable account's yearly payout is taxed as interest, which overstates the tax a little.
  • Mortality: both people are assumed to live to the planning age.
  • The future: today's rules and thresholds are held constant in real terms.
  • Markets: United States stock and bond history, 1928 to 2025 (Aswath Damodaran's public tables), less two points a year on stocks and fund fees. A Canadian portfolio differs.

Sources

All in rules/ca-bc-2026.toml and on the app's Rulebook page: CRA tax rates and the T4127 payroll formulas, the TD1 and TD1BC forms, the CRA limits table, Canada.ca's CPP and OAS pages, the CRA RRIF factor chart, and the B.C. government's rate table. Read 2026-11-09.

MIT licensed.

About

A household's money, year by year: a Canadian retirement and savings planner (Rust + Tauri Mac app). Nothing leaves your computer.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages