Copying your last bid feels fast. Open the old file, save it under the new job name, change the quantities, and send it. The trouble is what comes along for the ride. A copied bid carries every rate in that spreadsheet, including the ones that were wrong on the last job.
For a newer owner this habit often starts for good reasons. You priced one job carefully, it went well, and the next bid looks similar. A few jobs later there are several versions of the same rate spread across several files, and it is often unclear which one is right.
What a copied bid carries forward
A rate in an old bid is a snapshot. It reflects the crew, the conditions, and the hours you expected on that job. When you copy the file, you copy that snapshot without checking whether it held up in the field.
The problems tend to stack up quietly:
- A rate that ran short on hours gets carried into the next bid, and the next, and the loss repeats.
- A quick fix made for one job, like extra labor for a tight site, stays in the file after the job is gone.
- Two estimators copy from different old bids, so the same work goes out at two different rates.
- It gets hard to say which file holds the current number, so the safest-looking guess wins.
Most of this doesn't show up on the proposal. The bid looks complete. The gap often shows up later, when the crew's hours don't match what you priced.
Keep one master list instead of a copy in every file
The fix is simple to describe: keep one master list of unit rates, and pull every new bid from it. Each bid still gets its own quantities and its own conditions, but the rates come from one place you trust.
A master list does not need to be fancy to work. For each rate, keep a few plain things next to it:
- What the unit is and what it covers, so the same name means the same work.
- The conditions it was built for, such as new work or remodel, easy or tight access.
- The production your crew hits on it, in labor hours per unit.
- When it was last checked against a finished job.
If a job needs something different, adjust the rate on that bid and leave a note, or add a second named rate to the list. What you want to avoid is a private edit buried in one old file that the next bid inherits by accident.
If you are starting a list from nothing, the published unit rates give you an editable starting baseline. They are not a national price book or a market average. Treat each one as a draft until your own job data backs it up. You can also set up a list in a free Unit Rate AI account if you would rather not keep it in a spreadsheet.
Update the list when a job closes out
A master list is only as good as the last time you checked it. The natural time to check is closeout, while the job is fresh and the timecards are still easy to find.
When a job closes, compare the hours you bid per unit with the hours your crew actually spent per unit on the main items. Where they match, mark the rate as checked. Where they don't, update the production on the master list, not in the old bid file. If the gap came from an odd site condition, note the condition instead of changing the rate for every job.
This is the same check described in labor productivity rates for estimating: bid hours per unit against actual hours per unit, one job at a time. The difference here is where the answer goes. It goes back into the one list every future bid starts from.
Start every new bid from checked rates
Once the list exists, the new routine looks like this. Start a new bid from the master list, not from the last job's file. Pull in the rates that fit the scope, apply this job's quantities and conditions, and send it. When the job closes, feed the actual production back into the list.
This is how you keep the speed that made copying attractive without guessing. Many owners find the first pass takes some time, because old files have to be sorted and conflicting rates have to be settled. After that, each closed job makes the list a little more reliable, and each new bid starts from rates you have already checked.
Your next step
Pick the rates you use most and gather them into one list. For each one, find the most recent finished job that used it and compare the bid hours to the crew's actual hours. Update what doesn't match, mark what does, and start your next bid from that list instead of your last file.
