Skip to main content
Back to Blog
Pricing

How to Use Production Data to Win More Bids

Turn historical production data into bids that win more often without giving up margin. Worked example for a roofing crew, plus the data hygiene rules.

Tyson Faulkner·May 6, 2026·10 min read

The bid problem most contractors don't admit

A lot of contractors bid the same way: take the square footage or the unit count, multiply by a rate that feels right based on the last few jobs, add a margin that feels safe, send it. If they win, great. If they lose, they tell themselves the customer went with the cheapest guy and move on.

The honest version is that most bids are guesses dressed up as estimates. The contractor doesn't actually know what the job will cost in labor — they have a feeling. So they pad to be safe. Pad too much and you lose to the contractor who padded less. Pad too little and you lose money on the job.

Production data fixes this. Not perfectly, not magically, but enough that you can stop guessing and start bidding off real numbers. This article walks through how to use it, what data you need, and where it falls apart if you don't take it seriously.

My background, and why this is roofing-flavored

My background is in roofing — squares per day, bundles, decking — plus gutters, soffit, fascia, and the occasional siding job. The examples in here are roofing because that's what I know cold. The math works the same for any unit-based trade. If you're bidding by linear feet, by panels, by units installed, the structure is identical. Substitute your unit and run the same playbook.

What production data actually means

Production data is the historical record of what your crews actually did. Not what you bid, not what you hoped — what they did.

For a roofing crew, the core numbers are:

  • Squares completed per day per crew configuration. A 3-person crew on a tear-off, a 4-person crew on a new-build, a 2-person crew on a small repair — those are different numbers.
  • Hours per square. This is the same number from a different angle. Useful when crews vary in size.
  • Material variance. How much waste shows up between what you ordered and what got installed.
  • Callback rate by job type. What percentage of jobs needed a return trip, and for what.
  • Cost overrun rate. Jobs that took more labor than bid, by how much, by job type.

You don't need all of these to start. Squares per day per crew config and hours per square will get you 80% of the way. The rest tightens the bid over time.

For non-roofing trades, the equivalents are units per hour, hours per unit, callback rate, and overrun rate. Same idea.

The math, plain

Here's the bidding math when you have clean production data.

Labor cost = (production target / production rate) × crew labor cost per day
True breakeven = Labor cost + materials + equipment + overhead allocation
Bid = True breakeven × (1 + target margin)

That's it. The art is in each input. The data lets you get those inputs right.

Compare that to the guess-bid:

Bid = (square count × rate that feels right) + 20% safety pad

Both produce a number. One of them produces a number you can defend, learn from, and improve.

A worked example for a 30-square roof

Say a 3-person crew at my old shop averaged 22 squares per day on a standard tear-off and re-roof, asphalt, single layer, simple pitch. That's the production rate. It came from looking at the last 12 jobs of similar scope and taking the median, not the best day or the worst.

Crew labor cost per day, fully burdened — wages plus payroll taxes, workers' comp, benefits — runs roughly $1,200 per day for that crew config. Your number will be different. The fully burdened labor rate guide walks through how to build it from scratch.

Now bid a 30-square job:

  • Days needed: 30 squares / 22 squares per day = 1.36 days
  • Labor cost: 1.36 days × $1,200/day = $1,636
  • Materials: ~$5,400 (3 squares of waste built in, current asphalt pricing)
  • Equipment + dumpster: ~$650
  • Overhead allocation: 12% of direct cost = ~$920
  • True breakeven: ~$8,606

Apply a target margin. If the market says you can get 25% on this kind of job, the bid is roughly $10,758. If it's a tight market and you'll take 18%, it's $10,155. Either way, you're making a deliberate choice, not a guess.

Compare to the contractor who bid this same job at "$400 a square sounds about right" — $12,000. They'll lose to anyone with the data. Or the contractor who bid it at "$300 a square because I want the work" — $9,000. They'll get the job and lose money on it.

The contractor with data sits in the middle, makes their margin, and wins more bids than they used to. Not because the bids are lower — because the bids are right.

Where it falls apart: garbage in, bad bids out

This whole approach depends on the data being clean. If your hours are estimated on Friday by a foreman who's trying to remember the week, and your production counts are guessed off a finished invoice, the average is meaningless and bidding against it will lose you money.

Clean production data means:

  • Hours logged daily, by worker, on the right job. Not weekly. Not estimated. The piece work tracking software discussion covers why this matters and what the real cost of bad tracking is.
  • Production counted as completed, not as billed. Squares done, not squares invoiced. Those are different numbers and the difference is where waste and rework hide.
  • Crew configuration recorded. A 3-person day is not the same as a 4-person day. If you don't know who was on the crew, you can't normalize the rate.
  • Job type tagged. A tear-off is not a re-roof over existing. Don't average them together. Bid the wrong category against the wrong rate and you'll be off by 20%.

If you're tracking on spreadsheets, expect this to be hard. The spreadsheets costing money article and the spreadsheets vs. dedicated tool comparison get into why spreadsheets break down once the data starts mattering for bidding. You can do it on paper or in Excel for a small operation, but the data hygiene work is brutal.

How long until you have enough data

