
Cash Flow Snapshot
- 1.2k installs
- 23.3k repo stars
- Updated August 5, 2026
- anthropics/knowledge-work-plugins
Cash flow snapshot skill: 30/60/90-day forecast with confidence bands and named risks from accounting/payment connectors or CSV.
About
Reads AR/AP, settlement timing, and fixed costs from QuickBooks, PayPal, Stripe, Square, or CSV upload to produce a 30/60/90-day cash forecast with percentage-variance confidence bands. Computes per-customer mean payment lag and variance, applies weighted band formula capped at ±50%, and flags top 5 named risks like late payers and payroll crunches. Delivers chat summary plus XLSX workbook (Summary with auditable line items, Detail with running nets, Risks sheet) using the xlsx skill. Read-only with no approval gate; reminds user forecast is not accounting advice.
- 30/60/90-day net cash forecast with low/high confidence bands
- Connector priority: QuickBooks, PayPal, Stripe, Square, then CSV fallback
- Per-customer payment lag mean and variance drives band width
- Named risk flags: late payers, payroll crunch, thin data, CSV-only warnings
- XLSX workbook with Summary, Detail, and Risks sheets
Cash Flow Snapshot by the numbers
- 1,175 all-time installs (skills.sh)
- +95 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #126 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
cash-flow-snapshot capabilities & compatibility
- Capabilities
- pull ar ap data · model payment lag · forecast 30 60 90 · flag liquidity risks · export xlsx workbook
- Use cases
- planning · data analysis · project management
What cash-flow-snapshot says it does
Produces a 30/60/90-day cash flow forecast with percentage-variance confidence bands and named risk flags.
Limit to the top 5 risks by severity (largest dollar impact first).
npx skills add https://github.com/anthropics/knowledge-work-plugins --skill cash-flow-snapshotAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.2k |
|---|---|
| repo stars | ★ 23.3k |
| Last updated | August 5, 2026 |
| Repository | anthropics/knowledge-work-plugins ↗ |
Will I have enough cash for payroll and bills over the next 30, 60, and 90 days?
Forecast 30/60/90-day cash position from QuickBooks, PayPal, Stripe, Square, or CSV with confidence bands and named risk flags.
Who is it for?
SMB owners monitoring runway, payroll coverage, and AR-driven cash timing with connected books or CSV history.
Skip if: Full accounting close, tax filing, or authoritative financial statements without bookkeeper review.
When should I use this skill?
User asks to forecast cash flow, check payroll coverage, mentions runway, or says cash crunch.
What you get
Chat summary plus XLSX forecast with expected/low/high nets and top liquidity risk flags by dollar impact.
- Cash-flow snapshot summary
- Net change and ending balance readout
By the numbers
- 1 install on skills.sh
- Rank 6756 on skills.sh
Files
Cash Flow Snapshot
Produces a 30/60/90-day cash flow forecast with percentage-variance confidence bands and named risk flags. Delivers a two-part output: a concise chat summary and a downloadable XLSX workbook.
Quick start
"Will I make payroll next month?"
Claude pulls AR/AP and fixed costs from connected sources, calculates expected inflows and outflows across 30, 60, and 90-day windows, applies confidence bands based on each customer's historical payment variance, and flags specific risks by name.
---
Workflow
Step 1 — Identify available data sources
Check which connectors are live. Try in this order:
1. QuickBooks — primary source for AR aging, AP, and fixed costs 2. PayPal — transaction history and settlement timing 3. Stripe — charge and payout history 4. Square — sales and payout history 5. CSV upload — fallback if no connector is connected
If no connector is live and no file is attached, ask the user to either connect a source or upload a CSV (income/expense tabular data, any reasonable format). Note which sources were used in the output — this affects confidence band width.
Step 2 — Pull the data
From QuickBooks:
- AR aging report: customer name, invoice amount, invoice date, due date, days outstanding
- AP: vendor name, amount due, due date
- Recurring fixed costs: rent, payroll, subscriptions (look for recurring transactions)
From PayPal / Stripe / Square:
- Settlement history: transaction date, amount, settlement date
- Use settlement lag (transaction date → payout date) to compute each source's
average and variance payment delay
From CSV upload:
- Parse as income/expense tabular data
- Required columns (flexible naming): date, amount, type (income or expense), description
- If columns are ambiguous, show the header row and ask the user to confirm mapping
Step 3 — Compute historical payment timing
For each AR customer (or income source from CSV), calculate:
- Mean payment lag — average days from invoice/transaction date to receipt
- Payment variance — standard deviation of payment lag across last 6–12 payments
- Use variance to set confidence band width (see Step 4)
If fewer than 3 payments exist for a customer, use the population mean as the point estimate and apply a ±30% variance band as the default. When running on CSV data with sufficient history (≥3 payments per source), compute the band from the actual payment variance — do not assume ±30%.
Step 4 — Build the 30/60/90-day forecast
Produce three time windows: 0–30 days, 31–60 days, 61–90 days.
For each window, compute:
| Line | Method |
|---|---|
| Expected inflows | AR due in window, adjusted for mean payment lag |
| Expected outflows | AP due in window + fixed costs falling in window |
| Net cash position | Inflows − Outflows |
| Confidence band | ± weighted average payment variance as a % of expected inflows |
Confidence band formula:
band_pct = weighted_avg_stddev_days / avg_payment_lag_days
low = net_cash × (1 − band_pct)
high = net_cash × (1 + band_pct)Round band_pct to one decimal place. Cap at ±50% — higher variance means the data is too thin to model; flag it instead (see Step 5).
Step 5 — Flag named risks
Scan for conditions that push the low-band estimate negative or create a liquidity crunch. For each risk found, produce a one-line flag:
- Late-payer risk: "Customer X historically pays 18 days late; that shifts
their $8,400 invoice out of the 30-day window into day 48."
- Payroll crunch: "Payroll ($22,000) hits April 15. Low-band cash on hand
April 14: $19,200. Shortfall risk: $2,800."
- Thin data warning: "Only 2 payments on record for Customer Y — confidence
band set to default ±30%."
- No-connector warning: "Running on CSV data only — no real-time AP or
recurring cost data. Confidence bands are wider than normal."
Limit to the top 5 risks by severity (largest dollar impact first).
Step 6 — Deliver outputs
Chat summary (always):
Cash Flow Snapshot — [date range]
Source(s): [connectors used]
Expected Low High
30-day net: $X,XXX $X,XXX $X,XXX
60-day net: $X,XXX $X,XXX $X,XXX
90-day net: $X,XXX $X,XXX $X,XXX
⚠ Risks flagged: [count]
• [risk 1]
• [risk 2]
...XLSX workbook (always): Read xlsx/SKILL.md before generating. Produce a workbook with three sheets:
1. Summary — the 30/60/90 forecast table with confidence bands. Beneath each window row, expand inline sub-rows showing the individual transactions that make up its inflows (green) and outflows (red). This makes the estimates auditable without leaving the Summary sheet.
2. Detail — all transactions grouped by window, sorted by date within each group. Include a running net column (cumulative inflows minus outflows within the window) and a subtotal row at the bottom of each window showing total inflows, total outflows, and net. Grey out past transactions in a separate section at the bottom for reference. Ensure all three windows have rows even if one is empty — show a "No transactions in this window" placeholder row.
3. Risks — the flagged risks with dollar impact and affected window.
Save as cash-flow-snapshot-[YYYY-MM-DD].xlsx.
---
Approval gates
No destructive actions — this skill is read-only. No approval gate required before generating the forecast.
Remind the user after delivery:
"This forecast is based on [sources listed]. It is not a substitute for
accounting advice — verify with your bookkeeper before making financing decisions."
---
Reference files
| File | Load when |
|---|---|
reference/gotchas.md | When a connector returns unexpected data or variance is extreme |
reference/examples/worked-example.md | When modeling the output format for a new data shape |
Worked example — cash-flow-snapshot
Scenario: Small services business. QuickBooks + PayPal connected. Three active customers, monthly payroll, office rent.
---
Input data (pulled from connectors)
AR aging (QuickBooks):
| Customer | Invoice | Amount | Due Date | Days Outstanding |
|---|---|---|---|---|
| Acme Corp | INV-112 | $8,400 | Apr 10 | 12 |
| BlueSky LLC | INV-108 | $14,200 | Apr 22 | 0 |
| Crestwood Inc | INV-115 | $6,000 | May 5 | — |
Historical payment lag (from PayPal settlements):
| Customer | Mean Lag | Std Dev | Payments on Record |
|---|---|---|---|
| Acme Corp | 18 days | 4 days | 11 |
| BlueSky LLC | 7 days | 2 days | 8 |
| Crestwood Inc | 12 days | 5 days | 6 |
Fixed costs (QuickBooks recurring AP):
- Payroll: $22,000 — hits April 15
- Rent: $3,200 — hits May 1
- Software subscriptions: $480 — hits May 1
---
Step 3 output — adjusted inflow dates
| Customer | Invoice Amount | Adj. Receipt Date | Notes |
|---|---|---|---|
| Acme Corp | $8,400 | Apr 28 | Due Apr 10 + 18-day mean lag |
| BlueSky LLC | $14,200 | Apr 29 | Due Apr 22 + 7-day mean lag |
| Crestwood Inc | $6,000 | May 17 | Due May 5 + 12-day mean lag |
---
Step 4 output — 30/60/90 forecast
Confidence band calculation:
- Weighted avg stddev: 3.6 days
- Weighted avg mean lag: 12.7 days
- band_pct = 3.6 / 12.7 = 28.3%
| Window | Expected Inflows | Expected Outflows | Net | Low (−28%) | High (+28%) |
|---|---|---|---|---|---|
| 0–30d | $22,600 | $22,000 | +$600 | −$5,928 | +$7,128 |
| 31–60d | $6,000 | $3,680 | +$2,320 | +$1,670 | +$2,970 |
| 61–90d | $0 | $0 | $0 | — | — |
---
Step 5 output — risks flagged
1. Payroll crunch: Payroll ($22,000) hits April 15. Low-band inflows through April 14: $0 (both AR receipts fall April 28–29). Shortfall risk: up to $22,000. Recommend: confirm receivables timing with Acme and BlueSky before April 14.
2. Late-payer risk: Acme Corp historically pays 18 days late. Their $8,400 invoice (due Apr 10) shifts to April 28 — after payroll.
---
Step 6 output — chat summary
Cash Flow Snapshot — Apr 23 → Jul 21, 2026
Sources: QuickBooks, PayPal
Expected Low High
30-day net: +$600 −$5,928 +$7,128
60-day net: +$2,320 +$1,670 +$2,970
90-day net: $0 — —
⚠ 2 risks flagged:
• Payroll crunch: $22K payroll hits Apr 15; AR receipts don't clear until
Apr 28–29. Low-band shortfall risk: up to $22,000.
• Late-payer: Acme Corp (mean 18-day lag) shifts $8,400 past payroll date.
Confidence band: ±28% (based on historical payment variance across 3 customers).
This forecast is based on QuickBooks AR/AP and PayPal settlement history.
It is not a substitute for accounting advice — verify with your bookkeeper
before making financing decisions.XLSX: cash-flow-snapshot-2026-04-23.xlsx — Summary / Detail / Risks sheets.
Gotchas — cash-flow-snapshot
Known edge cases and connector failure modes. 2–5 entries, Good/Bad format.
---
1. QuickBooks AR aging includes invoices already collected
Bad: Including fully-paid invoices from the AR aging report inflates inflow projections. QuickBooks sometimes shows $0-balance invoices in aging exports.
Good: Filter AR rows to balance_due > 0 before computing inflows. If the connector doesn't expose balance_due, subtract known PayPal/Stripe settlements from the invoice total before including it.
---
2. PayPal settlement lag varies by transaction type
Bad: Assuming all PayPal receipts settle in 1–2 business days. PayPal holds funds differently for disputes, new sellers, and high-value transactions — using a flat settlement assumption produces overconfident inflow timing.
Good: Compute settlement lag from actual transaction_date → completed_date pairs in the PayPal transaction history. Use the computed mean and stddev per customer or transaction type.
---
3. CSV column names are inconsistent across accounting exports
Bad: Requiring exact column names like "Date", "Amount", "Type". QuickBooks CSV exports use "Transaction Date", "Amount", "Transaction Type". Wave uses "Date", "Amount", "Account Type". Rigid parsing fails silently.
Good: Fuzzy-match column headers (date → transaction date → txn date; amount → debit/credit; type → category → account type). Show the header row to the user and confirm mapping before computing — one question beats a silent wrong forecast.
---
4. Fixed costs hidden in one-off AP entries
Bad: Only pulling recurring line items labeled as "recurring" in QuickBooks. Many SMBs don't tag fixed costs consistently — rent may appear as a one-off vendor bill each month.
Good: Look for AP entries that appear in 3+ consecutive months with the same vendor and similar amount (±10%). Treat these as recurring fixed costs in the forecast. Surface the list to the user: "I'm treating these as fixed monthly costs — does that look right?"
---
5. Confidence band formula breaks when mean payment lag is zero
Bad: Dividing stddev by a mean lag of 0 (e.g. immediate payment customers like Square POS) produces a divide-by-zero error or an infinite band.
Good: If mean lag ≤ 1 day, set band_pct to 5% (low variance, near-immediate settlement). Don't attempt the division.
Related skills
How it compares
Choose cash-flow-snapshot for quick narrative snapshots from manual inputs; use spreadsheet or accounting integrations when you need live data and audit trails.
FAQ
Which data sources are supported?
QuickBooks AR/AP and fixed costs first, then PayPal, Stripe, Square settlement history, or CSV income/expense upload as fallback.
How are confidence bands calculated?
band_pct = weighted_avg_stddev_days / avg_payment_lag_days applied to net cash, rounded to one decimal, capped at ±50%.
What files are delivered?
Always a chat summary and cash-flow-snapshot-YYYY-MM-DD.xlsx with Summary, Detail, and Risks sheets.