Skip to content
Roofer MBA

Pay by the Hour and You Bought the Day. Pay by the Square and You Bought the Roof.

On the list of fires: “hourly or by the square, priced on one job

Module 16 · Crew Pay & Raises · Play 1 of 4

In a hurry? ↓ Do this this week

The problem in one breath

You pay the crew by the hour because that's how everybody you ever worked for paid you. The two-day job takes three. Nobody's slacking exactly, but nobody's hurrying either, and when the month closes the labor line is a number you can't explain and can't argue with, because every one of those hours really happened.

Why it happens

Hourly pay pays for time. Per-square pay pays for a roof. That one difference decides who carries the slow day. On hourly, you do: a short load, a long lunch, a foreman who likes to talk — all of it lands on your labor line, and the crew's check is the same either way. By the square, the crew does: the roof pays what it pays, and every hour they shave is theirs. That is why a crew on squares moves like it's their money. It is.

We ran payroll crews for years, all hourly, well paid, and the honest verdict is that not one of them was worth what it cost. Labor only came under control when every roof moved to a signed price per square. The catch is the other half of that sentence: a crew paid for speed will find speed anywhere, including in the valley detail, so per-square pay only works with an inspection that holds (Module 12, Play 3). Hourly works too, but only with deep pockets and a standard enforced every day, and most small shops have neither.

The play

  1. Price one real job both ways before you decide anything. Pick a roof you already closed. the-crew-pay-sheet.xlsx, the crew pay sheet, takes the squares, the days it should have taken and the days it actually took, and prices the labor twice: hourly with your burden on top, and by the square with the piece rates added. The gap between "should have" and "did" on the hourly side is what you've been paying for the slow day.
  2. Read the drag line, not the totals. The totals will be close on a good job; they always are. The line that matters says what one more day costs you each way. By the square it's zero. On hourly it's four men times nine hours times a loaded wage, every day the job runs long, and the crew is not wrong to let it.
  3. If you go by the square, decide what the square includes. The number is for a standard roof. Everything that isn't standard — a second layer, decking, steep pitch, a long drive — gets its own line on a price list you write once (Play 2), not a negotiation you have in every driveway.
  4. Tie the money to the inspection the same day. The square rate buys a roof that passes the checkpoints; one that doesn't gets the punch list fixed before the check moves (Play 3). Say it before the first bundle goes up. A crew that hears it on pay day hears a trick.
  5. If you stay hourly, admit what you're buying. Control: the right to run the day, move men between roofs, and train a green hand on the clock. That's worth paying for in some shops — but only with the standard on paper and a foreman who enforces it. Nothing else on hourly pushes the day along.

Do this this week

Open the crew pay sheet, type in the last roof that ran a day long, and read the drag line out loud. That's the number you decide with.

The tool

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-crew-pay-sheet.xlsx, the crew pay sheet — one job priced twice on one page. Yellow cells are yours: squares and layers, the days planned and the days it took, the men, hours, wage and burden on the hourly side, the square rate and piece rates on the other. Gray cells work themselves out: labor each way at planned and actual days, cost per square, the gap, and the drag line — what one more day costs under each. A payroll switch puts burden on the square side when it belongs there. The example is a 28-square two-layer roof that took three days instead of two. Delete it and use your own. the sheet notes below walks every line.

If your crew is 1099

If the crew is a sub, this choice is mostly made, and made right: you buy a finished roof at a price, and how many hours it took is his business. Paying a sub by the hour is the setup that starts to look like an employee on paper, because you're buying his time and running his day — and the tests for who counts as an employee vary by state, so run your setup past your own attorney or accountant. Use the sheet with the payroll switch off; the burden stays on the hourly side, and the comparison is your old hourly crew against his square price. Comparing the whole seat — insurance, trucks, callbacks and all — is the crew-model sheet's job (Module 12, Play 1), not this 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.

The sheet notes

How 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 worksheet, Crew Pay. It takes one roof you already closed and prices the labor on it twice — once paid by the hour with your burden on top, once paid by the square with the extras added — and then prints the line the totals hide: what one more day on that roof costs you under each deal.

