Analyst Academy
The case
Teaching exercise. All case and model numbers are fictional. Progress is saved in this browser.
THIS COMPANY IS FICTIONAL. Names, numbers and events were invented for this exercise.
Your brief
You are an analyst. A partner hands you the file on Kestrel Valley Mechanical Services (fictional), a commercial HVAC (heating, ventilation and air conditioning) maintenance and repair company. The owner wants to retire. The seller is asking 4,680,000. A financing structure has been proposed.
Your job: decide whether to bid, at what price and on what structure, then write what you found. Take about 12 minutes. Read fast, mark what worries you, then run the model.
Does it pass the first screen?
Against the screening example from Dubbs's 2022 video (revenue $1M to $10M, EBITDA margin 15% or more, fragmented customer base, steady cash flow):
| Test | Kestrel Valley | First read |
|---|---|---|
| Revenue $1M to $10M | 4,160,000 in Year 0 | Pass |
| EBITDA margin 15% or more | 18.8% in Year 0 | Pass |
| Fragmented customer base | 130 customers | Looks like a pass. Is it? |
| Steady cash flow | EBITDA up in each of the last three years | Pass |
Three years of history
Year 0 is the last 12 months. Revenue per customer is revenue divided by customers at year end. Churn is customers lost divided by customers at the start of the year.
| Year -2 | Year -1 | Year 0 | |
|---|---|---|---|
| Customers at start | 112 | 118 | 124 |
| Customers lost | 9 | 10 | 9 |
| New customers | 15 | 16 | 15 |
| Customers at end | 118 | 124 | 130 |
| Churn | 8.0% | 8.5% | 7.3% |
| Revenue per customer | 30,000 | 31,000 | 32,000 |
| Revenue | 3,540,000 | 3,844,000 | 4,160,000 |
| Revenue growth | n/a | 8.6% | 8.2% |
| Cost of revenue | 2,088,600 | 2,248,740 | 2,412,800 |
| Gross profit | 1,451,400 | 1,595,260 | 1,747,200 |
| Gross margin | 41.0% | 41.5% | 42.0% |
| Office and admin payroll | 305,000 | 318,000 | 336,000 |
| Owner compensation | 180,000 | 180,000 | 180,000 |
| Vehicles and fuel | 112,000 | 117,000 | 126,000 |
| Insurance | 90,000 | 93,000 | 98,000 |
| Rent and utilities | 82,000 | 84,000 | 88,000 |
| Software, marketing and other | 119,000 | 128,000 | 139,200 |
| Total operating costs | 888,000 | 920,000 | 967,200 |
| EBITDA | 563,400 | 675,260 | 780,000 |
| EBITDA margin | 15.9% | 17.6% | 18.8% |
Owner compensation is assumed to be replaced by a manager at the same cost, so there is no add-back.
The proposed deal
- Asking price: 4,680,000, which is 6.0 times Year 0 EBITDA of 780,000.
- Proposed financing: a senior term loan, a seller note and equity (details below).
| Uses | Dollars | Sources | Dollars | Share of uses |
|---|---|---|---|---|
| Purchase price | 4,680,000 | Senior term loan | 2,400,000 | 50.0% |
| Transaction costs | 120,000 | Seller note | 600,000 | 12.5% |
| Equity | 1,800,000 | 37.5% | ||
| Total uses | 4,800,000 | Total sources | 4,800,000 | 100.0% |
Senior loan: 9.0% interest, paid down evenly over 10 years. Seller note: 6.0% interest, two-year standby with interest added to the note, then interest paid in cash, principal paid at the sale. Senior debt is 3.08 times Year 0 EBITDA. Total debt is 3.85 times.
The five documents
Open a document, then select any sentence or table line that worries you. Select it again to remove the navy pen mark. Marks are saved in this browser and included with your work.
Document 1: Owner's note
Document 2: Customer list summary (Year 0)
| Tier | Customers | Year 0 revenue | Average per customer |
|---|---|---|---|
| 1 | 1,040,000 | 1,040,000 | |
| 4 | 520,000 | 130,000 | |
| 15 | 510,000 | 34,000 | |
| 110 | 2,090,000 | 19,000 | |
| 130 | 4,160,000 | 32,000 |
Document 3: Technician schedule (typical week)
| Crew | Technicians | Scheduled hours | Billable hours | Utilization |
|---|---|---|---|---|
| 5 | 200 | 150 | 75.0% | |
| 6 | 240 | 168 | 70.0% | |
| 3 | 120 | 96 | 80.0% | |
| 14 | 560 | 414 | 73.9% |
Document 4: Invoice aging (end of Year 0)
| Age of invoice | Invoices | Amount | Share of total |
|---|---|---|---|
| 96 | 400,000 | 50.0% | |
| 48 | 200,000 | 25.0% | |
| 30 | 120,000 | 15.0% | |
| 22 | 80,000 | 10.0% | |
| 196 | 800,000 | 100.0% |
Document 5: Seller's deal summary
Your tasks
- Read and mark (about 4 min). Skim the five documents. Use the navy pen on anything that bothers you.
- Run the base case (about 2 min). The model is already loaded with the case. Read the five-year result. Does the proposed deal hold up?
- Stress it (about 4 min). Flex at least two inputs of your choice. Note which ones move your answer most.
- Pick a bid (about 2 min). Choose a price in dollars and say whether you would change the structure. The page shows what your bid does to equity invested, MOIC, IRR and the lowest DSCR.
Then continue to the submission.
Your candidate model
Your inputs carry over from Module 2. Adjust at least two assumptions and record what changes. Your bid below also changes the purchase price here.
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.
Submission
Last step. Plain words are fine. Short is better than long.
What we score
Five criteria, each scored from 0 to 4. A person at Dubbs reads your work against this list.
| # | Criterion | Strong (4) | Middle (2) | Weak (0) |
|---|---|---|---|---|
| 1 | Finds what matters in the files | Names the single biggest risk in the documents, shows the numbers behind it, and ties it to price or structure | Notices something odd but does not size it or act on it | Repeats the owner's story and the summary page |
| 2 | Model you can trust | Inputs are sensible and explained, the numbers tie, at least two honest stress tests are run and reported | Runs the base case, one stress test, little explanation | Changes inputs until the answer looks good, or reports numbers that do not match the model |
| 3 | Judgment on price and structure | A specific bid with a reason, and a structure that protects the buyer if the risk shows up | A price with a reason but the structure is left as proposed | Accepts the ask with no test, or a price with no reason |
| 4 | Realistic AI plan | Names a task from the files, sizes the saving with a rough method, includes the one-time cost, says how to measure it | A real task but a vague saving, or no cost | "AI will improve efficiency", or a plan unrelated to the files |
| 5 | Clear thinking in plain words | Recommendation first, risks named without hedging, short sentences, within the limits | Clear but long, or the recommendation comes late | Jargon, filler, or hides the bad news |
Scores of 1 and 3 are for work between the descriptions. Total out of 20.