# Ceos Cashflow

> Use when assessing and optimizing the 8 financial levers that drive cash flow and profitability

- Skill: `bradfeld/ceos-cashflow` (Agent Skill)
- Install (CLI): `npx skillmds@latest add bradfeld/ceos-cashflow`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bradfeld/ceos-cashflow/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bradfeld (https://skillmd.com/u/bradfeld)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bradfeld/ceos-cashflow

---


# ceos-cashflow

The 8 Cash Flow Drivers (EOS Toolbox tool #10). A facilitated workshop for leadership teams to identify and optimize the eight key financial levers that impact cash flow and profitability: Price, Volume, COGS/Margin, A/R Days, A/P Days, Inventory/WIP, Operating Expenses, and Debt Structure.

**Not for:** Weekly scorecard tracking (use `ceos-scorecard`), general issue resolution (use `ceos-ids`), or Rock setting (use `ceos-rocks`). This skill is for the structured cash flow driver assessment — a strategic conversation about financial levers.

## When to Use

- "Assess our cash flow" or "8 cash flow drivers"
- "Cash flow drivers" or "financial optimization"
- "Review our financial levers" or "profitability drivers"
- "Where can we improve margins?"
- "Cash flow driver review" or "quarterly cash flow check-in"
- "Show cash flow history" or "how have our drivers changed?"

## Context

### Finding the CEOS Repository

Before doing anything:

1. Search upward from the current directory for a `.ceos` marker file
2. If not found, tell the user: "I can't find a CEOS repository. Clone it with `git clone https://github.com/bradfeld/ceos.git` and run `./setup.sh init`."
3. If found, set `CEOS_ROOT` to that directory
4. Run `git -C "$CEOS_ROOT" pull --ff-only` to sync latest data (skip if offline or if pull fails — work with local data)

### Key Files

| File | Purpose |
|------|---------|
| `data/cashflow/` | Cash flow driver assessments (one per session) |
| `data/accountability.md` | Team members for suggesting driver owners |
| `data/scorecard/metrics.md` | Existing metrics that may overlap with cash flow drivers |
| `templates/cashflow-assessment.md` | Template for new assessment files |

### The 8 Cash Flow Drivers

| # | Driver | Key Question | Typical Metric |
|---|--------|-------------|----------------|
| 1 | **Price** | Can you increase prices? | Average selling price, price per unit |
| 2 | **Volume** | Can you sell more? | Units sold, transactions, customers |
| 3 | **COGS / Margin** | Can you reduce cost of goods? | Gross margin %, COGS as % of revenue |
| 4 | **A/R Days** | Can you collect faster? | Days sales outstanding (DSO) |
| 5 | **A/P Days** | Can you negotiate better terms? | Days payable outstanding (DPO) |
| 6 | **Inventory / WIP** | Can you reduce inventory? | Inventory turnover, WIP backlog |
| 7 | **Operating Expenses** | Where can you cut overhead? | OpEx as % of revenue, specific line items |
| 8 | **Debt Structure** | Is debt optimized? | Debt-to-equity, interest rate, term mix |

**Note:** Not all 8 drivers apply equally to every business. A software company may have minimal inventory. A services firm may have no COGS. The skill handles this — drivers can be marked as "none" potential when they don't apply.

### Driver Improvement Potential

| Value | Meaning |
|-------|---------|
| `high` | Significant upside — this driver should be a top priority |
| `medium` | Moderate improvement possible with focused effort |
| `low` | Minor gains available — not a priority this quarter |
| `none` | Already optimized or not applicable to this business |

### Assessment Status

| Value | Meaning |
|-------|---------|
| `in_progress` | Assessment started but not all drivers evaluated |
| `complete` | All drivers assessed and priorities set |

## Process

### Mode: Assess

**Trigger:** User wants to evaluate all 8 cash flow drivers from scratch.

**Step 1: Gather context**

Read `data/accountability.md` to identify potential driver owners. If the file doesn't exist, skip owner suggestions — ask the user for each driver's owner directly.

Read `data/scorecard/metrics.md` (if it exists) to identify metrics already being tracked that relate to cash flow drivers. Note any overlaps — don't duplicate existing scorecard measurables.

**Step 2: Walk through the 8 drivers**

For each driver (1 through 8):

1. Display the driver name, key question, and typical metric from the reference table
2. If a related scorecard metric exists, note it: "Your Scorecard already tracks [metric] — you may want to reference that as your baseline."
3. Ask the user:
   - **Current state:** What's the current situation for this driver?
   - **Improvement potential:** High, medium, low, or none?
   - **Baseline metric:** What's the current value? (Store as a string — can be "\$52K/month", "Net 30", "45 days", etc.)
   - **Target metric:** Where do you want this to be?
   - **Owner:** Who is accountable for this driver? (Suggest from accountability chart if available)
   - **Notes:** Any additional context?

If the user wants to skip a driver (e.g., "Inventory doesn't apply to us"), set potential to `none` and note "Not applicable" in current_state. Move to the next driver.

**Step 3: Prioritize**

After all 8 drivers are assessed, display a summary table:

| # | Driver | Potential | Owner | Baseline | Target |
|---|--------|-----------|-------|----------|--------|
| ... | ... | ... | ... | ... | ... |

Ask the user to rank their top 3-5 focus drivers. Assign `priority_rank` values (1 = highest priority). Drivers not in the top 3-5 get `null` for priority_rank.

**Step 4: Create assessment file**

Generate the complete file from `templates/cashflow-assessment.md`. Populate all frontmatter fields and body sections.

**Show the complete file** to the user before writing. Ask: "Save this assessment?"

Write to `data/cashflow/YYYY-MM-DD.md` (using today's date). If a file already exists for today, use suffix: `YYYY-MM-DD-2.md`.

Set frontmatter `status: complete`.

**Step 5: Next steps**

After saving, mention (but don't auto-invoke):
- "Driver improvements with high potential could become Rocks for next quarter (use `ceos-rocks`)"
- "Driver problems that need investigation could become Issues (use `ceos-ids`)"
- "Consider adding key driver metrics to your Scorecard (use `ceos-scorecard`)"

### Mode: Review

**Trigger:** User wants a quarterly check-in on their prioritized cash flow drivers.

**Step 1: Load assessments**

Read all files from `data/cashflow/` via Glob. Parse YAML frontmatter. Sort by date (newest first).

If no assessments exist: "No cash flow assessments found. Run an assessment first to establish your baseline."

**Step 2: Find the latest assessment**

Display the most recent completed assessment's prioritized drivers (those with `priority_rank` set):

| Priority | Driver | Baseline | Target | Owner |
|----------|--------|----------|--------|-------|
| 1 | [driver] | [baseline] | [target] | [owner] |
| 2 | [driver] | [baseline] | [target] | [owner] |
| ... | ... | ... | ... | ... |

**Step 3: Collect current values**

For each prioritized driver, ask: "What's the current value for [Driver]? (Baseline was [baseline], target is [target])"

**Step 4: Display progress**

| Priority | Driver | Baseline | Current | Target | Direction |
|----------|--------|----------|---------|--------|-----------|
| 1 | Price | \$45/unit | \$48/unit | \$55/unit | Improving |
| 2 | A/R Days | 45 days | 42 days | 30 days | Improving |
| 3 | OpEx | 35% of rev | 36% of rev | 30% of rev | Stalling |

**Direction** values:
- **Improving** — Moving toward target
- **Stalling** — No change or very minor movement
- **Regressing** — Moving away from target
- **Target hit** — Current meets or exceeds target

**Step 5: Flag and suggest**

For stalling or regressing drivers, suggest:
- "Consider creating an Issue to investigate why [Driver] is stalling (use `ceos-ids`)"
- "A focused Rock on [Driver] improvement could help (use `ceos-rocks`)"

**Step 6: Save review (optional)**

Ask if the user wants to save this review as a new assessment. If yes, create a new file capturing the current state as the new baseline. This becomes the comparison point for the next review.

### Mode: History

**Trigger:** User wants to see cash flow driver trends over time.

**Step 1: Load all assessments**

Read all files from `data/cashflow/` via Glob. Parse YAML frontmatter. Sort by date (oldest first).

If no assessments exist: "No cash flow assessments found yet."

If only one assessment: Display it, noting "Only one assessment on record. Run another assessment later to see trends."

**Step 2: Assessment timeline**

| Date | Drivers Assessed | High | Medium | Low | None | Top Priorities |
|------|-----------------|------|--------|-----|------|---------------|
| 2026-02-15 | 8 | 3 | 2 | 2 | 1 | Price, A/R Days, OpEx |
| 2026-05-10 | 8 | 2 | 3 | 2 | 1 | A/R Days, Volume, OpEx |

**Step 3: Per-driver trends**

For each driver that has been prioritized in at least one assessment:

```
Price:  high → medium → low  (improving — was a top priority, now optimized)
A/R Days:  high → high → medium  (improving slowly — still needs attention)
OpEx:  medium → high → high  (worsening — consider escalating to an Issue)
```

**Step 4: Insights**

- Which drivers have been consistently prioritized (may need a Rock)
- Which drivers improved and were deprioritized (success stories)
- Which drivers have worsened (may need an IDS investigation)

**Step 5: Drill-down**

Offer: "Would you like to see the full details of any specific assessment?"

If yes, display the complete assessment file.

## Output Format

### Assess Mode Summary

After completing the assessment, display:

```
Cash Flow Assessment — YYYY-MM-DD

8 Drivers Assessed:
  High potential:   [N] drivers
  Medium potential:  [N] drivers
  Low potential:     [N] drivers
  Not applicable:    [N] drivers

Top Priorities:
  1. [Driver] — [Baseline] → [Target] (Owner: [Name])
  2. [Driver] — [Baseline] → [Target] (Owner: [Name])
  3. [Driver] — [Baseline] → [Target] (Owner: [Name])

Saved to: data/cashflow/YYYY-MM-DD.md
```

### Review Mode Summary

```
Cash Flow Review — YYYY-MM-DD

Comparing to assessment from [prior date]:

  Improving:  [N] drivers
  Stalling:   [N] drivers
  Regressing: [N] drivers
  Target hit: [N] drivers

[Table of prioritized drivers with progress]
```

### History Mode Summary

```
Cash Flow History — [N] assessments

First assessment: YYYY-MM-DD
Latest assessment: YYYY-MM-DD

[Assessment timeline table]
[Per-driver trend arrows]
```

## Guardrails

- **Always show the complete file before writing.** Never save an assessment without the user seeing and approving the full content.
- **Don't auto-invoke skills.** When assessment results suggest creating Rocks, Issues, or Scorecard metrics, mention the option but let the user decide. Say "Would you like to create a Rock for this?" rather than doing it automatically.
- **Sensitive data warning.** On first use in a session, remind the user: "Cash flow assessments contain sensitive financial information (revenue targets, cost structures, debt details). Ensure this repository is private."
- **Don't prescribe financial strategies.** This is a facilitation guide, not financial advice. Present the framework and record the team's decisions. Don't suggest specific pricing strategies, cost-cutting measures, or debt restructuring approaches.
- **One full assessment per session.** Walking through all 8 drivers is a substantial conversation. Don't rush — each driver deserves focused discussion.
- **Metrics are strings, not numbers.** Financial values come in many formats (\$52K, 45 days, Net 30, 35% of revenue). Store them as human-readable strings. The skill facilitates comparison through display, not computation.

## Integration Notes

### Accountability Chart (Read)

- **Direction:** Read
- **What data:** `data/accountability.md`
- **Purpose:** Suggest driver owners from the leadership team's seat assignments. Each driver should be owned by the person whose seat most closely relates to that financial lever.

### Scorecard (Read)

- **Direction:** Read
- **What data:** `data/scorecard/metrics.md`
- **Purpose:** Cross-reference existing scorecard metrics with the 8 drivers. If a team already tracks "Weekly Revenue" on the scorecard, that overlaps with the Volume and Price drivers. Avoid duplicating metrics — reference existing ones.

### Rocks (Related)

- **Direction:** Related (suggest, don't write)
- **What data:** N/A
- **Purpose:** High-potential driver improvements can become quarterly Rocks. After assessment, suggest the user create Rocks for their top priorities via `ceos-rocks`.

### IDS (Related)

- **Direction:** Related (suggest, don't write)
- **What data:** N/A
- **Purpose:** Stalling or regressing drivers may need root-cause investigation. Suggest creating Issues via `ceos-ids` for drivers that aren't improving despite being prioritized.

**Write Principle:** Only `ceos-cashflow` writes to `data/cashflow/`. Other skills may reference cash flow assessments for financial context.

