---
name: Personal CFO
slug: personal-cfo
category: Data
description: Personal CFO models household financial scenarios like house purchases, rental income, renovations, and monthly cash flow. Use it when comparing buy vs rent, house-hack options, or other personal money what-ifs.
github: "https://github.com/coreyhaines31/makerskills/tree/main/skills/personal-cfo"
stars: 680
forks: 55
install: "npx degit https://github.com/coreyhaines31/makerskills/tree/main/skills/personal-cfo ~/.claude/skills/personal-cfo"
installs_to: ~/.claude/skills/personal-cfo
source_path: skills/personal-cfo/SKILL.md
collection_size: 20
category_size: 668
collection_url: "https://dirskills.com/collections/coreyhaines31/makerskills"
added: 2026-08-24T05:16:23.483Z
last_synced: 2026-08-24T05:16:23.483Z
canonical_url: "https://dirskills.com/skills/personal-cfo"
---

# Personal CFO

Personal CFO models household financial scenarios like house purchases, rental income, renovations, and monthly cash flow. Use it when comparing buy vs rent, house-hack options, or other personal money what-ifs.

**Install:**

```bash
npx degit https://github.com/coreyhaines31/makerskills/tree/main/skills/personal-cfo ~/.claude/skills/personal-cfo
```

## README

# /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
- + 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 out
- `comparison.md` — side-by-side scenario table (the headline output)

### `comparison.md` template

```markdown
# <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):

```markdown
- 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.
