Construction jobsite with illustration of QuickBooks job cost report

QuickBooks is among the most popular accounting software for construction companies, with built-in tools that allow users to create custom reports. Accurate job costing is essential use historical experience to forecast job expenses and minimize any potential cost overruns. In this how-to guide, we’ll show you how to assign expenses and revenue to specific jobs in QuickBooks, so you can track your financial performance by customer. This process allows you to make budgetary adjustments in real time and avoid any unpleasant surprises upon completion.

For construction companies, realizing profit on a completed project depends heavily on having the right tools. It could be the physical implements needed to build an office complex or the financial analytics to determine if a project is on-budget. Both types of assets help contribute to your success.

How to set up job costing in QuickBooks

The examples we use below are based on QuickBooks Online, and job costing is only available with Pro or Advanced subscriptions. Those with Simple Start or Essentials will need to upgrade in order to track financial performance on specific projects.

If you are using QuickBooks Desktop, the specific language may differ slightly — we’ll include specific instructions for that platform as well.


In the article, look for the Levelset logo to learn how the QuickBooks integration can be used to automatically track deadlines for notices and mechanics liens.

Step 1: Enable Job Costing in Account Settings 

You can create a list of current projects by starting out on the Home screen in the QuickBooks Online Plus or Advanced version. From the Business Overview screen, click on the “Gear” icon in the upper-right corner of the screen and then select Account and Settings from the list.

QuickBooks Job Costing - Account Settings

Turn on customized transaction numbers

From there, the Sales tab lets you select customized transaction numbers. You’ll eventually need this to track and review invoices in progress.

QuickBooks Job Costing - Custom Transaction Numbers

Track expenses by customer

At this point, you can navigate to the Expenses tab and let QuickBooks know you want to track expenses by customer. You can also make expenses billable to those customers by choosing that option on the Bills and Expenses menu.

QuickBooks Job Costing - Track expenses by customer

Turn on automatic invoices (optional)

Any estimates you create can be instantly transformed to customer invoices further along in the process. To enable this, open Advanced options and choose the “Automatically invoice unbilled activity” selection under Automation settings.

Not all contractors will want to enable this setting.

QuickBooks - Automatically invoice unbilled activity

After all these steps, be sure to save your work.

Step 2: Create Customers & Projects

Now that you have established the basic job costing configuration, you will be able to see a more detailed view of each job in your Projects list. But first you need to create a customer to assign the project to (if they don’t already exist).

Create a customer

To add a new customer, select “Get paid & pay,” and then choose “Customers” from the menu. You will see an option to create a New customer. If you select the drop-down arrow, you can import a customer list from an Excel or Google Sheets file.


When Levelset syncs with your QuickBooks invoice data, we will automatically pull the customer name and address for you to include on a preliminary notice.

Add the job

Now you can create the job on which you want to track expenses and profit. Choose “Business overview” from the left-hand menu, and select “Projects.” This will display a list of all open projects and some basic details on income and expenses.

Choose “New project” to create a new job.

Some contractors may already be tracking projects as a “Sub-customer.” If you have QB set up this way, click the arrow next to the button and select “Convert from sub-customer.”

At this stage, you can view specific customers and then see a further breakdown of each individual job for the customer that may be in progress, or already completed. 

For instance, you may have done some exterior restoration for a retail business and now have a current project where more display space is being added for that client. 

  • QuickBooks Online: View job costing data in the “Projects” category by selecting that option from the Business Overview menu
  • QB Desktop: Choose the “Jobs” label

Step 2: Create products & services

Once the customer setup is complete, your next task will involve applying job costs to each specific project. 

Set up a list of products & services

You can do this in QuickBooks by setting up a list of products or services in the application. This allows you to customize job expense categories to a finely-tuned level of detail. Categories that can be created in the exterior trim phase, for instance, might include siding, exterior wall finishes, stucco, brick veneer, etc. 

You can find Products & Services in the Lists menu under the “Gear” icon in the upper corner, or in the “Get paid & pay” menu on the left.

  • Using QuickBooks Desktop? Look for “Items.”

After completing your Items setup, which should include billable labor cost per employee deployed on the job, you can create a project estimate. 

Step 3: Create estimate for the job

Select the QuickCreate option that’s visible in any QuickBooks screen. It may appear as a plus sign at top-center of the page, or “+ New” in the upper left. The ability to create invoices, checks, expenses, and estimates will flow from the dropdown menu once you click on that plus sign. Select “Estimate” from the list.

