Where this picks up
Session 1 wired the three statements together and showed the two lines in the engine that do it. Session 2 took revenue down to net income. Session 3 turned DSO, DIO and DPO into receivables, inventory and payables. Today those pieces become the statement that connects them, built the way the engine builds it. Session 5 takes the balance sheet the same way and then breaks it on purpose. The model on this page is assets/fin-live.js, already loaded.
★ What you walk out with today. The indirect method as four signed moves you can write from memory, and the Marchmont twelve month bridge that goes with them: £445,631 to minus £297,261 with every pound accounted for on the way. The monthly operating cash flow path, which turns negative in month 2 and climbs back to minus £427 by month 12 without ever crossing zero again. A reason for starting at profit rather than at the bank statement that is about explanation, not convenience. And two arguments you should be able to state without taking a side: where a movement belongs, and what the word free is doing in free cash flow.
LiveWhat the statement is actually for4 min▶
The income statement says what the period earned. The balance sheet says what the cash level is on the last day. Neither says how one became the other, and that is the only question the cash flow statement answers. It is a reconciliation with a fixed start, a fixed end, and a middle that has to add up.
That structure is what makes it checkable. If the four moves do not land on the change in the bank balance, a line is missing, and the amount by which you miss is the size of what you left out.
Marchmont over twelve months: net income £445,631, free cash flow minus £297,261. The statement does not summarise that as a shortfall. It names four amounts, the largest of which is £664,607 of money now sitting in unpaid invoices and unsold instruments, and after the fourth one there is nothing left to explain.
Self-studyThe three fields the statement is made of4 min▶
Each row the engine returns already carries every figure the statement needs. There is no separate cash flow object, because the statement is a way of reading the row rather than a fifth thing to compute.
No credentials of any kind are involved. If an example ever needs one, the string is the word placeholder.
The bridge, one signed move at a time
12 min liveFour moves, each with a sign that follows from one question: did this change profit without moving money, or move money without changing profit? Everything on the statement is one or the other.
LiveLine one: net income, and why it is a starting point rather than an answer3 min▶
Net income is the figure the income statement finished with, after tax and after interest. It is already net of every cost the period incurred, which is exactly what makes it the right place to begin: everything still to come is a correction for timing, not a new cost.
Marchmont's twelve month figure is £445,631, and every month of it is positive. A statement that begins here and ends below zero has not found a loss. It has found three timing differences.
LiveLine two: depreciation, added back3 min▶
Depreciation is the accounting recognition that an instrument bought three years ago is being used up. It reduced profit this month. No money left the bank this month because of it, so it has to come back out of the bridge.
Over twelve months that is £102,025. It is the only add back in the Marchmont model, which is unusual: real statements often carry several, and the test for each one is identical.
LiveLine three: the working capital build, subtracted4 min▶
Session 3 built the three balances. Here they become one number. Receivables rising means revenue recorded and not collected. Inventory rising means money spent on instruments not yet sold. Payables rising works the other way, because an unpaid supplier is a cost recorded without money leaving.
Over the year the three together consumed £664,607, which is the single largest line on the bridge and larger than the profit above it. Receivables alone grew by £539,454.
Self-studyLine four: capital spending, and where the subtotal falls4 min▶
Capex is money paid for something that will be used over years, so the income statement refuses to treat it as this period's cost and spreads it through depreciation instead. The bank does not spread anything. The full £180,310 came out during the year.
Notice where the subtotal sits. Operating cash flow of minus £116,951 is struck before capex, so it describes trading alone. Free cash flow of minus £297,261 is struck after it. The same twelve months, two legitimate summary figures, nearly £180,000 apart, and which one gets quoted is a choice somebody makes.
Why it starts at profit and not at the bank
8 min liveThere is a method that starts at the bank statement and adds up receipts and payments. It exists, it is permitted, and almost nobody publishes it. The reason is not laziness.
LiveThe reader already has the starting figure3 min▶
Anybody reading a set of accounts has the income statement and the balance sheet in front of them. The indirect method begins with a number they can already see and moves it using changes they can already compute from two balance sheets. That makes the statement auditable from outside, without access to the ledger.
The direct method's first line, total cash received from customers, cannot be reconstructed by a reader at all. It has to be taken on trust, which is the opposite of what a reconciliation is for.
LiveAn explanation beats an observation3 min▶
Both methods would tell you Marchmont's bank balance fell. Only one tells you that £664,607 of it is recoverable money sitting in invoices and stock rather than money that has gone. Those two readings lead to completely different decisions, and the second one is a financing conversation rather than a performance one.
This is also the honest case against the indirect method. Starting from an accrual figure and adjusting it means the statement is built from estimates rather than from bank records, and an error in the accruals flows straight through. The direct method has no such exposure. That is a real trade and it is the reason the argument has never fully closed.
Self-studyReading the bridge backwards3 min▶
A bridge read from the bottom is a diagnostic. Free cash flow of minus £297,261 with capex of £180,310 says a little over half the drain was investment, which is a choice that can be paused. The other half is operating, which cannot.
Within the operating half, £664,607 went into working capital while profit contributed £445,631. A business whose operating cash flow is negative purely because of a working capital build is in a different position from one whose profit is negative, and the bridge is what distinguishes them.
The annual figure hides the path
7 min liveMinus £116,951 for the year is one number for twelve very different months. The monthly column turns negative in month 2 and then improves every single month without ever getting back above zero.
LiveWhy the column improves while the balance falls3 min▶
Profit grows faster than the working capital build does, so the gap between them narrows every month. That is the improvement. But the gap is still a gap: minus £3,165 in month 11 and minus £427 in month 12 are smaller drains, not deposits.
A level only rises when the flow into it is positive. Reading an improving flow as a recovering level is the most common misreading of a cash flow statement, and it is comfortable because the direction of travel looks right.
LiveMonth 1 is a modelling choice, not a result3 min▶
Opening receivables, inventory and payables are set consistently with month 1 activity, so the working capital delta in month 1 is exactly zero and operating cash flow that month is £22,062. That figure is real output from the model and it is not evidence about Marchmont.
Any model with a constructed opening position has a month 1 like this. Quoting it as a finding is a mistake worth making once, in private, rather than in a board pack.
Self-studyReproducing the column3 min▶
The third expression is the check worth keeping. A subtotal that cannot be rebuilt from the lines above it is a subtotal that has picked something up on the way.
Where a movement belongs, and who gets to decide
7 min liveThe bridge is arithmetic and does not argue. The three headed sections it is usually printed under do argue, and so does the adjective in free cash flow. Both disputes move published figures without a pound of bank activity changing.
LiveThe interest argument, stated fairly4 min▶
One side says interest is a cost of running the business as it is currently funded, so it belongs with trading and operating cash flow should be struck after it. On that view, moving interest out of operating flatters a leveraged company and makes it look like a lightly geared one.
The other side says interest is a payment to a capital provider, exactly like a dividend, and that operating cash flow should describe what the assets produce regardless of who financed them. On that view, leaving interest in operating makes two identical businesses look different purely because one borrowed.
Both are coherent and the frameworks have not converged. In the Marchmont engine interest is deducted before net income, so it is inside the operating figure, and the minus £116,951 is an after interest number. Saying which convention a figure used is more useful than defending either one.
LiveThe word free, and the question that replaces it3 min▶
There is no single agreed definition of free cash flow. Subtract all capex and you get minus £297,261. Subtract only the capex needed to keep the existing instruments running and you get something less negative, because part of Marchmont's £180,310 is buying capacity for growth rather than replacing what wore out. Both figures are honestly labelled free cash flow.
The useful move is not to pick a winner. It is to ask what was subtracted to get there, which is a fair question to put to your own team as well as to somebody else's filing. A free cash flow figure with no stated subtraction list is not wrong, it is unreadable.
Self-studyWhat an empty financing section is telling you3 min▶
Marchmont's debt never moves in this model, no shares are issued and no dividend is paid, so the financing section is empty and free cash flow happens to equal the change in the bank balance exactly. That equality is a property of these assumptions, not a general rule, and it will stop holding the moment session 8 adds borrowing.
It is worth noticing in a real statement too. A company whose financing section is empty is living on what it generates. One whose operating section is negative and whose financing section is large is living on somebody else's money, which is a position rather than a verdict.
Build the bridge from the rows
22 min hands onSix steps in the browser console on this page. MARCHMONT is loaded already, so nothing needs installing.
Rebuild the four lines from scratch
Run MARCHMONT.run({}, 12) and use cumulative on netIncome, depreciation, deltaWC and capex. Write the four figures down in bridge order with their signs and check you land on minus £297,261. If you do not, you have a sign wrong, and which one is the exercise.
Prove the subtotal is not stored
Compare cumulative(m, "operatingCF", 12) against netIncome plus depreciation less deltaWC, computed separately. They should agree to the penny. This is how you find out whether a subtotal in somebody else's model is a formula or a typed number.
Check the bridge against the bank balance
Take rows[11].cash and subtract the opening cash of £250,000. The difference should equal twelve month free cash flow. When it does, the statement has explained the whole movement and there is nothing outstanding.
Find the month the sign settles
Print operatingCF for all twelve months. Identify the last positive month and the worst month, and say in one sentence why the worst month is month 2 rather than month 12 when the business is much larger by then.
Move capex and watch the summary move
Compute operating cash flow and free cash flow for the same run. The pair differ by £180,310 of capital spending. Decide which of the two you would put on the first page of a board pack, and write one line defending the choice to somebody who wanted the other one.
Re-run with a different collection setting
Run { dso: 45 } to twelve months and rebuild the bridge. Net income will not have moved at all. Say which of the four lines absorbed the entire change, and confirm the run still ties before you believe any of it.
The habit to keep. Never quote an operating cash flow figure without saying whether it is before or after interest, and never quote a free cash flow figure without saying what was subtracted. Both take four extra words and both prevent a comparison that was never valid.
Three questions
Why is depreciation added back on the way from net income to operating cash flow?
The test for every add back is the same: did this reduce profit without moving money? Marchmont's £102,025 of depreciation did, so it comes straight back. Capital spending is the mirror case and is subtracted for the opposite reason.
Marchmont's monthly operating cash flow improves in every month from month 2 to month 12, ending at minus £427. What does that mean for the bank balance?
A level only rises when the flow into it is positive. Eleven months of improvement with every month still negative is eleven more months of draining, just more slowly each time. Reading the direction of the flow as the direction of the level is the standard mistake.
Two companies report operating cash flow. One puts interest paid in operating, the other puts it in financing. What follows?
The classification is genuinely disputed: one framework permits the choice and another requires operating, and both positions have a real argument behind them. The change in cash is indeed identical, which is exactly why the operating subtotal alone is not a comparison.
Homework
Thirty minutes, in the console and then on one real filing.
Bridge a published set of accounts
Find any company's cash flow statement and mark each line as an add back, a working capital movement, an investing item or a financing item. Note every line you could not place confidently, because those are the classification choices somebody made on your behalf.
Write the tie check you will need next time
Run the model to 48 months and confirm MARCHMONT.ties(m) returns ok before reading anything else from it. Session 5 takes that one line apart and then breaks it deliberately, so arrive knowing what it currently returns.