

Most contractors running project work understand the percentage of completion method in the abstract. You've got a long-term contract, costs are hitting over months, and you need to recognize revenue proportionally as work gets done rather than waiting until the project closes out.
The execution is where things get more complicated.
When you're managing a single project, tracking percent complete in a spreadsheet is manageable. You pull your costs incurred to date, compare them against your total estimated costs, and calculate your recognized revenue. But most specialty contractors aren't running one project. They're running 15, or 40, across different stages of completion, with change orders landing, cost estimates shifting, and progress billings that need to tie back to actual work performed. Keeping all of that accurate in a spreadsheet — and keeping it accurate every month — is a different problem entirely.
This article covers how the percentage of completion method works, how to calculate it step by step, when to use it versus alternatives like the completed contract method, and where the process tends to break down for contractors managing multiple long-term projects. We'll also walk through how ServiceTitan automates percentage of completion tracking and revenue recognition across your entire project portfolio, so your financials stay accurate without the monthly fire drill.
Table of Contents
What Is the Percentage of Completion Method?
The percentage of completion method (sometimes called POC or percent complete) is a revenue recognition approach used for long-term contracts where work spans multiple accounting periods. Instead of waiting until a project is 100% finished to record revenue on your income statement, you recognize income proportionally as work progresses.
For contractors in the trades, this matters because your financials need to reflect reality. If you've completed 60% of a $500,000 mechanical install but haven't recognized any revenue yet, your income statement tells a misleading story. Your costs are hitting your books, but revenue isn't. That disconnect makes it harder to assess profitability, manage cash flow, and make informed decisions about your business.
Under GAAP (generally accepted accounting principles), the percentage of completion method is the standard approach for long-term projects where you can reasonably estimate progress and outcomes. ASC 606 and IFRS 15 both require revenue to be recognized as performance obligations are satisfied over time, which aligns with how POC works in practice. For contractors on accrual-basis accounting, this isn't optional — it's how your books are supposed to work.
Bonding companies and lenders care about this, too. When a surety reviews your financials, they want to see WIP (work in progress) reporting that reflects accurate revenue recognition. If your financial reporting doesn't use POC, or if your POC calculations are sloppy, it affects your ability to understand the financial health of your project portfolio.
Percentage of Completion vs. the Completed Contract Method
The alternative to POC is the completed contract method (sometimes abbreviated CCM). With CCM, you don't recognize any revenue or gross profit until the project is fully complete. All costs and billings accumulate on your balance sheet as the project progresses, and everything hits your income statement at closeout.
CCM is simpler to administer. You don't need to estimate percent completion each period, and you avoid the risk of recognizing income on a project that later goes sideways. For small, short-duration jobs — a two-week service retrofit, for example — CCM can make sense.
For long-term projects, though, CCM distorts your financial picture. A contractor with 10 active projects and no revenue recognized on any of them looks unprofitable on paper, even if every project is on track and generating healthy margins. That distortion affects your borrowing capacity, your bonding limits, and your ability to make smart operational decisions.
Under ASC 606, the completed contract method is also more limited in its applicability. If you can measure progress toward completion — and for most construction and project-based work, you can — the standard pushes you toward recognizing revenue over time. CCM is really only appropriate when outcomes are too uncertain to estimate, which is rare for an established contractor with good cost tracking.
How to Calculate Percentage of Completion
The most common approach for calculating percent complete in construction accounting is the cost-to-cost method. This is also the method ServiceTitan uses for its revenue recognition calculations.
The logic is straightforward. You compare total costs to date against total estimated costs for the project, and that ratio gives you your percent complete. You then apply that percentage to the total contract amount to determine recognized revenue.
Here are the formulas.
Percent complete = Costs incurred to date ÷ Estimated total cost
Revenue earned (recognized revenue) = Percent complete × Total contract amount (contract price)
Gross profit recognized = Revenue earned − Costs incurred to date
A worked example makes this concrete.
Say you're a mechanical contractor with a commercial HVAC installation. The total contract amount is $500,000. Your estimated total cost to complete the job is $375,000. Three months in, you've incurred $150,000 in actual costs (labor, materials, equipment, subcontractor charges).
Percent complete = $150,000 ÷ $375,000 = 40%
Revenue earned = 40% × $500,000 = $200,000
Gross profit recognized = $200,000 − $150,000 =
$50,000
If you've billed $180,000 in progress billings at this point, you're underbilling by $20,000 ($200,000 in recognized revenue minus $180,000 billed). If you've billed $220,000, you're overbilling by $20,000.
Both underbilling and overbilling create problems. Underbilling means you've done work you haven't been paid for — that's a cash flow drain. Overbilling means you've collected money you haven't earned yet — that's a liability, and GCs and bonding companies both scrutinize it. Accurate percentage of completion tracking helps you stay in the zone where billings and recognized revenue are reasonably aligned.
The Role of Cost to Complete
One detail that trips people up is the denominator in the percent complete formula. You're not dividing by the original budgeted cost. You're dividing by the forecasted total cost, which is your costs incurred to date plus your estimated cost to complete the remaining work.
This distinction matters. If you're three months into a project and realize the remaining work will cost $50,000 more than you originally budgeted — maybe material prices went up, maybe the scope expanded through change orders — your estimated total cost goes up, and your percent complete goes down even though the same amount of work has been done.
Forecasted total cost = Costs incurred to date + Forecasted cost to complete
In the example above, if your remaining cost to complete jumps from $225,000 to $275,000, your new estimated total cost becomes $425,000 instead of $375,000. Your percent complete drops from 40% to 35.3%, and your recognized revenue drops accordingly. That's the formula doing its job — it's telling you the project is less complete relative to the total effort required, which is true.
This is why keeping cost-to-complete estimates updated is so important. Stale estimates produce inaccurate percent complete numbers, which produce inaccurate revenue recognition, which produce misleading financial statements. The entire chain depends on someone regularly reviewing each active project and asking whether the remaining cost to complete is still realistic.
Other Approaches to Measuring Progress
The cost-to-cost method is the most widely used approach in construction, but it's worth knowing the alternatives.
The Efforts-Expended Method
The efforts-expended method calculates percent complete based on labor hours (or machine hours) expended versus total estimated labor hours. If you estimated 2,000 labor hours for a project and your crews have logged 800, you're 40% complete. This approach works well for labor-heavy projects where material costs don't track proportionally to progress. An electrical rough-in, for example, might be 80% labor — tracking hours worked gives you a more accurate picture of actual progress than tracking dollars spent on materials that were front-loaded in the procurement phase.
The Units-of-Delivery Method
The units-of-delivery method measures progress based on output delivered. If you're installing 200 rooftop units across a campus and you've installed 60, you're 30% complete. This is less common in specialty contracting but shows up in repetitive-unit work where each unit of output is roughly equivalent.
The Milestones Approach
The milestones approach ties percent complete to predefined project milestones rather than continuous measurement. You might define milestones at 25%, 50%, 75%, and 100% based on specific deliverables or phases. This is simpler to manage but less granular, and it can create lumpy revenue recognition that doesn't reflect steady progress.
For most mechanical, electrical, and plumbing contractors, the cost-to-cost method is the default. It aligns with how construction accounting works, how bonding companies evaluate your financials, and how project management software (including ServiceTitan) calculates percentage of completion.
Where Percentage of Completion Breaks Down at Scale
The math behind POC is simple. Divide two numbers, multiply by a third. A project manager who's been doing this for a decade can calculate percent complete on a napkin.
The problem isn't the calculation. It's doing the calculation correctly across every active project, every month, with accurate inputs.
Here's what actually happens at a lot of contracting businesses when month-end rolls around.
The project manager or controller pulls up a spreadsheet — sometimes one per project, sometimes a master WIP schedule — and starts updating numbers. Actual costs come from the accounting system, but they need to be reconciled against purchase orders that haven't been received yet, subcontractor invoices that haven't arrived, and labor costs that haven't been posted. Some of those numbers are in the ERP or project management software. Some are in email threads. Some are in someone's head.
Then there's the cost to complete. The spreadsheet might have last month's estimate, but…
Has anyone actually reviewed it?
Did the project manager account for the change order that came in two weeks ago?
Did material prices shift?
Is the labor estimate still valid now that the crew lost a week to weather?
Updating the cost to complete requires judgment, and it requires that someone actually sits down and thinks through each project individually. When you've got 20 active projects and the month-end is tomorrow, some of those reviews get rushed or skipped entirely.
Change orders are another weak point. A change order affects the contract price, the estimated total cost, and potentially the scope and timeline. In a spreadsheet-based process, someone needs to update the contract value, update the cost estimate, and make sure the revised numbers flow through to the percent complete calculation. If the change order gets approved in the field but doesn't make it into the spreadsheet until next month, that month's WIP report is wrong.
Progress billings add another layer. The billing team needs to know what's been billed, what's been retained (retainage), and what's been collected. If billing data lives in a different system than your cost data, reconciling the two becomes its own monthly project. And if billings get out of sync with recognized revenue, you get overbilling or underbilling positions that you didn't anticipate.
The compounding problem is that these inaccuracies aren't isolated. An outdated cost to complete on one project affects your total recognized revenue, which affects your gross profit, which affects your financial reporting across the business. Multiply that by 20 or 40 projects and the cumulative error can be material.
We've seen this pattern repeatedly with contractors who outgrow their spreadsheet-based WIP process. At five projects, it works. At 15, it's a monthly scramble. At 30, someone is always behind on updates, and the numbers you're reporting to your CPA or your bonding company have a margin of error you're not comfortable with but can't easily quantify.
How ServiceTitan Automates Percentage of Completion for Specialty Contractors


