CFOS MODULE 02 · JOB PROFITABILITY

YOU KNOW WHAT IT BILLED. NOT WHAT IT EARNED.

QUICK ANSWER

Almost every subcontractor under $12M can tell you what a job invoiced and can't tell you what it made. The cost codes in the accounting system don't line up with the way the work was estimated, so the two numbers can never be compared. Job Profitability is the CFOS module that rebuilds job costing against your estimating structure and reports cost to complete every month, so a losing job is caught at 40 percent complete instead of at closeout.

The reason job costing fails at this size is structural. An estimator bids by assembly and crew production, a bookkeeper codes by vendor and expense type, and nobody translates between them. What you get is a profit and loss that's accurate for taxes and useless for running work, because it can tell you that you spent $412,000 on labor and not which phase lost the money. When the cost codes match the estimate, every job becomes a test of your bidding, and a bad assumption gets corrected on the next bid rather than repeated for two years.

BY JOSH LUEBKERPublished June 2026Updated August 2026
WHERE THE MONEY GOES

WHAT HAPPENS WITHOUT THIS SYSTEM.

01

Material makes money and labor loses it

A job can carry a 30 percent margin on material and a negative margin on labor and still finish close to the bid, so nothing looks wrong. On the next job the mix changes slightly and the same crew productivity wipes out the whole margin. Owners see one good job and one bad job when both jobs had the same problem.

02

Overhead gets absorbed by accident

If overhead isn't loaded into the estimate at a rate that reflects your current volume, every job either carries too much of it or none of it. A slow month spikes your overhead percentage while a busy month hides it, so a rate set 18 months ago is wrong in both directions. The result is a company with healthy gross profit on every job and no net profit at the end of the year.

03

The loss is discovered at closeout

Without a monthly cost to complete, the first reliable read on a job is the day it finishes, which is the one day nothing can be done. Change orders that were performed but never approved, quantities that ran over, and productivity that never held all become visible at the same time. By then the money is spent and the argument with the general contractor is much harder to win.

WHAT OWNERS BLAME

WHAT OWNERS THINK IS WRONG. WHAT IS CAUSING IT.

What owners think: Owners conclude they bid the job too low, so they add points to the next bid and start losing work they used to win.

What's causing it: The bid is usually closer to right than the execution, and without job costing tied to the estimate there's no way to tell which one failed. A 3 percent labor productivity miss and a 3 percent bidding error look identical on a closeout report, and they call for opposite fixes. Raising the bid to cover an execution problem prices you out of the market while the execution problem continues.

HOW CFOS CONTROLS IT

WHAT THIS MODULE DELIVERS.

A job cost structure built from your estimating assemblies, so budget and actual are the same line items rather than two systems that need translating
A monthly cost to complete on every open job, answering percent complete and dollars remaining per line item
An overhead rate recalculated from a rolling twelve month average, so it goes into the next bid current rather than stale
Labor productivity read against the estimated units, separated from material so one can't hide the other
Variance review on every open job before the month closes, with the specific line items flagged for a change order or a bid correction
WHICH TRADES FEEL THIS MOST

WHERE IT HITS HARDEST.

CONCRETE AND FLATWORK

Labor is the whole margin

On flatwork the material is a commodity and the money is made or lost on crew production per square foot. A crew running 15 percent under the estimated rate turns a bid margin into a loss without anyone noticing until the pour count is done. Coding labor to the phase rather than to a single job number is what makes that visible in week three.

STRUCTURAL STEEL AND FABRICATION

Shop hours and field hours are different businesses

Fabrication and erection have separate production rates, separate risk, and separate margins, and most steel subs report them as one job. When the shop runs efficiently and the field runs over, the job still finishes near the bid and the erection problem gets carried into the next three jobs. Splitting the cost structure at that line is usually the single largest correction we make.

ELECTRICAL AND LOW VOLTAGE

Change order work performed before it's priced

Electrical crews get asked for additional work daily and perform it to hold the schedule, and the cost hits the job whether or not a change order was written. Without cost coding at the phase level, that unbilled work is invisible until closeout, when it looks like poor productivity. Catching it monthly turns an unrecoverable loss into a billable change order.

WHAT CHANGES WHEN THIS IS FIXED

THE OUTCOME IN PLAIN NUMBERS.

The first month of real cost to complete reporting is usually uncomfortable, because it points at the two or three jobs that are underwater while they're still running. That's the point. A job caught at 40 percent complete still has 60 percent of its cost left to manage, and the recovery is a change order conversation and a production correction rather than a write off.

Over a full year the compounding effect is in the estimate. Every closed job feeds a real production rate back into bidding, so the assumptions get tighter and the bids get more competitive rather than more padded. Contractors running the full system hold a gross margin five points above their own trade's average at their revenue and clear at least 10 percent net at the company level, and the reason is that they're bidding from their own history and not from a guess.

COMMON QUESTIONS

FREQUENTLY ASKED.

Because the cost codes in your accounting system don't match the way the job was estimated. An estimator bids by assembly and production rate while a bookkeeper codes by vendor and expense type, so the budget and the actuals are never comparable line by line. Until the two structures are the same, your reports can tell you what you spent in total and never which phase lost the money.
Concrete and flatwork contractors feel it hardest, because labor productivity is the entire margin and a small production miss erases the bid. Structural steel fabricators feel it because shop hours and field erection have different production rates and get reported as one job. Electrical and low voltage contractors feel it through change order work performed before it's priced, which reads as poor productivity at closeout. Framing and drywall contractors feel it through crew mix, since a change in who is on the crew changes the unit rate immediately.
A job cost structure built from your own estimating assemblies, a monthly cost to complete on every open job with percent complete and dollars remaining per line item, an overhead rate recalculated from a rolling twelve month average, labor productivity read separately from material against estimated units, and a variance review before each month closes that flags the specific line items needing a change order or a bid correction.
WHAT THIS TIES INTO
CFOS SPINE
TRADES THIS BREAKS IN · 48 OF 48
TOP DIAGNOSIS PAGES ยท 6 OF 123
SERVICE LAYER
Josh Luebker, The Construction CFO
Josh Luebker
FRACTIONAL CFO · THE CONSTRUCTION CFO

Former commercial project manager and master electrician: 150+ projects worth $2.1B combined, from $50,000 to $300M. Now fractional CFO to commercial subcontractors.

BRING ONE JOB. WE WILL FIND THE VARIANCE.

Bring what you bid it at and what you've spent so far. We will tell you on the call whether the problem is the bid or the execution.

You don't hire a CFO because it's safe, you do it because the real risk isn't having one.
Book a 20 minute diagnostic

20 minutes. No sales pressure. We will tell you exactly what's broken before we talk about anything else.

OR START WITH THE WORKBOOKS. NO CALL NEEDED.