Your material price book

What each material costs you and what you sell it for, in one book you edit when the yard changes its pricing.

The operating system built exclusively for post-frame and barndominium builders.

Part of The Pricing Engine
The short answer

What should a post frame material price book hold?

A post frame material price book should hold a cost, a sell price and a unit for every line the takeoff can produce (posts, girts, purlins, steel panels, trim, trusses, hardware, openings, insulation, concrete) in the trade's own units. Ours starts with prices to replace, keeps only the rows you change, leaves an unpriced item unpriced instead of free, and moves every draft estimate when you change one material.

Why it works
  • Small builders take the biggest hit when prices move. In NAHB's July 2026 survey, the median material cost for the same house rose 6.7% in a year: 9.1% for builders with five or fewer starts and 1.8% for those with 100 or more, because big builders stockpile and sign long supplier contracts. NAHB, 2026 ↗
  • Uncertain costs make pricing hard for most builders. In April 2026, 70% of builders told NAHB they had trouble pricing homes because material costs were uncertain. NAHB, 2026 ↗
  • An old price keeps pulling the new estimate toward it. Tversky and Kahneman showed people adjust too little from a starting number, so a remembered price from last spring quietly shapes this month's estimate unless the book is current. Tversky & Kahneman, 1974 ↗
  • Rising material costs top the list in post-frame. In Rural Builder's 2025 survey of 93 post-frame companies (small and self-selected), 62.5% named rising material costs as their biggest challenge. Rural Builder, 2025 ↗
What it is

On estimates you build in Leads 2 Build, every line the takeoff can produce has a row — a cost, a sell price and a unit. Posts, girts, purlins, steel panels, trim, trusses, hardware, openings, insulation, concrete. The book arrives with starter prices — most checked against real builders' estimates, the rest ordinary market numbers marked for you to replace first — and you override whatever you like. Only the rows you change are kept, so a better calibration can still improve the ones you never touched. (An estimate synced from SmartBuild carries SmartBuild's own prices.) Built exclusively for post-frame and barndominium builders, so the book is already in the trade's units — girts by the stick, steel by the panel, trusses by the span.

Also called: lumber prices · yard pricing · cost and sell · material rates · 2x6 went up

See it, piece by piece
01

Your yard's prices drive every quote, and one edit reprices every draft

Cost and sell price per material, edited in one place when the yard changes its pricing. Lumber going up 20% is an afternoon of edits rather than a quarter of quotes written at last year's numbers. The starting book was calibrated against 258 real estimates, so day-one numbers are close before you touch anything. Watching that same number move while you are still dragging the building about, and putting 26ga on one job without shifting your defaults, is the same book seen from the model.

Cost breakdown
Cost breakdownAll trades
Item
Total
Materials
Framing
$18,420.00
%$10
+$1,842.00
$20,262.00
Sheathing
$12,905.50
%$0
$12,905.50
Trim
$3,180.00
%$0
$3,180.00
Doors & Windows
$9,640.00
%$500
+$500.00
$10,140.00
Foundation
$4,275.00
%$0
$4,275.00
Fasteners
$1,388.25
%$0
$1,388.25
Materials
$49,808.75
+$2,342.00
$52,150.75
Services & add-onsSave as templateUse template+ Add service
Concrete & Site Package2 lines · $20,250.00Remove these lines
Concrete Pad
40′ × 60′ = 2,400 sq ft × $7.25 = $17,400
$17,400.00
Customer sees: 4″ pad, 3,500 psi, fiber mesh with saw-cut control joints.tailored
×
%$0
$17,400.00
Site Prep & Grading
flat = $2,850
$2,850.00
Customer sees: Strip, level and compact the pad area.
×
%$0
$2,850.00
Seamless Gutters
168 lin ft × $9.50 = $1,596
$1,596.00
Customer sees: 6″ K-style seamless gutters with downspouts.
×
%$0
$1,596.00
Custom Garage Door
2 × 9′ × 8′ @ $1,850 = $3,700
$3,700.00
Add a note for this customer
×
%$0
$3,700.00
Services & add-ons
$25,546.00
—
$25,546.00
LaborOnOff

Crew hours × a loaded wage (pay plus tax, comp, and benefits). Post-frame shops that job-cost this way stop bidding a guess per square foot and start bidding the crew they will actually send.

Crew hoursPer square footFlat bid
Crew
4
Wage $/hr
32.5
Burden %
30
Hours / day
8
Sf / crew-day
480
Loaded rate $42.25/hr ($32.50 wage + 30% burden)
Edit ratesHouse wrapSoffitsWalls over 14′WainscotInsulation install
Site extra $
Custom labor
+ Add a labor line
Erect shell
2,400 sf · 176 hrs × $42.25/hr
$7,436.00
%$0
$7,436.00
Walk doors & windows
3 × 1.5 hrs
$190.13
%$0
$190.13
Overhead doors
2 × 4 hrs
$338.00
%$0
$338.00
Lean-to / porch
480 sf · 22.4 hrs
$946.40
%$0
$946.40
Labor
$8,910.53
—
$8,910.53
Subtotal
$84,265.28
+$2,342.00
$86,607.28
Whole job
One markup across materials, services and labor together
$84,265.28
%$8
+$6,741.22
$93,348.50
Customer total
$84,265.28
+$9,083.22
$93,348.50
See exactly what the customer gets, then send it.Proposal PDF
Material sections, each subtotalled from lines priced out of the book. Real screen · sample data.
Without it

