A job that takes eight months doesn’t earn its profit on the last day — it earns it a little at a time, all the way through. Percentage-of-completion (POC) accounting is how you put that on the books honestly. It’s also the language your CPA and bonding agent speak, so it's worth understanding even if software does the math for you.
The cost-to-cost method
The standard way to measure how complete a job is uses cost: percent complete = cost incurred to date ÷ estimated total cost (EAC). If you estimate a job will cost $420,000 and you've spent $210,000, you're 50% complete. It's driven by what actually happened, not by the calendar — so a delay doesn't fake progress.
Earned revenue
Once you know percent complete, earned revenue is simple: contract amount × percent complete. On a $500,000 contract that's 50% complete, you've earned $250,000 — that's the revenue that belongs on the books this period, whether you've billed it or not.
Over- and under-billing
Here's where it gets useful. Compare what you've billed to what you've earned:
- •Over-billed (billings in excess of costs): you billed more than you earned. It's a liability — that money is the owner's until you do the work. Spend it and you can run dry mid-job.
- •Under-billed (costs in excess of billings): you earned more than you billed. It's an asset — and a sign you're financing the project out of your own pocket. Get a billing out.
The EAC is the number to protect
Every figure above depends on a good estimate at completion. As conditions change — a change order, a productivity hit, a delay — you revise the EAC, and that revision flows through as a current-period adjustment. You never rewrite prior months. Keeping posted history (fact) separate from the forecast (EAC) is what makes POC trustworthy instead of a moving target. We cover that split in why your job costs don't match your GL.
Let the platform do the math
You can build all of this in a spreadsheet — most contractors do, badly, once a year for the bonding company. Or the platform that runs your jobs can derive it automatically. Bullwork computes percent complete, earned revenue, and your billing position from live job costs — a bonding-ready WIP schedule on every job, every month, with no year-end scramble.
