|
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Two new tables and three new columns on `scenario` to give the ProjectionLab-style UI a place to land: - `scenario` gains `kind` (cartesian | user), `name`, `description`, `parent_scenario_id`. Existing Cartesian flow keeps `kind='cartesian'` by default; user-defined scenarios point `parent_scenario_id` at the base they cloned from (NULL for root). - `life_event` — timed events on a scenario timeline: retirement, kid born, mortgage payoff, sabbatical, inheritance, etc. `year_start` and `year_end` are scenario-relative (year 0 = today). `delta_gbp_per_year` covers ranged effects; `one_time_amount_gbp` covers one-shot impacts. `enabled` lets the UI toggle without delete. - `retirement_goal` — user-defined success criteria (target_nw, never_run_out, inheritance, ...). `comparator` + `success_threshold` let the goal say "≥ £2M at year 25 in ≥ 90% of paths". Migration 0002 adds the columns + tables idempotently. 145 tests; mypy strict + ruff clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| conftest.py | ||
| test_cli.py | ||
| test_db_schema.py | ||
| test_e2e.py | ||
| test_ingest_wealthfolio_pg.py | ||
| test_reporters_pg.py | ||
| test_returns.py | ||
| test_scenarios.py | ||
| test_simulator.py | ||
| test_strategies.py | ||
| test_tax_base.py | ||
| test_tax_other_regimes.py | ||
| test_tax_uk.py | ||