The yard raised 2x6 in March, your quotes carried the old number until June, and the difference came out of jobs you had already signed.

Why we built it

An owner who updates the book once a quarter should be quoting today's lumber, not last spring's. Only the rows you edit are kept, so a later recalibration improves every material you never touched while your own numbers stay exactly as you typed them.

02

Change the material, not the ten line types made out of it

A takeoff says girts, cripples and sills. A yard sells 2x6 SPF by the foot. Each line is bound to the material it is actually made of, so one edit moves every 2x6 girt, cripple and sill on every estimate still in draft — a sent one keeps the prices it went out with. A separate price per line type drifts — and the drift shows up as margin you cannot explain.

Estimate total
How this total is built
Materials$49,808.75
Framing$18,420.00
Sheathing$12,905.50
Trim$3,180.00
Doors & Windows$9,640.00
Foundation$4,275.00
Fasteners$1,388.25
Services & add-ons$25,546.00
Concrete Pad2,400 Per Sq Ft × $7.25$17,400.00
Site Prep & Grading$2,850.00
Seamless Gutters168 Per Linear Ft × $9.50$1,596.00
Custom Garage Door2 × $1,850.00$3,700.00
Labor$8,910.53
Erect shell2,400 sf · 176 hrs × $42.25/hr$7,436.00
Walk doors & windows3 × 1.5 hrs$190.13
Overhead doors2 × 4 hrs$338.00
Lean-to / porch480 sf · 22.4 hrs$946.40
Markup+$9,083.22
Markup · Framing · 10%+$1,842.00
Markup · Doors & Windows · $500+$500.00
Markup · Everything · 8%+$6,741.22
Customer total
Materials, labor, services and markup — everything the customer pays.
$93,348.50
Six material categories, each totalled from the lines underneath it. Real screen · sample data.
Without it

You raise lumber on the girt price, forget cripples and sills, and two quotes leave the office with the same stick of 2x6 costing two different amounts.

Why we built it

Nobody remembers to update ten line types when 2x6 goes up. Because lines bind to the material the yard actually sells, the estimate rolls up by material category — one edit shows its whole effect in the subtotals instead of being chased line by line.

03

The book is four columns, and one of them is what you pay

Try it

Settings, Builder prices. One row per material: your cost, your sell price, and the unit both of those numbers are in. Under each name the row says what catalogue product it is bound to — which product a drawn line is made of is set in the model, and the row tells you which one it landed on.

Settings · Builder prices
Material, unit, your cost, your sell — and, under a row made of a catalogue material, which one and what else it prices. Real screen · sample data.
Without it

You type 4.53 against a post meaning the whole twenty-foot column, and every building you quote from then on carries four dollars and change of post.

Why we built it

A wrong unit doesn't throw an error — it just quietly costs you money. The unit is printed on the row rather than assumed, so what you typed can be checked against what you meant before it reaches a quote.

Sound familiar?“lumber went up 20% and my quotes didn't move”
04

Cost and sell sit on the same row, with markup and margin both shown

Try it

On Settings, Material prices every product the yard sells you has Your cost and Sell price side by side, and beside them Markup and Margin — both, always. $8 cost at $10 sell is 25% markup and 20% margin: the same price, two numbers, and showing both means nobody types one into the other. Type a new cost or sell and the two percentages move as you type; Save says how many estimate prices follow. A material with no price is counted as unpriced, not zero. The markup you put on a whole job is a different thing again, and lives in markup rules.

Price book margins
CSV or Excel from your yard — you check every change before it is saved. These prices reach your estimates; Builder prices holds the rest.
8 of 252 materials · 1 unpriced
MaterialYour costSell priceMarkupMarginHistory
2x6 SPF 12′
priced per Each
29.7%22.9%
2x4 SPF 10′
priced per Each
30.1%23.1%
3-ply 2x6 laminated column 18′
priced per Each
30.0%23.1%
29ga AG panel 36″
priced per LF
37.5%27.3%
J-channel
priced per Each
30.0%23.1%
1/2″ × 6″ hex bolt
priced per Each · sold in cartons of 50
33.0%24.8%
Truss C40P4 (40′ span, 4/12)
priced per Each
30.0%23.1%
Galvanized ridge vent 10′
priced per Each
——
Settings, Material prices: your cost and sell price, with markup and margin beside them, family buttons with counts, and each material's History. Real screen · sample data.
Without it

You mean twenty percent margin, type twenty percent as markup, and every line priced from that row carries less than you thought.

Why we built it

One percentage on its own is the easiest way to lose money on a price list. A builder who wants twenty percent and types it as markup has priced below the margin he meant — with both columns on the row, the mix-up is visible before it is saved.

05

252 materials, and the search takes the SKU off the yard's quote

Try it

Every product a building can be made of, in the yard's own categories — Framing 27, Trim 24, Trusses 138. Search matches the name and the SKU, because the price list that arrives from the yard has AG29 written on it and not much else.

Material catalog search
Material prices

