PERCENTAGE OF COMPLETION ACCOUNTING FOR SUBCONTRACTORS.
Percentage of completion accounting recognizes revenue and profit on a job as the work is done, not when the cash comes in. The standard method is cost-to-cost: costs incurred divided by total estimated costs, multiplied by contract value. Most subs game the number without knowing they're doing it, usually by failing to update total estimated costs as the job changes, which inflates current-period profit and produces brutal profit fade at closeout.
POC is how every commercial sub above $1M should be accounting, and it's also the line on the financial statements where the most distortion happens. The formula itself is honest. The inputs are estimates, and most subs don't update them honestly, usually because nobody ever asked them to. The comparison between earned revenue and billings becomes the WIP schedule, and every bonding agent and bank reads that schedule every month. So a stale estimate doesn't stay inside your accounting. It walks into your next bond conversation with you.
WHAT IT MEANS.
Percentage of completion accounting is a revenue recognition method that records earned revenue and profit on a construction contract as the work is performed, not when invoices are issued or cash is received.
Under U.S. GAAP, commercial construction contracts longer than 12 months are generally required to use POC. The standard formula is the cost-to-cost method: costs incurred to date divided by total estimated costs equals the percent complete. Apply that percentage to the contract value and you've earned revenue, and apply it to total estimated profit and you've earned profit.
HOW MOST SUBS DISTORT THE POC WITHOUT KNOWING.
Stale total estimated costs
The bid estimate gets fixed in the accounting system at job start and never updated. Three months in, the sub knows he has an extra $80K of labor coming because productivity fell behind, but the estimate in the system still reads the original $800K. POC gets calculated against the wrong denominator, so the percent complete looks higher than it's and earned revenue and profit both come out overstated. The bonding agent sees a healthier WIP than the job has, and closeout brings the ugly profit fade.
Materials charged to the job before they're installed
A sub orders $120K of conduit and ships it to the site, and the PO is coded to the job. The POC formula now counts $120K of cost incurred even though none of the conduit is installed, so earned revenue gets pulled forward into a month that didn't earn it. The cleaner approach is to recognize materials only once they're installed, or to use the input-output measure on jobs where material is a large share of the cost.
Indirect cost never allocated to the job
Project management time, supervision, and equipment burden are true costs that belong to the job. Most subcontractor accounting systems don't push these into job cost automatically, so they stay in overhead where the POC formula never sees them. The denominator is understated and POC reads healthier than the job is.
WHAT IT LOOKS LIKE IN DOLLARS.
Take a $1M concrete contract estimated at $800K of total cost. After three months, $400K of cost has been incurred, so POC is $400K divided by $800K, or 50%. Earned revenue to date is 50% of $1M, which is $500K, and earned profit to date is 50% of $200K, which is $100K. If the sub has billed $440K the underbilling is $60K, and if he has billed $560K the overbilling is $60K.
CFMA's quarterly benchmarks show that the top quartile of commercial subcontractors update job estimates monthly. The bottom quartile updates them only at completion, and the middle does it sporadically when something obvious goes wrong. The difference in profit fade between the top quartile and everybody else is consistently 4 to 7 percentage points of gross margin.
One verified marine client, a general contractor at $25M in revenue, came to us with bonding capacity limited because the financials were kept in a shared spreadsheet no third party could trust. SPM rebuilt the books and installed clean POC and WIP discipline. The result was $5M in individual project bonding and $10M in aggregate, coming from the financial system rather than from the contracts.
THE TABLE IS AT RUN ON CFOS.
With 45 day payment terms, an overbilling of 6, 8 or 10 percent of contract value leaves any job shorter than 15 months behind the work done in cash.
Source: Run On CFOS, Overbilling against payment terms, updated October 17, 2026. The full table and the data are published there. Cite as: Run On CFOS. Overbilling against payment terms. 2026. Sulphur Prairie Operations, LLC. https://runoncfos.com/overbilling-and-45-day-terms. CC BY 4.0.
DOING IT HONEST.
The single biggest fix in commercial subcontractor accounting is treating total estimated cost as a living number. Every month at WIP close, the project manager and the controller meet together and update the projection. Are labor hours tracking to plan, is material pricing holding, have change orders been issued, and has the schedule fallen behind in a way that adds general conditions cost. Those questions turn into a new total estimated cost figure, the POC formula uses the updated number, and there are no surprises at closeout.
The project manager owns the operational forecast and the controller owns the accounting treatment, and the monthly review reconciles the two in the same room. The monthly cost-to-complete update is done for every client rather than getting saved for a quarterly exercise. That discipline is what produces a clean WIP that bonds against itself without the agent calling for explanations.
POC and the WIP schedule aren't separate documents. WIP is the visible output of POC accounting, and every line on the schedule is the result of a POC calculation: contract value, costs to date, estimated cost to complete, earned revenue, billings to date, and over or underbilled. A WIP built on sloppy POC numbers is worse than no WIP at all, because a bonding agent will tolerate honest variance and won't tolerate consistent overstatement.
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. The one-time onboarding fee is right here in the table.
| Last 12 months revenue | Monthly fee | One-time onboarding |
|---|---|---|
| Under $1M | $1,900 to $3,300 | $1,000 |
| $1M to $3.5M | $2,600 to $5,300 | $1,500 |
| $3.5M to $6.5M | $3,800 to $8,300 | $3,000 |
| $6.5M to $9.5M | $5,100 to $11,800 | $4,500 |
| $9.5M to $12.5M | $6,100 to $14,900 | $6,000 |
| $12.5M to $15.5M | $7,400 to $17,650 | $7,500 |
| $15.5M to $18.5M | $9,400 to $22,400 | $9,000 |
| $18.5M+ | Quoted individually | Quoted individually |
The onboarding fee covers migrating your books back to the start of your last taxable year and getting you fully operational in 60 days. It's billed once, with your first invoice. It's the same for all three tiers. Your first month is prorated, and your monthly engagement starts on the first of the first full month.
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. The onboarding fee is right here in the table.
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 and never in a report.
Your bookkeeper still does the books.
Every job shows its margin while it is still open.
Everything in Core, plus the bookkeeping and bank reconciliations done for you, and the job costing and WIP software set up, loaded with your cost codes, and managed every month. Use your own online software, or move to ours and we cover it.
A bookkeeper we choose does the books and reconciliations. No payroll.
You approve, and the money side gets handled.
Everything in Strategic, plus a controller we choose who handles your bills and receivables for you the way an in-house controller would. They call vendors, pay the bills and keep the accounting current. We plan the cash flow first, and you approve every payment because it is your money.
A controller we choose does the payables and receivables. No payroll, no pay applications, no collections.
