← THE BLOG

The Hours Line Decides Whether the Pole Barn Made Money

OCTOBER 19, 2026 · KEITH LEMAY
Miniature finished pole barn with lean-to, crew loading trucks at dusk, around a job cost card

Construction job costing answers the question a monthly profit and loss never will: which of the four buildings you closed in June carried the other three. Ask a builder how the last job went and you get a feeling — "that one was fine", "the one on the county road was a bear" — directionally right and specifically wrong, and that gap is where the year's profit goes. The method is four buckets, labour captured with one tap, a per-job P&L read in a fixed order, and the three leaks it surfaces. The hours line decides it.

Why can't most builders answer the question?

The books are set up for the tax return, not the job. Costs arrive out of order — the panel truck comes Tuesday, the invoice three weeks later, landing in the month it was paid rather than on the job it went to — and payroll arrives as one lump: you know what went to field wages last month, not that 440 of those hours went to a 40x60 you bid at 400. And biggest revenue and best margin are regularly different buildings.

Which four buckets, and why only four?

Forty cost codes means the report is fiction with decimal places. Use materials (anything delivered to that site or pulled from your yard for it); labour (field hours at a burdened rate, not a wage); subs (anyone with their own invoice); and changes (anything outside the signed scope, carrying its own cost and its own price). The buckets have to match how you bid: bid a shop with one labour number, cost it across twenty-two codes, and the two can never be compared.

A 40x60x14 with a 12x60 lean-to contracted at $96,000: materials $48,000, labour 440 hours at a burdened $42 ($18,480), subs $16,000, changes billed $3,200 at a cost of $2,100 — gross margin $14,620, or 14.7%.

Where does the materials bucket leak?

Everyone assumes materials are solved because there is a purchase order, then the report comes back light. It is split deliveries (one order covering two jobs, coded to whichever the office remembered); yard stock (screws, closures, a stick of trim — never coded, invisible forever); and panel and trim waste, where the estimate assumed coverage and the yard billed whole sheets. The pain is spend that finds the job three weeks late and the phase never. Code the invoice to the job the day you approve it, not at month-end, and get the units right upstream: a material takeoff counts posts, trusses, girts, purlins and steel off the building the way a post-frame yard sells them, so overage reads as a variance rather than a mystery, and each order sits under the phase that caused it.

Spent vs budget, by phase
Spent vs budget, by phaseMaterials $18,420 of $24,000 · Labour $5,100 of $12,200
Permitting
Materials$985of1200
$215 left
Labour$0ofBudget
Concrete
Materials$7,240of6800
+$440 over
Labour · 64 hrs$1,920of2400
$480 left
Material Delivery
Materials$8,620of9500
$880 left
Labour$0ofBudget
Post Set
Materials$1,575of4200
$2,625 left
Labour · 118 hrs$3,180of6200
$3,020 left
Siding / Roofing
Materials$0of2300
$2,300 left
Labour$0of3600
$3,600 left
Labour is logged hours at each person's pay rate. Surplus shares are paid at the end of a job and aren't in any phase.
Budget against actual for every phase, each order's supplier, date and open balance underneath — the post package reads against Post Set, not the month. Real screen · sample data.

How do you capture labour without babysitting anyone?

Labour tracking dies when the system asks a foreman standing in mud at 6:40 a.m. to be an administrator; anything needing more than one action per person per day is abandoned inside a month. One tap, one job, at the truck — clock into the building, not a task, because post-frame crews move as a unit. Cost at a burdened rate: a $28/hour framer is not a $28/hour cost once employer taxes, comp, liability, PTO, phone and truck are in it. The pain is the Friday guess, and the double tap on a bad connection that becomes a double shift. With the jobsite punch clock the hours come off two real moments, and clocking in while already on the clock hands back the shift you have.

Hours by person
Labour paid
$102,113
3 jobs not on a pooled model
Cost per crew-day
$1,946
over 52 crew-days
Against the day rates
+$5,893
surplus earned back by finishing early
Hours logged
2,454
8 people, 319 days on site
Hours by person
Crew ACrew BCrew C
Marlin412h
Wes388h
Dwayne361h
Curtis344h
Nelson298h
Reuben271h
Ivan235h
Aaron145h
Marlin Zook
Crew B · 52 days over 6 jobs
Share of crew hours16.8% of 2,454h
Earned$26,000.00
Actual per day$500 vs $500 at Tier 1
Average day7.9h
Hours are arithmetic on shifts that cannot overlap — a double tap hands back the open shift instead of starting a second one. Real screen · sample data.

Get the burdened rate by dividing last year's field payroll cost by hours actually worked, not hours paid. The employer's share of payroll taxes is in the IRS's Employer's Tax Guide, and what else counts as a deductible cost of doing business is in its Tax Guide for Small Business.

Where do subs and changes lose money?

Subs are discipline: a purchase order before the work, an invoice matched against it. The leak is scope drift — the excavator hits wet ground and adds $2,400 in fill, you approve it because the crew is coming Monday, and if nobody writes it down that $2,400 is yours. A verbal change is donated work with extra steps; every one needs a price, a cost and a signature before anyone touches it, and the change order that protects your margin is the mechanics. The pain is a change billed but never costed, so the add never teaches you anything. On a change order every line is material, labour, markup or credit, and a credit is forced negative however it was typed — a customer dropping a door can never be billed as an addition.

