GC PROFITABILITY

WHICH GC RELATIONSHIPS MAKE MONEY.

QUICK ANSWER

A subcontractor working several general contractor relationships doesn't have one margin, they have one per relationship, and a blended profit and loss reports the average of all of them. That average is the one number guaranteed to describe none of the relationships. Measured per GC rather than per job, the spread is usually wide enough that one or two relationships are being funded by the rest, and the ones being funded tend to draw the same crew hours and the same estimating attention as the ones paying for them. Job margin isn't enough on its own, because the financing cost of slow payment, the management hours change orders consume, and rework all sit outside the job cost record. Most contractors find one or two relationships to reprice or release after about six months of data.

Nothing about this is a pricing failure and nothing about it's a general contractor being difficult. It's a reporting failure, and it costs the same either way. The reason it stays invisible is that every one of those relationships produces jobs that look acceptable at the gross line, so there's never a single failure to investigate. Finding it takes a portfolio review, where the unit of analysis is the general contractor rather than the project.

BY JOSH LUEBKERPublished 2026-08-08Updated 2026-08-08
THE DEFINITION

WHAT IT MEANS.

GC relationship profitability is margin measured per general contractor across every job with them, adjusted for how long they take to pay, how hard their change orders are to collect, and how much rework they generate, so each relationship gets judged on what it leaves in the business.

Concentration is the other half of the same question. A relationship that's the most profitable in the book and also most of the revenue is a risk as well as an asset, because losing it's a survival event rather than a bad quarter. So the portfolio review has two outputs: what each relationship earns, and what each relationship would cost you to lose. Ranking on the first alone produces a book that's highly profitable right up to the phone call that ends it.

The decision at the end of the review isn't usually to walk away. It's to reprice, to restructure the terms, or to redirect capacity, and only occasionally to release. A relationship that loses money because payment runs long can be corrected with terms and not with price. A relationship that loses money because their project managers generate rework needs a different conversation entirely, and a relationship that loses money at every level is the one to give back.

WHAT WE SEE IN THE PORTFOLIO

WHY THE BLENDED NUMBER HIDES IT.

01

The blended number averages relationships that aren't alike

One profit and loss covering every general contractor reports the middle of a wide spread and calls it performance. Two relationships pulling well above the average and three sitting well below produce a company figure that looks unremarkable, so nothing gets investigated. Every bid decision after that gets made on relationship history and backlog need and not on what each relationship returns.

02

The costs that separate GCs aren't in the job cost record

Payment timing, change order friction, rework, and scope creep are the four things that make one general contractor more expensive to serve than another, and none of the four appears in a gross margin figure. So a relationship that pays in 90 days and argues every change order can post the same margin as one that pays in 30 and approves in a week, and the second one is worth far more.

03

The weakest relationship draws the same capacity as the strongest

Crew hours, estimating time, and project management attention are finite, and without a per GC number they get allocated by who called first and who needs backlog covered. That means the relationship consuming the profit gets the same access to the business as the relationship producing it. Nobody chose that. It's what happens when the information doesn't exist.

THE ARITHMETIC

WHAT IT LOOKS LIKE IN DOLLARS.

What the portfolio question found at one contractor

A verified $4.9M concrete subcontractor was pricing every job from the last similar job plus a feel for the market, with overhead carried on the books at less than half of what the trailing twelve months consumed. Correcting it meant declining work. The following year the company took $1.3M less revenue and made more money than it had at its peak, because the work it declined was the work that had been losing. $203,000 of aged receivables came in during the first week, and $130,000 of profit sharing was paid for the first time in the company's history.

The four costs that separate one GC from another

Payment timing is a financing cost: every day a general contractor holds your money is a day you fund the work, and the average GC waits 83 days to be paid with subcontractors below them waiting longer. Change order friction is management hours consumed chasing approvals a better relationship grants in a week. Rework is margin spent twice. Scope creep is work performed against a contract that never priced it. None of the four appears in a gross margin figure, which is why gross margin alone ranks the relationships wrong.

HOW SPM FIXES IT

THE PORTFOLIO REVIEW, EVERY MONTH.

Job costing grouped by general contractor

Every job carries a GC attribute, so the same cost record that reports the job rolls up to the relationship. That's a setup decision rather than an extra report, and it's why this has to be built into the job costing structure rather than assembled in a spreadsheet afterward. The rollup then comes in every month with the close.

Payment timing costed rather than complained about

Days to pay gets tracked per general contractor and converted into a financing cost at your own borrowing rate, so a relationship that pays in 85 days carries a number instead of a reputation. That figure is what makes a terms conversation possible, because you can tell them what their payment cycle costs rather than telling them it's slow.

