News and advice for small business owners, by small business owners.

Call us for free financing advice:

1 (800) Fundera 386‐3372

Job Costing in QuickBooks Online: Your How To Guide

I’m sure you’re still hearing rumors that QuickBooks Online does not do job costing?

This is not true. QuickBooks Online has been able to job costing for 1099 contractor costs and other expenses for years. At this point, there’s still no integrated payroll option that does labor costing. However, Cathy Iconis of the Iconis Group has a very comprehensive tool so that the necessary Journal Entry to allocate payroll costs to jobs can be easily created.

Prepare QuickBooks Online for Job Costing

Before you can start tracking costs, you’ll need a QuickBooks Online Plus subscription, because Budgets are not available in the Simple Start or Essentials levels.

We’ll first need to turn these preferences on in Company Settings. Click the Company Name and/or Gear Icon in the top right hand corner of your QuickBooks Online Screen, then click Company Settings.


In the Sales tab, click on the Sales form content in the menu, and check the box next to Custom transaction numbers. We’ll need this for progress invoicing and receiving partial purchase orders:


The next thing we need to do is tell QBO that we want to track expenses by customer (and if necessary, tell it that we want to make expenses and items billable). To do this, click the Expenses tab in the Settings screen, then click Bills and expenses to edit. You’ll want to check Show Items table on expense and purchase forms, Track expenses by customer, and Make expenses and items billable:


Don’t forget to hit that Save button!

The Markup and option to track billable expenses and items as income are determined by your industry and the specific processes your business has in place.

The last bit of setup we need to do is regarding estimates. Click on the Advanced tab in the Settings screen, then click Automation from the menu. Here, you want to make sure you check the box next to Copy estimates to invoices (and you can choose whether to allow pending and accepted estimates, or just accepted). Click the Save button, then Done in the bottom of the Settings screen.


Your Customer List

We’ll be using sub-customers (these are called Jobs in the desktop editions of QuickBooks), and choosing the Bill with Parent option in the customer preferences:


Your customer list, once it’s set up, will look something like this:


Your Products/Services

To use Products/Services (what is called the Item List in desktop editions) for job costing, you’ll need to tell QBO that you purchase each one from a vendor. Not everything on this list needs to be set up this way – just those that you pay a contractor to do or any products that you purchase to sell. To access this list, you’ll want to click the Company Name/Gear Icon, then choose Products and Services from the List menu:


This example is for contracted labor:


This second one shows an “non-inventory” part that is purchased and either sold to customers or used in a job:


The setup is the very similar for both – it’s just the details like name, description, sales price, purchase cost and the accounts that differ. If this was an inventory item, we would have checked the box next to I track quantity on hand for this product.

Estimates & Invoices

Generally, the workflow is to create an Estimate, have your customer approve it, then convert the Estimate to an Invoice. To create an Estimate, the easiest way is to use the Quick Create button (what I just call the spinny plus) that is visible on any QBO screen.


Enter the information into the Estimate form, then Save and send to your customer.


Once the customer approves the Estimate, you’ll be able to convert to an invoice. One thing I recommend doing is getting the signed estimate approval and any engagement agreement signed, scanned and attached to the estimate via the attach documents feature.

With QBO, we run into a slight issue in that we cannot progress invoice by default from an Estimate. It’s an all or nothing option built into the product when creating the invoice.

I do have a work around for this, and it’s the reason we turned on custom transaction numbers in Company Settings.

In the above example, I would change the Estimate #1002 to #1002.01 to indicate that it was the first of the estimates used for the project (alternatively, you could just add another Estimate #1002, duplicating the reference numbers, and use the internal memo field to indicate 1, 2, 3, etc). Add the description of the total project in the description of the Estimate so the customer can see the details. Now, duplicate the estimate by clicking the Copy button at the bottom of the screen. Now, edit the line items of the new Estimate to show the remainder of the project, with the details in the description area of a line that has no item in it, just as you did in the original one. Now number this one 1002.02. Should you need more than 2 invoices, keep repeating the process and numbering accordingly. (Keep in mind, you’ll need to adjust the next new Estimate to the next actual number in the sequence – in this case, it would be 1003, but QBO will default to 1002.03).

You can see below how these 2 duplicate estimates will look on the Transactions/Sales page:


We’ll add the first half of the job to an invoice – from the Sales Transactions page you can simply click the Start Invoice tab in the Action column, as seen in the above screen shot. We’ll add a description to the invoice that this is the initial 50% down to begin the project:


You’ll do the same with future progress invoices. I’m not going to show that here, but I’ve done in my QBO account so that we’ll be able to see reports that show a completed project.

You’ll also want to make sure you assign the customer to any expenses you purchase. To make this easy to view, I’ve added materials and labor on one Vendor Bill:


Now that the job is completed, we’ll take a look at the P&L for this it. There are two ways to do this.

One is via a standard P&L – you open up the P&L report (Reports tab > Recommended Reports > Profit & Loss), click Customize. In the Customize screen, click Rows/Columns on the left, and change the columns from Total Only to Customers. Now click Lists on the left of the screen, and filter by choosing the sub-customer you want to see. When you’re done, click the Run Report button.


