Skip to content
Roofer MBA

Price Every Job to Keep the Profit You Meant To

On the list of fires: “price to a profit

Module 6 · The Money System · Play 6 of 22

In a hurry? ↓ Do this this week

The problem in one breath

You win the job, you build it clean, the check clears — and somehow there's barely anything left. The price felt right when you wrote it, but the profit you pictured never showed up in the bank.

Why it happens

Two things bleed a job dry, and most owners do both. First, they price off a gut number — "that's about a twelve-thousand-dollar roof" — instead of adding up what the job costs. The dump fee, the drive time, the office phone, the truck payment: none of that is in the gut number, so you cover materials and labor and quietly eat the rest.

Second — and this one costs on every job — owners confuse markup with margin. They want to keep 20 cents on the dollar, so they mark cost up 20%. That doesn't leave 20 cents. It leaves about 16.7, and the gap walks out the door on every roof you sell.

The play

  1. Build your true cost from the ground up. For one job, add four things: materials, labor, dump fee, and overhead. Materials, labor and the dump fee come off the takeoff sheet (M10-01) — measure the roof and it hands you all three (pay subs by the square? use their price for labor). And overhead is the slice of your monthly business cost — trucks, insurance, the office manager, your phone — that this one job has to carry. Never skip it: take your monthly nut — the winter reserve calculator (M6-11) is where you add it up — divide it by the jobs you run in an average month, and carry that share on every bid. Or use a flat share of the price instead. Pick one and use the same one on every job. That number, all four added, is your true cost. Not the gut number. The real one.
  2. Pick the margin YOU want to keep. Margin is what's left after all cost — the fully loaded cost from step 1, overhead and all — as a share of the price. It's not the leftover you get from counting material and labor only. Say you want to keep 20 cents on every dollar you bill: that's a 20% margin. The 20% here is only an example, so the math has something to chew on — not a rule and not an industry figure. Yours comes off your market and your costs.
  3. Learn the one piece of math that stops the leak. To actually KEEP a 20% margin, you do NOT mark your cost up 20%. You divide your cost by (1 − your margin) — for 20%, that's dividing by 0.8. Say a job costs you $10,000: $10,000 ÷ 0.8 = $12,500. Charge $12,500 and you keep $2,500 — a true 20%. Mark the same job up 20% instead and you'd charge $12,000, keep $2,000, and that's only 16.7%. Same job, $500 gone, just from the wrong math.
  4. Say it in markup terms so your crew can price fast. Dividing by 0.8 is the same as a 25% markup. A 20% margin = a 25% markup — not the same number, and that's the whole point. Whenever someone hands you a "markup," ask what margin it leaves.
  5. Run every bid through it before it goes out. True cost, your margin, then the price the math gives you. Drop the price to win if you want — but now you SEE the margin you're dropping to.

Do this this week

Take one job you're bidding right now. Add up materials, labor, dump fee and overhead to get its true cost. Pick the margin you want to keep, then divide the cost by (1 minus that margin) for the price you should charge. Compare that to the number your gut was going to write. That gap is the lesson.

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-job-cost-sheet.xlsx — the job-cost sheet. One row per job: Materials, Labor, Dump fee and Overhead add up to your true cost. Up top you set one cell, your target margin. The sheet shows the price you must charge to hit it (cost ÷ (1 − margin)), the profit you keep at that price, and the equivalent markup % — so margin and markup sit side by side and you stop confusing them. Type in the price you actually plan to bid and it shows the real margin that bid earns, red when it drops under your target. One sample row is filled in as an example; see the sheet notes below.

The pre-bid challenge (M6-04) hunts the hidden costs that wreck a job; this play turns your real costs into the right price.

If your crew is 1099

Nothing to adjust — pricing is the owner's own math. W2 or subs, their pay is just part of the labor line in your true cost, and the margin you keep is yours to set either way.

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 row per job. You type what the job costs you — materials, labor, dump fee, overhead — and the sheet adds them into your true cost. Set one number up top: the target margin you want to keep. The sheet then shows the price you must charge to actually keep that margin, the profit in dollars at that price, and the markup % that margin works out to — so you stop confusing markup with margin. Type in the price you were actually going to bid and it shows the real margin that bid earns, flagged red when it drops under your target. Row 6 (cream) is filled in as an example; delete it before you enter your first real job.

