Building a Rolling 13-Week Cash Flow With Claude

Published by

on

TL;DR. A rolling 13-week cash forecast is the single highest-ROI artifact a CFO produces. This is how to build one with Claude as your analyst using a 4-prompt sequence, what to paste in, what to expect back, how to update it weekly in under 30 minutes, and the failure modes that will bite you if you trust the model on math it should not be doing.

Ask any lender, PE partner, or CFO peer what one report they want to see, and it is the 13-week cash flow. It is the artifact that separates operators who know where cash is going from operators who are guessing. And it is the exact workflow that Claude, used correctly, saves you about four hours a week on.

What follows is the sequence I run at an operating company and inside two portfolio-company engagements. It works with Claude Sonnet 4.5 on Claude for Work; the same prompts work with GPT-5 with minor tweaks. Everything here assumes you have already handled the privacy question, which the CFO LLM privacy guide covers.

What the Rolling 13-Week Cash Forecast Is (and Is Not)

Definition: a direct-method cash forecast that projects week-ending cash for the next 13 weeks, built up from expected receipts and disbursements, and re-baselined every Monday with last week’s actuals. Not indirect method. Not a P&L in disguise. Not annualized.

Why 13 weeks and not 12 or 16. Because a quarter is the horizon at which working capital swings, seasonal receivables, and quarterly debt service all land inside the same view. And because 13 weeks is what your lender’s covenant compliance test typically wants. Standardize on 13.

What Claude does well. Turning raw inputs (AR aging, AP schedule, payroll dates, expected receipts) into a clean weekly view. Writing the narrative that goes above the table. Flagging the tight week and naming the driver.

What Claude does badly. Arithmetic across 13 weeks by 30 line items without an analysis tool turned on. If you turn off Claude’s analysis mode and hand it 400 numbers, it will estimate rather than compute, and about one in twenty totals will be wrong. Verification checkpoint below covers this.

The Input Structure You Need Before You Start

Spend 20 minutes getting these five inputs into one shared worksheet. Without them the prompts fall apart.

  1. Beginning cash. Total cash and equivalents as of last Friday’s close, by account (operating, MMDA, restricted). Number and date.
  2. AR aging. By customer, by bucket (current, 1-30, 31-60, 61-90, 90+). If you have expected payment dates from customer conversations, add a “Committed Pay Date” column.
  3. AP schedule. By vendor, by due date, for the next 13 weeks. Include anything committed but not yet in AP (signed SOWs, upcoming subscription renewals).
  4. Payroll calendar. Semi-monthly or bi-weekly pay dates for the next 13 weeks, with the average net cash impact of each run. Include the associated payroll tax remittance dates, which are often 1 to 2 days behind.
  5. Other known items. Debt service (interest and principal), rent, tax estimated payments, insurance renewals, one-time expected items (an equipment purchase, a K-1 distribution, a bonus payout). Anything over $[YOUR MATERIALITY THRESHOLD] belongs in this list.

Structure that data as a single spreadsheet with these tabs: Inputs, Forecast, Actuals, Narrative. You will feed the Inputs tab to Claude, receive the Forecast tab and the Narrative back, and hand-populate Actuals on Mondays. This is the container that makes the sequence repeatable.

The 4-Prompt Sequence

Run these prompts in a single Claude conversation so each step has the prior step’s output in context. Total real time: 25 to 35 minutes on clean inputs.

Prompt A. Structure the Receipts Side

You are a CFO's cash forecasting analyst. Turn the AR aging below into a week-by-week expected receipts schedule for the next 13 weeks.

AR aging (CSV): [PASTE, columns: Customer (redacted), Total, Current, 1-30, 31-60, 61-90, 90+, Committed Pay Date if known]

Rules:
1. For customers with a Committed Pay Date within the 13-week window, place the full amount in that week.
2. For everything else, use these default payment timing assumptions:
   - Current bucket: 60% collects in W+1, 30% in W+2, 10% in W+3
   - 1-30 bucket: 50% in W+1, 30% in W+2, 20% in W+3
   - 31-60 bucket: 40% in W+2, 40% in W+3, 20% in W+4
   - 61-90 bucket: 30% in W+2, 30% in W+4, 40% pushed to "beyond forecast"
   - 90+ bucket: 20% in W+4, 80% pushed to "beyond forecast"
3. Output as a table: rows = customers, columns = W1 through W13 plus "Beyond".
4. Add a totals row.
5. Do NOT sum column totals in prose. Just the table.

Business context: [ONE SENTENCE about payment behavior. E.g. "Enterprise SaaS, majority NET-30, quarterly renewals in W3 and W7."]

