learn-finance-with-phoebe / Practitioner session 7 of 10
Learn Finance with Phoebe · Practitioner session 7 of 10

The levers

Marchmont's base case runs out of cash in month 10 and is at -£47,261 by month 12. Eight things can be done about it, and each one has been run on its own with every other assumption held at base. All eight work: every one of them keeps the cash line above zero for the whole year. What separates them is not whether they work but what they cost, and the model is only willing to price some of that. Four of the eight move cash by as much as £168,521 and change twelve month net income by exactly nothing, which is the cleanest demonstration available that profit and cash are two different questions asked of the same transactions.

🟢 Hands on Analysts asked what we can do about it Anyone choosing between fixes 45 min
0-4 · Welcome 4-24 · Eight levers, measured 24-40 · The four that move no profit 40-60 · What the model will not price
Part 0

What is being levered against

One base case, one horizon, one key changed at a time. Marchmont grows 4% a month, holds a 42% margin, collects in 75 days, holds 60 days of stock and pays suppliers in 30. Cash goes below zero in month 10 and stands at -£47,261 at month 12, while twelve month net income is £445,631. Every figure below is the same model with one assumption moved, run to 24 months, tie checked before it was read.

Live = run together in the session Self-study = the full depth, after class 🔍 Every diagram zooms

★ What you walk out with today. Eight measured levers with their cash and profit effects side by side, reproducible in the console in six lines. The finding that collecting sooner, paying later and holding less stock move cash without touching the income statement by a single pound. The reason that is a statement about accounting rather than about business skill. And a working method for choosing between levers the model has declined to rank, because the thing that separates them is not in the model.

Read this before the table. None of these levers is free, and the model does not know that. Collecting in 45 days means going back to customers who agreed 75. Paying suppliers in 60 means spending goodwill with people whose cooperation you will need again. Holding 30 days of stock instead of 60 means accepting a stockout risk that the model has no variable for. The cash column is real and measured. The cost column does not exist, and its absence is not evidence that the cost is zero.

LiveOne key at a time, and why4 min▶

Levers get run one at a time because combining them hides which one did the work. Two changes together produce one number, and that number cannot be decomposed after the fact when somebody asks whether the supplier renegotiation was worth the relationship. Run singly they can be added up later with a known error; run together they cannot be taken apart at all.

Each run uses the same horizon as the base it is compared against, which is 24 months here. Comparing a lever measured over 24 months against a base measured over 48 would attribute part of the horizon to the lever, which is the error session 6 spent its time on.

Real world

Collection at 45 days and payment at 60 days both keep Marchmont solvent on their own. Run together they would also keep it solvent, and the combined figure would tell you nothing about whether you needed to ask the suppliers at all.

Part 1 · covers the eight

Eight levers, one company, one key each

16 min live

Cash at month 12 against a base of -£47,261. Every bar is a single assumption moved, everything else held. The weakest of them lands at £60,630 and the strongest at £232,489, on the same business in the same year.

Cash at month 12, one assumption moved per row, 24 month run. timing only, profit unchanged also changes profit the base case, for comparison Base case, nothing changed -£47,261 Collect in 60 days not 75 £60,630 Pay suppliers in 60 not 30 £77,892 Hold 30 days stock not 60 £77,892 Cut fixed opex by £15,000 £87,739 Collect in 45 days not 75 £168,521 Grow 2% a month not 4% £186,555 Gross margin 47% not 42% £188,915 Borrow another £300,000 £232,489 zero All eight clear zero. None of them is the answer on its own. The bar lengths are the only part of the comparison the model can compute. What each one costs is not on this chart because it is not in the model.
🔍 Click to zoom - the bars are sorted by cash, which is the one ordering the engine can produce and the one least likely to be the right ordering to act on.
LeverCash goes negativeCash at m1212m net income
Base case, nothing changedmonth 10-£47,261£445,631
Collect in 45 days not 75never£168,521£445,631
Collect in 60 days not 75never£60,630£445,631
Pay suppliers in 60 not 30never£77,892£445,631
Hold 30 days stock not 60never£77,892£445,631
Grow 2% a month not 4%never£186,555£296,285
Gross margin 47% not 42%never£188,915£671,018
Cut fixed opex by £15,000never£87,739£580,631
Borrow another £300,000never£232,489£425,381
LiveRunning them, in six lines4 min▶

Each lever is one override object. The loop below reproduces the whole table, and the tie check runs before any figure is read out of any run.

