🔗 Introduction to core concept, what the topic matters
The hardest part of a three-statement model isn’t building the statements-it’s making them agree about timing. The P&L records performance. The balance sheet records the position. The cash flow records movement. When those three viewpoints aren’t built from the same schedule logic, you get the classic outcome: your financial statements look fine individually, but cash won’t reconcile.
The “cash proof” method solves this by forcing a single source of truth: the change in each balance sheet line must appear exactly once in the cash flow, with the correct sign and category. Once you’ve mapped movements cleanly, updates become faster, reviews become simpler, and scenario changes stop breaking links. If your model is driver-led, the mapping stays stable even as assumptions change because you’re adjusting drivers, not rewriting statement logic.
🧾 Simple framework that you’ll use
Use this framework every time you link the balance sheet to cash flow in a 3-statement financial model:
- Movement mapping – for each balance sheet line, define the cash flow category: operating (working capital + accrual timing), investing (capex), financing (debt/equity).
- Schedule ownership – each mapped line must be produced by a schedule (AR/AP/inventory, PP&E roll-forward, debt roll-forward).
- Sign discipline – decide the display convention on the cash flow and make schedules output movements in that convention.
- Cash reconciliation – Beginning cash + net movement = Ending cash (and it must match the balance sheet cash line every period).
If you add one thing early, add error checks that highlight where the reconciliation breaks, not just that it breaks.
📋 Step-by-step implementation
Step 1: 🧭 Build the balance sheet from schedules (not from “inputs”)
Start by ensuring your balance sheet is schedule-driven. “Schedule-driven” means every material line has a roll-forward: opening balance + drivers/movements = closing balance. This includes cash, working capital, PP&E, debt, equity, and timing items (accruals, deferred revenue).
Why this matters: the cash flow statement is just a categorised view of those movements. If your balance sheet lines are hard-coded or partially “plugged,” you’ve removed the audit trail and made cash proofing impossible.
Keep the balance sheet readable: it should primarily reference schedules, not compute them. That design choice is what turns your financial model from a fragile spreadsheet into a system you can update weekly without fear.
Step 2: 🧮 Map working capital changes into operating cash flow
Next, link operating cash flow to working capital movement. In an indirect cash flow, you start with net income, then adjust for non-cash items, then apply changes in AR, inventory, and AP (plus other current assets/liabilities).
The clean method is simple: your working capital schedule should output two numbers per period-closing balance and change vs prior period. The cash flow should reference the change (with the correct sign) and never re-calculate it. This prevents the common bug where the cash flow references “closing” balances accidentally or uses a mismatched time period.
If you want AR/AP/inventory to tie reliably across statements, build a schedule-first working capital module and export movements from it.
Step 3: 🏗️ Treat PP&E as investing cash flow, not an expense workaround
Capex and depreciation are where many models quietly fail. Depreciation is a non-cash P&L expense; capex is a cash investing outflow that capitalises on the balance sheet. If you don’t separate them, your cash flow will double-count or miss cash entirely.
The fix: build a PP&E roll-forward that outputs opening PP&E, capex additions, disposals, depreciation, and closing PP&E. Then:
- Depreciation flows into the P&L and is added back in operating cash flow.
- Capex flows into investing cash flow and increases PP&E on the balance sheet.
If you need a clean PP&E structure (especially under multiple asset classes), use a dedicated module approach.
Step 4: 💳 Link debt and equity movements into financing cash flow (handle circularity)
Financing cash flow should be a roll-up of debt and equity movements: borrowings, repayments, equity raises, buybacks/dividends. The most common circularity is interest: interest expense depends on debt balances, but debt balances depend on cash, which depends on interest.
You can manage this cleanly by isolating debt into a debt schedule with: beginning balance, draws/repayments, interest calculation methodology, and ending balance. Then feed:
- Balance sheet debt from ending balances
- Cash flow financing lines from draws/repayments
- P&L interest expense from the interest row
That keeps the circularity contained and reviewable.
Step 5: ✅ Reconcile cash every period, then operationalise scenario updates
Now, “cash proof” the model. Build a simple reconciliation line that calculates: beginning cash + operating CF + investing CF + financing CF = ending cash. Then compare the ending cash to the balance sheet cash line. If it’s off, you don’t fix it with a plug-you trace the missing movement.
Once the reconciliation is stable, you can safely layer scenarios: change drivers (sales timing, terms, capex pace, borrowing assumptions) and watch schedules flow through to the financial statements without rewriting logic. This is where Model Reef can add leverage subtly: scenario branching and governed updates help teams avoid duplicating files just to run a downside case.
🧪 Examples and real-world use cases
In diligence, reviewers don’t just ask for a three-statement model-they test whether it ties, whether cash is explainable, and whether assumptions update predictably. The cash proof method gives you that confidence: every balance sheet movement has a scheduled source, every cash flow line is categorised as a movement, and the reconciliation proves completeness.
A practical workflow: update the driver layer, confirm schedule outputs (AR days, inventory turns, capex timing, debt balances), then scan the reconciliation and key sanity checks. If cash ties, the conversation shifts from “is this right?” to “what does this imply?”
If your cash proof breaks specifically around collection timing, bridging invoices to receipts is often the missing operational driver.
➡️ Next steps
Once you can cash-proof a single period, apply the same discipline across the full forecast horizon: every balance sheet line is scheduled, every schedule outputs movements, and the cash flow is a categorised roll-up. Then add scenario toggles at the driver layer so you can answer leadership questions without duplicating files or rebuilding statements.
If you want the end-to-end build order for the entire linked-statements workflow (P&L → balance sheet schedules → cash flow → checks), return to the full guide and use it as your master reference while you implement.