PMs who own their margin
When PMs update cost to complete every month, fade is visible while there's still time to change it. Here's how to set the routine and what the controller reviews. Then we cover how CFOS puts the PM's number in front of the controller.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
Fade you find in the last month
A job is estimated at a good margin, and for six months the WIP shows the same margin. Then the PM finishes the job and the margin is gone. Nothing changed in the last month. Nobody updated the forecast, so the WIP kept showing the estimate.
That's what a missing cost to complete looks like. The WIP assumes the original budget is still right, so every dollar of overrun hides until the job is nearly done. By then the extra labor is spent and the change order window is closed. A PM who updates the number every month finds the overrun when it's a few weeks old and can still talk to the GC or change the crew.
A fixed day, one form, three questions
Pick a fixed day. For a close by the 10th, the PM's cost to complete is due on the 5th. Put it on the PM's calendar, make it part of how the PM is measured, and have the owner ask about it in the monthly meeting. A routine that depends on the controller's reminders won't last.
Use one form per job, with the same three questions every month. What's the cost to complete from today, by cost type? What changed since last month, and why? Is there a change order, a back charge or a delay that isn't in the numbers yet? Three questions are enough because the PM knows the answers, and they keep the answer short enough to actually get done.
- Due on the same day every month, before the controller builds the WIP
- One number per job, not a percent complete
- A short reason when the number moves
- Pending change orders listed separately from approved ones
What the controller looks at
The controller doesn't redo the forecast. The controller looks for three things. First, jobs where cost to date plus cost to complete is higher than the budget, which is fade. Second, jobs where the number didn't move at all in a month with a lot of cost, which usually means the PM didn't look. Third, jobs where the number dropped, which needs a reason before it's approved.
A call to the PM on the three or four jobs that moved is better than a long email thread. Approve what makes sense, ask about what doesn't, and write down the reason. The surety reads the WIP, and a reason behind each change makes it easier to defend.
The PM's number in front of the controller
In CFOS for QuickBooks the PM enters month end cost to complete for their jobs, next to cost to date and the budget by cost code. The controller sees the PM's number and approves it, and the approved number feeds the WIP schedule, over and under billing and the master WIP. It's kept in one place, not in a spreadsheet emailed back and forth.
Permissions are set per person. A PM sees only their own jobs and the numbers they need, and that includes what they see when they ask Claude or ChatGPT about their work, which can read but can't change anything. The controller and owner see every job. QuickBooks keeps the books, and CFOS reads job cost from it, updated every hour.
Pay app due dates come with reminders to the PM, and change orders from the field become drafts that go on the next pay app, so the PM isn't entering the same change twice. The PM's job is to forecast the cost. The controller's job is to approve it.
| Revenue | Overhead | Gross margin | Net profit, before taxes |
|---|---|---|---|
| $10M to $25M | 13.1% average 12.1% CFOS target | 24.6% average 27.1% CFOS target | 11.5% average 15% CFOS target |
| $25M to $50M | 12.1% average | 25.7% average | 13.7% average |
Gross margin and overhead come from figures CFMA, Jones Maresca and other sources publish by trade and size. Net profit is computed, not surveyed: net profit = gross margin minus overhead. Nothing comes out for taxes, interest or other income and expense, so it is a before tax figure, on the same basis as CFMA's net income before taxes.
CFMA's 2025 medians are 7.1 percent before interest and taxes and 6.7 percent net income before taxes. Gross margin minus overhead leaves out interest and other income and expense, so a figure here can come in a little above or below a reported net income on the same business.
Above the $10M to $25M band the gross margin and overhead rows are a modeled extension of the same curves. They have not been reconciled against the licensed CFMA Benchmarker, so read those bands as a model and not as a survey result.
What the numbers are measured against
The table above shows published all-trade averages for the two bands, with net profit before taxes. A PM who sees a job forecast below the average gross margin knows it's a job to look at. The CFOS target for your trade and size gives the owner a number to hold each PM to.
Measure PMs on forecast accuracy and on margin held, not on margin alone. A PM who reports fade early is doing the job. Reward that, because the PM who hides it costs you the most.
At $30M with eight PMs, one late forecast hides one job. Eight late forecasts hide the year. Fix the day first and the rest follows.
Get on the list for the day it opens
30 days free, a 90-day money-back guarantee, and cancel anytime.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
What people ask
How often should a PM update cost to complete?
Every month, on a fixed day before the WIP is built. A PM on a job that's changing fast, such as one with a lot of change orders or a delay, may update it more often. Monthly is the minimum that lets the controller see fade early.
Should the controller or the PM own the cost to complete?
The PM owns the number and the controller approves it. The PM knows the field, and the controller knows what the surety will read. If the controller owns the number, the PM stops looking at it.
What if a PM's forecast is always optimistic?
Compare the last few months of forecasts to what the jobs cost in the end, and show the PM the result. The owner should raise it in the monthly meeting. Some PMs improve when they see the history, and some need the controller to push back on each number.
Can a PM see other PMs' jobs in CFOS?
No, unless the owner sets it up that way. Roles and permissions go down to which jobs and which numbers a person sees. A PM at a $20M contractor sees their own jobs and cost to complete, and the controller and owner see all of them.
Does a surety care whether PMs forecast monthly?
A surety reads the WIP and looks for fade, and a forecast that moves a little each month reads as control. A forecast that's flat for months and then drops reads as a surprise. Monthly forecasts with approval behind them are easier to defend.
- Job costing and WIP for contractors doing $10M to $50M
- For the controller who owns the WIP
- A WIP schedule that builds itself from job cost
- Project management that knows what the job costs
- One price. Every module. Priced by your revenue.
- For PMs who want to know how the job is doing
- Use all of it, or just the part you need
QuickBooks is a trademark of Intuit Inc. Run On CFOS isn't affiliated with Intuit.