Job costing in QuickBooks Online runs through Projects, which comes with Plus and Advanced. Per job it shows the income you invoiced, the bills and expenses tagged to it, labor cost if you run QuickBooks Payroll or set an hourly cost rate, and the margin that falls out. It does not show committed costs on open purchase orders, work done but not yet billed, or how far a job has drifted from its estimate unless someone keeps the estimate current. So it answers "what has this job cost so far" well, and "is this job going to make money" only with help from outside the report.
What Projects is, in plain words
Projects is a tag. Every invoice, expense, bill, timesheet and payroll cost in QuickBooks Online can carry a project name, and the Project Center gathers everything with the same name into one place. That is the whole mechanism. There is no separate job ledger and no budget by cost code.
The Project profitability report is the report that totals tagged income and tagged cost per project and shows the difference as a margin. It reads from what has been posted to the file on the day you run it, and nothing else.
Hourly cost rate is the loaded cost of an hour of an employee's time, which QuickBooks builds from wages, employer payroll taxes, workers' comp and an overhead percentage you supply. If you track time to projects, the rate turns hours into labor cost on the report. It applies only to time tracked after the rate is set, so a rate entered in March does nothing for February's hours.
Projects is in Plus and Advanced. Simple Start and Essentials do not have it. If you are deciding between the two plans that do, the Advanced versus Plus comparison covers what else changes; for job costing alone, Plus is enough, and the gaps below are the same on both.
The four things it cannot see
Labor before payroll runs is the first gap. If you use QuickBooks Payroll, the labor cost on a project lands when the payroll is processed, not when the crew clocks the hours. A job that ran eleven days into a pay period shows no labor for those eleven days. If you set hourly cost rates instead, the number is only as good as the overhead loading someone typed into it, and Projul, a construction software vendor with its own product to sell, claims most contractors undercount labor by 25 to 40 percent because they track base wages only. We cannot verify their method, though the direction matches what we see in files.
Overhead loading is the percentage added to direct labor to cover the shop, the trucks, the office and the estimator's time. In Projects it is a manual figure. Dapt, another vendor page, puts it plainly: overhead requires manual percentage calculations. Most owners set it once and never revisit it. A loading of 0% is common, and it means every job on the report is overstated by the overhead it should have carried.
Committed cost is money you have agreed to spend on a job that has not yet become a bill: the open purchase order for switchgear, the subcontractor who has started but not invoiced. Projects has no view of it. A job at 60% invoiced and 40% cost can be at 60% invoiced and 85% cost once the commitments arrive, and the report will show the first until the bills are entered.
Underbilling is work you have done that you have not yet invoiced, and overbilling is the reverse. Projects sees only invoices and costs, so an underbilled job looks like a loss and an overbilled one looks like a windfall. The arithmetic that corrects for this lives on a WIP schedule, which QuickBooks Online does not produce, and the cash consequences run through the whole company, as contractor cash flow usually does.
Reading the profitability report the owner's way
Sort it by margin and read it in four passes. First, jobs with income and no cost. Those are jobs whose bills have not been entered or tagged, and the margin on them is fiction until the bookkeeper catches up. Second, the jobs with cost and no income, which are either unbilled work or jobs where the invoice went out under a different project name. Third, the jobs in the middle, where the margin can be compared against the estimate, if anyone kept the estimate.
Fourth, and the one most owners skip, the untagged bucket. Every expense with no project on it lands there. In the files we see it commonly holds around a fifth of direct costs, which means every job on the report is flattered by its share of that fifth. A monthly question to the bookkeeper about the size of that bucket, alongside the others in what to ask your bookkeeper every month, does more for job margins than any report setting.
The common setup advice is to turn Projects on for every job. We would not. A service company running forty $600 calls a week gains nothing from tagging each one; the margin on those is a pricing question. Use Projects for work that runs longer than a payroll cycle, where timing can hide the answer.
A $186,000 remodel, on day 40 and at close
The job is a $186,000 kitchen and addition, and the contractor is a residential remodeler who reads the Project profitability report on day 40. It shows $111,600 invoiced and $77,000 of tagged cost, a 31% margin. The owner is pleased and takes a draw.
At close the same report shows $186,000 of income and $169,300 of cost, a 9% margin. Twenty-two points went somewhere, and the table shows where.
| What was missing on day 40 | Amount | Why the report did not show it |
|---|---|---|
| Untagged labor | $16,900 | Crew hours in weeks 6 to 11 were tracked to the shop, not the job |
| Change order never invoiced | $14,300 | The work was done and its cost tagged; no invoice was raised |
| Overhead loaded at 0% | $9,760 | The hourly cost rate carried wages and taxes, no burden |
| Total | $40,960 | 31% projected on $186,000 is $57,660; actual was $16,700 |
None of this is a QuickBooks fault. The report added up what it was given. The change order alone would have put the job at 15%, and the owner would have raised the invoice if anything had shown it as missing. Nothing did, because Projects compares invoiced against tagged cost and has no field for work agreed but not billed.
When crews cross company lines
An electrical contractor with 34 staff splits the work between two companies. A service company runs the calls and employs the crews. A construction company holds the commercial contracts and borrows crews from the service company for big jobs. Two QuickBooks Online files, one bookkeeper. The construction file's Project profitability report shows a $412,000 tenant build-out at a 38% margin, because the labor cost is in the other file, where it is tagged to no project at all. The service company's P&L, meanwhile, shows a bad quarter.
Projects cannot see across files. The only fix inside QuickBooks is an intercompany labor charge, invoiced from the service company to the construction company and tagged to the job, which most bookkeepers do quarterly if at all, and which then has to be canceled again when the two P&Ls are added. It is the intercompany transactions problem in its most common trade form.
Navigator reads both files read-only and shows margin per entity and consolidated every morning, so the service company's crew cost and the construction company's job revenue are read together rather than in two windows. On the Pro plan the intercompany labor charge is eliminated in the total. Job-level detail stays in QuickBooks Projects; the tool reads the books and does not replace the job-costing system.
When to leave Projects behind
There is no clean threshold. As a rough guide, if you have fewer than ten open jobs at a time and one crew, Projects plus a spreadsheet WIP schedule is enough. Past twenty open jobs, several crews, or any work under prevailing-wage rules, which Projects does not handle, a construction job-costing tool that carries budgets by cost code, commitments and percent complete pays for itself, and QuickBooks Online becomes the general ledger underneath it.
Whatever the tool, the cash runs on the same clock. A 2016 JPMorgan Chase Institute study of 597,000 small firms found the median construction business held 20 days of cash, against 27 across all industries, and Invoiced puts construction's median collection time at 82 days. A job margin that is right on the report and wrong in the bank is still the more common problem, and neither Projects nor its replacements fix that one.
Questions owners ask
Does QuickBooks Online do job costing?
Yes, through Projects. Every invoice, expense, bill, timesheet and payroll cost can carry a project tag, and the Project profitability report totals them per job. It is a record of what has been posted so far. It does not hold a budget by cost code, committed costs on open purchase orders, or a work-in-progress calculation, so a contractor still needs those from somewhere else.
Which QuickBooks Online plan has job costing?
Projects, including the profitability report and hourly labor cost rates, is in Plus and Advanced. Simple Start and Essentials do not have it. Intuit Enterprise Suite, the tier above Advanced, has it as well. If you are on Essentials and run jobs, the move to Plus is the cheapest job-costing tool you will find, though not a complete one.
How do I add labor costs to a project in QuickBooks Online?
Two routes. If you run QuickBooks Payroll and track time to projects, the labor cost lands on the project after each payroll is processed, not when the hours are entered. If you do not, set an hourly cost rate per employee in Projects, built from wages, employer taxes, workers' comp and an overhead loading; it applies only to time tracked after the rate is set.
Why doesn't my project profitability report match my job's actual profit?
Because it counts only what has been tagged and posted. Labor waits for payroll, subcontractor bills wait for the bookkeeper, overhead is whatever percentage someone typed in, and change orders that were never invoiced never appear as income. A job that reads 31% on day 40 can close at 9% with nothing wrong except timing and tagging.
Can QuickBooks Online track work in progress?
Not on its own. A WIP schedule needs estimated cost to complete and percent complete for each job, and QuickBooks Online holds neither. You can build one in a spreadsheet from the profitability report plus your estimator's numbers, or add a construction job-costing tool that does it. Most contractors with more than a handful of open jobs end up doing one of the two.
Related
The page that corrects the profitability report for billing timing is the WIP report for contractors. For why the margin can be right and the account still empty, read construction company cash flow problems, and for what job margin is and is not telling you about the whole business, gross margin, operating margin and net margin.
If you want both companies' margins in one morning email while the jobs stay in Projects, the trial connects each file in about fifteen minutes and needs no card: navigatorhq.ai.
You're on the list.
The next post goes to . While you wait, the free Accounting Health Check scores your own books.
Published . Last updated . Reviewed by a CFO on the Navigator team.