Teaching exercise. All case and model numbers are fictional. Progress is saved in this browser.
"You will work with a live five-year model of a small service business we have bought. Each lesson adds one block. The model starts with the numbers filled in, so you spend your time on how it works, not on typing."
the starting numbers are the same as the company in Module 3, so nothing is typed twice.
Conventions
Year 0 is the last 12 months before the purchase. Years 1 to 5 are projected. The purchase happens at the end of Year 0 and the sale at the end of Year 5.
All money is in dollars. Round every line to whole dollars as you go (half rounds up). Customers are whole numbers.
Percent inputs are entered as percent (3.0 means 3.0%) and used as a fraction (0.03) in the formulas.
t means the year. [t-1] means the year before.
This is a simplified teaching model. It ignores working capital swings, deal tax structure and many real-world details.
Your five-year ledger
Change a driver in the lessons. Every result updates live. Dollars, whole-dollar rounding; ratios shown to two decimals.
Sensitivity: exit multiple x AI savings
Each cell shows MOIC. The outlined cell uses your current assumptions.
All numbers are fictional teaching assumptions. Negative cash means an unfunded shortfall; the model does not add rescue financing.
2.01
2.1: Revenue, customers and churn
What you build. Revenue from customers and what they pay. Churn is the share of customers who leave in a year.
customer_loss[t] = loss_amount if t >= loss_start_year, otherwise 0
Input
Default
Unit
Allowed range
Customers at end of Year 0
130
customers
1 to 500
Revenue per customer, Year 0
32,000
dollars per year
5,000 to 200,000
Price growth
3.0
percent per year
-5.0 to 10.0
Churn rate
8.0
percent of opening customers per year
0.0 to 30.0
New customers
15
customers per year
0 to 40
Customer loss switch: revenue lost
0
dollars per year
0 to 2,000,000
Customer loss switch: first year
2
year number
1 to 5
The loss switch is off at 0. It lets you test what happens if revenue disappears.
Worked example, Year 1. Lost = ROUND(0.08 * 130) = ROUND(10.4) = 10. End = 130 - 10 + 15 = 135. Revenue per customer = ROUND(32,000 * 1.03) = 32,960. Revenue = 135 * 32,960 = 4,449,600.
Try it: Hit the target. Using the defaults, read the Year 5 revenue off the model. Then change churn to 15 and watch it fall. The page asks you to say in one line why customer count alone can mislead.
Check your understanding
135. 10.4 customers leave and the model rounds to 10. Then 15 join.
Reference for the defaults: Year 5 customers 150, Year 5 revenue 5,564,400.
2.02
2.2: Gross margin, operating costs and EBITDA
What you build. What is left after serving customers and running the office.
Cost of revenue is the direct cost of doing the work: field labor, parts and materials. Operating costs (opex) are everything else: the office, rent, insurance, vehicles and the owner or manager.
Input
Default
Unit
Allowed range
Gross margin
42.0
percent of revenue
25.0 to 60.0
Operating costs, Year 0
967,200
dollars per year
100,000 to 3,000,000
Operating cost growth
5.0
percent per year
0.0 to 12.0
Worked example, Year 1. Gross profit = ROUND(4,449,600 * 0.42) = 1,868,832. Operating costs = ROUND(967,200 * 1.05) = 1,015,560. EBITDA before AI = 1,868,832 - 1,015,560 = 853,272.
Try it: Margin squeeze. Drag the operating cost growth slider above the price growth. Watch EBITDA margin shrink. Say in one line which of the two the owner controls more easily.
Check your understanding
1,868,832. Multiply 4,449,600 by 0.42.
Reference for the defaults: Year 5 EBITDA before AI is 1,102,628 (gross profit 2,337,048 less operating costs 1,234,420).
2.03
2.3: AI automation savings
What you build. Savings from automating office work, phased in over three years, with a one-time cost to set it up.
Formulas
ai_phase[1], ai_phase[2], ai_phase[3] are inputs. ai_phase[4] = ai_phase[5] = ai_phase[3].
The one-time cost (ai_onetime) is paid in Year 1. It is not part of ebitda[t]. It is subtracted from cash in Lesson 2.4.
Input
Default
Unit
Allowed range
Run-rate savings at full phase-in
8.0
percent of operating costs
0.0 to 20.0
Phase-in, Year 1
30
percent of run-rate
0 to 100
Phase-in, Year 2
60
percent of run-rate
0 to 100
Phase-in, Year 3 (also Years 4 and 5)
100
percent of run-rate
0 to 100
One-time implementation cost, Year 1
120,000
dollars
0 to 500,000
The 8.0 percent is a placeholder. It is your job, later, to argue for your own number.
Worked example, Year 1. Savings = ROUND(1,015,560 * 0.08 * 0.30) = 24,373. Operating costs after AI = 1,015,560 - 24,373 = 991,187. EBITDA = 1,868,832 - 991,187 = 877,645.
Try it: Ramp the helpers. Slide the run-rate from 0 to 20 and the phase-in from slow to fast. A bar compares total savings over five years with the one-time cost. Find the point where the bar flips.
Reference for the defaults: Year 5 EBITDA is 1,201,382 (Year 5 savings 98,754).
2.04
2.4: Debt, the seller note and coverage
What you build. How the purchase is paid for, and whether the business can carry the payments.
Sources and uses. Uses are what you pay: purchase_price + transaction_costs. Sources are how you pay: senior_amount + seller_amount + equity_invested. Equity is the plug (the number that makes the two sides match):
Seller note. A standby period is a stretch where the seller agrees not to be paid in cash. Interest builds up and is added to the note. After standby, interest is paid in cash. The principal is repaid in one payment at the sale.
cash_balance[t] = cash_balance[t-1] + cash_after_debt[t], starting at 0 (nothing is paid out to owners before the sale)
DSCR means debt service coverage ratio. one_time_cost[t] is ai_onetime in Year 1 and 0 after.
Input
Default
Unit
Allowed range
Purchase price
4,680,000
dollars
1,000,000 to 10,000,000
Transaction costs
120,000
dollars
0 to 500,000
Senior loan amount
2,400,000
dollars
0 to 6,000,000
Senior interest rate
9.0
percent per year
4.0 to 15.0
Senior amortisation
10
years
5 to 15
Seller note amount
600,000
dollars
0 to 2,000,000
Seller note interest rate
6.0
percent per year
0.0 to 12.0
Seller note standby
2
years
0 to 4
Capex
1.5
percent of revenue
0.0 to 5.0
Tax rate
25.0
percent of taxable income
0.0 to 40.0
Coverage flag level (set by this academy for teaching)
1.25
times
1.00 to 2.00
Equity cannot be negative. If the loans add up to more than the uses, the page shows a warning.
Worked example, Year 1. Uses = 4,680,000 + 120,000 = 4,800,000. Equity = 4,800,000 - 2,400,000 - 600,000 = 1,800,000. Senior interest = 216,000; principal = 240,000. Seller interest = 36,000, added to the note, so the note is 636,000. Capex = ROUND(4,449,600 * 0.015) = 66,744. Taxable income = 877,645 - 120,000 - 66,744 - 216,000 - 36,000 = 438,901. Tax = 109,725. Cash available = 877,645 - 120,000 - 66,744 - 109,725 = 581,176. Debt service = 216,000 + 240,000 = 456,000. DSCR = 581,176 / 456,000 = 1.27x.
Try it: Stress the structure. Drag the senior loan up and the seller note down. Watch the Year 1 DSCR cross the flag level. Find the largest senior loan that keeps every year at or above the flag level.
Check your understanding
674,160. Year 1 interest 36,000 is added (636,000). Year 2 interest is 38,160 (6% of 636,000), also added. No cash is paid during standby.
Reference for the defaults: DSCR by year is 1.27, 1.68, 1.76, 1.96, 2.15.
2.05
2.5: Exit, MOIC and IRR
What you build. What equity gets when the business is sold at the end of Year 5.
irr = moic ^ (1/5) - 1 (valid because the only cash in is at the start and the only cash out is at the end; if moic is 0 or less, show -100%)
min_dscr = the lowest dscr[t] across Years 1 to 5
Input
Default
Unit
Allowed range
Exit multiple
5.0
times EBITDA
2.0 to 8.0
The default exit multiple is lower than the entry multiple on purpose: do not assume a better price on the way out than on the way in.
Worked example, defaults. Exit value = 5.0 * 1,201,382 = 6,006,910. Equity at exit = 6,006,910 - 1,200,000 - 674,160 + 1,651,387 = 5,784,137. MOIC = 5,784,137 / 1,800,000 = 3.21x. IRR = 3.2134 ^ 0.2 - 1 = 26.3%.
Reference table for the defaults (use to check your model)
Year 1
Year 2
Year 3
Year 4
Year 5
Customers at end
135
139
143
147
150
Revenue
4,449,600
4,718,911
5,000,281
5,294,352
5,564,400
EBITDA
877,645
966,789
1,070,035
1,142,041
1,201,382
Cash available for debt service
581,176
730,144
799,586
844,882
880,949
Debt service
456,000
434,400
453,250
431,650
410,050
DSCR
1.27x
1.68x
1.76x
1.96x
2.15x
Cash balance
125,176
420,920
767,256
1,180,488
1,651,387
Try it: Flex three, rank them. Change churn, exit multiple and price growth one at a time, by the same relative step. The page draws a small bar chart of the change in IRR. Rank the three from most to least sensitive.
Check your understanding
3.21x. 5,784,137 / 1,800,000 = 3.2134. IRR follows as 3.2134 raised to the power 0.2, less 1, which is about 26.3%.
"Your model is built. One thing it cannot tell you is whether the inputs are true. That is Module 3."