ServiceTitan’s construction software for specialty contractors uses the cost-to-cost method for revenue recognition across all projects. The platform calculates percent complete by dividing actual expenses to date by forecasted total budgeted expenses, then multiplies that percentage by the contract sum to determine recognized revenue. This happens automatically as costs are incurred and tracked within the system.
The difference between this and a manual process is that the inputs are already in the platform. Labor costs flow in from timekeeping. Material costs flow in from purchase orders and invoices. Subcontractor costs get recorded against the project. Change orders update the contract value and cost estimates. Because ServiceTitan is tracking jobs, dispatching crews, processing invoices, and managing purchase orders in the same system where revenue recognition happens, the data that feeds your percent complete calculation isn't being manually transferred from somewhere else. It's already there.
The WIP Report
The WIP (Work in Progress) report in ServiceTitan is the central tool for percentage of completion reporting. You set a project start date and an "as of" date, run the report, and it generates a line for every active project with the full picture:
Contract sum
Total budgeted expenses
Budgeted margin
Committed costs
Actual expenses to date
Forecasted cost to complete
Forecasted total expenses
Revised margin
Percent complete
Actual billed revenue
Recognized revenue
Over/under billing positions
That's the entire WIP schedule — across your full project portfolio — generated from live data. No manual data entry, no reconciling between systems, no wondering whether the numbers in column G are from this month or last month.
For a project manager or controller who's used to spending days assembling a WIP schedule from multiple sources, the time savings alone are significant. But the bigger value is accuracy. When actual costs, committed costs, and billing data all live in the same system, your percent complete calculations are based on real numbers, not estimates of estimates.
For a downloadable WIP schedule template you can use in the meantime, check out our free construction WIP schedule template.
Cost to Complete Adjustments
The system calculates a default cost to complete for each project by subtracting actual expenses from budgeted expenses. But ServiceTitan also lets project managers override that default with a custom value when they know something the formula doesn't.
Maybe you're anticipating cost overruns on a specific phase that haven't hit the books yet. Maybe the remaining work will come in under budget because you found a better material supplier. Either way, you can manually adjust the cost to complete, and the override flows directly into the WIP calculation. Both the custom and default values stay visible, so you can always see the gap between the formula's output and the project manager's judgment.
This feature is designed to preserve human judgment where it matters most — in the forward-looking estimate — while automating the parts that should be automated, like tallying actual costs and running the math.
Budget vs. Actual Visibility