How to use it

  1. Set your line once, top-right: Target margin you want to keep (cell E2). The example is 20% — that's one owner's number, not a rule. Put in yours.
  2. The cell under it (E3) shows the markup that margin requires — the sheet does that math so you see, in black and white, that a 20% margin is a 25% markup, not a 20% one.
  3. For each job, fill the plain cells: Materials, Labor, Dump fee, Overhead. The sheet adds them into True cost and gives you the Price to charge and the Profit.
  4. Optional: type the price you were about to bid into Your bid price. The sheet shows the margin that bid actually earns and turns the last column red if it's under your target.

Columns

ColumnWhat it is
A JobWhich job this row is.
B MaterialsMaterial cost for the job. You type it.
C LaborLabor cost — crew pay for this job (W2 or sub, it's the same line). You type it.
D Dump feeThe disposal / dumpster cost. You type it.
E OverheadThis job's share of your monthly business cost (trucks, insurance, office). You type it.
F True costAuto: Materials + Labor + Dump + Overhead.
G Price to chargeAuto: the price that keeps your target margin.
H Profit at that priceAuto: what you keep at that price (Price − True cost).
I Your bid priceOptional: the price you were actually going to bid. You type it.
J Margin your bid earnsAuto: the real margin your bid leaves; blank until you enter a bid.
K Over / under your targetAuto: OK at/above target, UNDER (red) below it.

Top of sheet: Target margin (E2, the one number you set) and required markup (E3, computed).

Formulas (so you can rebuild it by hand)

  • Required markup (E3): =E2/(1-E2)
  • True cost (F6, fill down): =B6+C6+D6+E6
  • Price to charge (G6, fill down): =F6/(1-$E$2)
  • Profit (H6, fill down): =G6-F6
  • Margin your bid earns (J6, fill down): =IF(I6="","",(I6-F6)/I6)
  • Over/under target (K6, fill down): =IF(I6="","",IF(J6>=$E$2,"OK — at/above target","UNDER — below target"))
  • Working rows below the example guard against blanks, e.g. True cost: =IF(COUNT(B7:E7)=0,"",B7+C7+D7+E7) so an empty row shows nothing instead of a divide error.
  • The red flag is conditional formatting, not a formula in a cell. Rule on K6:K13, red fill: =ISNUMBER(SEARCH("UNDER",K6)) — it turns the cell red whenever the Over/under column reads UNDER.

Only IF, OR, COUNT, ISNUMBER, SEARCH, and plain arithmetic are used — no new-Excel-only functions — so it opens and computes in old Excel, Numbers, and LibreOffice. (Verified: opened and recalculated in LibreOffice — every formula computes, blank rows stay blank, the UNDER flag fires red.)

Notes / judgment calls

  • The margin is yours, not an industry fact. 20% is one owner's working number, set as the example so the sheet does something out of the box. Change it to whatever keeps you profitable and competitive in your market.
  • Margin vs markup is the whole point. The sheet always prices off your margin (÷ (1 − margin)), and shows the markup only so you can see they're different numbers. Never mark cost up by your margin % — it leaves less than you think.
  • Overhead is the line most owners skip. If you leave column E blank you're pricing to cover materials and labor only, and eating trucks, insurance, and the office out of your "profit." Put a real overhead number in, even a rough one — the play shows one way to get it: your monthly nut divided by the jobs you run in an average month.
  • Eight job rows, and the sheet tells you when you're out. Rows 6 through 13 carry the formulas; the "How to use it" text sits right under them. A ninth job typed on row 14 lands on top of that text and gets no math — which is your signal to start a fresh copy of the sheet (one per season, or one per crew) rather than typing past the block.
  • 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

Take one job you're bidding right now. Add up materials, labor, dump fee and overhead to get its true cost. Pick the margin you want to keep, then divide the cost by (1 minus that margin) for the price you should charge. Compare that to the number your gut was going to write. That gap is the lesson.

Take it with you

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

Same fire

Jobs sell but the profit isn't there

All the fires →

Fixed this?

Half of “no profit” is profit you earned and never collected.

The fire right behind it is usually Owed money you can't collect.

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 email