Assign estimate to the job

On the estimate screen, select the correct job from the Customer list. While you can create multiple estimates for each job, it’s easier for most contractors to create a single estimate for the entire job, even if they don’t plan on invoicing for the entire project at once. Once we get to the invoicing step, we’ll show you how to slice and dice the estimate to invoice for portions of the work for progress billing.

Add products & services to estimate

On each line of the estimate, you can enter materials and labor costs by adding a service date, type of product or service, description, quantities, rates, and dollar amounts, which can be labeled as taxable. For either a product or service rendered, you can indicate in the detail box that work performed or materials acquired are purchased from an outside vendor.

QuickBooks assign estimate to project

Upon entering all the data, save the estimate. This will allow you to choose it during the invoicing process. If you need customer approval, you can email it to them at this point.

All pertinent expense and subsequent income information will now flow to each customer. You can also view costs and revenue by job or project. (Some QuickBooks versions use “sub-customer category” instead of projects.)

Step 4: Create invoices during the job

QuickBooks allows you to create invoices from scratch — or convert an estimate into a single invoice or progress invoices automatically. This is where creating a parent estimate for each project can save you a lot of time down the road.


Levelset uses the information in your QuickBooks invoices to track deadlines and generate notices automatically. You can set up your Levelset account to sync every time you create or edit an invoice.

Turn an estimate into an invoice

Select “Invoice” from the “+ New” menu to bring up a new, blank invoice. Next, select the Project from the “Customer” drop-down menu. QuickBooks will automatically prompt you to add the estimate that you already created to this invoice. Click “Add.”

QuickBooks create invoice from estimate

Learn more: How progress billing works on construction projects

QuickBooks - how much do you want to invoice?

Choose amount to invoice

A screen will appear asking you what percentage of the Estimate you want to add to the invoice.

You can also select “Custom amount for each line” if you are not using a straight-line percentage across the board. QuickBooks will allow you to edit the amount billed in each line item.


For the project address to appear on your notices automatically, enter this address under “Shipping” on your invoice. If you don’t see a shipping field, click on the gear icon to enable it on the invoice level.

Step 5: Create a job costing report

During the progress phase of a job is where QuickBooks job costing becomes very useful for your bottom line. At any point up to and after completion, you can use QB reports to show you how the job is progressing in terms of profitability.

Open a “Profit and Loss” report from the “Reports” menu under “Business overview.” Next, click the “Customize” button to add custom filters. Scroll down to the “Customer” field, where you can view job costs by customer or by each job.

QuickBooks create job profit & loss report

From this report, you can track income and expenses for a particular job in a snapshot mode. You can cover a month’s time, for example, repeating the process and progressing right on up until the project is completed, when the job’s final profit margin is generated.

Keep in mind that the report will be different depending on the accounting method that your company uses. Cash basis only records income when it is received, while accrual will record income when it is billed.

Also note that, even when you select a specific job, QuickBooks doesn’t include that job or customer name on the report itself. If you’re generating a dozen job costing reports on specific projects, add the job name in the Notes section of each report to make comparison easy.

Quickbooks add job name to profit & loss report

Levelset automatically pulls the customer information from QuickBooks, so you don’t need to enter that information again on your notices or other payment documents.

Use QuickBooks & Levelset to easily track your deadlines

Proof of the value of QuickBooks becomes obvious for construction firms running multiple jobs and wanting to see either a big-picture standpoint of progress or a more detailed customer-by-customer view. Whether you need to make mid-stream adjustments to a current job or glean valuable information from completed projects, this popular accounting software can help you achieve both objectives.

But don’t forget about your most important objective: Getting paid. Once you generate and submit an invoice, that income becomes an account receivable. Until that revenue actually hits your bank account, you can’t use it to pay bills or take on new jobs. For construction businesses, protecting your right to file a mechanics lien is the single most effective way to improve collection rates and cash flow.

Lien Calendar Deadline

Check your payment deadlines on any job

Enter job data into the free Lien & Notice Deadline Calculator to make sure your lien or bond claim rights are protected.

Using Levelset’s QuickBooks integration allows you to easily pull job information into a platform that automatically tracks your deadlines for notices and mechanics liens in each state, and allows you to send these payment documents to your customers with the click of a button.

Was this article helpful?
3 out of 6 people found this helpful
You voted . Change your answer.