Expected output. A wide table with customer rows and 14 columns (13 weeks + “Beyond”). Total row at the bottom. Nothing else. If Claude tries to write a summary paragraph, ignore it; the summary comes in Prompt D.

Prompt B. Structure the Disbursements Side

Now build the disbursements side for the same 13 weeks. Use the same weekly buckets W1 through W13.

Inputs:

AP schedule (CSV): [PASTE, columns: Vendor (redacted), Amount, Due Date, Category]

Payroll calendar: [PASTE dates and amounts, e.g. "W1: $145,000 net; W3: $145,000; W5: $145,000..."]

Other known items: [PASTE. E.g. "W2: Debt service $28,000; W4: Rent $42,000; W8: Insurance renewal $61,000..."]

Rules:
1. Place AP items in the week containing the Due Date. If Due Date is past, place in W1.
2. Add a "Payroll and payroll tax" row across weeks it hits.
3. Add a "Debt service" row.
4. Add an "Other fixed" row (rent, insurance, subscriptions).
5. Add a "One-time" row for equipment purchases and other lumpy items.
6. Output as a table: rows = category, columns = W1 through W13, with a Total column at the right.
7. Add a total disbursements row.

Expected output. A category-by-week table with 6 to 10 rows, 13 week columns, and a totals column. Row totals should tie to your input totals (verification checkpoint below).

Prompt C. Assemble the Week-Ending Cash Table

Now assemble the full 13-week cash forecast.

Beginning cash (last Friday close): $[X]
Minimum operating cash: $[MIN]

Combine the receipts table (Prompt A output) and the disbursements table (Prompt B output) into a week-by-week cash bridge.

Output as ONE table with the following rows:
1. Beginning cash
2. Total receipts (from Prompt A)
3. Total disbursements (from Prompt B, negative sign)
4. Net cash flow
5. Ending cash

Columns: W1 through W13.

Below the table, add:
- The single tightest week by ending cash. Name the week and the shortfall or cushion versus minimum operating cash.
- The single week with largest positive net cash flow. Name the driver.
- Whether any week ends below minimum operating cash. If yes, list all such weeks.

Show your arithmetic for one week (I will pick which one). Do not smooth the forecast. If payroll drops cash by 30% in one week, show it.

Expected output. A 5-row, 13-column table plus a 3 to 5 sentence assessment. If the “show your arithmetic” request produces something that does not tie, that is a signal your inputs to Prompt A or Prompt B were inconsistent; go back and fix.

Prompt D. Write the Narrative for the Board

Now write a 200-word cash forecast narrative for a monthly board report. Audience: board members who read the table but want prose that explains it.

Base it on the outputs from Prompts A, B, and C above.