Change order ledger
Change Orders(5)$15,030.00+ New Change Order
CO-1Add two 12×12 overhead doorsPaid
$6,480.00· +3d· Crew ack’d
View
CO-2Site condition: additional fill and compactionPaid
$3,460.00· +4d· Crew ack’d
View
CO-3Upgrade to 26ga standing seam roofInvoiced
$9,240.00· Crew ack’d
View
CO-4Delete rear lean-to (owner deferring)Approved
-$4,150.00· -2d· Crew ack’d
View
CO-5Add 4×8 wainscot on the gable endsAwaiting Customer
$1,885.00· +1d
ViewSign with Customer
Material, labour, markup and credit on one document, markup then tax in that order every time — the change carries its own cost and its own price. Real screen · sample data.

How do you read the per-job P&L?

In this order: revenue billed against contract plus approved changes (a mismatch is an unbilled change, not a costing problem); actual against bid by the same four buckets; variance in dollars and percent ($2,000 over on materials is noise, $2,000 on labour may be 12%); hours against bid hours; then margin after overhead burden.

BucketBidActualVariance
Materials$46,000$48,000+$2,000 (4.3%)
Labour$16,800 (400 hrs)$18,480 (440 hrs)+$1,680 (+40 hrs)
Subs$15,000$16,000+$1,000
Changes—$2,100 cost / $3,200 billed+$1,100 margin

The labour line is the story. Forty hours over on a 400-hour bid is 10%. Once, that is weather or a bad soil day. Three jobs running, that is your estimate's labour assumption, and it repeats on every job you sign this year — which is a bidding fix, not a costing one: labour comes off the building you drew, not off a percentage, and the labour calculator keeps a line for each door, tall wall, wainscot and lean-to. The pain is that the table above takes an evening to assemble, and evenings are scarce. When the hour the crew logged is the same column the job's costs read, the budget-and-margin view is already built while the job is open — contract and approved changes against each phase's budget, committed cost, actual cost, projected margin — phase by phase, in the stages a post-frame job actually has, because this is built for post-frame and barndominium companies and no other trade.

Labour & Costs — Project P&L
Project P&L
$20,555.00(24% margin)
Revenue $86,400.00
Actual cost $65,845.00
Labor: $38,220.00 / est $36,000
Expenses: $6,145.00
Materials: $21,480.00 / est $22,500
220
Hours
1,240
Units
$7,410.00
Expenses
$6,145.00
Approved
23 items
Cost by stage · approved actuals
Total $44,365.00
Posts & framing
Crew B · Day rates + shared surplus
96 hrs
$18,940
$17,600 lab · $1,340 exp
Roof steel
Ridge Overhead · Per unit
1,240 sheets
$11,905
$10,540 lab · $1,365 exp
Site prep & layout
Crew C · Hourly (T&M)
62 hrs
$8,930
$7,440 lab · $1,490 exp
Siding & trim
Kauffman Exteriors · Cost-plus (hours + materials)
38 hrs
$4,590
$2,640 lab · $1,950 exp
Concrete flatwork
Valley Flatwork · Lump sum / fixed bid
24 hrs
Lump sum
Costliest stage highlighted. Lump-sum crews are priced per crew, not per stage, so their labor shows in the project total above.
The hour lands as the figure the job's costs already read — labour against what you quoted, while the job is still open rather than at month-end. Real screen · sample data.

Which three leaks do the numbers always expose?

Under-bid labour on everything that is not a rectangle: the 40x60 box goes up fast because the runs are long and uninterrupted, while the lean-to, the wainscot break, the third man-door and the gable-end windows are trim, flashing, cuts and layout. Carry a labour line per non-rectangular feature. Unbilled changes, which never look like a change at the time; they look like being agreeable. And overhead never allocated: a job returning 18% gross looks healthy until you divide annual fixed cost by expected direct-cost volume and find you need 22% to break even. If you pay by the day, day rates with shared surplus settle the labour number when the job is figured, so the hours you cost against are the hours you sold.

What should you do before the next job closes?

  • Four buckets, not forty — the same four you bid in.
  • Burden the wage: field payroll cost over hours actually worked.
  • Code every invoice the day you approve it, to the job and the phase.
  • Read hours against bid hours before margin. That line moves first.

What does this method not solve?

It is post-mortem. It fixes the next bid, not the job going sideways now; forecasting cost-to-complete mid-build needs a percent-complete number you can defend, and on a three-week post-frame job percent complete is mostly a feeling — which is where we started. The scheduling side of a lost afternoon is its own problem, and equipment ownership cost — what the telehandler and the trucks cost per hour of use — is a discipline neither this method nor Leads 2 Build does for you today.

30 minutes with Keith · exclusively post-frame & barndominium

Bring one real job.
We’ll walk it lead to paid.

Keith Lemay, the founder, takes this call himself. You show how a job moves through your business today — the call, the quote, the contract, the build, the money. He shows you the same job in Leads2Build. We work exclusively with post-frame and barndominium builders, so none of it is generic.

  • Pick a time — it goes straight onto Keith’s calendar.
  • The confirmation comes by email, with a link to move it if you need to.
  • Bring a job you’ve quoted lately. That’s the one worth walking through.
Keith LemayFounder, Leads2Build

Keith's next open times

The confirmation comes by email.