What each material costs you and what it sells for. Every estimate the 3D builder produces is priced from this list, so a number here is the number on the customer’s quote. Defaults are drawn from real post-frame jobs — change only what differs at your yard.

Material
Unit
Your cost
Sell price
2x4 SPF
Framing · 24{LF} · from 3,208 priced lines
per ft
0.578
0.752
2x6 SPF
Framing · 26{LF} · from 3,045 priced lines
per ft
0.882
1.146
SYP 2x12
Framing · LP212{LF} · from 761 priced lines
per ft
1.745
2.269
3 Ply 2x6 Lam. Post
Framing · LM326{LF} · from 758 priced lines
per ft
4.414
5.738
Treated 2x6
Framing · LT26{LF} · from 527 priced lines
per ft
0.998
1.298
SYP 2x10
Framing · LP210{LF} · from 447 priced lines
per ft
1.806
2.347
Treated 2x8
Framing · LT28{LF} · from 397 priced lines
per ft
1.274
1.656
15" Precast Concrete Cookie
Framing · CK15 · from 137 priced lines
each
11.50
14.95
29Ga AG Panel
Sheathing · AG29 · from 2,415 priced lines
each
32.19
41.85
26Ga AG Panel
Sheathing · AG26 · from 388 priced lines
each
41.02
53.33
Board Batton 26 Ga
Sheathing · BB26 · from 96 priced lines
each
47.60
61.88
Ridge Cap 14" Wide
Trim · RC14{LF} · from 612 priced lines
per ft
1.884
2.449
Rake / Corner
Trim · RKC{LF} · from 588 priced lines
per ft
2.321
3.017
Eave / Roof Edge Trim
Trim · ERE{LF} · from 470 priced lines
per ft
0.928
1.206
Panel Screw 1½" HH
Accessories · SCR15 · from 1,904 priced lines
each
0.041
0.078
3068 Steel Walk Door
Doors & Windows · WD3068 · from 214 priced lines
each
980.00
1058.40
C40P4 Common Truss
Trusses · TR40C4 · from 61 priced lines
each
268.00
348.40
80 # Bag Of Sackrete
Foundation · CONBG · from 63 priced lines
each
8.00
10.40
Delivery
Freight · from 291 priced lines
each
425.00
552.50
Erection Labor
Labor · from 188 priced lines
each
6.50
8.45
Save prices252 materials

A blank field uses the default shown in grey. Prices are per linear foot for lumber and trim, and per unit for panels, doors, trusses and hardware — $0.882 a foot of 2x6 is not the same number as $41.85 a panel, and the estimate multiplies each by the right quantity.

Search and category chips with counts; each row shows its SKU and how many priced lines it came from. Real screen · sample data.
Without it

The yard emails a revised list with SKUs down the left, and you spend ten minutes deciding which of two hundred rows AG29 actually is.

Why we built it

The yard's price list arrives with SKUs, so the search speaks SKU. Nobody scrolls 138 trusses, and each row says how many real priced lines its default came from — a 2x6 built from 3,045 lines is a firmer number than a truss built from 61, and the row says so.

Sound familiar?“no idea what my margin is on steel”
06

A wrong unit fails a check instead of shipping a wrong quote

When the book prices per foot and the takeoff counts objects, forgetting the conversion does not error — it bills a 27-foot roof panel as one foot, and a 4,000 square foot roof comes to $225. The conversion is done for you, and the check runs across every option a building can carry rather than a few sample designs. Insulation, a cupola and a ridge vent all priced at zero once, because no sample had them switched on.

