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