The Short Version
I audit QuickBooks setups for construction companies regularly. The single most common finding: the Job Profitability Report exists in the software, the builder has opened it at least once, and it shows completely wrong numbers because job cost assignment is inconsistent. Half the materials purchases are assigned to jobs. Labor is not. Subcontractor invoices sometimes are, sometimes aren't. The report shows patchwork partial data — and most builders look at it, decide it's wrong, and stop looking. Here's how to fix it.
Sound Familiar?
Your QuickBooks job profitability reporting has a setup problem if:
- You run the P&L by Job report and the numbers don't match what you know about a project's performance
- Some projects show 50%+ margins and others show negative margins — with no obvious explanation
- Your total P&L shows overall profitability but you can't tell which specific projects drove it
- Labor costs don't appear in the job profitability view because payroll isn't assigned to jobs
- You've given up on QuickBooks job reporting and track job profitability in a separate spreadsheet instead
- Your bookkeeper enters expenses to the company level, not the job level, 'to keep it simple'
What We Found
How QuickBooks Job Profitability Actually Works
QuickBooks Online and Desktop both generate job-level P&L reports — but they only show accurate data if every revenue and direct-cost transaction is assigned to a Customer:Job at the point of entry. This is the part that breaks down in most construction company setups.
Here's the architecture: in QuickBooks, every project you run should be set up as a Customer:Job (QuickBooks Desktop) or a sub-customer (QuickBooks Online). When you enter a bill, a check, a payroll expense, or a credit card charge that relates to a specific project, you assign it to that job at the time of entry. When you create an invoice or receive a payment, you assign it to the same job. The P&L by Job then pulls all revenue and costs associated with each job and shows you gross profit by project.
The Three Places Job Assignment Breaks Down
Breakdown Point 1: Payroll and Labor
This is the most common failure. If you run payroll through QuickBooks Payroll or a third-party processor, payroll expenses often hit the company-level profit and loss — not individual jobs. The fix depends on your payroll setup, but the core solution is job-costing your payroll: either entering time against jobs within QuickBooks using the time tracking feature, or using a weekly allocation to distribute total labor cost across active jobs based on actual hours worked per project.
Without labor in the job P&L, you're seeing revenue minus materials and subcontractors — which dramatically overstates job profitability. A project that looks like it made $45,000 gross profit might actually have made $12,000 once labor hours are allocated correctly.
Breakdown Point 2: Materials and Supplier Invoices
Every vendor bill for job-specific materials should be assigned to a Customer:Job in QuickBooks when the bill is entered. This breaks down when the bookkeeper isn't on-site and doesn't know which materials went to which job, or when one vendor invoice covers materials for multiple jobs and needs to be split across jobs.
The "Flying Blind" Problem in Job Reporting
Running a construction company without real-time financial data — not knowing which jobs are profitable, what the true overhead burden is, or what net margin actually looks like. The P&L by Job fixes this — but only if it's set up correctly. Partial job assignment produces partial visibility, which is worse than no visibility because it creates false confidence in numbers that don't reflect reality.
Breakdown Point 3: Overhead Allocation
Job-level P&L in QuickBooks shows gross profit — revenue minus direct job costs. It does not automatically allocate overhead (insurance, equipment, office costs) to individual jobs. This is correct and by design: gross profit by job is useful; allocating overhead to jobs requires a separate calculation using your overhead rate. Know what you're looking at: P&L by Job shows gross margin, not net margin. You need your company-level P&L for net margin after overhead.
Setting Up and Reading the Report Correctly
Once job assignment is clean, the P&L by Job becomes the most important report in your business. Here's how to use it:
How to Run the QuickBooks P&L by Job
In QuickBooks Online: go to Reports, then Business Overview, then Profit and Loss — customize by Customer and group the report by customer/job for the time period you want to analyze. In QuickBooks Desktop: go to Reports, then Jobs, Time & Mileage, then Job Profitability Summary or Detail. The Summary shows gross profit by job. The Detail shows revenue and cost breakdowns by expense category within each job.
Run it for the last 12 months, sorted by gross profit margin percentage (highest to lowest). What you see will surprise you. Almost every builder who first runs a correct P&L by Job finds one of three patterns:
- The Project Type Gap: One project type (kitchens, additions, custom homes) consistently produces 5-10% higher margins than others. The builder has been bidding all project types at the same markup, leaving significant money on the table on their high-margin work while underwriting their low-margin work.
- The Client Pattern: Two or three clients consistently produce the lowest job margins — not because the work is different but because scope creep, unbilled change orders, and rework from unclear expectations eat the margin on every job. The P&L by Job names these clients numerically.
- The Foreman Effect: When you cross-reference P&L by job against which foreman ran each job, a margin pattern by foreman often emerges. One foreman consistently hits or beats budget. Another consistently runs 8-12% over. That gap is worth $30,000-$80,000 per year in jobs assigned to each — and you can't see it without job-level reporting.
What to Do With the Data
The P&L by Job is a diagnostic tool, not just a reporting tool. When you find the project type with consistently higher margins, adjust your bidding strategy: pursue more of that work, price it at your true margin level, and deprioritize project types that consistently compress margin.
When you identify the client pattern, have a direct conversation about your change order process before taking another job from that client — or price the relationship risk into your markup on their next bid.
When you see the foreman effect, the first question is training, not termination. Does the foreman understand the budget? Do they have a mechanism to see real-time budget variance during the job? Most foremen running over budget don't know they're over budget until you tell them — because they've never been shown the job cost data while the job is active. The Go First financial systems methodology builds this into the weekly PM review cadence.
The QuickBooks and JobTread Connection
If you're running both QuickBooks and JobTread, your job profitability data should be primary in JobTread during the project — it has deeper cost-code-level visibility than QuickBooks. But the QuickBooks P&L by Job serves a different function: it's your accounting-grade job profit record, synced to your financial statements. Both reports should agree at month-end. If they don't, there's a sync issue in your QuickBooks-JobTread integration that needs to be resolved.
The SkillMatch Diagnostic assesses your full financial systems setup — including job costing configuration, reporting accuracy, and financial review process — and gives you a prioritized improvement plan based on your specific setup and revenue stage.
Find Your Revenue Leaks in 5 Minutes
Answer diagnostic questions about your operations, finances, and sales. Get ranked AI skill recommendations with dollar recovery estimates and an implementation roadmap — free, instant results.
Take the Free SkillMatch Diagnostic →Frequently Asked Questions
In QuickBooks Online: go to Reports, then Business Overview, then Profit and Loss — customize to group by Customer. In QuickBooks Desktop: go to Reports, then Jobs, Time & Mileage, then Job Profitability Summary. The report only shows accurate data if every revenue and direct-cost transaction has been assigned to a Customer:Job at the time of entry. If your transactions aren't consistently job-assigned, the report will show incomplete or misleading data.
Inaccurate job P&L in QuickBooks is almost always a job assignment problem: some transactions were assigned to jobs and others weren't, creating partial data. The most common gaps are payroll and labor (often hits the company P&L, not individual jobs), mixed-job vendor invoices that weren't split, and credit card transactions entered without job codes. Fixing it requires a systematic audit of transaction job assignment for the period you're analyzing, then building workflows to ensure consistent assignment going forward.
Use both — they serve different purposes. JobTread provides real-time job costing against your budget during the project, with cost-code-level detail that QuickBooks doesn't match. QuickBooks P&L by Job is your accounting-grade profitability record, synced to your financial statements. The two should agree after month-end sync. For active job management, JobTread wins. For financial reporting and accounting, QuickBooks is the system of record.
QuickBooks P&L by Job shows gross profit (revenue minus direct job costs) — it doesn't automatically allocate overhead to jobs. To calculate net margin by job, take your annual overhead, divide by your total annual direct job cost to get your overhead rate, and apply that rate as a percentage to each job's direct costs. This gives you allocated overhead per job, which you subtract from gross profit to get estimated net margin. Most builders track this in a job analysis spreadsheet rather than inside QuickBooks.
Residential builders targeting $1.5M-$15M in annual revenue should aim for 30-38% gross margin on completed projects. New custom home construction typically runs 25-32%. Residential remodeling and renovation runs 32-42% when priced correctly. If your P&L by Job consistently shows gross margins below 28%, there's a pricing, cost control, or change order billing issue that needs addressing. The net profit target after overhead is 8-15% — below that, the business is not producing adequate return for the risk and capital required.