Change order friction and rework tracked per relationship

Approval times, the proportion of change orders collected in full, and rework hours all get recorded against the GC rather than only against the job. Six months of that separates the relationships that are hard work from the relationships that are expensive, and those aren't the same list.

Reprice, restructure, or release, on a decision date

The review ends in a decision with a date on it, taken at the monthly meeting: this relationship gets repriced at the next bid, this one gets a terms conversation, this one loses capacity to a better one, and this one gets given back. A review that ends in agreement and not in a decision produces the same portfolio next quarter.

WHAT YOU GET

THE OUTPUTS, NAMED.

Job costing structured so every job rolls up to a general contractor
A per GC margin report produced monthly with the close
Days to pay per GC, converted into a financing cost at your own borrowing rate
Change order approval times and collection rates recorded per relationship
Rework hours attributed to the relationship as well as the job
A repricing and capacity decision per relationship, taken at the monthly meeting
$10.7M+
Client AR Recovered Since 2023
48
Active Trade Specializations
60 DAYS
Average Onboarding Time
PRICING

FLAT MONTHLY FEE. NO SURPRISES.

Three tiers, priced by your trailing twelve month revenue. Which one you're in depends on how much of the work you want off your desk. No hourly billing, no payroll, and no add-ons.

Pricing

Last 12 months revenueMonthly fee
Up to $1M$1,900 to $2,900
$1M to $3.5M$2,600 to $3,900
$3.5M to $6.5M$3,800 to $5,700
$6.5M to $9.5M$5,100 to $7,100
$9.5M to $12.5M$6,100 to $8,500
$12.5M to $15.5M$7,400 to $11,000
$15.5M to $18.5M$9,400 to $13,500
$18.5M+Quoted individually

Range reflects the three tiers below. Which one you're in depends on how much of the work you want off your desk. No payroll. No hidden line items.

Core

You stop guessing.

You get the CFO work. Job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a meeting every month that ends in decisions rather than a report.

Your bookkeeper keeps doing the books.

Executive

You stop touching the books.

Everything in Core, and we run the bookkeeping and the controllership as well. Nobody in your office is answering coding questions or chasing a reconciliation at month end.

We do the books. No payroll.

Strategic

Every job shows its margin while it's still running.

Everything in Executive, plus the job costing and WIP platform set up, loaded with your cost codes, and managed for you every month. You never have to learn it.

We do the job costing.

COMMON QUESTIONS

FREQUENTLY ASKED.

Group your job costing by general contractor and report margin per relationship every month, then adjust for the four costs that sit outside job cost: days to pay converted into a financing cost, management hours spent on change order approvals, rework, and scope creep. Six months of that produces a ranked list. Before it exists, every answer anybody gives you is a recollection rather than a figure.
Because the things that make one general contractor expensive to serve happen outside the job cost record. A GC that pays in 90 days makes you finance the work, a GC that argues every change order consumes management hours nobody bills, and a GC whose project managers generate rework makes you spend the same margin twice. Two relationships at identical gross margin can leave very different amounts in the business.
Usually not first. Reprice at the next bid, have a terms conversation about payment timing, or redirect capacity toward a better relationship, and see what moves. Releasing a relationship is the last option because it removes revenue immediately and the replacement takes time to build. What you should stop doing straight away is giving your best crews to your worst relationship.
About six months of grouped data, because you need enough closed jobs per relationship for the figures to mean something rather than reflect one bad job. The first month usually shows something anyway, since the days to pay figure is available immediately from the receivables record and it's often the largest single difference between two relationships.
Three tiers, and which one you are in depends on how much of the work you want off your desk. Core is where you stop guessing: job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a monthly meeting that ends in decisions, while your bookkeeper keeps doing the books. Executive is where you stop touching the books, because we run the bookkeeping and the controllership as well. Strategic is where every job shows its margin while it is still running, because the job costing and WIP platform is set up and managed for you. No payroll. No scope gaps.
WHAT THIS TIES INTO
Josh Luebker, The Construction CFO
Josh Luebker
FRACTIONAL CFO · THE CONSTRUCTION CFO

Former commercial construction project manager and master electrician. Managed 150+ projects worth more than $2.1B combined, with individual jobs from $50,000 to $300M, including data centers, military bases, hospitals, and high-rises. Now fractional CFO for commercial subcontractors doing $1M to $12M through Sulphur Prairie Management.About Josh  | LinkedIn

WHICH OF YOUR GCS IS FUNDED BY THE OTHERS?

Bring a list of your general contractors and last year's jobs. We will rank the relationships on the call and tell you which one to reprice first.

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.