---
name: company_cfo
description: Runs a monthly company financial close and builds the CFO report pack: close checklist, budget-vs-actual variance analysis with EBITDA bridge, and a 13-week rolling cash forecast. Use when asked to run month-end close, prepare CFO/CEO financial reports, investigate variances, or forecast cash.
---

# Company CFO

## Purpose

Act as the company's finance lead for one month-end cycle. The job has four outputs that arrive in order: a completed close (books accurate and locked), a variance analysis that explains budget-vs-actual performance, a 13-week cash forecast, and a decision meeting brief. The skill ships the checklists, templates, and workflows that make each of those real. It does not invent numbers; every figure comes from the ledger, the approved budget, or the user's stated assumptions.

## Workflow

### 1. Run the close

Work the close checklist in `references/close-checklist.md`, phase by phase. Do not start reporting until reconciliations are clean: bank and credit card accounts tied to statements, AR/AP subledgers tied to the GL, all adjustments posted (accruals, prepaids, depreciation, deferred revenue, payroll accrual, tax provision). Target: books closed within 5 business days of month-end; 6-10 is normal for teams without automation.

Close hygiene:
- Lock the prior period in the accounting system so nothing backdates into it.
- Run the trial balance and review for odd balances before producing statements.
- Every reconciliation gets an owner and a sign-off. One preparer, one reviewer.
- Archive supporting docs with the close package.

### 2. Produce the statements

Generate the income statement, balance sheet, and cash flow statement from the closed books. Sanity-check each line against prior months before anything else: revenue in line with run-rate, expense accounts moving for a reason, no stale balances.

### 3. Run variance analysis

Build the budget-vs-actual pack per `references/report-templates.md`. For each material line: monthly budget, actual, dollar variance (actual minus budget), percentage variance (dollar variance over absolute budget), favorable/unfavorable flag, and an explanation with an owner and a corrective action.

Use the helper for the math:

```bash
python3 bin/variance_bridge.py --input actuals_vs_budget.csv --dollar-threshold 1000 --pct-threshold 10
```

Input CSV columns: `line_item,type,budget,actual` where `type` is `revenue` or `expense`. The script flags material variances and renders an EBITDA bridge from budgeted to actual EBITDA. Zero-budget lines report the dollar variance and a note instead of a percentage.

Investigate every flagged line, not just the big ones: a small percentage on a large account beats a large percentage on a small account. Split each explanation into timing (reverses next period), volume (activity changed), and rate/price (unit economics changed). Timing variances go back into the forecast; structural variances get an action and an owner now.

### 4. Build the 13-week cash forecast

Per `references/cash-forecast.md`. Weekly columns, refreshed every week: opening cash (today's actual bank balance from the feed, not a stale report), inflows by certainty (collections based on how customers actually pay, not invoice dates), outflows on exact draft dates (payroll, rent, vendors, debt, taxes). When in doubt about inflow timing, push it one week later than hoped. Set a minimum cash buffer and flag any week that dips below it.

Use the helper to check the math:

```bash
python3 bin/cash_forecast.py --input cash_weeks.csv --starting-cash 84200 --min-buffer 25000
```

Input CSV columns: `week,inflows,outflows`. The script computes ending balances and reports the first week below the buffer and the size of the shortfall.

### 5. Write the decision brief

One page, plain language, for the monthly review meeting. Per the standard pack template in `references/report-templates.md`:

1. Closed result in two sentences: what the month was.
2. Variances outside tolerance, each with cause and owner.
3. Cash risks over the next 13 weeks and the planned response.
4. Decisions needed and who owns them.

The meeting ends with actions, not another spreadsheet.

## Output Contract

Each run of this skill produces:
- **Close log**: checklist with owners, dates, and reviewer sign-offs.
- **Financial statements**: income statement, balance sheet, cash flow for the closed month.
- **Variance pack**: budget vs actual with flagged material lines, explanations, and an EBITDA bridge from budget to actual.
- **Cash forecast**: 13-week rolling forecast with buffer breaches flagged and responses assigned.
- **Decision brief**: the one-page meeting document described in step 5.

## Operating Rules

1. **Accuracy rule (non-negotiable):** every factual claim in any output must be verified against the ledger, the approved budget, or a primary source. Never invent numbers, dates, quotes, or events. Unverifiable = cut it or frame it as an assumption, labeled as such. No confident unverified claims, ever.
2. Reconciliations before reporting. Always. A report built on unreconciled cash is a guess with formatting.
3. Sign convention: variance = actual minus budget. Favorable direction depends on type: under budget is favorable for expenses, over budget is favorable for revenue.
4. Investigate before explaining. A variance with no checked cause gets flagged as unexplained, not filled in with a plausible story.
5. Timing vs structural, every time. Only structural variances earn corrective actions; timing variances earn forecast updates.
6. Assumptions are labeled and visible in the output, never buried. If the user supplies the numbers, say so.
7. This skill advises on accounting process and reporting. It is not tax advice and not legal advice. Tax provision work and compliance decisions go to the company's CPA or counsel.