It is a one-job sheet, not a log: thirteen numbers, one Y-or-N switch, and an answer block. Yellow cells (rows 5 to 10, 13 to 16, 19 to 22) are yours. Gray cells (rows 25 to 31) work themselves out. The green block at rows 34 to 37 is the drag line, and A40 is the headline sentence. Column D never computes anything — it says where each number comes from.

The yellow cells

CellWhat you typeFormat
B5Squares on the roof — off the takeoff (Module 10, Play 1)one decimal
B6Layers off — 1 for a plain tear-off, 2 when there was a layer under itwhole number
B7Decking sheets replaced — 0 if nonewhole number
B8Days it should have taken — the days you priced it atone decimal
B9Days it actually took — off the timesheets or the boardone decimal
B10Crew on your payroll? Y or NY / N
B13Men on the crew, foreman includedwhole number
B14Paid hours per man per day, drive time included if you pay itone decimal
B15Average wage per hour — add the crew's wages, divide by the mendollars
B16Burden: payroll taxes + comp as a percent of wagespercent
B19Standard square rate — off the crew price list (Play 2)dollars
B20Each extra layer off, per square — 0 if the roof was one layerdollars
B21Decking, per sheetdollars
B22Other extras on this job (steep, long drive, details)dollars

B16 is percent-formatted, so type 30, not 0.30. In Excel and in LibreOffice, 30 typed into a percent cell is 30%. A literal 30 — pasted in, or typed after somebody reformats the cell as a plain number — is 3,000% and the guard catches it: anything above 1 (100%) or below 0 is refused. Your comp share comes off Module 11, Play 3's sheet; the tax half is your accountant's number.

B10 decides where burden lands, and it is the cell people get wrong. Y means the crew is on your payroll — then paying them by the square still costs you payroll taxes and comp, so B26 carries your burden onto the square side too and the comparison is honest. N means a sub crew: his price is his price, no burden rides on it, and the square side drops by that percentage. Flip the shipped example from Y to N and the square side falls from $3,094.00 to $2,380.00, which is the whole difference between "should I pay my own men by the square?" and "should I sub this roof out?" There is no dropdown on B10 — the guard is what holds it, and anything but Y or N stops every answer below.

B9 can be less than B8 only in your imagination, and the guard says so. A job that beat the schedule is real, but this sheet is built to price the day that ran long; a B9 under B8 is nearly always the two cells typed into each other's boxes.

The gray cells

CellFormula (short form)In English
B25a long IF chainthe guard — problems in the yellow cells, 0 = clean
B26=IF(B10="Y",B16,0)burden that lands on the square side
B27 / C27=B13*B14*B8*B15*(1+B16) / same with B9hourly labor, at planned days and at actual days
B28 / C28=(B5*B19+B5*(B6-1)*B20+B7*B21+B22)*(1+B26)by-the-square labor — the same number in both columns
B29 / C29=B27/B5 / =C27/B5hourly cost per square
B30 / C30=B28/B5 / =C28/B5by-the-square cost per square
B31 / C31=B27-B28 / =C27-C28the gap; plus means hourly cost you more
B34=B13*B14*B15*(1+B16)one more day, paid hourly
B350one more day, paid by the square
B36=B9-B8days this job ran long
B37=B36*B34what the slow days cost you, paid hourly
A40a TEXT sentencethe headline

Every one of them is wrapped in =IF($B$25>0,"Fix the yellow cells that don't line up",…), so while the guard reads anything but 0 the whole answer block says that instead of printing a number.

Row 28 is the same in both columns on purpose. That is the entire point of the sheet: by the square, the roof pays what it pays whether it takes two days or four. Row 27 moves and row 28 does not, and the difference between those two behaviors is who carries the slow day.

The extra-layer term is B5*(B6-1)*B20, not B5*B6*B20. The standard square rate in B19 already covers taking one layer off. A one-layer roof (B6 = 1) adds nothing; a two-layer roof adds the extra rate once across every square. B6 below 1 is refused — a roof with no layers is not a roof.