This is the report you’ll see:


The second way to view this information is to start with an Income by Customer Summary report (Reports tab > All Reports > Review Sales > Income by Customer Summary):


This summary report looks like this:


To view job detail, just click on the sub customer to drill down for a more detailed P&L:


Estimates vs. Actuals Report

Let’s say you want to compare what you estimated your costs & revenue to be for a specific job to the actual amounts. At this point in time, QBO still does not have a default report to show this information. Again, I have 2 methods to get it! The first is to use a simple Excel spreadsheet. Format your tab in the manner in which you’ll want to view the data and enter your estimated amounts. Add appropriate columns for actuals and differences, entering the formulas for the difference rows, but leave actuals blank.

Once you start accruing income and expenses, you can run reports in QBO –either starting with the P&L or the Income by Customer Summary – and save in Excel. Rename the file with the default name QBO assigns when it is downloaded (ie: KildalServicesEst2112Actuals.xlsx). Open both the excel file that has your estimated amounts, and link to the new spreadsheet. If you’ve never linked spreadsheets this can be done by entering the = sign in the cells where you want actual totals, then clicking the appropriate cell in the downloaded report file (you have to have both files open at the same time to do this). Now, you can run that report in QBO and save as the job progresses. Just remember to save it in the same place and rename it to the same name each time, or your link(s) won’t work. For more information on linking spreadsheets, click here. Seth David from has a video on how to link within one Excel workbook, but the same process works when linking to a different workbook.

The second (and I think easier) option is to use Budgets within QBO. Because QBO allows for more than one budget per fiscal year (something the desktop editions doesn’t do), each customer and/or sub customer in QBO can have a separate budget. Or even more than one! We use the budget feature in QBO to enter the estimated costs and revenue.

To do this, from the Company Name/Gear Icon, choose Budgeting:


In the window that opens, click the Next button. Now choose to start from scratch:


The next choice is to subdivide your budget by customer:


The third screen will ask to what fiscal year you would like to assign this budget, and it will also ask you to name it. I like to enter the Customer:subcustomer with original estimate number, but you can use whatever naming system works best for your business. Once you’re done with that, click the Finish button.


QBO will now direct you to the budget screen, where you will enter your estimate amounts. Make sure that you select the correct Sub-customer from the drop down menu.


To enter your estimated amounts, select the lines, one at a time, that correspond to the income and expense products or services related to the job. After you enter the information for one line, click Save & Next to get to the next line. When you’ve entered all of the amounts, click the Finish button. (You’ll want to make sure you’re entering them into the correct date range as well – do you want to see an annual estimate, or will you be looking at this report by month or quarter? Double check that before you hit Finish.)


To review your estimates vs. actuals, we need to customize the Budget vs. Actuals report (Reports > Recommended > Budgets vs. Actuals). Open the report, click the Customize button. In the Customize screen, click Lists on the left side and change Customers from All to the specific sub-customer you want to review. Once you’ve finished, click the Run Report button. (I would also suggest memorizing this so you don’t have to customize for that job every time.)


When I run this report in the QuickBooks Online Test Drive account, even with the report basis set to accrual, the actuals only show up if the customer invoices and vendor bills associated with the sub-customer are paid. However, for this example, I got exactly what I was looking for:


You can use this method for labor costs if they’re incurred via a vendor. If you’re using Intuit Online Payroll, QuickBooks Online Payroll or Intuit Full Service Payroll, I suggest using Cathy Iconis’ Job Costing Template, available here.

One quick note, before I say thanks for sticking with me through this lengthy post: to receive a partial purchase order, you’ll need to implement the same process for Purchase Orders as you do for Estimates – duplicate, edit, renumber, etc.

Whew! We made it! One more resource I want to share is the video that shows this that my co-host, Woody Adams, created. Happy job costing in QuickBooks Online!

Stacy Kildal

Stacy Kildal

Contributor at Fundera
Stacy Kildal is owner/operator of Kildal Services LLC—an accounting and technology consulting company that specializes in all things QuickBooks. In 2012 & 2013, Stacy was named one of CPA Practice Advisor’s Most Powerful Women In Accounting. Stacy is one of the three hosts for the QB Show and has also been featured frequently on Intuit’s Accountant Blog, Community "Ask the Expert" forums, at various Intuit Academy To Go podcasts, as well as hosting a number of Intuit Small Business Online Town Hall sessions. She is a big fan of working mobile and has been recognized by Intuit as being an expert on QuickBooks Online, having written Intuit’s original courses for the US, Singapore and Canadian versions.
Stacy Kildal
  • Ryan Griffin

    Dude, this is extremely helpful. I can’t believe there isn’t accommodation for this built in to QBO. I am a contractor/handyman and it only makes sense to track by the project/job. I appreciate you taking the time to explain this. If there are any updates to this, I would love to hear about them. Thanks Again!

  • Pingback: falso bulgari bzero()

  • dsides

    What version on QBO was this? I just signed up for the Starter level and it does not have these options.