MASONRY: PRODUCTION RATE ROULETTE
A crew's daily lay rate ranges from 200 bricks on ornate work to 1,000 on simple walls, with experienced masons at 400 to 600 on standard work. Bids priced on the best-day rate and built on the average-day rate lose the spread. Labor is the trade's dominant cost, so production variance is margin variance.
This page covers one problem. The full picture for this trade, including the other places margin leaks, is on the masonry operating system page.
WHERE THE MONEY GOES.
Covered in full in the quick answer above. The sourced numbers and what controls it are below.
The skilled-trades shortage (industry estimates near 550,000 open positions) hits masonry hard: an aging bricklayer base, thin apprenticeship pipelines, and wage pressure that moves faster than bid escalation. Scarce labor also caps revenue: crews, not sales, become the constraint.
THE COST, SOURCED.
"Depending on the complexity of the project a bricklayer or mason can lay from 200 to 1,000 bricks a day." (Masonry Chicago pricing guide) "An experienced mason can lay 400 to 600 bricks per day." (Digital Estimating, 2026)
IN THEIR OWN WORDS.
Labor shortages are no longer a theory. They're a direct tax on your business margins.
Design Estimation, 2026, written by a 20-year masonry crew manager
Brick is a luxury these days and labor ain't cheap if you have a good bricklayer with a crew. Why you think hardly anyone wrapping the entire house with brick like they did in the old days.
ContractorTalk forum
THE NUMBER TO MEASURE IT AGAINST.
Masonry contractors run about % net profit at $1M to $5M, rising to roughly 9% at $5M to $10M. The CFOS target at $1M to $5M is10%, set at 10 percent before taxes or 3.5 points better than your trade's average at your revenue, whichever is higher. A problem like this one lives in the distance between those two figures rather than in a loss on any single job.
Gross margin over the same bands runs % to 22%, against a CFOS target of 10%.
THE SYSTEM THAT FIXES THIS.
Cost codes built against the estimate, so a job can be read while it runs.