Materials
Framing
6x6 solid-sawn post (UC4B treated) (18′ stock)
378 LF consumed · 21×18′ · 0 LF waste · incl. 4′ embedment — UC4B ground-contact treatment is a hard spec for embedded posts
21 pcs
6x6 jamb post (UC4B treated) (18′ stock)
36 LF consumed · 2×18′ · 0 LF waste · 2 laminated 2-ply (span > 9′) — full height, header load path
2 pcs
Nailed jamb (2-ply 2x6 / 4x6) (14′ stock)
134 LF consumed · 10×14′ · 6 LF waste · 8 doubled 2x6 + 2 4x6 — bearing on the splash plank, tied to the header. No embedment, no ground-contact treatment.
10 pcs
2x6 cripple (above headers) (8′ stock)
235.5 LF consumed · 30×8′ · 4.5 LF waste
30 pcs
2x8 door jamb + head jamb (overhead doors) (14′ stock)
39.6 LF consumed · 3×14′ · 2.4 LF waste
3 pcs
2x10 spring anchor pad (SYP #2 or better — NOT SPF) (8′ stock)
2 LF consumed · 1×8′ · 6 LF waste · lagged, never nailed — 4 × 3/8″ × 4″ lags, one near each corner
1 pcs
2x6 wall girt (cut-to-stock)
1240.8 LF consumed · 38×10′ + 116×8′ · 67.2 LF waste
154 pcs
2x8 skirt board (treated) (cut-to-stock)
180.9 LF consumed · 6×10′ + 17×8′ · 15.1 LF waste
23 pcs
2x6 eave strut (cut-to-stock)
200.5 LF consumed · 8×10′ + 16×8′ · 7.5 LF waste
24 pcs
2x4 roof purlin (cut-to-stock)
1447.7 LF consumed · 72×20′ + 24×8′ · 184.3 LF waste
96 pcs
1-ply 2x8 opening header (8′ stock)
22.2 LF consumed · 5×8′ · 17.8 LF waste
5 pcs
2-ply 2x12 opening header (16′ stock)
31.7 LF consumed · 2×16′ · 0.3 LF waste
2 pcs
2x6 window sill (8′ stock)
20.4 LF consumed · 4×8′ · 11.6 LF waste
4 pcs
Truss C40P4 (40′ span, 4/12)
spec-string per SmartBuild convention (C{span}P{pitch}); 4′ o.c. — 2 gable + 14 common · double-Fink (WW) webs, plated both faces (ANSI/TPI 1)
16 pcs
2-ply SYP 2x12 truss carrier (cut-to-stock)
240 LF consumed · 12×16′ + 4×12′ · 0 LF waste · 2-ply, both sidewalls — trusses at 4′ o.c. land between posts at 8′, so they bear on a carrier rather than on the post tops
16 pcs
2x4 bottom-chord bracing (16′ stock)
336 LF consumed · 21×16′ · 0 LF waste · {floor sq ft} × 0.00875 over 2400 sq ft — shop rule, not an engineered layout
21 pcs
2x4 miscellaneous bracing (20′ stock)
378 LF consumed · 21×20′ · 42 LF waste · {floor sq ft} × 0.00875 over 2400 sq ft — shop rule
21 pcs
2x4 X-bracing (20′ stock)
162 LF consumed · 9×20′ · 18 LF waste · {floor sq ft} × 0.0035 — only fires at or above 578 sq ft, as the shop rule does
9 pcs
2x6 corner bracing (20′ stock)
400 LF consumed · 20×20′ · 0 LF waste · flat 20 pieces — the shop's standing corner-bracing allowance
20 pcs
2x6 eave sub-fascia (cut-to-stock)
123.9 LF consumed · 6×16′ + 2×14′ · 0.1 LF waste · carries the eave fascia and the soffit's outer edge
8 pcs
2x6 rake sub-fascia (cut-to-stock)
92.2 LF consumed · 4×16′ + 4×8′ · 3.8 LF waste · carries the rake fascia at the gable overhang
8 pcs
Sheathing
Ribbed steel (exposed fastener) roof panel, 22.1′ length
2 rectangle face(s) @ 36″ coverage · 2745 sq ft (MBCI MasterRib (36″ coverage, ¾″ ribs @ 9″))
42 panels
Roof underlayment / condensation barrier
2745 sq ft + 10% lap
3,020 sqft
Wall steel panel, 11′ length
1851 sq ft net of openings @ 3′ coverage
61 panels
Wall steel panel, 7.4′ length
119 sq ft net of openings @ 3′ coverage
8 panels
Wall steel panel, 7.2′ length
22 sq ft net of openings @ 3′ coverage
1 panels
Wall steel panel, 1.9′ length
27 sq ft net of openings @ 3′ coverage
5 panels
Wall steel panel, 0.6′ length
9 sq ft net of openings @ 3′ coverage
8 panels
Wainscot panel, 3′ height
553 sq ft
69 panels
Wainscot panel, 0.1′ height
1 sq ft
6 panels
Gable-end wall steel (cut to rake)
267 sq ft of gable endwall infill — not a rectangle
27 panels
House wrap — 10′ roll (wall)
2295 sq ft of wall ÷ 211 sq ft per roll (empirical coverage)
11 ea
House wrap — 10′ roll (roof)
2745 sq ft of roof ÷ 211 sq ft per roll (empirical coverage)
14 ea
Trim
Ridge cap
62.1 LF
Rake trim
92.2 LF
Eave trim
123.9 LF
Corner trim
55.9 LF
Door/window trim
127.4 LF
Eave fascia — 5½″ steel fascia/post trim
covers the sub-fascia; separate from the eave drip edge, which both exist on a finished eave
123.9 LF
Rake fascia — 5½″ steel fascia/post trim
the gable-end equivalent of the eave fascia
92.2 LF
Vented aluminium soffit (12″)
123.8 LF of eave soffit as drawn — rake soffit is not modelled yet and is NOT included
123.8 LF
Inside/outside closure strip
matches every eave run of exposed-fastener steel
123.9 LF
Doors & Windows
Garage Door 14′ × 12′
1 ea
Walk-in Door 3′ × 6′-8″
1 ea
Window 4′ × 3′
4 ea
Fasteners
Truss plate (gang-nail, 20 ga galvanized)
pressed into both faces at each truss joint — the connection, not overlapping wood
384 ea
Truss/rafter-to-post uplift tie (H2.5A-class, 18 ga galvanized)
one per truss bearing per post line — uplift path from roof to column
32 ea
1½″ HH panel screw (color-matched)
{sf}×1.8 over 5594 sq ft — platform default; calibrate per builder
10,069 ea
Foundation
Concrete, 18″ dia × 4′ post holes
23 holes — uplift anchorage required on every embedded post
6 yd3
Footing pads, 18″ dia × 6″ concrete
bear below the frost line on undisturbed soil — 2000 psf presumptive bearing; precast "cookie" or poured in the hole
23 ea
Uplift restraint — full-depth concrete collar (as drawn)
the poured backfill above is the restraint; treated blocks bolted to the embedded face are the soil-backfill alternative
23 ea

Design aid, not engineering — this is a purchase-vs-consumed takeoff from the same members the model draws. Stock lengths are yard lengths (no 60′ 2x4s). Factory trusses stay factory trusses. Not a substitute for a licensed design professional, a stamped truss package, or your local building department.

The takeoff rows — a roof panel counted in panels but carrying its 22.1′ length, girts counted in pieces with the linear feet they consume. Real screen · sample data.
Without it

A per-foot price meets a count of objects and a 4,000 square foot roof quotes at $225 — a number that reads as normal right up until the panels are ordered.

Why we built it

A $225 roof reads normal right up until the panels are ordered. Each takeoff row carries both the count and the length it consumes, so the conversion always has the number it needs — and the check sweeps every option a building can carry, not a handful of samples.

07

A low total names its own cause

The takeoff reports how many lines priced, how many did not, and exactly which ones. A material with no price contributes nothing and says nothing — which is how 14 of 34 line types on a 30×40, the wall and roof steel among them, once priced at zero with no warning at all. The same rule covers a slow connection: until the price book and the building's materials have both arrived, the Summary's customer total reads —, and Send and Proposal PDF wait, rather than showing a figure that only holds labour and services.

Materials — summary
Building cost at current prices
$68,412

From Settings → Builder prices. Every listed item has a price.

Done — back to Estimates
Saves the working draft. Create a version on the estimate when this round of revisions is ready.
Footprint
2,400 sq ft
Roof area
2,745 sq ft
Posts
23
Trusses
16
Roof panels
42
Panel screws
10,069
Catalog services
3
“Building cost at current prices” — it names the book the prices came from and states whether every listed item has one. Real screen · sample data.
Without it

The total comes in low and nothing about it tells you whether the building is genuinely cheap or half the steel simply never got priced.

Why we built it

A builder can't fix a price he doesn't know is missing. The cost tile names the book the numbers came from and says outright whether every item has a price, so silence stops being one of the answers a total can give.

08

An unpriced material takes you to the row that needs one

Try it

The Amount column reads No price — not a dash, not a blank, not zero. The banner above it counts them, and opening it lands you in the price book with those rows highlighted and scrolled to. A material the book has never held is added as a row at zero, so there is somewhere to type.

Takeoff line override
1 material has no price
Click to open Settings → Builder prices and add it.
Send Order2 lines edited
UseMemberQtyLengthAmountChange
Post6x6 / 3-ply laminated post2020′$2,356.00—
JambPostJamb post818′$812.16+2
Girt2x6 wall girt9216′$1,383.68—
Purlin2x4 roof purlin8816′$1,027.84—
Header2x10 opening header412′$91.20-1
ExteriorRoofRoof steel panel4222′$2,207.94—
CupolaCupola kit1—No price—
The banner above the material list, and the Amount column reading No price. Real screen · sample data.
Without it

You are told four materials have no price, spend two minutes hunting a hundred-row table, and decide the total is probably close enough.

Why we built it

A warning that makes you go hunting is a warning that gets ignored. The list is carried into Settings with those rows highlighted, so the repair is three keystrokes — and a material the book never held gets a row at zero, so there is somewhere to type.

Sound familiar?“the software's prices are nothing like my yard's”
09

The morning the yard sends a new price list

The order sheet is already written in the yard's words — 2x6 SPF · 16′, 92 pcs — the same name the price row carries, so the sheet the yard quoted from and the book read side by side. Type over what moved, save, leave the rest — or, on Material prices, upload the yard's sheet itself.

Supplier order sheet
Send Order
34 line items · 1,247 pieces · Ostrander — 40×60 Shouse
Close
Supplier
Ridgeview Building Supply
Send to
orders@ridgeview.demo.invalid
Deliver to
4180 Larkspur Road, Millbrook
Needed by
week of 8 Sep
Note to the supplier
Anything they need to know — access, staging, substitutions.
What the supplier receives
2x4 SPF · 16′88pcs
2x6 SPF · 8′4pcs
2x6 SPF · 10′9pcs
2x6 SPF · 16′92pcs
2x6 SPF · 20′6pcs
3 Ply 2x6 Lam. Post · 18′6pcs
3 Ply 2x6 Lam. Post · 20′20pcs
SYP 2x10 · 12′3pcs
Treated 2x8 · 20′10pcs
29Ga AG Panel · 11′67panels
29Ga AG Panel · 22′ 1″42panels
Ridge Cap 14″ Wide · cut to length60LF
Rake / Corner · cut to length144LF
Post-hole concrete5.8yd3
Send orderDownload CSVSent under your branding, and recorded on the supplier’s card.
One line per material and stock length — girts, cripples and sills merged onto the same bunk. Real screen · sample data.
Without it

A four-page price list lands from the yard and nothing tells you which of its lines your software even uses.

Why we built it

The office should be able to update prices with the yard's sheet in one hand. The order sheet and the book use the same names, so you type over what moved and leave the rest — and only the rows you edit are stored.

10

Or upload the yard's sheet and check every change

On Material prices — every product's cost and sell from the yard — Upload price sheet takes the supplier's CSV or Excel file as it came, matches each row to a material by SKU or name, and shows every change old beside new before anything is saved: 2x6 SPF 12′, $8.40 → $9.48, +12.9%. Zero prices, "Call" and duplicate SKUs are left out with the reason, a unit that disagrees is flagged, and nothing moves until you publish. Last comes On your estimates: each estimate price the sheet moves, old and new, and how many open estimates use it — open estimates reprice when you publish, sent ones keep their prices. The whole walk-through is on supplier price sheet upload.

Upload a price sheet — Step 3 of 3 · what this will change
Step 3 of 3 · what this will change

Upload a price sheet

6 prices matched, 3 could not be matched.

5
Price changes
1
Same price
3
Not matched
3
Left out
Effective date
Oct 1, 2026
Your sell prices
Keep my sell prices as they are
2x6 SPF 12′
Line 2 · lumber.dim.spf.2x6.12 · 2x6 SPF 12'
Cost $8.40 → $9.48
+12.9%
Sell $10.92
29ga AG panel 36″
Line 4 · panel.steel.ag.29ga.w36 · 29ga AG panel 36" (per foot)
Cost $3.89 → $4.11
+5.7%
Sell $5.06
J-channel
Line 5 · trim.j-channel · J-channel
Cost $17.90 → $18.75
+4.7%
Sell $23.27
1-1/2″ PM metal screws (250)
Line 6 · fastener.1-5-pm-metal-screws · 1.5" PM metal screws (250)
Sheet says BAG; your book prices this per Each.
Cost $39.50 → $42.00
+6.3%
Sell $51.35
Galvanized ridge vent 10'
Line 13 · Galvanized ridge vent 10' · matched by name
Cost $19.95 → $21.50
+7.8%
Sell $25.94
On your estimates
4 estimate prices change. 14 open estimates reprice; 6 sent estimates keep their prices.
2x6 SPF · 12′ · per piece
$8.40
$9.48
+12.9%
Used in 11 open estimates
29ga AG panel 36″ · per ft
$3.89
$4.11
+5.7%
Used in 14 open estimates
J-channel · per piece
$17.90
$18.75
+4.7%
Used in 9 open estimates
1-1/2″ PM metal screws (250) · per bag
$39.50
$42.00
+6.3%
Used in 14 open estimates
BackPublish 5 changes
The October sheet's preview: the changes with old and new cost and the %, then the estimate prices it moves and how many open estimates use each. Real screen · sample data.
Without it

The yard's new sheet has three hundred lines, and the only way into the list is typing them one at a time.

Why we built it

An office manager should update a month of prices in minutes, not an evening. Showing the change before saving it is what makes the upload safe to hand to whoever is in the office — the one price that jumped 40% gets caught on the screen, not on a quote.

Sound familiar?“have to update prices in three places”
11

Every price that moved, on record — and any change can be undone

Try it

The Price change log holds every price a supplier sheet, an Adjust prices… change or a hand edit moved — in the book and, tagged On estimates, on your estimates: old and new cost and sell, who did it, when, the supplier and file, and the date the price took effect. Pick one and Undo this change puts back each price nobody has changed since; a price someone moved afterwards keeps that later change, and sent estimates keep their prices. Each material's own History carries the same changes, so a price cannot move without leaving a line.

Price change log
Price book

Price change log

Every price a supplier sheet, an Adjust prices change or a hand edit moved — in this price book and on your estimates — with the price before it, who did it and when. Pick one to undo it.

2026-10-01 · Sheet · Menards · Menards — Oct price sheet.csv
Menards · Menards — Oct price sheet.csv · published Oct 1, 2026, 9:14 AM by Dana Whitfield · effective 2026-10-01 · 6 changed, 1 new, 5 left out · sell prices kept
1-1/2″ PM metal screws (250)On estimates
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards · Menards — Oct price sheet.csv
Cost $39.50 → $42.00+6.3%
Sell —
from 2026-10-01
J-channelOn estimates
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards · Menards — Oct price sheet.csv
Cost $17.90 → $18.75+4.7%
Sell —
from 2026-10-01
29ga AG panel 36″On estimates
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards · Menards — Oct price sheet.csv
Cost $3.89 → $4.11+5.7%
Sell —
from 2026-10-01
2x6 SPF · 12′On estimates
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards · Menards — Oct price sheet.csv
Cost $8.40 → $9.48+12.9%
Sell —
from 2026-10-01
Butcher block countertop 8' · new product
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards MEN-990001 · Menards — Oct price sheet.csv
Cost — → $1,289.00
Sell —
from 2026-10-01
Galvanized ridge vent 10'
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards · Menards — Oct price sheet.csv
Cost $19.95 → $21.50+7.8%
Sell $25.94
from 2026-10-01
Joist hanger LUS26
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards MEN-778812 · Menards — Oct price sheet.csv
Cost $2.79 → $2.89+3.6%
Sell $3.63
from 2026-10-01
1-1/2″ PM metal screws (250)
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards fastener.1-5-pm-metal-screws · Menards — Oct price sheet.csv
Cost $39.50 → $42.00+6.3%
Sell $51.35
from 2026-10-01
J-channel
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards trim.j-channel · Menards — Oct price sheet.csv
Cost $17.90 → $18.75+4.7%
Sell $23.27
from 2026-10-01
29ga AG panel 36″
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards panel.steel.ag.29ga.w36 · Menards — Oct price sheet.csv
Cost $3.89 → $4.11+5.7%
Sell $5.06
from 2026-10-01
2x6 SPF 12′
Oct 1, 2026, 9:14 AM · Dana Whitfield · Menards lumber.dim.spf.2x6.12 · Menards — Oct price sheet.csv
Cost $8.40 → $9.48+12.9%
Sell $10.92
from 2026-10-01
The October upload in the log: the book's changes and the estimate prices it moved, with Undo this change. Real screen · sample data.
Without it

A price looks wrong, and nobody can say whether it came from the yard, a typo or last month's sheet.

Why we built it

A book with a history is a book people are not afraid to edit. When a number looks wrong the owner sees which sheet or adjustment set it and who did it — and a wrong sheet is one undo, not an afternoon of retyping.

12

One edit moves every quote still open, and stops at the ones already cut

Try it

Put a price up today and every building still on the drawing board reprices. The quote you sent last week does not move — an estimate keeps the numbers it was cut with, which is the whole reason for cutting one. Add-ons off your service catalog work the other way round again: they hold the rate they were given the day they went on the quote.

Estimates · Versions — what a version holds
Version 2, opened: the building and the money exactly as it was priced that day. Real screen · sample data.
Without it

You raise steel on Tuesday, and a customer who has been sitting on a signed number since March opens their link to a different total.

Why we built it

A customer holding a signed number must never open their link to a different one. Materials read live and services freeze because they answer different questions — a stick of 2x6 is a commodity you want current, a concrete pour is a number you already told somebody — and a saved version keeps the prices it was saved with.

13

The same building must not wear two prices

The estimate list totals whole material lines. The workspace explodes each line into its stock lengths and prices the rows. Two code paths, and they once differed by $8,299 on a 50×80 — a per-foot post billed by piece count, so a 20-foot column was charged as one foot. A standing check prices every preset at three sizes down both paths and fails if they part by more than a nickel. And inside the workspace the material lines are read from the very building on screen: after an edit in the 3D builder, the header, the summary, a saved version, the material order and Send all price the same building — never one moment's building with another moment's materials.

Lead card
Emma Carter$385,000
Barndo$385kFacebook ad
1/6
Confirm
CallTextEmail
Sep 15Daniel Hayes1d 3h 22m
The card's figure — the same total the list and the workspace produce, or the check fails. Real screen · sample data.
Without it

The pipeline card says $71,400, the estimate workspace says $79,699, and the customer is on the phone asking which one is real.

Why we built it

One building, one price — anything else is a phone call you lose. The two surfaces stay separate on purpose, so the guarantee is that the stock-row arithmetic reproduces the line's purchased footage exactly, which gives you one number wherever it appears.

Sound familiar?“my yard sends a new price list every month”
14

Who is allowed to see what you pay

Cost sits on the same row as sell, so the tab holding it opens only for a role carrying Manage Users, and the server behind it refuses any account that was never granted the builder in the first place. Hiding a tab is a courtesy; the refusal is the control. What each of the five roles may do is set in roles and permissions.

Roles & Access — Permission presets
Permission presetsLead visibility

Permission Presets

Customize what each built-in role can do, or create your own named presets for specialty roles. What you save here is what the app enforces — every screen and every check reads it. Give a custom preset to someone from Team Members → their Permissions.

Create custom preset
Built-in roles
Admin
Based on Admin·42/42 permissions
Sales Manager
Based on Sales Manager·25/42 permissions
Sales Rep
Based on Sales Rep·14/42 permissions
Project Manager
Based on Project Manager·33/42 permissions
Crew Leader
Based on Crew Leader·15/42 permissions
Enable allDisable all15 of 42 enabled
Navigation
Home (Dashboard, My tasks and Assigned tabs — on for every role)View DashboardView AnalyticsView LeaderboardView Marketing (rep pages & QR)View Sales PipelineView Project PipelineView EstimatesView Project ManagementView ContactsClient DirectoryView TeamMy Work (field log)
Actions
Edit ProjectsEdit PipelineEdit EstimatesSet their own prices off catalog and send without waiting for an approvalApprove a price a rep set off catalog, letting that estimate be sentSee and set the markup on individual material linesOverride a 3D builder finding with a logged reasonTake Photos (camera)Mark Stages (tick checkpoints done)Submit Daily LogsApprove Labor (inbox)Send Messages
Customer Documents
View ContractsView Change OrdersView Invoices
Stage Controls
Change Stage StatusEdit Start/Completed DatesEdit Stage DetailsAdd Tasks & NotesUpload Photos (from the device)Report Issues & Delays
Admin
Delete ItemsManage UsersInvite and manage sales reps — their details and accounts, nobody else'sManage Crew PayView Commissions (admin only — what each rep is paid)Manage Building PlansInvite MembersView All Crews
Duplicate as customSave changes
Worker
Based on Worker·4/42 permissions
Custom presets
Lead Estimator
Based on Sales Rep·18/42 permissions·Custom·Given to 2 people
Permission presets — Manage Users sits in the Admin group. Real screen · sample data.
Without it

Sell prices are on the quote anyway; the cost column is the one that turns into a conversation the day a crew leader gets a look at what the posts actually cost you.

Why we built it

What the posts really cost is the owner's business, not the crew leader's. Only a role with Manage Users opens the tab, and every save writes the whole book before and after with who saved it — because a price book with no history is a book people are frightened to edit.

15

Site work, utilities and travel have base prices of their own

Beside the material book, Settings, Estimating, Site, utilities & travel holds a base price for each kind of site line — a pad by the cubic yard, a trench by the foot, a septic, a well by the foot, the plumbing and electrical rough-ins — each showing the published range its starter number comes from — or, where no number is published (builder's risk, an equipment pad, a concrete driveway), saying so, and the line starts as a sub's quote until you set your own. A new line copies the base price onto itself, so a later change never reprices an estimate already out.

Site, utilities & travel — base prices
Hide base prices
Utilities
Rough-ins
Utilities and rough-ins: base prices with their published ranges. Real screen · sample data.
Without it

The material book is yours, but the septic and the trench still come from whoever priced the last job.

Why we built it

The ground work is priced from your numbers too, set once, with the source of every starter figure where you can judge it.

How it works
  1. 1Open Settings, Builder prices, and edit the cost and the sell price on any material.
  2. 2Only your changes are stored — the rest keep improving as the book is recalibrated.
  3. 3Takeoff lines find their material in the book; a material with no price stays unpriced rather than quietly costing nothing.
  4. 4Prices flow into the customer total, the estimate list, the pipeline card and the customer's page, all from one place — and the workspace, its summary, a saved version and Send all price the same building.
  5. 5Change one bound material — 2x6 SPF — and every 2x6 girt, cripple and sill on every draft estimate moves with it; a sent estimate keeps the prices it went out with until you press Use today's prices
  6. 6On Settings, Material prices, Upload price sheet brings in a supplier's CSV or Excel sheet: check every change — and which estimate prices it moves — then publish, and the Price change log keeps each one.
  7. 7Adjust prices… moves a group by a percent or by dollars — lumber up 5% — showing every price it changes first; any sheet, adjustment or hand edit can be undone from the Price change log.
  8. 8While the book and the building's materials are still loading, the Summary's customer total shows a dash and Proposal PDF waits — it never flashes a labour-only figure.
Why we built it

A price book that ships with invented numbers is worse than no price book, because a builder trusts it once and then eats the difference. So the starting numbers were calibrated against 258 real estimates from working builders — the blended middle of every priced line, converted into the unit the takeoff actually counts. And your account keeps only the rows you edited, because storing the untouched ones would freeze today's defaults into your account and a better audit could never reach you.

The problem
  • Estimating software shipping prices with no relationship to a real yard
  • Updating one material meaning updating every quote by hand
What you get
Change one rate and every open estimate reprices
Cost and sell side by side, with markup and margin both shown so one is never typed into the other
Your edits survive future improvements to the shipped defaults
The yard's prices, the takeoff and the customer's quote in one system — no spreadsheet in between
A supplier's sheet uploaded and checked line by line instead of retyped
A bad sheet or a bulk change undone from the log, without retyping a price
What's inside
Unit-mismatch protection on every priced line

One calculator turns what the takeoff counts into what your book charges for. Lumber comes out as sticks but is priced by the foot, so the footage actually purchased is used — cutting waste included. Panels and sheets fall back to count times length. A check then runs over every option a building can carry, not just a few sample designs.

Price the material, not the ten line types made out of it

The takeoff says Girt, 64 pcs. A yard does not sell girts — it sells 2x6 SPF by the foot. Lines made of a real material are priced from that material and from your own override of it. The things that are not — a truss built to span and pitch, a door that is a product — keep their own row rather than being forced onto a stick of lumber.

Naming what went unpriced

Every total comes back with a priced count, an unpriced count and the names of the ones that failed. The materials tab shows the count and jumps you straight to the offending rows in your price book.

Only what you changed is stored

Change four prices out of 252 and four numbers are stored. The rest stay on the shipped defaults, which means they get better when the defaults get better. Clear both fields on a row and your edit is gone — Reset genuinely resets.

Materials with no price, counted and named

A banner at the top of the Materials tab: 3 materials have no price. It names them. Click it and you land on the price list. The row itself reads No price where a figure would be, instead of a zero pretending to be one.

PRICE BOOK

See your material price book
on one of your own jobs.

Thirty minutes with Keith — your building, your numbers. Bring the job where “lumber went up 20% and my quotes didn't move” — we will show you exactly where that stops.

leads2build.com
A completed post-frame building
Add a service
Add a service
Search services…
Concrete
Concrete Pad4″ pad, fiber mesh, saw-cut joints$7.25Per Sq Ft
Site Prep & GradingStrip, level and compact the pad area$2,850.00Flat Cost
Apron / Approach$9.80Per Sq Ft
Exterior
Seamless Gutters6″ K-style with downspouts$9.50Per Linear Ft
Versetta Stone Wainscot$28.00Per Sq Ft
Cupola — 30″ with weathervane$1,150.00Per Each
Openings
Custom Garage DoorSized per opening — quote it on the linequotedCustom Quoted
Walk Door — 36″ insulated steel$685.00Per Each
Permits & Fees
Building PermitJurisdiction fee — confirm before quotingquotedCustom Quoted