How to bid an excavation job without guessing

A step-by-step method for bidding excavation work — takeoff, production rates, unit costs, waste, and markups — from a contractor who bids this work every week.

Most excavation bids are not lost on the dirt. They are lost on the twenty minutes at the end, when the estimator is tired, the bid is due at two, and the last four line items get a number that "feels about right."

That is the part worth fixing. Here is the method — the same order of operations we use on every bid, whether it is a 14-line driveway or a 158-line hangar pad.

Start with the scope, not the plans

Before you measure anything, read the bid documents and write down what you are actually responsible for. Two contractors looking at the same plan set routinely bid different scopes:

  • Who owns erosion control — you, or the GC?
  • Is the topsoil respread, stockpiled on site, or hauled off?
  • Who pays for import, and is there a defined borrow source?
  • Is dewatering excluded, and did you say so in writing?
  • Whose number covers the tie-in to the existing main?

Every one of these is a line on the estimate or a line in your exclusions. There is no third option. The bids that go bad are the ones where a scope item was neither priced nor excluded, and the GC gets to decide which one you meant.

Take off quantities in the units you will price in

The takeoff exists to feed the estimate, so measure in the unit you are going to buy and sell the work in.

  • Earthwork — cubic yards, bank measure, with shrink and swell applied deliberately rather than by habit.
  • Pipe — linear feet by size and material, broken at each depth range that changes your production rate.
  • Structures — each, by type and depth.
  • Surface work — square yards for stripping, paving, and stabilization.

If you already run your dirt in AGTEK or a similar package, do not retype the volume report into your estimate. Cut, fill, strip, and import loads are the four numbers most likely to get transposed at 11pm, and they are the four with the biggest dollars attached.

Do not average depths across the site

A pipe run that is six feet deep for 400 feet and fourteen feet deep for 200 feet is two line items, not one 600-foot run at nine feet. Trench box requirements, sheeting, bedding, and production rate all change with depth, and the average of two production rates is not the production rate of the average.

Price from production rates, not from a unit price you remember

This is the difference between an estimate and a guess.

A unit price is an output. It is what falls out after you decide how fast your crew and iron do the work. Start there instead:

duration = quantity ÷ production rate
cost     = duration × crew rate + material (with waste) + haul

So a 600 LF run of 8" PVC that your crew installs at 220 LF/day is 2.7 days. At a crew rate of $4,850/day — operator, two laborers, excavator, and skid — that is $13,240 of labor and equipment before a stick of pipe. Add the pipe, bedding stone, and the fittings, and now you have a unit cost you can defend line by line.

The reason this matters is that production rates are the number you actually know. You have watched your crew do this. You do not know what $22.75 a foot means three years after you wrote it down.

Keep the rates where the whole company can see them

A production rate that lives in one estimator's head is a single point of failure for the business. When fuel moves, or you put a new operator on the excavator, or the union rate steps up in July, you want to change one number and have the next bid come out right — not go find every spreadsheet that has the old one buried in a formula.

Put waste on the line, not in your head

Waste factors belong on the individual line item, because they are not the same everywhere:

  • Stone bedding on a rough-bottom trench wastes differently than stone under a slab.
  • Topsoil respread over a tight, curbed island has more loss than an open slope.
  • Pipe has almost none until you start cutting a lot of short pieces around structures.

A single 10% factor applied to the whole material bucket at the bottom is a rounding decision dressed up as an estimate. Put the real number on the real line.

Apply markups by category, at the bottom

Sitework does not carry one margin. It carries several, and they are not close to each other:

Bucket What it covers Typical treatment
Labor / equipment Your crews and iron The highest markup — this is where your risk lives
Material Stone, pipe, structures Lower markup, plus sales tax where it applies
Sub Paving, boring, striping Lowest markup — you are handling and warranting, not performing
Trucking Import, export, haul-off Priced and marked its own way; it moves with fuel

If you mark everything up at one blended number, you are quietly moving margin off your own crews and onto a sub's invoice. On a job that is 60% sub work, that is the whole difference between a good year and a flat one.

Then, at the very bottom, in this order: overhead, profit, bond, tax, contingency. Bond is on the marked-up number, not the raw cost, or you are buying bond with your profit.

Check the four things that actually go wrong

Before you send it, look at exactly four things. This takes five minutes and catches most of what a bid week does to an estimate.

  1. Quantities against a rough independent check. Does the total cut and fill roughly balance, or did you import 4,000 yards on a site that is supposed to be balanced?
  2. The largest three line items. Eighty percent of your error lives in them. Re-derive them from production rate, out loud.
  3. The zeros. Any line with a zero in a cost bucket is either genuinely free or genuinely forgotten.
  4. Your exclusions against your scope notes. Everything you decided not to price on day one should be written down where the GC will read it.

Then make the bid worth something after you win it

The estimate is the only document that says what you thought the job would cost, broken down the way you will actually spend the money. That makes it the baseline for job costing — but only if it survives past the bid date in a form you can compare invoices against.

Most contractors lose this. The estimate goes in a folder, the invoices go to accounting, and the two meet for the first time at closeout, when the money is already gone and the only thing left to do is find out how the job went.

If you can put actual cost next to bid cost while the job is running, you get to do something about it. That is worth more than any single bid.


DirtIQ was built around exactly this method — production-rate pricing, per-line waste, markups by category, and the awarded bid becoming the job you cost against. It came out of a working excavation contractor and it had to survive a real bid week before it was offered to anyone else.