consoleconst levers = { "base": {}, "collect in 45": { dso: 45 }, "collect in 60": { dso: 60 }, "pay in 60": { dpo: 60 }, "hold 30 days": { dio: 30 }, "grow 2%": { growth: 0.02 }, "margin 47%": { grossMargin: 0.47 }, "opex down 15k": { opexFixed: 80000 }, "borrow 300k": { openingDebt: 600000, openingCash: 550000 } }; for (const name in levers) { const r = MARCHMONT.run(levers[name], 24); if (!MARCHMONT.ties(r).ok) throw new Error("does not tie: " + name); console.log( name, MARCHMONT.cashOutMonth(r), Math.round(r.rows[11].cash), Math.round(MARCHMONT.cumulative(r, "netIncome", 12)) ); }

The borrowing lever needs two keys rather than one, because money borrowed arrives in the bank and stays owed at the same time. Raise openingDebt without raising openingCash and you have modelled a company that took on an obligation and never received the money.

LiveTwo levers that land on exactly the same figure4 min▶

Paying suppliers in 60 days instead of 30 and holding 30 days of stock instead of 60 both give cash at month 12 of £77,892. That is not a coincidence and it is not a bug. Both inventory and payables are driven off the same cost of goods figure in the engine, and both moves are 30 days in the same direction on that base, so they release identical amounts of cash.

They are completely different things to do in a business. One is a conversation with suppliers, the other is a change to how much stock sits in the warehouse and how fast you can ship. The model cannot see the difference, and two identical numbers landing on two different decisions is exactly the situation where somebody reaches for the one that is easier to arrange rather than the one that is cheaper to live with.

Self-studyWhy borrowing shows the largest cash figure and the lowest profit4 min▶

Borrowing another £300,000 produces cash at month 12 of £232,489, the largest figure in the table, and twelve month net income of £425,381, below the base case figure of £445,631. That is the only lever in the eight whose price appears anywhere on a statement.

The engine charges interest at 9% a year on drawn debt, so more debt means more interest, less pretax profit, less tax and less net income. The cost is visible, quantified and arrives every month on the income statement. Every other cost in this table is invisible, and it is worth sitting with the fact that the lever with a published price looks worse on the profit line than the levers whose price nobody has written down.

Part 2 · covers the headline finding

Four levers, and the profit line does not move

12 min live

Collect sooner. Collect somewhat sooner. Pay later. Hold less stock. Four different operational changes, worth between £60,630 and £168,521 of cash at month 12, and twelve month net income is £445,631 in all four cases. Not approximately. To the pound.

The same four runs, read down two different statements. Cash at month 12 Base case, nothing changed -£47,261 Collect in 45 days not 75 £168,521 Collect in 60 days not 75 £60,630 Pay suppliers in 60 not 30 £77,892 Hold 30 days stock not 60 £77,892 Five different answers. Twelve month net income Base case, nothing changed £445,631 Collect in 45 days not 75 £445,631 Collect in 60 days not 75 £445,631 Pay suppliers in 60 not 30 £445,631 Hold 30 days stock not 60 £445,631 One answer, five times. Timing is not performance. Change when money moves and the income statement never finds out. Anybody reviewing these four decisions on the profit line alone would see four identical outcomes and conclude that nothing had been done.
🔍 Click to zoom - the right hand column is not rounded. It is the same figure, computed five times from five different runs.
LiveWhy the profit line cannot move4 min▶

Look at what the income statement is made of in the engine: revenue, cost of goods, opex, depreciation, interest and tax. Collection terms appear in none of them. Revenue is recorded when it is earned, so a customer paying in 45 days rather than 75 changes nothing about the revenue line, and cost of goods is recognised against that revenue regardless of when the supplier invoice clears.

The three timing keys only ever write to the balance sheet and to the working capital movement in the cash flow statement. There is no path from dso, dio or dpo to netIncome. The equality is structural, which is why it holds to the pound rather than approximately.

consoleconst keys = ["dso", "dio", "dpo"]; const base12 = MARCHMONT.cumulative(MARCHMONT.run({}, 24), "netIncome", 12); for (const k of keys) { for (const v of [20, 30, 45, 60, 75, 90, 120]) { const over = {}; over[k] = v; const p = MARCHMONT.cumulative(MARCHMONT.run(over, 24), "netIncome", 12); if (Math.abs(p - base12) > 0.01) throw new Error(k + " moved profit at " + v); } } "profit never moved"; // 21 runs, three keys, no effect on the income statement
LiveWhat this means in a review4 min▶

A finance team that pulls Marchmont back from insolvency by renegotiating collection will show a profit line identical to the one they would have shown by doing nothing. If the review is run off the income statement, and most are, the work is invisible. Worse, the team that did nothing and the team that saved the company are indistinguishable on the page.

The practical fix is to report the pair. Profit for the period, and the change in cash over the same period, side by side. The four levers are unreadable on the first and obvious on the second, and a pair of numbers is not a harder report to produce than one.

Self-studyThe other four, and where their effect actually comes from4 min▶

The remaining four move both columns, and each for a different reason. Gross margin 47% instead of 42% raises twelve month net income to £671,018 and cash at month 12 to £188,915: more profit on every sale, and less money tied up in inventory because each unit costs less to hold.