Six to eight clean jobs of similar type is the floor. That gives you a median that isn't dominated by one outlier. Twelve or more lets you start splitting the data by crew config and job complexity.

If you only have two or three jobs to look at, don't bid against the data. Bid the way you have been, but start logging cleanly today so that in a quarter you'll have something real to work with.

The other thing that takes time: confidence. The first few bids you do off the data will feel uncomfortable because they don't match the gut number. Some of them will be lower than you'd usually bid and you'll be nervous about margin. Some will be higher and you'll be nervous about losing the bid. After a few jobs come in on budget, the discomfort goes away.

Don't bid the average — bid the percentile

A subtle point that matters. The median production rate is what your crew hits on a typical job. But there are bad days. Weather, surprises, a worker out sick. If you bid against the median, half your jobs will overrun.

A more honest bid uses something like the 60th to 70th percentile of production. That means you're bidding against a slightly slower day than typical, which gives you a buffer. On a good day, the job comes in under and you keep the difference. On a typical day, you make your margin. On a bad day, you cover cost.

How much buffer is a judgment call. Tighter buffer wins more bids and loses more money on bad jobs. Wider buffer is safer but loses more bids. The data lets you make that tradeoff with eyes open.

What about callbacks and rework

Callback rate matters because it shifts your real labor cost. If 15% of your jobs need a return trip averaging half a day, that's 7.5% additional labor cost across the board that needs to be in the bid.

Track callbacks. Most contractors don't, because callbacks feel like a thing that happened once and won't happen again. Until they look at the year and realize they ran 18 callbacks. That's real labor money that has to come from somewhere — either it's in the bid, or it's coming out of margin.

The crew performance monitoring guide covers callback tracking as part of crew-level performance, and the mid-year profit check guide is where you find out whether your bidding assumptions held up over the season.

Where to start tomorrow

If you don't have clean production data yet, the order of operations is:

  1. Pick the job type you bid most often. Roofing tear-offs, gutter installs, whatever. Start there.
  2. Decide what unit you're tracking. Squares, linear feet, panels.
  3. Log hours daily by worker on that job, with crew config. No exceptions, no Friday catch-up.
  4. Count production at end of day, not end of week. Squares completed, not estimated.
  5. Wait until you have 6+ jobs. Don't bid against three jobs of data.
  6. Pull the median production rate and the 60th–70th percentile. Use the percentile for bidding, the median for performance reviews.
  7. Build your fully burdened labor cost. The labor burden walkthrough is the numbers piece.
  8. Bid your next similar job using the formula above. Track how it comes in.
  9. Adjust. If you keep coming in under bid, your percentile is too conservative. If you keep coming in over, it's too aggressive.

For roofing specifically, the roofing labor cost calculation guide and the pricing roofing jobs accurately article get into the trade-specific math more deeply.

If you want to put a number on a specific bid before you have all the historical data dialed in, the job profit calculator is a clean way to test the math against your gut.

A note on compliance

Production data feeding bids does not change your FLSA obligations. You still have to track hours for every non-exempt worker, run the regular-rate overtime calculation every workweek, and pay minimum-wage make-up when piece rate earnings fall short. Bidding well off your production numbers is the upside; the underlying compliance math has to be solid regardless. The FLSA requirements for piece rate employers article covers the recordkeeping and overtime rules you cannot skip.

Why this is worth the work

The contractors who win the most bids over a season aren't the ones with the lowest prices. They're the ones whose bids are closest to right. They don't lose every job to the cheapest guy because they're not 20% high on every bid. They don't lose money on the jobs they win because they're not 10% low on the ones that should have been priced higher.

Clean production data is what lets you tell the difference between a good job and a bad one before you commit to it. That's the whole point.

If you want to see what production data tracking looks like inside a tool built for piece work and crew tracking, you can start a Piece Work Pro account and run a job through it. The point isn't the software — the point is having numbers you trust the next time you sit down to bid.

Frequently Asked Questions

How much production data do I need before I can use it for bidding?

At minimum, six to eight completed jobs of similar type and scope, with clean labor hours and accurate production counts. Less than that and the average is too volatile to bid against. More is better, but six clean jobs beats sixty messy ones.

What if my production data is messy or inconsistent?

Don't bid against it yet. Clean up the tracking process first. Garbage in, bad bids out. Spend a quarter making sure hours and production counts are logged daily and accurately, then start using the numbers for pricing.

How much should I add to a data-based bid for margin and risk?

There's no universal number, but contractors who know their real labor cost within a tight range usually add 15 to 30 percent above breakeven, depending on job risk, customer reliability, and how badly they want the work. The point of clean data is letting you choose that number deliberately instead of padding 40 percent because you're guessing.

Will using production data make my bids lower?

Sometimes yes, sometimes no. The bigger benefit is that your bids match reality. Some jobs you'll bid lower because you were padding too much. Some you'll bid higher because the data shows the job is harder than you remembered. Either way, the win rate goes up because the bids are closer to right.

Free Guide

How to Pay Your Crew 20% More and Double Your Profit

The math most contractors never run — and the mistakes that cost them $93K+ a year. This free PDF breaks down the math in ten minutes. Plus, you'll understand the payroll traps that can wipe you out.