← All resources BINDFULResources Go to Bindful
General BusinessGuide

How to Price a Job So You're Not Just Guessing

How to price a job so you're not just guessing

Tom quoted the Ferris deck rebuild at $4,200 because that's roughly what his last deck job cost, close enough in size, felt about right. He didn't account for the extra day it took to remove the old structure, the higher lumber price that month, or the fact that this deck had a second level that needed extra bracing. He came in $900 under his actual cost and didn't find out until the job was done and he sat down to see what he'd actually made on it. By then the invoice was already sent.

That's the problem with pricing from memory and gut feel: it works fine until the job you're comparing to wasn't actually similar enough, and you don't find out until it's too late to fix.

Why gut-feel pricing fails

Most small business owners price jobs the way Tom did, based on what a similar job cost last time, adjusted by feel. That works reasonably well when jobs really are similar and your costs are stable. It falls apart the moment either of those things isn't true, and they usually aren't. Material prices shift. Labor time varies more than people expect, one crew moves faster than another, one property has better access than another. And "similar" jobs often have one hidden difference, extra bracing, a harder-to-reach site, an extra day of prep, that changes the real cost by hundreds of dollars.

The deeper issue is that gut-feel pricing has no memory. Tom doesn't know he underpriced the Ferris job until he manually sits down and calculates it after the fact, and most owners don't do that consistently enough to catch the pattern. Without a system, you're not actually learning from job to job, you're just guessing again each time and hoping this guess is closer than the last one.

What you actually need

  • A real cost breakdown for every job, not a lump estimate. Materials, labor hours at your actual rate, equipment or disposal fees, and a margin on top, listed separately so you can see where a quote is thin.
  • An actual labor rate, not a feeling. Know what an hour of crew time really costs you, wages, taxes, insurance, not just what you pay someone hourly.
  • A record of what past jobs actually cost versus what you quoted. This is the only way to catch a pattern like "decks with a second level always run 20% over what I estimate."
  • A standard markup or margin target, so pricing isn't reinvented every time. If you know you need 25% margin to stay healthy, every quote should be built to hit that, not guessed toward it.
  • A buffer for the unknowns. Even a good estimate should include a cushion for the thing you didn't see coming, because there's always something.

A simple system

  1. Break every quote into materials, labor, and overhead before you give a number. Don't skip to a total, build it from parts.
  2. Price labor at your real hourly cost, not just what you pay in wages. Include taxes, insurance, and overhead per hour, not just the paycheck number.
  3. Add your target margin on top, as a real percentage, not a round number that felt right.
  4. Build in a buffer, typically 10 to 15%, for the unknowns every job has.
  5. After the job's done, compare actual cost to the quote. This is the step almost everyone skips, and it's the one that actually improves your next quote.
  6. Log what was different, if anything, so the next similar job accounts for it instead of repeating the same gap.

A worked example

After the Ferris job, Tom sits down and does the math he skipped the first time. Materials actually cost $1,650, up from the $1,400 he'd estimated based on old lumber prices. Labor ran 38 hours instead of the 30 he'd guessed, because the second level bracing took an extra day nobody accounted for. His real cost was $1,650 in materials plus 38 hours at his actual loaded labor rate of $58 an hour, or $2,204, for a total cost of $3,854. He'd quoted $4,200 and thought that gave him a comfortable $800 margin. His real margin was $346, not enough to have been worth the risk on a job that size.

Three months later, a similar two-level deck job comes in. This time Tom builds the quote from parts: current lumber pricing, 38 hours of labor at his real rate since he now knows a second level adds roughly a third more time, a 15% buffer for anything unexpected, and his target 20% margin on top. The number comes out to $5,100, nearly $900 higher than what he would have guessed from memory. He explains the second-level complexity to the client when they ask why it's more than a standard deck, and the client accepts it because the reasoning is concrete, not just "that's what it costs."

What this actually buys you

  • You stop finding out you lost money after the job is already done. Building the quote from real numbers means the number is right before you commit to it, not after.
  • You can explain your pricing with confidence. "Second-level decks take 30% more labor" is a real answer. "That's just what it usually costs" invites pushback.
  • Your margin stays consistent job to job, instead of drifting based on which jobs you happened to underestimate and which you happened to overestimate.
  • Every completed job makes the next quote better. Once you're comparing actual cost to quoted cost, you're building real pricing data instead of relying on memory that fades and drifts.

If Tom had a record of what his last deck job actually cost, materials, real labor hours, the extra day for bracing, he'd have caught the gap before quoting the Ferris job instead of after. Bindful tracks job costs and time against each quote, so the next similar job starts from what actually happened, not a rough memory of what felt right last time. That's the difference between pricing a job and repeating a guess that already burned you once. bindful.app