Cutting fixed opex by £15,000 a month gives net income of £580,631 and cash of £87,739. It is the most direct of the four and it is also the one whose cost lands on people rather than on a statement.

Growing 2% a month instead of 4% gives cash of £186,555 and net income of £296,285, well below the base case figure of £445,631. It is the only lever in the eight that fixes the cash problem by making the company smaller, and it works precisely because the cash problem was caused by the growth.

Borrowing £300,000 gives cash of £232,489 and net income of £425,381. It does not change anything about how the business runs. It buys time, and the interest is the fee for the time.

Part 3 · covers what is not priced

The column the model does not have

12 min live

Every figure so far is a measurement. What follows is the part of each decision that no run produces, and leaving it out of the page is how a measured table becomes a misleading recommendation.

Two of these three columns come out of the engine. Lever Cash at m12 What it spends, which nothing in the model prices Collect in 45 days not 75 £168,521 Terms customers already agreed, reopened by the side that wrote them Collect in 60 days not 75 £60,630 The same conversation, asked for in a smaller step and refused less often Pay suppliers in 60 not 30 £77,892 Supplier goodwill, and your place in the queue the next time stock is short Hold 30 days stock not 60 £77,892 Stockout risk, and the orders a stockout loses while it lasts Borrow another £300,000 is the only lever whose price is written down. Twelve month net income falls from £445,631 to £425,381, and the interest arrives every month on the income statement. An empty cost column is not a cost of zero. The model measures the cash released and is silent on everything else. Presenting the first without the second turns a measurement into a recommendation.
🔍 Click to zoom - the right hand column is written by hand every time, because there is no run that produces it.
LiveChoosing when the model will not rank5 min▶

The engine hands over one ordering, by cash released, and it is rarely the ordering to act on. Four questions do most of the remaining work, and none of them needs a model.

Who pays for it? Name the party whose position gets worse: a customer, a supplier, the warehouse, the people on the opex line, or the lender. A lever whose cost lands on somebody who is not in the room is the easiest to choose and the most likely to be regretted.

Can it be undone? Borrowing can be repaid. Stock can be rebuilt. A customer who has been told their agreed terms are being shortened has learned something about you that does not get unlearned.

Is it a one-off or a rate? Collecting 30 days sooner releases the cash once and then the business runs at the new level. A margin improvement or a cost cut keeps paying every month. On a problem that grows with revenue, a one-off release buys a fixed amount of time and a rate change changes the shape.

Does it treat the cause? Marchmont's gap exists because it is growing at 4% a month while collecting in 75 days. Slowing growth and collecting faster both address that. Borrowing funds it, which is the right move if the growth is worth having, and session 8 sizes exactly how much.

LiveWhere practitioners genuinely disagree5 min▶

Given this table, two experienced people will reach for different levers first, and the argument between them is real rather than a matter of one of them being confused.

One position: take the working capital first, always. It costs no profit, it needs nobody's permission, it can be started on Monday, and the cash it releases is cash the business already earned and simply had not collected. Borrowing on top of a working capital position you have not tidied is paying interest to avoid a phone call. On this view the four timing levers are the cheapest money in the business and leaving them unpulled while asking a bank for money is close to negligent.

The other position: the timing levers are the most expensive things in the list, precisely because their price is invisible. Debt has a rate, a term and a covenant, all of which can be compared, negotiated and explained to a board. Shortened customer terms and stretched supplier payments have no rate, so they never get compared, and the cost shows up two years later as a customer who takes the next contract elsewhere or a supplier who allocates scarce stock to somebody who paid on time. On this view the priced lever is the honest one and the free ones are borrowing from relationships at an unknown rate.

Neither side is wrong about the mechanics and both are describing real failures they have watched happen. The useful move in a room is to say which of the two you are arguing from, because the disagreement is about how to value an unpriced cost and not about any number in the table.

Self-studyWhat a lever run does not tell you4 min▶

Three limits are worth naming before this table is put in front of anybody. First, every run assumes the change is achieved in full and immediately, from month 1. A collection improvement that takes nine months to land is a different and much smaller number.

Second, every run assumes the change has no side effects anywhere else in the model. Shortening customer terms with no loss of revenue, and holding half the stock with no lost orders, are both assumptions rather than findings, and they are the assumptions doing the most work in the table.

Third, the horizon is 24 months in every row. A lever that releases cash once looks the same as a lever that changes the rate over that window, and the two diverge afterwards. Rerunning the table at 48 months before recommending anything is one line of change and is the check session 6 argued for.

Part 4 · build-along

Measure them, then argue about them

16 min hands on

Six steps in the console on this page, then one that has no console in it at all.

Reproduce the table

Run the lever loop and check all nine rows against the printed figures. Pay attention to the borrowing row, which needs both openingDebt and openingCash moved together, and see what happens to the cash column if you move only one.

