Estimating

A takeoff you can defend line by line

The engine is deterministic: same inputs, same numbers, and every line explains how it got there. Where an input is missing you get a warning, not an invented quantity.

Estimate · Material takeoffExample data
MaterialTo orderCost
4x4x8 pressure-treated post15 each$284.50
Concrete, 50 lb bag32 bag$208.00
2x4x8 rail41 each$373.10
Cedar picket 5/8 x 5.5225 each$742.50
Walk gate hardware kit1 kit$89.00
Estimate · PricingExample data
Materials
$1,697.10
Installation labor
$918.00
Labor burden (22%)
$201.96
Allocated overhead (10%)
$282.62
Contingency (3%)
$84.78
Cost basis
$3,184.46
Price at 35% target margin
$4,899.17
Same cost at 35% markup
$4,299.02

Margin 35.0% is a job contribution figure on the price before tax — not net company profit. Markup and margin are different numbers.

Maximum post spacing

Sections are the measured run divided by your maximum spacing, rounded up. You set the spacing per style.

Shared posts counted once

When two runs meet, the junction post belongs to one run. Mark the end as shared and the duplicate disappears.

Gate openings are not panels

Gate widths come out of the fenced length before sections are counted, and each opening adds its own post.

Waste and purchase packs

Waste is applied before rounding, then quantities are rounded up to whole purchase packs. Both steps are shown.

Mixed styles and heights

Each run carries its own style, height and finish, so one job can combine cedar privacy and aluminum.

Overrides with a reason

Change a quantity and you record why. The original calculation and the change stay in the history.

Margin and markup are not the same

Target margin

price = cost ÷ (1 − margin)

A 35% target margin on a $3,192 cost basis prices at $4,911. Target margin must be below 100%.

Markup

price = cost × (1 + markup)

A 35% markup on the same cost basis prices at $4,309 — and earns a 26% margin.

Each figure states which costs are inside it. A job contribution figure is never labelled net company profit, and issued proposals keep the prices they were issued with even after your catalog changes.

See it on a sample job