ServiceTitan's project label system lets you build a hierarchy of cost categories — labor, materials, subcontractors, equipment — and map them to your pricebook items, job types, and technicians. Those labels carry through to the Budget vs. Actual table on every project, so you can drill into exactly where you're over or under budget at any level of detail.
This matters for percentage of completion because it gives you the context behind the numbers. A project that's 60% complete and 10% over budget is different if the overage is in materials (which might be a one-time procurement issue) versus labor (which could indicate a productivity problem that will persist through the rest of the project). That context informs whether you need to adjust your cost-to-complete estimate, which directly affects your recognized revenue and margin.
Progress Billing and Payment Applications


Because ServiceTitan handles progress billings and payment applications in the same platform where your costs and revenue recognition live, there's no reconciliation gap between what you've billed and what your WIP report shows as recognized revenue. Your schedule of values, completed work, and approved change orders all feed into the billing workflow, and the billing data feeds back into the WIP report.
This closed loop is what eliminates the most time-consuming part of manual WIP reporting — the monthly reconciliation between your billing system, your cost tracking, and your revenue recognition spreadsheet. In ServiceTitan, those aren't three separate data sources. They're one.
Retainage Tracking
Retainage — the percentage of each invoice withheld until project completion — gets its own project label in ServiceTitan. It shows up accurately on your Budget vs. Actual table and factors into your WIP report as "actual revenue (billed and retained)." You know exactly how much has been billed, how much has been retained, and how that compares to your recognized revenue. No side spreadsheet required.
Get a Personalized Demo of ServiceTitan Construction Software
If you're currently tracking percentage of completion in spreadsheets, you don't need a different formula. You need a system where the formula's inputs — actual costs, committed costs, cost to complete, change orders, and billings — stay accurate without someone manually updating them every month.
ServiceTitan's WIP reporting and project management tools were built for contractors running this exact process across multiple long-term projects.
If you're interested in exploring other specific features and functionality, start by visiting our main construction software page.
For a more detailed look at how ServiceTitan can support you, schedule a call for a live walk-through tailored to your business.


