How estimate pricing is calculated
Every line in an estimate runs through the same four-step recipe to turn a takeoff quantity into a sell price. Then all the line prices are added up to get the bid. This article walks through the recipe in plain language so the numbers in the estimate builder are never a mystery.
takeoff quantity
→ Step 1: pad the quantity for waste/overage
→ Step 2: multiply by unit cost (add sales tax if it's material)
→ Step 3: add overhead, then apply profit margin
→ Step 4: round to whole dollars
= the line's sell price
add up every line = the bid
What's on a line
| Field | What it means |
|---|---|
| Quantity | How much, from the takeoff (e.g. 500 linear feet) |
| Unit of measure | The "each" — feet, hours, sq ft, lump sum |
| Cost type | Labor, Material, Equipment, Subcontractor, or Other |
| Unit cost | The price for one unit (e.g. $2.10 per foot) |
| Waste % | Extra material you buy but don't install |
| Overage % | An extra cushion on the quantity |
| Overhead % | Cost of doing business (default 10%); applied as a markup or a margin — see Step 3 |
| Profit margin % | Profit you keep, as a margin (default 8%) |
The cost type decides which unit cost is used and whether sales tax applies — only Material lines are taxed.
Step 1 — Pad the quantity (waste + overage)
You rarely install exactly what you take off. Waste and overage are both percentages, and they simply add together:
padded quantity = quantity × (1 + waste% + overage%)
Then we round up to a whole unit — you can't buy 4.2 boxes of fittings, you buy 5.
Example: 500 ft, 5% waste, 0% overage → 500 × 1.05 = 525 ft.
Step 2 — Extend the cost (quantity × unit cost)
Multiply the padded quantity by the unit cost to get the raw cost of the line before markup.
extended cost = padded quantity × unit cost
If the line is Material, sales tax is baked in right here — multiplied into the cost, not added at the end. The tax rate is set on the estimate (default 10.25%). Labor, equipment, subcontractor, and "other" lines are not taxed.
extended cost (material) = padded quantity × unit cost × (1 + sales tax%)
Step 3 — Add overhead, then apply profit margin
Overhead covers running the business (office, trucks, PMs); profit is what you keep.
Profit is always a margin — a percentage of the final price, so it divides by
(1 − margin%). Overhead is applied one of two ways, set per estimate:
Markup mode (the default) — overhead is a % of cost
sell price = extended cost × (1 + overhead%) ÷ (1 − margin%)
A $1,000 cost at 10% overhead, 8% margin:
$1,000 × 1.10 = $1,100 (overhead markup)
$1,100 ÷ (1 − 0.08) = $1,195.65 (profit margin)
rounds to $1,196 (sell price)
Margin mode — overhead is a % of revenue
Switch the estimate's Overhead toggle to Margin when you want overhead read as a percentage of the bid rather than a markup on cost. Now overhead and profit are both margins on the sell price, so they share one denominator:
sell price = extended cost ÷ (1 − overhead% − margin%)
The same $1,000 cost:
$1,000 ÷ (1 − 0.10 − 0.08) = $1,000 ÷ 0.82 = $1,219.51
rounds to $1,220 (sell price)
In margin mode overhead is exactly 10% of the $1,220 price ($122) and profit exactly 8% ($98). The toggle sits next to Sales Tax in the estimate builder; its company-wide default lives in Settings → Estimating Defaults.
Markup vs. margin: a 20% markup on $100 gives $120. A 20% margin means $100 is 80% of the price, so the price is $100 ÷ 0.80 = $125.
Step 4 — Rounding
| Value | Rounded to |
|---|---|
| Unit cost | nearest cent |
| Padded quantity | whole unit, always up |
| Extended cost | whole dollar |
| Sell price | whole dollar |
Typing in a price directly
Any line can carry a price override. When set, all of the above is ignored and the override is the sell price. Use it for an allowance, a vendor quote, or a round bid figure you just want to type in.
Labor lines: two extra wrinkles
Labor follows the same recipe, but the unit cost can be built two special ways.
The loaded (all-in) wage rate. For union / prevailing-wage work, the hourly cost isn't just the base wage. STrOp stacks fringes, payroll taxes, workers' comp, and general liability + small tools on top of the base wage to get a loaded rate, and uses that as the labor unit cost. (See Prevailing wage rates lookup.)
Pricing from a production rate. Instead of a $/unit, you can describe how fast the crew works — crew size, hours per shift, and how much they finish per day — and STrOp backs into the unit cost:
labor unit cost = (crew size × hourly rate × hours per shift) ÷ daily production
A 2-person crew at $80/hr, 8-hour shifts, 200 ft/day → (2 × 80 × 8) ÷ 200 = $6.40/ft.
Adding it all up
Lines → packages → bid. Line sell prices are summed. Lines can nest one level (a parent with children); the parent's total includes its children. Adding up all the top-level base-bid lines is the base bid.
Hiding a line doesn't change the total. Marking a line "don't show on the proposal" only affects what the client sees — its cost is still in the bid.
Alternates (add / deduct) sit outside the base bid. An add alternate's value is added if the client selects it; a deduct is subtracted; a line flagged a credit inside an alternate counts as negative. A scenario total is just the base bid plus the values of whichever alternates are selected.
One full example, start to finish
A material line: 500 ft of conduit at $2.10/ft, 5% waste, 10.25% tax, 10% overhead, 8% profit margin.
Step 1 pad quantity: 500 × 1.05 = 525 ft
Step 2 extend + tax: 525 × $2.10 × 1.1025 = $1,216
Step 3a overhead: $1,216 × 1.10 = $1,337.60 (markup mode)
Step 3b profit margin: $1,337.60 ÷ (1 − 0.08) = $1,453.91
Step 4 round: $1,454
This line sells for $1,454 in markup mode. In margin mode Step 3 is a single
divide: $1,216 ÷ (1 − 0.10 − 0.08) = $1,483. Do that for every line, add them up,
and you have the bid.
See also
This is how STrOp works
The data flows you read about here are how the platform threads bid, execution, billing, and closeout. Single pipeline. No re-keying.
Request beta access →Last updated 2026-06-04.