---
title: Cash Flow
description: Monthly income and expenses. Log it once a month alongside your balance snapshot to track savings rate, spending patterns, and cash flow over time.
---

export const askRows = [
  { cmd: '"How is my savings rate trending?"',                       desc: 'Monthly income vs expenses + rolling savings rate + anomaly call-outs' },
  { cmd: '"What\'s my average monthly spend over the last 3 months?"', desc: 'Used for runway math. Claude derives monthly expenses on its own' },
  { cmd: '[income_expense.xlsx attached]',                            desc: <><code>/import-flow</code> bulk-imports years of monthly data in one call</> },
];

export const monthlyShortcut = [
  { cmd: <code>firma add monthly</code>, desc: 'Balance + cash flow in one session. Recommended for month-end' },
];

export const editRows = [
  { cmd: <code>firma edit flow [YYYY-MM]</code>,   desc: 'Re-run the wizard with existing values pre-filled' },
  { cmd: <code>firma delete flow [YYYY-MM]</code>, desc: 'Delete all flow entries for a period' },
];

export const income = [
  { cmd: 'salary',       desc: 'Employment income, paycheck' },
  { cmd: 'business',     desc: 'Self-employment, freelance, side income' },
  { cmd: 'dividends',    desc: 'Stock dividends received' },
  { cmd: 'interest',     desc: 'Bank interest, bond coupons' },
  { cmd: 'income_other', desc: 'One-time income, gifts, tax refunds' },
];

export const expenses = [
  { cmd: 'personal',       desc: 'Food, shopping, entertainment, daily spending' },
  { cmd: 'rent',           desc: 'Monthly rent or mortgage payment' },
  { cmd: 'utilities',      desc: 'Electricity, gas, water' },
  { cmd: 'insurance',      desc: 'Health, car, home insurance premiums' },
  { cmd: 'phone',          desc: 'Mobile plan' },
  { cmd: 'maintenance',    desc: 'Repairs, subscriptions, miscellaneous recurring' },
  { cmd: 'loan_repayment', desc: 'Principal + interest on loans' },
  { cmd: 'expense_other',  desc: 'Any other expenses not covered above' },
];

<Section label="Ask Claude">
  <CommandTable rows={askRows} />
</Section>

<section className="section">
  <p className="section-label">firma show flow [-p YYYY-MM]<Badge>power user</Badge></p>

Shows the cash flow breakdown for the current month. Pass <code>-p</code> to
view a specific period.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show flow -p 2026-03</span>
  </div>
  <pre className="term-pre"><span className="d">Cash Flow  2026-03</span></pre>
  <table className="term-table">
    <tbody>
      <tr><td className="td-muted" colSpan={2}>INCOME</td></tr>
      <tr><td>income_other</td><td className="td-muted">$0</td></tr>
      <tr><td>business</td><td>$3,278</td></tr>
      <tr><td>salary</td><td>$8,994</td></tr>
      <tr><td>dividends</td><td className="td-muted">$0</td></tr>
      <tr><td>interest</td><td>$56</td></tr>
      <tr><td>income_other</td><td>$677</td></tr>
      <tr className="sep"><td colSpan={2}/></tr>
      <tr><td className="td-muted" colSpan={2}>EXPENSES</td></tr>
      <tr><td>expense_other</td><td className="td-muted">$0</td></tr>
      <tr><td>personal</td><td>$5,684</td></tr>
      <tr><td>loan_repayment</td><td className="td-muted">$0</td></tr>
      <tr><td>insurance</td><td>$91</td></tr>
      <tr><td>phone</td><td>$60</td></tr>
      <tr><td>utilities</td><td>$79</td></tr>
      <tr><td>maintenance</td><td>$186</td></tr>
      <tr><td>rent</td><td>$656</td></tr>
      <tr><td>expense_other</td><td className="td-muted">$0</td></tr>
      <tr className="sep"><td colSpan={2}/></tr>
    </tbody>
    <tfoot>
      <tr><td className="td-muted">Income</td><td>$13,005</td></tr>
      <tr><td className="td-muted">Expenses</td><td>$6,756</td></tr>
      <tr><td className="td-muted">Net Flow</td><td className="td-green">$6,249</td></tr>
    </tfoot>
  </table>
</div>

  <Note>
    Use <code>firma report</code> to see savings rate trends and income/expense
    breakdowns across all months.
  </Note>
</section>

<Section label="Month-end Workflow">
Use <code>firma add monthly</code> to record balance and cash flow
together in a single session. It shows a savings rate summary at the end.

  <CommandTable rows={monthlyShortcut} />
</Section>

<Section label="firma add flow [-p YYYY-MM]">
Interactive wizard that walks through each income and expense category.
Enter 0 (or leave blank) for categories with no activity this month.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma add flow</span>
  </div>
  <div className="terminal-block">
    <div className="term-row"><span className="term-meta" style={{color:'var(--muted)'}}>  Period: 2026-04  (2026-04-30)</span></div>
    <div className="term-row" style={{marginTop:'0.4rem'}}><span className="term-meta">── INCOME ───────────────────────────────</span></div>
    <div className="term-row"><span className="term-meta">◆  Salary</span><span className="term-val">$13,720</span></div>
    <div className="term-row"><span className="term-meta">◆  Business</span><span className="term-val">0</span></div>
    <div className="term-row"><span className="term-meta">◆  Dividends</span><span className="term-val">$244</span></div>
    <div className="term-row"><span className="term-meta">◆  Interest</span><span className="term-val">0</span></div>
    <div className="term-row" style={{marginTop:'0.4rem'}}><span className="term-meta">── EXPENSES ─────────────────────────────</span></div>
    <div className="term-row"><span className="term-meta">◆  Personal</span><span className="term-val">$6,200</span></div>
    <div className="term-row"><span className="term-meta">◆  Rent</span><span className="term-val">$1,000</span></div>
    <div className="term-row"><span className="term-meta">◆  Utilities</span><span className="term-val">$278</span></div>
    <div className="term-row"><span className="term-meta">◆  Insurance</span><span className="term-val">$139</span></div>
    <div className="term-row"><span className="term-meta">◆  Phone</span><span className="term-val">$92</span></div>
    <div className="term-row" style={{marginTop:'0.5rem'}}><span className="term-meta" style={{color:'var(--muted)'}}>  Cash Flow  2026-04</span></div>
    <div className="term-row"><span className="term-meta">  Income</span><span className="term-val">$13,964</span></div>
    <div className="term-row"><span className="term-meta">  Expenses</span><span className="term-val">$7,709</span></div>
    <div className="term-row"><span className="term-meta">  Net Flow</span><span className="term-val td-green">$6,255</span></div>
  </div>
</div>
</Section>

<Section label="Editing & Deleting">
  <CommandTable rows={editRows} />

  <Note>
    If no period is given, defaults to the current month.
  </Note>
</Section>

<Section label="Categories">
  <CommandTable groups={[
    { label: 'Income',   rows: income },
    { label: 'Expenses', rows: expenses },
  ]} />
</Section>
