跳到主要内容
知仓学习社ZHICANG

fire-number

Compute a financial-independence (FIRE) target and years-to-reach with every assumption labeled as an assumption — plus a sensitivity table instead …

不碰外部(只输出文字)无严重或高危命中mohitagw15856/pm-claude-skills

它会碰到什么

扫了多少2 个文本文件,8 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

FIRE Number Skill

Every FIRE calculation is three assumptions wearing a number's clothing: a withdrawal rate, a real return, and the pretense that returns arrive in a convenient order. This skill does the math properly and refuses the false precision — the deliverable is a surface of outcomes with the assumptions labeled, not a single date to organize a life around.

What This Skill Produces

  • The FIRE number — annual spend ÷ withdrawal rate, with the withdrawal rate named as the choice it is
  • Years to target — at stated savings, contributions, and real return
  • The sensitivity grid — years-to-target across return (3/5/7%) × withdrawal rate (3/3.5/4%)
  • The ignored-risks list — sequence-of-returns, taxes, spending drift — stated, not buried

Required Inputs

Ask for these if not provided:

  • Current invested savings (invested — not home equity, not emergency cash)
  • Monthly contribution (realistic, not aspirational — ask which)
  • Target annual spend in retirement (today's dollars; if unknown, current spend is the honest starting guess, labeled)
  • Return and withdrawal assumptions (defaults: 5% real, 4% withdrawal — both labeled as defaults)

Programmatic Helper

python3 scripts/fire_number.py --savings 120000 --monthly 3000 --spend 60000
python3 scripts/fire_number.py --savings 120000 --monthly 3000 --spend 60000 --return 5 --wr 4 --json

Deterministic monthly compounding at a constant real return (inflation already removed — never stack an inflation adjustment on top). The script prints the sensitivity grid and its own not-modeled list.

Framework: The Honesty Rules

  • The 4% rule is a study, not a law — one country, one era, 30-year horizons; early retirees have longer horizons, which is why the grid includes 3% and 3.5%
  • Sequence risk is unmodeled and largest near the finish — a crash in year 1 of retirement ≠ a crash in year 20; say this every time
  • Real vs nominal discipline — everything here is in today's dollars; mixing in nominal market returns (~+3%) silently is the classic error
  • A range is the deliverable — "17–24 years depending on returns" is honest; "August 2043" is astrology with a spreadsheet

Output Format


FIRE Analysis: [name/scenario]

The Number and the Path

[Script output: FIRE number, years at base assumptions, sensitivity grid]

Reading the Grid

[Two sentences: the realistic range, and which assumption the user's plan is most hostage to.]

What This Model Ignores

Sequence-of-returns risk (largest near the target date) · taxes · spending drift · [anything scenario-specific].

The One Lever

[Of spend, contribution, and return: which change moves the date most for THIS user — usually spend, since it hits both sides.]

Educational model, not financial advice — verify with a licensed professional before acting on it.


Quality Checks

  • [ ] Every assumption is labeled at point of use, not in a footnote
  • [ ] The sensitivity grid appears — never a single years-to-target alone
  • [ ] Real-vs-nominal is explicit and consistent
  • [ ] Sequence-of-returns risk is named
  • [ ] The disclaimer line appears in the artifact

Anti-Patterns

  • [ ] Do not output a retirement date — output a range with its drivers
  • [ ] Do not stack inflation adjustments on a real return, or skip them on a nominal one
  • [ ] Do not treat 4% as physics — it's a parameter the grid varies
  • [ ] Do not count home equity or emergency funds in invested savings without flagging it
  • [ ] Do not present the model's output without its assumptions

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

同名技能的其他版本

有 3 个不同仓库或目录里都有叫 fire-number 的技能。它们内容并不相同,别混用: