How to Track Job Costs in QuickBooks for a Home Service Business
QuickBooks is used by most home service businesses for accounting but underused for job costing. The native Projects workflow shows gross margin per job. Here is how to set it up correctly and how to get labor into the right place.
Key takeaways
- QuickBooks Projects is the right tool for job-level costing. Classes track job types; Projects track individual jobs. Use Projects
- Labor is the most common missing piece. Most owners enter payroll to a general account weekly instead of splitting it by project. Fix this with time-tracking integration or weekly journal entries per project
- The Project Profitability report shows Revenue minus Direct Costs equals Gross Profit per project. Run it monthly to find unprofitable job types before they compound
- Most CRMs export invoices to QuickBooks automatically. The gap is cost-side: parts, labor, and subs need to hit the project, not just the general ledger
QuickBooks is in use at most home service businesses, but most of those businesses are using it as a general ledger, not as a job costing system. The difference is significant. A general ledger tells you whether the business as a whole is profitable. A job costing system tells you which job types are profitable, which are not, and how much margin each tech generates. Most operators making pricing and staffing decisions without job-level data are flying partially blind.
QuickBooks Online has a native job costing workflow that works well for home service businesses once it is configured correctly. The setup is not complex, but it requires specific steps in the right order. The sections below cover the full workflow, from initial setup to running the profitability report. For the broader framework, see job costing for contractors and job profitability for home services.
QuickBooks Projects vs. Classes
QuickBooks Online offers two tools for tracking performance across segments: Classes and Projects. They are not interchangeable.
Classes are used to track job types or service lines across the business. A trade shop might use classes for "HVAC Service," "HVAC Install," "Maintenance Plans," and "New Construction." Classes answer the question: how is each service line performing in aggregate?
Projects are used to track individual jobs. A project is linked to a specific customer and a specific job. Revenue, labor, parts, and subcontractor costs are all assigned to the project. The Project Profitability report shows margin per individual job.
For job costing in home services, Projects is the correct tool. Classes can run alongside Projects for the service-line view, but the job-level profitability data requires Projects.
To enable Projects: go to QuickBooks Online Settings, select Advanced, and turn on Projects under the Projects section. Once enabled, a Projects tab appears in the navigation.
Text Clint: "What is our gross margin by job type for the last 90 days, and which job types are below 40% gross margin?"
Setting Up a Job Cost Project
Creating a project in QuickBooks Online takes less than two minutes. Navigate to Projects, click New Project, name the project (typically the customer name plus job address or job number), and link it to the customer record.
One project per job is the right structure for most home service businesses. Some operators create one project per customer and track multiple jobs under it. That approach muddies the job-level data and makes the profitability report harder to read. One job, one project.
After the project is created, all revenue and cost entries for that job are coded to the project. When an invoice is generated in QuickBooks, it should be linked to the project. When a vendor bill for parts is entered, it should be linked to the project. When payroll or time is entered, it should be linked to the project.
The most common setup mistake: creating projects for new jobs but failing to create them for existing jobs already in progress. The project needs to exist before cost entries are made. Retroactively moving transactions to a project is possible but time-consuming. Set up the project at the time of booking, not after the job closes.
Getting Labor Into the Project
Labor is the most commonly missing cost in home service job costing. Most owners run weekly payroll to a general "Labor" or "Wages" expense account on the income statement. That captures the total labor cost correctly for the P&L but does not link any of it to specific jobs. The job-level profitability report shows zero labor cost, which makes every job look artificially profitable.
There are three ways to get labor into the project:
Option 1: QuickBooks Time (formerly TSheets). Techs log hours against a specific project in the QuickBooks Time app. Hours sync automatically to QuickBooks Online and populate the project's labor cost. This is the most accurate method and requires the least manual work in the accounting office. Cost is approximately $20-$40/month plus per-user fees. If techs already use a time-tracking app, check whether it integrates with QuickBooks Online natively or via Zapier.
Option 2: Weekly time entry in QuickBooks. If the CRM tracks hours per job, an admin can enter weekly time entries in QuickBooks Online, coding each tech's hours to the relevant project. This is a 30-60 minute administrative task per week depending on job volume. It requires discipline to execute consistently. Most businesses that try this approach fall behind during busy periods, creating gaps in the project data.
Option 3: Journal entry allocation. For businesses where per-job hour tracking is not feasible, a monthly journal entry can allocate total labor cost across projects based on percentage of total job revenue. This is the least accurate method but still far better than no allocation at all. A business with $80,000 in labor cost in a month and a job that represents 8% of total revenue allocates $6,400 of labor to that project.
The best method is whichever one the business will actually execute consistently. An imperfect but consistent approach produces more useful data than a theoretically perfect approach that is abandoned after two months.
Text Clint: "What are our total labor costs by tech for the last 30 days, and which techs have the most jobs with no logged hours?"
Materials and Parts Cost Coding
Parts and materials cost is easier to get into the project than labor, but it requires attention at the time of purchase, not after the fact.
The workflow: when a tech buys parts for a specific job, the vendor bill or receipt is entered in QuickBooks and coded to the project. If the tech uses a company card, the card transaction is reconciled and coded to the project. If parts are purchased from a supplier on account, the vendor bill is entered when received and coded to the project.
The product and service line for materials in QuickBooks should be linked to a COGS account, not an expense account. This matters for the profitability report. Revenue sits on the income line. Materials in COGS create the gross margin calculation correctly. Materials coded to a general expense account will not flow into the project profitability calculation the same way.
For businesses that maintain parts inventory: inventory items in QuickBooks track quantity on hand. When a tech pulls parts from inventory to use on a job, a sales receipt or invoice records the transfer to the project. This keeps inventory accurate and gets cost into the project at the same time.
The gap that most home service businesses have: parts bought in bulk are not tracked to individual jobs. An HVAC shop that orders 20 capacitors in a stock purchase codes the whole order to one expense. When those capacitors are used on 20 different jobs over the next month, none of that cost shows up at the job level. Fix: either use inventory items to track the pull from stock, or establish a practice of entering a simple bill for parts when a tech pulls from stock for a job.
Text Clint: "Which job types have the highest parts cost as a percentage of revenue, and how has that trended over the last 6 months?"
Running the Profitability Report
Once projects have revenue, labor, and parts coded correctly, the Project Profitability report shows the result. In QuickBooks Online, navigate to Reports, search "Project Profitability," and run the report for a date range.
The report shows, per project: Income (the invoice amount), Cost of Goods Sold (labor plus parts plus subcontractor costs coded to the project), and Gross Profit (income minus COGS). The gross profit percentage column is the margin number.
What to look for when reviewing the report:
Low or negative margin jobs. Any job with a gross margin below 20% deserves a review. Is the flat rate too low for the job type? Did the job run long? Were there unexpected parts costs? The answer determines whether the flat rate needs adjustment or whether it was a one-time variance.
High variance within a job type. If water heater replacements range from 55% margin to 15% margin across the portfolio, something is inconsistent. Either pricing is inconsistent (different techs quoting differently), or job duration is inconsistent (some techs completing in 1.5 hours, others taking 3 hours), or parts cost is inconsistent (different supplier sources, different parts quality levels). The report surfaces the variance. The investigation determines the cause.
Subcontractor cost proportion. Jobs with high subcontractor costs and low margin indicate either subcontractor pricing has not been passed through to customers correctly, or the markup on subcontractor labor is insufficient.
Run the report monthly. Track the average margin by job type quarter over quarter. A declining trend on a specific job type is an early signal that costs have moved without a corresponding price adjustment. The P&L reading framework that sits above this is in how to read a profit and loss statement as a home service business owner.
How Clint Connects QuickBooks and CRM Data
Clint connects QuickBooks financial data with CRM job data to give a complete profitability view that neither system provides alone. A text query of "what is our job profitability by tech for the last 60 days?" pulls CRM job records and matches them against QuickBooks project cost data, returning margin per tech. QuickBooks shows what each job cost. The CRM shows which tech ran which job. Clint surfaces the combined picture without a manual export and join.
This is most useful for tech-level analysis. QuickBooks knows the cost of a project. The CRM knows which tech ran it. Neither system alone answers the question of which tech produces the best margins. Together, they do. See how to connect CRM and accounting data for the connection setup.
Sources
Frequently Asked Questions
4 questions home service owners actually ask about this.
01Do I need QuickBooks Online or does QuickBooks Desktop work?
QuickBooks Online is the version with the Projects feature as described here. QuickBooks Desktop has a job costing feature but it works differently and is not covered in this post. If your business is still on Desktop and you are not using job costing, migrating to QuickBooks Online at renewal time is worth considering. The Projects feature and the integration ecosystem around QBO are more developed.
02How do I handle jobs that span multiple months?
Create the project when the job is booked. Code costs to the project as they are incurred throughout the job. Invoice the project when the job completes or at billing milestones. The profitability report will show partial project data while the job is in progress and full data once the invoice posts. For long jobs, review the project mid-job to catch cost overruns before the final invoice is sent to the customer.
03My CRM already creates invoices in QuickBooks. Does that automatically create a project?
Not automatically in most integrations. The CRM typically creates a customer record and an invoice in QuickBooks. You still need to create the project manually in QuickBooks and link the invoice to it. Some CRM-to-QuickBooks integrations (notably ServiceTitan's integration) have more sophisticated project mapping. Check your specific integration's documentation. If the invoice does not auto-link to a project, the cost-side entries will not flow into the profitability report correctly.
04What if my business does not use QuickBooks?
Job costing is available in most accounting platforms including Xero (Projects), Wave (limited), and FreshBooks (Projects). The workflow is similar: create a project per job, code revenue and costs to the project, run the profitability report. The QuickBooks-specific steps described here do not apply directly, but the logic of what needs to be captured and why is identical.
See Clint in action
Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.