How to Price a Deck Building Job: Materials, Labor, Margin
Price a deck by measuring the deck's square footage and the framing underneath it, costing footings, posts, beams, joists, hardware, decking boards, and railing at what they actually cost you, adding labor at a loaded rate times the hours the crew truly works, plus a share of overhead, then a margin on top. The formula is Price = (materials + loaded labor + overhead) ÷ (1 − target margin). The number most deck builders get wrong is the framing and footing labor, because everything below the deck surface takes far longer than the square-foot rate assumes. CRMb prices materials at real average cost and pulls labor from your crew's punch-ins, so the quote you send is built on measured numbers.
A deck reads as a simple rectangle, which is exactly why it gets underpriced. The customer sees finished square feet. You build a foundation, a frame, a stair run, and a railing system, and only the last of those is what anyone looks at. Two builders quote the same 16-by-20 and land thousands apart, and the gap is almost never the price of a board.
Start with the five layers every deck job costs
Whether it is a low ground-level platform or an elevated deck with stairs, the price rests on the same layers:
- Substructure, the footings, concrete, posts, beams, joists, ledger, flashing, and structural hardware.
- Deck surface and railing, the boards, fasteners, fascia, posts, balusters, and rail.
- Labor, the loaded hourly cost of everyone on site for the hours they actually work, including layout, demo, and cleanup.
- Permits, inspection, and disposal, which are real dollars and real calendar days.
- Overhead, the share of trucks, tools, insurance, and office time this job has to carry.
Miss a layer and you are not discounting, you are donating that part of the job. The two that leak most are the substructure, because it is invisible in the finished photo, and labor, because footings and stairs eat days.
Step 1: measure the deck, then measure what holds it up
Start with the finished surface. A 16-by-20 deck is 320 square feet, and that number sets your board and fastener count. But the price lives underneath:
- Height off grade. A deck 3 feet up and a deck 10 feet up are different jobs. Height drives post length, bracing, and whether the crew is working from ladders or scaffold.
- Footing count and depth. Frost depth, soil, and beam spans decide how many holes you dig and how deep. Rock or clay turns a morning into a day.
- Stairs. A stair run is the most labor-dense square footage on the job. Stringers, treads, risers, landings, and rail all take time out of proportion to their area. Price stairs as their own line, never folded into a per-square-foot rate.
- Railing linear feet. Railing is priced by the foot and installed by the post. Count corners, gate openings, and any stair rail separately.
- Demo. Tearing out an old deck fills a trailer faster than the estimate expects.
Quote the field of the deck per square foot if you like, then add footings, stairs, railing, and demo as their own lines. A number that is only area times a rate will be short exactly where the work is.
Step 2: cost materials at real average cost
Framing lumber, composite decking, and hidden fasteners are the bulk of the material spend, and they are where a stale price list quietly eats margin. Lumber moves. Composite lines get repriced. A bundle you costed off last quarter's number is not what you will pay this week.
The fix is to value materials at average cost, the running average of what you actually paid across recent purchases, rather than the sticker price or a number you remember. The joists you bought two deliveries ago and the joists you bought last week both land on the job at their true blended cost.
CRMb tracks inventory at average cost across your warehouse and truck stock, and when material is pulled to a job its real cost lands on that job automatically. Order for waste honestly. Deck boards cut to length leave offcuts, picture framing and diagonal patterns raise waste sharply, and running short mid-install means a second yard run and a stalled crew.
Step 3: build the loaded labor rate, then use real hours
The wage you pay is not what an hour of labor costs you. The loaded rate adds payroll taxes, workers' comp, and any benefits on top of the base wage. A carpenter at a $28 base wage can cost you $36 to $40 an hour once burden is on. Quote at the base wage and you give away the burden on every hour of a multi-day build.
Then the harder half: the hours. Deck labor is back-loaded into the parts nobody photographs. Digging and pouring footings. Setting a ledger and flashing it so it never leaks. Cutting a stair stringer that lands right. Fitting railing posts so they are plumb and solid. The bid assumes a clean site and a square house; the job rarely cooperates.
This is why estimating from memory drifts. The honest way to price the next deck is to know what the last one actually took. When your crew punches in and out on the job with CRMb, those real hours flow into the job's labor cost automatically, so your estimate is anchored to measured time. After a few decks you know your true days for a ground-level build versus an elevated one with two stair runs.
Step 4: layer in permits, inspection, and overhead
Most decks need a permit, and many need an inspection before the frame gets covered. That is a fee, a form, and often a day of waiting that your schedule has to absorb. Put both the fee and the delay in the quote so an inspection hold does not read as your crew being slow.
Overhead is the cost of being in business that no single job pays for on its own: the truck, the saws and augers, insurance, fuel, and the hours spent quoting and scheduling. Fold a share of it into every quote as a percentage of direct cost. Otherwise your "profit" is unassigned overhead, and it disappears at tax time. Demo and dump fees belong here too, priced as their own line so a run of tear-out jobs does not erase the profit on all of them.
Step 5: add margin, then send a quote that closes
Margin is the last layer, and it is not markup. Markup is what you add to cost; margin is the share of the final price that is profit. To hit a target margin, divide total cost by one minus the margin instead of adding a percentage on top:
Price = (materials + loaded labor + overhead) ÷ (1 − target margin)
For a deck that costs you $9,000 all-in at a 30% target margin, the price is $9,000 ÷ 0.70 = $12,857, not $11,700. Add 30% on top instead and you only make a 23% margin. On a job this size that gap is over a thousand dollars.
Then the quote has to close. An itemized quote that separates the substructure, the deck surface, the stairs, the railing, and the demo reads as professional and answers the "why so much?" call before it happens. With CRMb you build the quote from the materials and labor already on the job, send it as a public share link the customer can open and approve from their phone, and turn the approved quote into an invoice without retyping a line.
Watch the real margin after the deck is done
The estimate is a prediction. The only way to price the next deck better is to check whether this one made the money you thought. After the job, compare what you quoted against what the materials really cost and what the crew's punched hours actually came to.
CRMb reports margin on real punched hours and real material cost, so you can see which decks beat the estimate and which bled. If elevated decks with two stair runs keep landing under margin, you learn to price height and stairs higher before you lose money on the next one.
FAQ
How much should I charge per square foot to build a deck?
There is no single rate, because square footage does not describe the job. Height off grade, footing count, stair runs, railing style, and decking material change the cost per foot dramatically. Price the field of the deck per square foot if it helps you quote quickly, then add footings, stairs, railing, and demo as separate lines.
Why do deck jobs lose money on the framing?
Because the substructure is invisible in the finished result and easy to underestimate. Footings in rock or clay, a ledger that has to be flashed correctly, and beam and joist layout on an out-of-square house all take hours the surface-area math never accounted for. Track real hours on a few builds and the pattern shows up quickly.
Should stairs be priced separately from the deck?
Yes. A stair run is the most labor-dense part of a deck, with stringers, treads, risers, landings, and its own railing. Folding stairs into a per-square-foot rate is one of the most reliable ways to underprice a deck. Give each stair run its own line.
What margin should a deck builder target?
Many contractors aim somewhere in the 25% to 40% range depending on competition and complexity. What matters more than the target is measuring real cost, materials at true average cost and labor from actual punched hours, so the margin you set is the margin you keep.
How do I handle a customer who wants composite instead of wood?
Price it as a material change, not a discount conversation. Composite decking and hidden fasteners cost more per square foot and can cut or fasten differently, which changes both material and labor. Quote both options as separate line items so the customer sees the real difference instead of asking you to absorb it.
Getting started with CRMb
CRMb is built for service businesses that want to price from real numbers instead of guesses. Track materials at average cost across your warehouse and truck stock, pull crew labor straight from punch-ins, build and send quotes as public share links your customer can approve, turn them into invoices in a tap, and see margin on every job after it closes. Start a 14-day free trial and price your next deck on measured numbers.