Model Laundromat underwriting
is this laundromat actually a good deal?
You are about to spend somewhere between half a million and ten million dollars. The seller has a spreadsheet and it says yes. This is the one you build yourself, before you believe theirs — ten years, real debt, and a grid showing what happens when two assumptions move at once.
Underwriting a laundromat means projecting what it will earn, subtracting what it costs to run and what the loan costs, and then asking what return that leaves on the money you actually put in.
Three numbers decide it. DSCR is whether the income covers the loan payment — below about 1.25 and a lender says no. IRR is your annualised return over the hold. Equity multiple is how many times your money comes back. At this model's shipped assumptions the sample deal runs a 2.06 DSCR, a 51.60% levered IRR and a 4.11x equity multiple.
What underwriting actually means
Buying a laundromat is buying a stream of future money. Underwriting is working out what that stream is worth, and whether the price is sensible.
In plain steps: how much will it bring in, what does it cost to run, what is left over, how much of that goes to the bank, and what does that leave you? Then: what is it worth when you sell?
The part people get wrong is not the arithmetic. It is that a single answer is worthless. Every one of those inputs is a guess. Change occupancy by three points and the whole thing moves. So the useful question is never “what is the return” — it is “across the range of things that could plausibly happen, how often does this still work?”
That is what the sensitivity grid is for, and it is why it is built out of 25 real ten-year cash flow runs rather than an approximation.
Where the sample deal lands
The seed deal is underwritten conservatively — exit assumptions set less favourably than going-in — so the returns read realistic rather than promotional.
| Measure | Value | What it tells you |
|---|---|---|
| Going-in | 3.52x EBITDA | What you are paying, relative to current income. |
| DSCR, year 1 | 2.06 | Income divided by loan payment. Lenders generally want 1.25 or better. |
| Levered IRR | 51.60% | Annualised return on the equity you put in, after debt. |
| Equity multiple | 4.11x | How many times your money comes back over the hold. |
| Exit method | EBITDA multiple | The deal is sold on an EBITDA multiple. |
This one is different from the other four and the difference matters. A laundromat is bought as a business on an EBITDA multiple, not as real estate on a cap rate — and the polarity is opposite: a higher multiple is a better exit, where a higher cap rate is a worse one. The seed deal shows a 51.60% levered IRR, which is the real arithmetic of an 85% SBA-levered buy on $178,000 of equity. High, and correspondingly fragile. The sensitivity grid is where you find out how fragile.
Four modelling decisions that change the answer
Exit uses forward net operating income, not trailing. A buyer is purchasing the next twelve months of income, not the last twelve. Forward NOI is the larger number, so this produces a higher exit value than trailing would — by roughly one year of growth. The honest way to be conservative is a worse exit assumption, not a trailing NOI.
Reserves sit below the NOI line. Lenders capitalise NOI before reserves, so reserves never touch valuation — but they absolutely hit cash flow and IRR. Both figures are shown, and they differ.
Price-based costs scale with revenue. Management fees and card processing are percentages of effective gross income, not fixed dollars, so they move when the revenue assumption moves.
Debt is modelled properly. CUMPRINC and CUMIPMT with interest-only years, not a running subtraction — so changing the rate, the amortisation period or the IO term reprices every year at once instead of needing the schedule rebuilt.
How to underwrite a laundromat
Build the revenue from its drivers
The revenue build asks for turns per machine per day, vend price by machine size, wash-dry-fold, and ancillary vending. Entering one revenue number instead means the sensitivity grid has nothing to move, which defeats the point of building a model at all.
Enter the operating expenses honestly
The expenses the seller's spreadsheet forgets are usually management, capital reserves and the real cost of insurance. Price-based costs are entered as percentages so that a revenue change carries through them properly.
Model the debt with real amortisation
Built on CUMPRINC and CUMIPMT against a closed-form balance. Change the rate and every one of the ten years reprices immediately, which is what makes rate sensitivity meaningful rather than decorative.
Set the exit, and be pessimistic about it
Exit is where a model most easily lies to you, because it is the furthest out and the least knowable. The seed deals here set the exit less favourably than going-in, which is why the returns look ordinary rather than exciting.
Read the grid, not the single number
Twenty-five genuine ten-year IRR runs, not an interpolation. The centre cell reproduces the Returns tab exactly — that is asserted by the checker, so if the grid engine and the main model ever drift apart, it fails loudly.
What you are looking for is not the best cell. It is how much of the grid you can live with.
What is inside the file
Eight tabs, seeded with a complete laundromat deal so every tab is working the moment you open it. Change the assumptions and the whole ten years reprices.
| Tab | What it does |
|---|---|
| Start Here | What to fill in, in what order, and how to import the file into Google Sheets. |
| Assumptions | Purchase price, closing costs, loan terms, growth rates, exit assumptions and hold period. Everything the deal hinges on, in one place. |
| Revenue | The revenue build — turns per machine per day, vend price by machine size, wash-dry-fold, and ancillary vending. |
| Operating Expenses | Every expense line, with price-based costs like management fees and card processing set as a percentage of effective gross income so they scale. |
| Debt Schedule | Real amortisation with interest-only years, built with CUMPRINC and CUMIPMT rather than a running subtraction. |
| Proforma | The ten-year projection — revenue, expenses, net operating income, debt service and cash flow. |
| Returns | Levered and unlevered IRR, equity multiple, DSCR by year, and the exit. |
| Sensitivity | A 5x5 grid backed by 25 genuine ten-year cash flow runs, not an approximation. |
Opening it in Excel, Google Sheets or Numbers
It is one .xlsx file. There are no macros, no add-ins and nothing to install, which is what makes it portable — a macro-driven template would be Excel-only.
| App | How to open it |
|---|---|
| Microsoft Excel | Double-click the file. Excel 2016 and later, and Microsoft 365, on Windows or Mac. Nothing to enable and nothing to install. |
| Google Sheets | Go to Google Drive, click New → File upload and pick the .xlsx. Then double-click it in Drive and choose Open with → Google Sheets. To keep a native copy, use File → Save as Google Sheets. Formatting and formulas both carry over. |
| Apple Numbers (Mac, iPad, iPhone) | Numbers opens .xlsx directly — double-click it, or in Numbers use File → Open and select the file. Numbers converts it on open and will list anything it changed. To send a copy back to someone on Excel, use File → Export To → Excel. |
| LibreOffice Calc | Free, and opens the file as-is on Windows, Mac and Linux. This is what I use to recalculate every workbook when I check the maths, so it is the app these files are tested hardest in. |
This one leans on CUMIPMT, CUMPRINC, IRR and PMT — the functions people most often worry about losing in another app. All of them exist in Excel, Google Sheets, Apple Numbers and LibreOffice Calc, so the file works the same in all four.
Get the workbook
$99 one-off · no subscription
- One .xlsx file, eight tabs, works in Excel, Google Sheets, Numbers and LibreOffice
- A complete laundromat deal already modelled, conservatively
- Real amortisation with interest-only support, via CUMPRINC and CUMIPMT
- Levered and unlevered IRR, equity multiple and DSCR by year
- A 5x5 sensitivity grid backed by 25 genuine ten-year runs
- Free lifetime updates
Instant download from Gumroad. The seed deal is an example, not a recommendation, and not investment advice.
The arithmetic, written out
effective gross income = potential revenue - vacancy and credit loss
net operating income = effective gross income - operating expenses
(reserves sit BELOW this line)
cash flow after debt = NOI - reserves - debt service
DSCR = NOI / debt service
exit value = forward NOI / exit cap # or EBITDA x exit multiple
levered IRR = IRR(equity out, annual cash flow, net sale proceeds)
Two notes on the exit. It uses forward NOI — year N+1 — because that is what a buyer is purchasing. And the two exit methods have opposite polarity: a higher cap rate is a worse exit, while a higher EBITDA multiple is a better one. The checker asserts the grid moves the right way for the method in use, which caught a real bug where the assertion had assumed cap-rate semantics for the laundromat.
How I know the numbers are right
Every deal in this family is reimplemented from scratch in Python — including a bisection IRR and a closed-form amortisation balance — then the shipped workbook is recalculated in LibreOffice and the two are diffed. 24 checks per model, 120 across the five. Last run: 0 mismatches, 0 formula errors.
Two assertions go beyond matching values, because a decorative feature passes a value check:
- The sensitivity grid's centre cell must reproduce the Returns tab's levered IRR exactly. The grid is a separate 25-column engine; if it ever drifts from the main model, this is what fails first.
- The grid must move in the correct direction for its exit method — and the two methods are opposite. This check caught a genuine bug where the test assumed cap-rate polarity on the EBITDA-multiple deal.
Compared with the alternatives
| Cost | Real amortisation | Sensitivity | Built for this asset | |
|---|---|---|---|---|
| This model | $99 | CUMPRINC/CUMIPMT | 25 real runs | Yes |
| A free proforma template | $0 | Often approximated | None | Generic |
| The seller's spreadsheet | $0 | Varies | None | Optimistic |
| An analyst builds it | $2,000–$10,000 | Yes | Yes | Yes |
Questions people ask before buying
What is DSCR?
Debt service coverage ratio — net operating income divided by the annual loan payment. It answers whether the property earns enough to pay the bank. Lenders generally want 1.25 or better; the sample deal here runs 2.06 in year one.
What is the difference between levered and unlevered IRR?
Unlevered IRR is the return the asset produces on its own. Levered IRR is the return on the cash you actually put in, after borrowing. The gap between them tells you how much of your return is coming from the loan rather than the property.
Why does the model use forward NOI at exit?
Because a buyer is paying for the next twelve months of income, not the last twelve. Forward NOI is the larger number, so this gives a higher exit than trailing NOI would. If you want to be conservative, do it with a worse exit assumption rather than a trailing NOI.
Why is the sensitivity grid 25 separate runs?
Because Excel Data Tables do not exist in Google Sheets, and a two-way IRR has no closed form. Each cell is a genuine ten-year IRR calculation, which is also why the workbook stays portable.
Why is the sample laundromat return not higher?
Because the seed deal is deliberately underwritten conservatively, with the exit set less favourably than the going-in assumption. A model that shows a large return on its default settings is selling you optimism.
Can I change the hold period?
The model runs a ten-year proforma. You can read returns at earlier exits from the proforma, and the exit assumptions are inputs.
Will it work in Google Sheets?
Yes. Upload the .xlsx to Google Drive and open it with Google Sheets. It uses IRR, CUMPRINC and CUMIPMT, all of which Sheets supports.
Can I use it on a Mac without Excel?
Yes. Apple Numbers has IRR, CUMPRINC and CUMIPMT, and LibreOffice Calc is free and opens the file directly.
Related spreadsheets
Ready to stop doing this by hand?
$99 one-off · no subscription
- One .xlsx file, eight tabs, works in Excel, Google Sheets, Numbers and LibreOffice
- A complete laundromat deal already modelled, conservatively
- Real amortisation with interest-only support, via CUMPRINC and CUMIPMT
- Levered and unlevered IRR, equity multiple and DSCR by year
- A 5x5 sensitivity grid backed by 25 genuine ten-year runs
- Free lifetime updates
Instant download from Gumroad. The seed deal is an example, not a recommendation, and not investment advice.