/personal-cfo — Personal financial scenario modeling skill
When you want to model personal financial scenarios — house purchase + rental income (ADU, bedroom rentals, house-hacking), renovation budgets, monthly cash flow, big-purchase decisions, savings/investment what-ifs for a household.
by coreyhaines31·MIT license·★ 855 Stars on the repo·GitHub ↗
npx degit coreyhaines31/makerskills/skills/personal-cfo#main ~/.claude/skills/personal-cfoChecked ·commit main
Inside this skill
SKILL.md · the author's own words# /personal-cfo — Personal financial scenario modeling This skill is for a household (you + partner): housing decisions, monthly cash flow, big purchases, scenario what-ifs. Pair it with a busin… ## Step 1 — Pick the scenario type | Invocation | Type | What it models | |---|---|---| | `/personal-cfo house` (default for now) | **house** | Buy a house + rental income scenarios (ADU / bedrooms / combinations) + renovations… | `/personal-cfo refi` | **refi** | Refinancing scenarios | | `/personal-cfo cash-flow` | **cash-flow** | Generic monthly cash flow (income, expenses, savings rate) | | `/personal-cfo big-purchase` | **big-purchase** | Should we buy X (car, education, equipment) — cash vs finance vs lease comparisons | | `/personal-cfo side-income` | **side-income** | Adding a side income stream — break-even, tax implications | | `/personal-cfo savings-what-if` | **savings-what-if** | What if we put $X into Y for N years — index funds, real estate, etc. | For v0.1, only the **house** template is fleshed out. Others are sketched in `references/templates/` as stubs.
Word-for-word excerpt, not a result. Read the full SKILL.md ↓
Files of /personal-cfo — Personal financial scenario modeling
Show the full text183 lines
/personal-cfo — Personal financial scenario modeling
This skill is for a household (you + partner): housing decisions, monthly cash flow, big purchases, scenario what-ifs. Pair it with a business-books CFO skill if you also run one for a company — the DNA is the same, the domain is different.
Step 1 — Pick the scenario type
| Invocation | Type | What it models |
|---|---|---|
/personal-cfo house (default for now) |
house | Buy a house + rental income scenarios (ADU / bedrooms / combinations) + renovations + monthly cash flow |
/personal-cfo refi |
refi | Refinancing scenarios |
/personal-cfo cash-flow |
cash-flow | Generic monthly cash flow (income, expenses, savings rate) |
/personal-cfo big-purchase |
big-purchase | Should we buy X (car, education, equipment) — cash vs finance vs lease comparisons |
/personal-cfo side-income |
side-income | Adding a side income stream — break-even, tax implications |
/personal-cfo savings-what-if |
savings-what-if | What if we put $X into Y for N years — index funds, real estate, etc. |
For v0.1, only the house template is fleshed out. Others are sketched in references/templates/ as stubs.
Step 2 — Gather inputs
Ask in a structured batch. For house mode, see references/templates/house.md for the full input questionnaire. Core fields:
Property
- Purchase price
- Down payment (% or $)
- Mortgage rate + term (years)
- Property taxes (annual)
- HOA (monthly, if any)
- Homeowner's insurance (monthly)
- Closing costs (estimate)
Renovations / repairs
- Day-1 renovations (line items with estimates — kitchen, bath, ADU buildout, etc.)
- Year-1 expected repairs
- Annual maintenance budget (rule of thumb: 1% of purchase price)
Rental scenarios (for the house mode)
- ADU monthly rent estimate + vacancy assumption (typical: 5–8%)
- Bedroom 1 monthly rent + vacancy
- Bedroom 2 monthly rent + vacancy
- Utilities split assumption (who pays what)
- Property management cost (if not self-managing)
Personal
- Current monthly housing cost (rent or current mortgage)
- Combined household income
- Marginal tax bracket (for mortgage interest + rental income calcs)
- Time horizon for the analysis (typical: 5 yr, 10 yr, 30 yr)
If anything's fuzzy, ask. Don't proceed with placeholder numbers — financial models with wrong inputs are dangerous.
Step 3 — Build the scenarios
For the house mode, default scenarios to compare:
| Scenario | Description |
|---|---|
| Baseline | Own + live in, no rental income |
| A: ADU only | Rent the ADU, live in main house |
| B: 1 bedroom only | House-hack 1 bedroom, keep ADU empty (or for guests) |
| C: 2 bedrooms only | House-hack 2 bedrooms, ADU empty |
| D: ADU + 1 bedroom | Both ADU and 1 bedroom rented |
| E: ADU + 2 bedrooms | Maximum rental |
| F: ADU + bedrooms (year 2+) | Year 1: just ADU while renovating. Year 2+: add bedrooms after partner's comfort |
Let the user customize the scenario list — every house is different.
Step 4 — Run the math
For each scenario, calculate:
Monthly
- Mortgage payment (P&I) — see
references/calculators.mdfor the formula - Property tax / 12
- HOA + Insurance + Utilities (owner-paid portion)
- − Gross rental income (rooms + ADU)
- × (1 − vacancy rate) for effective rental income
- − Property management fee (if applicable)
- = Net monthly housing cost (negative = positive cash flow)
Annual
- Sum of 12 months
- One-time renovation costs (amortized over time horizon)
- − Tax savings (mortgage interest deduction + depreciation on rented portion)
Long-term
- Equity build-up (mortgage paydown + appreciation assumption — default 3%/yr)
- Total cost of ownership at year 5 / 10 / 30
- Return on cash invested vs. alternative (e.g., S&P 500 at 7% real return)
Step 5 — Output the comparison table
Output to ~/Documents/personal-cfo/<scenario-slug>-<YYYY-MM-DD>/:
inputs.yaml— all the input numbers (so the analysis is rerunnable + auditable)report.md— the full analysis with assumptions called outcomparison.md— side-by-side scenario table (the headline output)
comparison.md template
# <Property nickname> — scenario comparison
**Date:** YYYY-MM-DD
**Property:** <address or nickname>
**Time horizon:** 10 years
**Key assumptions:** 3%/yr appreciation, 7% S&P alt return, 6% vacancy
| Scenario | Net monthly cost | Annual cost | 10-yr total | Equity @ 10yr | Notes |
|---|---:|---:|---:|---:|---|
| Baseline | $X,XXX | $XX,XXX | $XXX,XXX | $XXX,XXX | No rental income |
| A: ADU | $X,XXX | $XX,XXX | $XXX,XXX | $XXX,XXX | $X,XXX/mo ADU rent |
| B: 1 BR | … | … | … | … | … |
| C: 2 BR | … | … | … | … | … |
| D: ADU + 1 BR | … | … | … | … | … |
| E: ADU + 2 BR | … | … | … | … | … |
## Headline takeaway
<1–2 sentences: which scenario wins on cash flow, which wins on lifestyle, where the inflection points are>
## Sensitivity analysis
- If rates rise 1%: <impact>
- If ADU rent comes in 20% lower: <impact>
- If renovations overrun 30%: <impact>
- If vacancy doubles to 12%: <impact>
## Open questions
- <what would change the recommendation>
- <what to research next — composes with /deep-research>
Step 6 — Archive
Save the scenario folder so future revisits work. The archive index lives in ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/personal-cfo/archive/ (create the directory if missing). Never write archives inside the skill's own folder — skill installs and upgrades re-sync from source and wipe anything saved there. Migration: if this skill's folder contains an old references/scenarios-archive/ with user entries, move those files into the archive directory first.
Append a one-liner to <archive dir>/INDEX.md (create if missing):
- 2026-06-26 — [<property nickname>](~/Documents/personal-cfo/<slug>-2026-06-26/) — <type> — <headline takeaway>
This compounds — when you're considering Property #2 a year later, you can reuse the model and grep past analyses for patterns.
Step 7 — Surface + offer follow-ups
- Show the comparison table in chat
- Tell the user the workdir path
- Offer:
- "Want to run
/deep-researchon rental comps for the area to firm up the ADU and bedroom rent assumptions?" - "Want to formalize the buy/don't-buy decision through
/decideonce the scenarios land?" - "Want to capture this analysis to
second-brain raw/asnote-house-<slug>.md?" - "Want me to revisit in 30 days as more info comes in (loan rate locked, inspection done, etc.)?"
- "Want to run
Composes with
decide— once scenarios are modeled, the buy / don't / negotiate decision goes through/decide. Cash flow analysis is input, not the decision itself.deep-research— for inputs that need market data: rental comps, mortgage rate trends, neighborhood trajectory, school ratings, comparable sales.business-brainstorm— if the scenario tips into "this is a business" (e.g., short-term rental, multi-unit purchase, scaling to N properties), route there to pressure-test the business angle.second-brain— capture analyses toraw/note-house-<slug>.mdso they live in the personal wiki and can be referenced later.
Notes on quality
- Conservative assumptions by default. Default to higher vacancy (8% not 5%), lower appreciation (3% not 6%), 20% buffer on renovation estimates. Real estate optimism is the most reliable way to lose money.
- Surface the sensitivity, not just the point estimate. A scenario that's positive only if everything goes right isn't actually positive.
- Lifestyle is a real variable. "Living with 2 roommates" can be financially optimal AND a quality-of-life disaster. Note these tradeoffs in the report, even if they aren't quantified.
- Tax calcs are starting points, not authoritative. This skill estimates; an accountant verifies. Flag this in the report.
- The decision isn't here — the inputs to the decision are. This skill produces the model.
/decidemakes the call.
Future templates (sketched in references/templates/)
refi.md— refinance scenarioscash-flow.md— generic monthly budgetbig-purchase.md— cash vs finance vs lease for big-ticket itemsside-income.md— adding a side income streamsavings-what-if.md— investment what-ifs
v0.1 ships only house.md fleshed out. Add others when the use case is real.
| 1 | |
| 2 | name personal-cfo |
| 3 | description "When you want to model personal financial scenarios — house purchase + rental income (ADU, bedroom rentals, house-hacking), renovation budgets, monthly cash flow, big-purchase decisions, savings/investment what-ifs for a household. Ships with a house scenario template; other scenarios (refi, car, education, retirement, side income) slot in as templates. Outputs markdown scenario comparison tables. Saves scenarios to ~/Documents/personal-cfo/ with an index in ~/.config/makerskills/personal-cfo/archive/. Composes with decide, deep-research (rental comps, rates), business-brainstorm, second-brain. Triggers on \"/personal-cfo,\" \"model this scenario,\" \"house math,\" \"rental forecast,\" \"monthly cash flow,\" \"what if I rent out the ADU,\" \"compare these housing scenarios,\" \"should we buy this house,\" \"house-hack math,\" \"renovation budget.\"" |
| 4 | metadata |
| 5 | version 0.2.1 |
| 6 | |
| 7 | |
| 8 | # /personal-cfo — Personal financial scenario modeling |
| 9 | |
| 10 | This skill is for a household (you + partner): housing decisions, monthly cash flow, big purchases, scenario what-ifs. Pair it with a business-books CFO skill if you also run one for a company — the DNA is the same, the domain is different. |
| 11 | |
| 12 | ## Step 1 — Pick the scenario type |
| 13 | |
| 14 | | Invocation | Type | What it models | |
| 15 | |---|---|---| |
| 16 | | `/personal-cfo house` (default for now) | **house** | Buy a house + rental income scenarios (ADU / bedrooms / combinations) + renovations + monthly cash flow | |
| 17 | | `/personal-cfo refi` | **refi** | Refinancing scenarios | |
| 18 | | `/personal-cfo cash-flow` | **cash-flow** | Generic monthly cash flow (income, expenses, savings rate) | |
| 19 | | `/personal-cfo big-purchase` | **big-purchase** | Should we buy X (car, education, equipment) — cash vs finance vs lease comparisons | |
| 20 | | `/personal-cfo side-income` | **side-income** | Adding a side income stream — break-even, tax implications | |
| 21 | | `/personal-cfo savings-what-if` | **savings-what-if** | What if we put $X into Y for N years — index funds, real estate, etc. | |
| 22 | |
| 23 | For v0.1, only the **house** template is fleshed out. Others are sketched in `references/templates/` as stubs. |
| 24 | |
| 25 | ## Step 2 — Gather inputs |
| 26 | |
| 27 | Ask in a structured batch. For house mode, see `references/templates/house.md` for the full input questionnaire. Core fields: |
| 28 | |
| 29 | **Property** |
| 30 | Purchase price |
| 31 | Down payment (% or $) |
| 32 | Mortgage rate + term (years) |
| 33 | Property taxes (annual) |
| 34 | HOA (monthly, if any) |
| 35 | Homeowner's insurance (monthly) |
| 36 | Closing costs (estimate) |
| 37 | |
| 38 | **Renovations / repairs** |
| 39 | Day-1 renovations (line items with estimates — kitchen, bath, ADU buildout, etc.) |
| 40 | Year-1 expected repairs |
| 41 | Annual maintenance budget (rule of thumb: 1% of purchase price) |
| 42 | |
| 43 | **Rental scenarios** (for the house mode) |
| 44 | ADU monthly rent estimate + vacancy assumption (typical: 5–8%) |
| 45 | Bedroom 1 monthly rent + vacancy |
| 46 | Bedroom 2 monthly rent + vacancy |
| 47 | Utilities split assumption (who pays what) |
| 48 | Property management cost (if not self-managing) |
| 49 | |
| 50 | **Personal** |
| 51 | Current monthly housing cost (rent or current mortgage) |
| 52 | Combined household income |
| 53 | Marginal tax bracket (for mortgage interest + rental income calcs) |
| 54 | Time horizon for the analysis (typical: 5 yr, 10 yr, 30 yr) |
| 55 | |
| 56 | If anything's fuzzy, ask. Don't proceed with placeholder numbers — financial models with wrong inputs are dangerous. |
| 57 | |
| 58 | ## Step 3 — Build the scenarios |
| 59 | |
| 60 | For the house mode, default scenarios to compare: |
| 61 | |
| 62 | | Scenario | Description | |
| 63 | |---|---| |
| 64 | | **Baseline** | Own + live in, no rental income | |
| 65 | | **A: ADU only** | Rent the ADU, live in main house | |
| 66 | | **B: 1 bedroom only** | House-hack 1 bedroom, keep ADU empty (or for guests) | |
| 67 | | **C: 2 bedrooms only** | House-hack 2 bedrooms, ADU empty | |
| 68 | | **D: ADU + 1 bedroom** | Both ADU and 1 bedroom rented | |
| 69 | | **E: ADU + 2 bedrooms** | Maximum rental | |
| 70 | | **F: ADU + bedrooms (year 2+)** | Year 1: just ADU while renovating. Year 2+: add bedrooms after partner's comfort | |
| 71 | |
| 72 | Let the user customize the scenario list — every house is different. |
| 73 | |
| 74 | ## Step 4 — Run the math |
| 75 | |
| 76 | For each scenario, calculate: |
| 77 | |
| 78 | **Monthly** |
| 79 | Mortgage payment (P&I) — see `references/calculators.md` for the formula |
| 80 | + Property tax / 12 |
| 81 | + HOA + Insurance + Utilities (owner-paid portion) |
| 82 | − Gross rental income (rooms + ADU) |
| 83 | × (1 − vacancy rate) for effective rental income |
| 84 | − Property management fee (if applicable) |
| 85 | = **Net monthly housing cost** (negative = positive cash flow) |
| 86 | |
| 87 | **Annual** |
| 88 | Sum of 12 months |
| 89 | + One-time renovation costs (amortized over time horizon) |
| 90 | − Tax savings (mortgage interest deduction + depreciation on rented portion) |
| 91 | |
| 92 | **Long-term** |
| 93 | Equity build-up (mortgage paydown + appreciation assumption — default 3%/yr) |
| 94 | Total cost of ownership at year 5 / 10 / 30 |
| 95 | Return on cash invested vs. alternative (e.g., S&P 500 at 7% real return) |
| 96 | |
| 97 | ## Step 5 — Output the comparison table |
| 98 | |
| 99 | Output to `~/Documents/personal-cfo/<scenario-slug>-<YYYY-MM-DD>/`: |
| 100 | `inputs.yaml` — all the input numbers (so the analysis is rerunnable + auditable) |
| 101 | `report.md` — the full analysis with assumptions called out |
| 102 | `comparison.md` — side-by-side scenario table (the headline output) |
| 103 | |
| 104 | ### `comparison.md` template |
| 105 | |
| 106 | |
| 107 | # <Property nickname> — scenario comparison |
| 108 | |
| 109 | **Date:** YYYY-MM-DD |
| 110 | **Property:** <address or nickname> |
| 111 | **Time horizon:** 10 years |
| 112 | **Key assumptions:** 3%/yr appreciation, 7% S&P alt return, 6% vacancy |
| 113 | |
| 114 | | Scenario | Net monthly cost | Annual cost | 10-yr total | Equity @ 10yr | Notes | |
| 115 | |---|---:|---:|---:|---:|---| |
| 116 | | Baseline | $X,XXX | $XX,XXX | $XXX,XXX | $XXX,XXX | No rental income | |
| 117 | | A: ADU | $X,XXX | $XX,XXX | $XXX,XXX | $XXX,XXX | $X,XXX/mo ADU rent | |
| 118 | | B: 1 BR | … | … | … | … | … | |
| 119 | | C: 2 BR | … | … | … | … | … | |
| 120 | | D: ADU + 1 BR | … | … | … | … | … | |
| 121 | | E: ADU + 2 BR | … | … | … | … | … | |
| 122 | |
| 123 | ## Headline takeaway |
| 124 | <1–2 sentences: which scenario wins on cash flow, which wins on lifestyle, where the inflection points are> |
| 125 | |
| 126 | ## Sensitivity analysis |
| 127 | - If rates rise 1%: <impact> |
| 128 | - If ADU rent comes in 20% lower: <impact> |
| 129 | - If renovations overrun 30%: <impact> |
| 130 | - If vacancy doubles to 12%: <impact> |
| 131 | |
| 132 | ## Open questions |
| 133 | - <what would change the recommendation> |
| 134 | - <what to research next — composes with /deep-research> |
| 135 | |
| 136 | |
| 137 | ## Step 6 — Archive |
| 138 | |
| 139 | Save the scenario folder so future revisits work. The archive index lives in `${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/personal-cfo/archive/` (create the directory if missing). Never write archives inside the skill's own folder — skill installs and upgrades re-sync from source and wipe anything saved there. **Migration:** if this skill's folder contains an old `references/scenarios-archive/` with user entries, move those files into the archive directory first. |
| 140 | |
| 141 | Append a one-liner to `<archive dir>/INDEX.md` (create if missing): |
| 142 | |
| 143 | |
| 144 | - 2026-06-26 — [<property nickname>](~/Documents/personal-cfo/<slug>-2026-06-26/) — <type> — <headline takeaway> |
| 145 | |
| 146 | |
| 147 | This compounds — when you're considering Property #2 a year later, you can reuse the model and grep past analyses for patterns. |
| 148 | |
| 149 | ## Step 7 — Surface + offer follow-ups |
| 150 | |
| 151 | Show the comparison table in chat |
| 152 | Tell the user the workdir path |
| 153 | Offer: |
| 154 | *"Want to run `/deep-research` on rental comps for the area to firm up the ADU and bedroom rent assumptions?"* |
| 155 | *"Want to formalize the buy/don't-buy decision through `/decide` once the scenarios land?"* |
| 156 | *"Want to capture this analysis to `second-brain raw/` as `note-house-<slug>.md`?"* |
| 157 | *"Want me to revisit in 30 days as more info comes in (loan rate locked, inspection done, etc.)?"* |
| 158 | |
| 159 | ## Composes with |
| 160 | |
| 161 | **`decide`** — once scenarios are modeled, the buy / don't / negotiate decision goes through `/decide`. Cash flow analysis is input, not the decision itself. |
| 162 | **`deep-research`** — for inputs that need market data: rental comps, mortgage rate trends, neighborhood trajectory, school ratings, comparable sales. |
| 163 | **`business-brainstorm`** — if the scenario tips into "this is a business" (e.g., short-term rental, multi-unit purchase, scaling to N properties), route there to pressure-test the business angle. |
| 164 | **`second-brain`** — capture analyses to `raw/note-house-<slug>.md` so they live in the personal wiki and can be referenced later. |
| 165 | |
| 166 | ## Notes on quality |
| 167 | |
| 168 | **Conservative assumptions by default.** Default to higher vacancy (8% not 5%), lower appreciation (3% not 6%), 20% buffer on renovation estimates. Real estate optimism is the most reliable way to lose money. |
| 169 | **Surface the sensitivity, not just the point estimate.** A scenario that's positive only if everything goes right isn't actually positive. |
| 170 | **Lifestyle is a real variable.** "Living with 2 roommates" can be financially optimal AND a quality-of-life disaster. Note these tradeoffs in the report, even if they aren't quantified. |
| 171 | **Tax calcs are starting points, not authoritative.** This skill estimates; an accountant verifies. Flag this in the report. |
| 172 | **The decision isn't here — the inputs to the decision are.** This skill produces the model. `/decide` makes the call. |
| 173 | |
| 174 | ## Future templates (sketched in references/templates/) |
| 175 | |
| 176 | `refi.md` — refinance scenarios |
| 177 | `cash-flow.md` — generic monthly budget |
| 178 | `big-purchase.md` — cash vs finance vs lease for big-ticket items |
| 179 | `side-income.md` — adding a side income stream |
| 180 | `savings-what-if.md` — investment what-ifs |
| 181 | |
| 182 | v0.1 ships only `house.md` fleshed out. Add others when the use case is real. |
| 183 |
Discussion
Alternatives
Browse more free Claude skills or everything in Finance.