Structure:
1. First sentence: current cash and 13-week ending cash, with directional summary.
2. Second sentence: the tightest week and the driver.
3. Middle: the top 2 uncertainties that could move the forecast by 10% or more.
4. Second-to-last sentence: what actions are already in flight to close any gaps (collection push, AP timing, drawing on line of credit).
5. Last sentence: what I need from the board (approve X, we're aware of Y, no ask).

Tone: direct. No hedging. No "we believe" or "management estimates." Just numbers, drivers, and actions.

If any item requires a specific number I did not give you, put "[NEED: description]" so I can fill in.

Expected output. A single 200-word paragraph that could go into a board report without editing. Which is the point.

Verification Checkpoints (Do These Every Time)

The prompts get you 90% of the way. These three checks close the last 10% and catch the arithmetic errors that make LLMs untrustworthy for pure math.

Check 1: Row totals in the disbursements table. Sum your input AP file separately. Compare to Claude’s row total. They should match within $1. If they do not, Claude dropped a line; feed it back in and reask.

Check 2: Week 1 arithmetic. Manually compute W1 ending cash: Beginning + W1 receipts total – W1 disbursements total. Compare to Claude’s W1 ending cash. If it does not tie, ask Claude to redo the arithmetic and show its work. In my experience it ties correctly about 19 times out of 20.

Check 3: The tight-week callout. Look at the ending cash row across all 13 weeks. Confirm the “tightest week” Claude flagged is actually the minimum. This is the check that catches the failure mode where the model reads the narrative before it reads the table.

Sixty seconds of eyeballing catches the errors. Skip these three checks and someday you send a board a forecast with a $200,000 payroll-tax hit missing from W4 because Claude quietly aggregated payroll and payroll tax into one row when your input had them separate.

How to Update It Weekly

The magic of a rolling forecast is not the first build. It is the weekly re-baseline. Here is the Monday routine.

  1. Monday 9:00 AM. Populate Actuals. Enter last week’s actual cash flow into the Actuals tab. This is a manual pull from your bank statement plus your AP register.
  2. Monday 9:15 AM. Roll the forecast. W1 becomes yesterday’s actual. The old W2 becomes the new W1. Add a new W13 at the end. Update beginning cash to Friday’s close.
  3. Monday 9:20 AM. Rerun Prompts A and B with fresh inputs. Same prompts, new AR aging, new AP schedule. Claude produces new receipts and disbursements tables.
  4. Monday 9:30 AM. Rerun Prompt C to reassemble the cash bridge. Compare to last week’s forecast for the same weeks. Note any variance over 10% and diagnose whether it was timing (a receipt slipped) or magnitude (a customer paid less than expected).
  5. Monday 9:45 AM. Prompt D to update the narrative, referencing what changed since last week.
  6. Monday 10:00 AM. Send. To the CEO, ownership, and any lender-covenant recipients.

Sixty minutes end to end once your inputs and prompt library are dialed in. Compared to the four hours I used to spend in Excel doing the same thing, the compounding return over a year is roughly 150 hours per finance leader.

Common Failure Modes

Feeding stale AR aging. If the aging you paste is more than two business days old, the W1 receipts row will be off by whatever came in since. Pull fresh Monday morning, always.

Not naming Committed Pay Dates for the largest customers. Your top 10 customers likely represent 60% of receipts. Get their expected payment dates in a Monday morning email, and put those in the “Committed Pay Date” column. Every one you name shifts the forecast from probabilistic to deterministic for that dollar.

Forgetting the payroll tax lag. Semi-monthly payroll usually hits Friday; payroll tax remittance hits the following Wednesday. If you model payroll and payroll tax on the same day, W1 looks fine when it should be tight. Model them separately.

Treating the forecast as a one-way commitment. The point of a rolling forecast is to show what happens if you do nothing. When it flags a tight week, that is a call to action: accelerate collections, delay non-critical AP, or draw the line. The forecast is a diagnostic, not a promise.

Asking Claude to smooth the numbers. Do not. A choppy weekly cash line is real. The temptation to average the payroll spikes across weeks so the ending-cash line looks pretty destroys the entire point of the exercise.

When Not to Trust Claude’s Math

Direct answer: any time you have more than about 250 numbers going into a single prompt, and you have not turned on Claude’s analysis tool (the one that runs Python under the hood). Without the tool, Claude estimates arithmetic; with it, Claude computes. The distinction matters at scale.

Rule I use: if the input to a prompt exceeds 300 cells, either turn analysis mode on, or pre-summarize the input into fewer aggregated rows before pasting. Do not send Claude 13 weeks of daily transactions and expect a correct 13-week total.

The three verification checkpoints above catch most of what slips through even with the tool on. Do them.

Frequently Asked Questions

Can Claude connect directly to my accounting system?

Not out of the box. The consumer app takes pasted CSVs, not database connections. For direct integration you either use the API with a small integration script (an hour of engineering time for a QuickBooks or Xero pull) or a middleware like Zapier. I run the pasted-CSV version because the overhead of maintaining an integration is not worth it for a weekly cadence.

How do I handle multi-currency in this forecast?

Convert every input to your functional currency at a locked rate (last month-end rate is fine) before pasting. Do not ask the model to do the FX; it does not know today’s rate and will estimate. Note the rate in the narrative so readers know the FX assumption.

What if my inputs are messier than the clean CSV structure you show?

Do a 20-minute cleanup pass in Excel before you paste. Merge duplicate customer names, standardize date formats, remove header rows and totals. Every minute you spend cleaning the input saves five minutes of prompt debugging later. This is the boring pre-work that separates operators who get value from LLMs from operators who post frustration on LinkedIn.

Can I do a 13-week forecast for a portfolio company I do not sit inside?

Yes, with a slight adaptation. Get their AR aging, AP schedule, and payroll calendar delivered to you weekly (a 15-minute ask of the local controller). Run the same 4-prompt sequence. The narrative Prompt D writes serves both the local team and your investment committee. This is how I keep a lightweight but real view across multiple engagements.

How does this connect to the annual budget?

The 13-week rolling forecast is your operating truth. The annual budget is your commitment to the board. When they disagree by more than 15% in a rolling three-month window, you have a real reforecast conversation to have. The FP&A budget cycle article walks through how to run that reforecast without turning it into a 12-week project.

Related Reading

Sources

Written by The Pragmatic CFO. 15+ years running P&Ls and AI-native finance experiments across portfolio companies.