mirror of
https://github.com/we-promise/sure.git
synced 2026-05-29 23:39:03 +00:00
- IncomeStatement#trimmed_mean_expense(months:, trim_pct:) — trailing-N- month mean monthly expense with the top/bottom trim_pct% of months dropped, so one-off spikes don't skew the anchor. Family#retirement_ spending_baseline now uses it (was median). - Goal::Retirement#fi_number — 25× the annual target (4% rule). - "Why this target?" card on the show page: Last-12-months anchor → Target → FI number (25×), with a "Use my average" button that sets target_spend to the trimmed-mean baseline. Money is privacy-sensitive. - Header gains a green-dot "Active plan" DS::Pill badge when projectable. Tests: trimmed_mean returns non-negative; fi_number = 25× annual target; baseline returns Money. Rubocop + erb_lint clean.