The example, worked by hand

The file ships filled in: a 28-square, two-layer roof with 4 sheets of decking, priced at 2 days, finished in 3, four men on payroll at 9 hours and $24 an hour with 30% burden, against a $65 square rate, $15 a square for the second layer and $35 a sheet.

  • Hourly at planned days: 4 × 9 × 2 × $24 × 1.30 = $2,246.40. At actual days: 4 × 9 × 3 × $24 × 1.30 = $3,369.60.
  • By the square: 28 × $65 = $1,820, plus 28 × 1 × $15 = $420, plus 4 × $35 = $140, = $2,380, and because the crew is on payroll, × 1.30 = $3,094.00 — in both columns.
  • Cost per square: $80.23 hourly at planned days, $120.34 at actual, $110.50 by the square either way.
  • The gap: −$847.60 at planned days (hourly would have been cheaper if the job had run on schedule), +$275.60 at actual days.
  • The drag line: one more day costs $1,123.20 hourly and $0 by the square; the job ran 1 day long, so the slow day cost $1,123.20.
  • A40 reads: By the square was cheaper on this job by $275.60. The slow days alone cost you $1,123.20 paid hourly.

That pair of numbers is the argument. On the day the job was priced, hourly wins by $847.60. On the day it actually ran, it loses — and one slow day was worth more than the whole gap either way. Delete the example before you use the sheet (select the yellow cells and press Delete), because an example left in the boxes is a decision made on somebody else's roof.

The guard, term by term

B25 is one cell and one formula, and it counts problems, not cells. It fires on:

  1. A word or a blank where a number belongs — any of B5, B6, B7, B8, B9, B13, B14, B15, B16, B19, B20, B21, B22. One term each, thirteen in all.
  2. A zero or a minus where only a positive can be true — squares (B5), days planned (B8), days actual (B9), men (B13), hours (B14), wage (B15), square rate (B19).
  3. Layers below 1 (B6), and a minus in decking sheets (B7), extra-layer rate (B20), decking rate (B21) or other extras (B22). Zero is legal in all four — most roofs have no decking and no extras.
  4. Burden outside 0% to 100% (B16) — the 3,000% typo above.
  5. Days actual below days planned (B9 < B8).
  6. Anything but Y or N in B10.

Each case above was fired on its own against an otherwise clean sheet and raised the count by exactly 1, and the clean sheet reads 0: blanking B5, setting B9 below B8, typing a word into B15, putting a literal 30 in B16, zeroing B6 and putting a minus in B22 each stopped the answer block with "Fix the yellow cells that don't line up," while Y→N and a job that finished on time both left the guard at 0 and simply changed the answer.

What the guard cannot catch: a wrong but believable number. A wage that left out the foreman, a square rate off last year's list, drive time you pay but didn't put in B14, or the days-planned cell holding what you wish you had priced instead of what you priced. It checks the shape of a number, not whether it is true — the timesheets and the signed price list are the truth.

What it does not do

It does not price the whole crew seat. Insurance, trucks, tools, callbacks and the office time a payroll crew eats belong to the crew-model sheet (Module 12, Play 1) — that one asks whose crew, this one asks which pay deal for the same men. It does not set your square rate; Play 2 does. It does not tell you whether a man is an employee or a sub, and it never will — that test is federal and state law and belongs to your attorney or accountant. And it prices one roof: run it again on a job that went badly before you change how you pay anybody.

The one thing

Do this this week

Open the crew pay sheet, type in the last roof that ran a day long, and read the drag line out loud. That's the number you decide with.

Take it with you

One email unlocks this and every other sheet and card on the site. The plays stay free.

Same fire

Your crew's on the clock and the two-day job takes three

  • M16-01hourly or by the square, priced on one job — you’re here

All the fires →

Fixed this?

Once you know what the slow day costs, the next question is bigger: whose crew should be on that roof at all?

The fire right behind it is usually You can't tell if sub crews or your own payroll makes you more money.

These plays are how we run a shop — they are not legal, tax, or accounting 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.

About this libraryWhat we do with your emailWrite to a person