Prove the profit column, do not eyeball it

Run the three timing keys across seven values each and assert that twelve month net income never moves by more than a penny from £445,631. Twenty one runs, one assertion. An equality you have asserted is worth more than an equality you have read off four rows.

Find the path that does not exist

Open fin-live.js and trace dso forward through the month loop. Write down every variable it touches and stop when you reach one that feeds netIncome. The exercise is finished when you are satisfied that there is no such variable.

Break the equality on purpose

Imagine a version of the engine where shortening collection terms costs one point of gross margin. Run { dso: 45, grossMargin: 0.41 } and compare both columns against the base. That run is a different claim about the world, and knowing which claim you are running is the whole skill.

Rerun the whole table at 48 months

Change the horizon on every row and compare which levers still keep the cash line above zero at the end of the longer window. Note any lever whose verdict changes, because that is a lever that buys time rather than fixing anything.

Write the cost column by hand

For each of the eight, write one sentence naming who pays and whether it can be undone. No model produces this column and no version of the model ever will. A table published without it is an argument disguised as a measurement.

The habit to keep. Whenever a lever is shown, the cash figure and the cost sentence travel together on the same line. The cash figure is measured and the cost sentence is a judgement, and labelling which is which is what lets somebody else disagree with the judgement without having to re-derive the measurement.

Check yourself

Three questions

Collecting in 45 days instead of 75 moves cash at month 12 from -£47,261 to £168,521 and leaves twelve month net income at £445,631. Why does profit not move?

There is no path from dso, dio or dpo to netIncome anywhere in the engine. All three write only to balances and to the working capital movement. Twenty one runs across the three keys leave twelve month net income unchanged to within a penny.

Paying suppliers in 60 days and holding 30 days of stock both give cash at month 12 of £77,892. What follows from that?

Both balances are driven off the same cost of goods figure and both moves are 30 days, so the cash released is identical by construction. One decision spends supplier goodwill and the other accepts stockout risk. Identical cash figures are the signal that the model has run out of things to say.

A deck shows the eight levers ranked by cash released, with no other column. What is the problem?

Every figure in the ranking is correct and reproducible. What is missing is that collecting sooner reopens agreed terms, paying later spends goodwill, holding less stock takes on stockout risk, and the only lever with a written down price looks the worst on the profit line. Sorting by the one computable column quietly recommends the levers whose costs nobody wrote down.

Before session 8

Homework

Thirty minutes, half of it away from the console.

Combine two levers and then try to take them apart

Run collection at 45 days and payment at 60 together, then compare the combined cash at month 12 against the two single runs added up. Write down the difference and one sentence on why adding single levers is an approximation rather than an identity.

Price one invisible cost, roughly, and say so

Pick the supplier lever and estimate what stretching payment to 60 days would cost in your own organisation, in whatever unit fits. Mark the estimate clearly as an estimate. The point is not accuracy, it is that an unpriced cost left unpriced always loses to a measured benefit.

Covered today

What this session covers

✓Eight levers measured one at a timeCash out month, cash at m12 and twelve month profit for each.
✓The four that move no profit at all£445,631 in every case, to the pound, across twenty one runs.
✓Why that equality is structuralNo path from dso, dio or dpo to netIncome anywhere in the engine.
✓Two levers landing on the same figure£77,892 twice, from the same cost of goods base and the same 30 days.
✓The only lever with a written down priceBorrowing: cash £232,489, profit down to £425,381.
✓The costs the model does not priceAgreed terms, supplier goodwill, stockout risk; written by hand every time.
✓Choosing when the model will not rankWho pays, can it be undone, one-off or rate, does it treat the cause.
◐Turning the trough into a number to ask forSession 8.
◐Rerunning the levers at 48 monthsSet up here in the build-along, taken apart in session 9.
○Supplier negotiation and credit control practiceNamed as the real work behind two levers; a different discipline.
○Whether any of this is a reason to buy or sell anythingNothing here is advice about any investment.
Take this with you

Cheat sheet

The base. Cash out in month 10, -£47,261 at month 12, twelve month profit £445,631.
Timing levers. Collect 45: £168,521. Collect 60: £60,630. Pay in 60: £77,892. Hold 30 days: £77,892.
All four, same profit. £445,631 in every one of them. Not rounded, identical.
Performance levers. Grow 2%: £186,555. Margin 47%: £188,915. Opex down £15,000: £87,739.
The priced one. Borrow £300,000: cash £232,489, profit £425,381. Interest is the fee.
Not free. Agreed terms reopened, supplier goodwill spent, stockout risk taken. None of it in the model.
Four questions. Who pays, can it be undone, one-off or rate, does it treat the cause.
Report the pair. Profit and the change in cash, same period, same line. Timing work is invisible otherwise.