Catch the Quit a Month Before It Happens
On the list of fires: “the pulse check”
Module 4 · Hiring & Keeping Roofers · Play 4 of 13
In a hurry? ↓ Do this this week
The problem in one breath
You find out your best roofer is leaving the same way every time: he doesn't show up Monday. No warning, no conversation — just a truck a man short and a job that's now behind. Truth is he'd been done for weeks. You just never asked in time to catch it.
Why it happens
Nobody quits out of nowhere. The pay started feeling short back in April, the foreman's been riding him, his wife's on him about the Saturdays — it built for a month or two while he stayed quiet, because men on roofs don't volunteer that stuff. By the time he says a word, he's already got the other job lined up. You didn't miss a sign. There was never a moment set up for the sign to show.
The play
Run the monthly pulse check: once a month, five minutes a man, you build the moment for the sign to show — while there's still time to do something about it.
- Once a month, one man at a time, five minutes. Not a meeting, not a conference room. In the truck between jobs, at the tailgate while the trailer loads. You're going to have him score a handful of things one to five, and then you're going to shut up and listen to the low one.
- Score the five that matter. A quick gut number, one to five, on each: the work, whether the pay feels fair, the crew, how things are at home, and whether he feels treated right. Not a survey — five things you can rattle off in twenty seconds and he can answer in twenty more.
- Dig into the lowest number only. Don't chase all five. Find the low one and go straight at it: "You said a two on the pay. Talk to me." Then let him talk without jumping in to defend yourself. The low one is what walks him off your crew — it's the only one worth today's five minutes.
- Fix one thing, and say out loud what it is. Not all of it — one. Whatever came out of that low number, name the single thing you'll do about it and by when, and put it on the promise list (Module 2, Play 1) with your own name on it. A pulse check where the boss fixes nothing just teaches the man to stop giving you a real answer.
- Follow up next month — that part is the whole thing. What makes this real is next month, when you come back and say: "Last month you were a two on the pay. I moved you up fifty cents like I said. Where's it sit now?" That's what turns five minutes of questions into a man who believes you're listening. Skip the follow-up and all you ran was a survey.
Some men will grunt "all fours, boss" for six months straight. That's fine. You're not fishing for a speech — you're there the one Tuesday the number drops, a month before the Monday he doesn't show.
Do this this week
Pick your two best hands — the two you'd least survive losing. This week, one at a time, five minutes each, have them score the five and dig into the lowest one. Fix one thing and put it on the promise list. Then set next month's reminder to ask again.
The tool
Or fill it in here — no download →
Opens in Excel, Google Sheets, Numbers or LibreOffice. Grab it on the phone now — it’ll be waiting on the computer at the shop.
the-monthly-pulse-check-log.xlsx — the pulse log. One row per man per month: the five scores, the area that came in lowest, the one thing you're fixing, and whether you followed up. The sheet averages the five and turns the Flag column red on the two things that mean a good hand is leaving — any score of 2 or under, and any man whose average has fallen two months straight, the quiet drift. Keep it sorted by man, then month. One man is filled in across three months as an example. See the sheet notes below.
If your crew is 1099
This one is built for employees, and it doesn't port to a sub. What decides how a man is classified is how much you direct and control the work — and a standing monthly sit-down on his pay, his crew and whether he feels treated right is you managing a man, not two outfits doing business. Where that line sits is a call for your accountant or a labor attorney. With a steady sub, keep it strictly to the business a couple times a year: is the work still worth his while, are the terms fair, does he want the next run of jobs. The pulse check keeps an employee. A straight, occasional talk about whether the deal still works keeps a good sub — without wrecking the independence that makes him one.
One more thing: this play is how we run a shop — it's not legal advice. Rules change by state and by contract, so before you act on the legal-sounding parts, run them past your own attorney or accountant. It's your business, and what you do with any of this is your call and your responsibility.
M4-04 · Catch the Quit a Month Before It Happens — Roofer MBA, https://roofermba.com/plays/hiring-keeping/the-monthly-pulse-check
The sheet notesHow the sheet works — the columns and the formulas
The columns, the formulas behind them, and the judgment calls — so you can rebuild it by hand if you ever need to.
What it does
One row every time you check a man. You write his name, the month, and his five gut scores (1–5) on the work, whether the pay feels fair, the crew, home, and how he feels treated. The sheet averages the five for you and, in the Flag column, turns red on the two things that mean a good hand is on his way out: any score of 2 or under this month, and any man whose average has fallen two months straight. The box on the right keeps a running count — check-ins logged, low-score months, falling months, and how many fixes you still haven't followed up on. Rows 5–7 (yellow) are one man across three months, filled in as an example; the orange banner across the top of the sheet says the same thing — delete all three rows before you log your first real check-in.
How to use it
- Run the check at the truck first (the play), then write it down here — the sheet is the record, not the meeting.
- Fill one row per man per month: Man, Month, and the five scores from the dropdowns (Work, Pay fair, Crew, Home, Treated).
- Pick the Lowest area from the dropdown (the one you dug into) and write the one thing you're fixing in What we're fixing.
- Next month, when you follow up, set Followed up? on last month's row to Yes.
- Keep the sheet sorted by man, then by month (see the judgment call below — the falling flag depends on it). If you forget, a red ⚠ SORT BY MAN, THEN MONTH — the falling flag needs it note lights up under the box until you fix the order. Read the box on the right and chase every red Flag first.
The dropdowns reject anything that isn't on their list — a typo in a score or in Followed up? would drop the row out of the counts, so the sheet stops you instead of quietly miscounting.
Columns
| Column | What it is |
|---|---|
| A Man | The man you checked. Same spelling every month so his rows group together. |
| B Month | The month of the check (e.g. 2026-06) — used to keep his rows in order. |
| C–G Scores | The five gut scores, 1–5, from the dropdown: Work · Pay fair · Crew · Home · Treated. |
| H Avg | Auto: the average of the five (blank until all five are filled). |
| I Lowest area | The area you dug into this month (dropdown of the five). |
| J What we're fixing | The one thing you promised to do about the low score. |
| K Followed up? | Yes / No / — (dropdown). Set to Yes next month once you've checked back. |
| L Flag | Auto: LOW SCORE, FALLING, or LOW + FALLING (red); blank when he's fine. |
Formulas (so you can rebuild it by hand)
- Avg (H5, fill down):
=IF(COUNT($C5:$G5)=5,AVERAGE($C5:$G5),"") - Flag (L5, fill down):
=IF($A5="","",IF(AND($A5=$A4,$A4=$A3,$H5<$H4,$H4<$H3),IF(AND(COUNT($C5:$G5)=5,MIN($C5:$G5)<=2),"LOW + FALLING","FALLING"),IF(AND(COUNT($C5:$G5)=5,MIN($C5:$G5)<=2),"LOW SCORE",""))) - Check-ins logged (box):
=COUNTA($A$5:$A$24) - Low-score months (box):
=COUNTIF($L$5:$L$24,"LOW*") - Falling months (box):
=COUNTIF($L$5:$L$24,"*FALLING*")— it counts flagged rows, so a man sliding four months straight shows up as more than one; that's why the label says months, not men. - Not yet followed up (box):
=COUNTIF($K$5:$K$24,"No") - Sort guard — a hidden helper column (Q) marks any row that breaks man-then-month order, and the note by the box (N9) lights up whenever any row is marked:
- Q5
=0; Q6 and down:=IF($A6="",0,IF(AND($A6<>$A5,COUNTIF($A$5:A5,$A6)>0),1,IF(AND($A6=$A5,$B6<=$B5),1,0))) - N9 (the warning):
=IF(SUM($Q$5:$Q$24)>0,"⚠ SORT BY MAN, THEN MONTH — the falling flag needs it","")
- Q5
Only IF, AND, SUM, COUNT, COUNTA, COUNTIF, MIN, and AVERAGE are used — no Excel-365-only functions — so it opens and computes in old Excel, Numbers, and LibreOffice.
Notes / judgment calls
- "Falling two months straight" needs the rows sorted by man, then month — this is the one rule that makes the flag work. The FALLING part of the flag compares a row's average to the two rows directly above it, and only fires when all three rows are the same man (
$A5=$A4=$A3). That's the honest, dependency-free way to spot a two-month slide in a flat log without fancy new-Excel functions. It means: keep each man's months together and in date order. If you scramble the rows, the low-score flag still works fine — only the falling flag needs the order. Re-sort by Man then Month whenever you add a batch of rows. The sheet now catches this for you: a hidden check watches for rows that aren't grouped and in date order by man, and lights up a red ⚠ SORT BY MAN, THEN MONTH note by the box until you re-sort. The falling flag itself is unchanged — the note just stops a scrambled sheet from quietly hiding a slide. - Three flag states. LOW SCORE = a 2 or under this month (act now). FALLING = his average dropped two months running even if no single score is low yet (the quiet drifter — the dangerous one). LOW + FALLING = both, which is a man with one foot out the door. The example's June row shows LOW + FALLING on purpose so you can see both fire at once.
- The average is a thermometer, not a grade. Don't wave it at the man. A 3.4 that's been sliding matters more than a steady 3.0. The number is there to make the drift visible to you, early.
- The fix lives in two places on purpose. Here, as your record of what you promised; and on the promise list (Module 2, Play 1), where it gets read out loud every week so it actually gets done. A fix that only lives here won't get chased.
- The live block is rows 5 through 24. Every count, flag and dropdown stops at row 24, so a row typed below the last one is invisible to the sheet — it looks fine and counts for nothing. To add room, insert new rows INSIDE the block (right-click a row in the middle → Insert), which stretches the ranges for you. If you do go past row 24, widen
$A$5:$A$24,$L$5:$L$24,$K$5:$K$24and$Q$5:$Q$24in the box formulas to match, and fill the Avg, Flag and helper formulas down. A six-man shop fills 20 rows in about three months, so plan on doing this once a season. - The sheet ships with the numbers already saved in it, so a phone preview shows real figures; they recalculate as soon as you type in it.
The one thing
Do this this week
Pick your two best hands — the two you'd least survive losing. This week, one at a time, five minutes each, have them score the five and dig into the lowest one. Fix one thing and put it on the promise list. Then set next month's reminder to ask again.
Take it with you
One email unlocks this and every other sheet and card on the site. The plays stay free.
Same fire
New guys don't stick — hired Friday, gone by week three
- M4-06the first two weeks
- M4-09praise that lands
- M4-11mark the win
- M4-04the pulse check — you’re here
Fixed this?
While the new guys churn, make sure the man holding it all together isn't quietly done.
The fire right behind it is usually Your best man is about to blow up or walk.