Cloud Accounting QuickBooks

Job Costing in QuickBooks Online – Sub Customer Method

Written by Stacy Kildal

Yes, I swear it can be done. I even have a way to get Estimates vs. Actuals.

The official party line is that QuickBooks Online does NOT do job costing. Intuit states: “Currently, QuickBooks Online does not offer a specific job-costing feature…”, but there are a couple ways you can set up Job Costing in QBO.

The method mentioned in QBO help is to use sub-customers (the equivalent of Customer Jobs in desktop editions), and selecting the Bill with Parent option in customer preferences.

QBO Sub Customer

To do this you’ll need to be using QBO Plus and have billable expenses turned on in preferences as well.

Your customer list will look something like this:

QBO Customer List

Next I would set up double-sided items in the Products & Services List – anything you pay a contractor to do or any products that you purchase to sell. The examples below show the settings once you begin editing an existing item, but you can do the same thing when creating a new one.

The first one is contracted labor:

Contracted Labor item

The second is a fountain product:

Sold item

As you can see, the process is identical for both. It’s just the details that vary. You’ll have to determine how you want to set up the chart of accounts so that it will work the best for you (or your client, if you’re an accounting professional doing the setup).

Now you can create your Job Estimate from the Income List:

QBO Income List

Enter the items you need onto the Estimate:

QBO Estimate

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.

As I mentioned in a previous post, when it comes to converting an estimate to an invoice, inherently, it’s all or nothing – there’s no progress invoicing. However, there is a work around for this: Edit the original estimate to show what your first invoice will be, and change the estimate number. For instance, in the above example, I would change the Estimate to 2112.01 (you’ll need to have custom numbers turned on the Sales Form Entry section of Preferences) to indicate that it was the first of the estimates used for the project. 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.

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. Number this one 2112.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 2113.

You can see below how these will look in the Income List:

Income List with Estimates

We’ll add the first half of the job to an invoice. From the Income List you can simply click Copy to New Invoice, as you can see in the above screen shot. We’ll add a description to the invoice that this is the initial 50% down to begin the project:

Invoice from Estimate

I also went ahead and billed the remainder, from the duplicate Estimate, so that we can see reports on a completed project.

Now we’ll add our expenses. To make things easy, we’ll put materials and labor on one Vendor Bill:

Vendor Bill

Now we have our job billed out and complete, we have our expenses in, so we can take a look at the P&L for this job. There are two ways to get this.

One is via a regular P&L – you open up the General P&L and click Customize. In the customize screen you’ll change the Columns from Total Only to Customers. Then in Lists, you’ll filter it by choosing the sub-customer (job) you want to see.

Customizing the P&L

This is the report you’ll see after clicking the Run Report button:

Modified P&L

Another way to see this would be to start with an Income By Customer Summary report:

Income by Customer Summary

Then drill down into the sub-customer (job) Net Income total and customize it to add the job name to the header:

Report by Sub Customer

Now for the GOOD stuff. There is no “canned” report to show Estimates vs. Actuals in QBO. However, I have 2 methods to get this.

One way is to create an Excel spreadsheet that matches the format 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 your reports – whichever you’d like, either starting with the P&L or the Income by Customer Summary – and save as Excel. Rename the file whatever you’d like (i.e. KildalServicesEst2112Actuals.xlsx). Link the original Excel sheet you’ve created to the new spreadsheet, by putting an = sign in the cells where you want actual totals, then clicking the corresponding cell in the downloaded report you just named. 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 links won’t work.

The other way is to use Budgets. That’s right! Budgets! Each sub-customer (job) in QBO can have a budget – because you can have more than one budget per fiscal year in QBO.

I’ll repeat that: QBO allows for multiple budgets per fiscal year.

Ready for this one? Let’s go! From the Company tab, choose Budgets, then click the New Budget button. Choose to start from scratch:


On the next screen, choose the option to subdivide your budget by customer:


On the next screen, choose the fiscal year, then name the budget. I like to put the Customer, sub-customer and estimate number, but you can choose whatever works for you (or your client) Click the Finish button:

Fiscal Year

The next screen is where you enter your estimates. First, make sure you use the drop down to choose the correct customer name:

Select customer name

Now for the amounts; you’ll select the lines that correspond to the income and expense related to the project. In our case, we’re looking at Landscaping Services:Job Materials:Fountains and Garden Lighting and Cost of Goods Sold:Job Materials for the fountain, and Landscaping Services:Labor:Installation and Cost of Labor:Installation Labor for the labor. After each line, click Save & Next to get to the next one. I enter the totals in the appropriate months that the billing is expected. When you’re done, click the Finish button:


To see Estimates vs. Actuals, you’ll need to do some customizing. Go to Reports, budgets and open a Budget vs. Actual report, then click Customize. You’ll want to change the customer from all to the customer for whom you want reporting, then set the date range as needed (you must choose entire months), and then click the Run Report button.

Customize Budget

I used the QBO sample file for this, and despite the Budget vs. Actual report being set to accrual, it would only show actuals if the customer invoice and any related vendor bills were paid – not sure if this was a glitch in the program or just with the sample file. However, it did give me exactly the information I wanted:


If you’re using QuickBooks Online Payroll, you can get the labor costs for employees, because you can enter timesheets and assign time to customer/sub-customer. If you’re using Intuit Online Payroll, there’s a pretty impressive job costing option available for free.

The other way to do job costing is just use Class Tracking for each job, and my next article will cover that method. Stay tuned!

About the author

Stacy Kildal

Stacy Kildal is owner/operator of Kildal Services LLC, located in Waterford Michigan—a full service bookkeeping company that specializes in all things QuickBooks. As a Certified Professional Bookkeeper and Advanced QuickBooks ProAdvisor, she supports QuickBooks clients all over the country, offering payroll, bookkeeping, training and consulting.

She regularly teaches QuickBooks workshops through the local county planning and economic development department, along with community college and continuing education classes for various school districts.  Stacy is one of the three hosts for the Radio Free QuickBooks weekly online radio show.

As a member of the esteemed Intuit Trainer/Writer Network, Stacy has presented many live seminars and webinars. Her attendees enjoy the passion she exhibits for her work and can easily relate to the many real life examples she uses during these presentations. She has also been featured frequently on Intuit’s 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 an big fan of working mobile and has been recognized by Intuit as being an expert on QuickBooks Online, having written the Intuit Academy courses for the US, Singapore and Canadian versions.

Kildal Services LLC provides consulting, speaking and writing services to clients (including other accounting professionals) nationwide.


      • How do you track expenses using this method? For example, if an employee has to travel on behalf of a client, I want that expense attributed to a job, but do not necessarily want that expense billed to the client. Therefore, the ‘payee’ should be separate from the customer… how do I recreate this? In my version, all I can do to recreate job costing is to change the payee to the sub-customer… however I lose the value/functionality of the ‘payee’ then

  • Stacie – Thanks for showing the progress invoicing workaround. It’s way better than what I’ve been doing and I am going to implement immediately!


  • Hi Stacy:

    This is very helpful. I have used QB for over 15 years but I am now taking my first stab at setting up QBO. Is it possible to integrate QB Timer with Project Costing in QBO Plus? I am setting up a Professional Service Company with multiple clients and contractors. Payments for time worked will be the biggest cost of goods sold item.

    Many thanks,

    Gail Reid

  • Nice article, very handy. I have a client who wants to use Quickbooks Online but he has lots of requests such as project costing, reports by project, profitability by project, cashflow etc which means at a bare minimum he would have to go for Quickbooks Online Plus, but I was afraid that QBOP wouldn’t be sufficient.

    He gave me a list of requirements – about 9 items, most seem easy enough to cater for, but project related stuff I was unsure – If I sent you the list, would you be able to comment on whether QBO can physically do it.

  • Terrific post, thank you.

    Have you figured out how to add Employee Payroll costs into the reports? There appears to be no facility in QBO to link employee hours to job cost reports? For example, Tim worked 20 hours this pay period on Customer A, 20 hours on Customer B, and the all-in expense of his payroll, taxes, benefits, etc. gets applied appropriate to the Customers?

      • If you use the Single Activity Sheet or the Weekly Timesheet to generate Payroll, you can assign the employee hours to customer jobs. Not sure if the taxes and benefits do, but the hourly pay does.

        • Hey Alicia, I cannot assign the hourly pay to specific customers (although the sub-customers are categorized line by line on the QBO weekly time sheet. I use Tsheets which transfers employee timesheets (categorized to specific sub-customers) to the QBO weekly timesheet. From here we run payroll. The “Time Activities” by Customer Detail” pulls just fine but this payroll cost is not reflected on a Customer Specific P&L. I have no clue why.. the materials, vendor bills and everything else categorizes to that customer just fine on a filtered P&L, but for some reason the payroll cost does not.
          The odd thing is when I pull a P&L encompassing “all customers” the labor cost is included but when I filter the customers, it disappears completely. I’d consider myself very advanced in QBO functionality and work-arounds but I have not been able to figure this one out for the life of me! If someone could help me I would be forever grateful and even willing to pay.


      • Thank you for the article and the class at the Scaling New Heights Conference. I appreciate your persistence and cleverness in finding workarounds no matter how cumbersome – at least you shine a light).

  • If an employee works the entire pay period on the same job can there be job costing? I am setting up a new account and I really want to use QBonline but I have to have the job costing clear in my mind. Do you consult over the phone?

  • Hi Stacy, thanks for the work around. I am a newbie coming from the desktop version and really need to get a handle on which of our services are profitable so this will be a great help. I have set up my accounts as described here and one thing annoys me. My sub-customer account where I create an estimate takes the name of the job I created and puts it in the address field. Okay for me and my screen to get the info I want to do some job costing, but I would like my customers to receive estimates and invoices with the correct information entered from the parent customer file. I notice on your estimate, the address field says Name/Address. Mine just says address can I change that field somewhere? I looked in customize form and don’t see an option to change names of standard fields. I just don’t want to send clients estimates with the name of the project in a field called address. Any ideas for me? Thanks in advance, Steve

  • Hi Stacy,
    I have a new home remodeling contractor that wants to work in the cloud/online and with mobile apps in order to track project activity and store docs/invoices in real time as much as possible. I know QBO Plus provides estimates, class tracking, and this work around for job costing; but still not sure if this is preferable to QB Desktop Premier Contractor for this particular client. Do you think QBO Plus is appropriate for construction contractors? Or is QB Premier Contractor still preferable for contractors in your opinion? Also, are there specific construction-related apps compatible with the desktop contractor version or online version that you recommend and that integrate in real time?

    • Mike,
      I think that QBO can work if the needs aren’t overly complex. I find it works best with general contractors that sub everything out, and have little to no direct labor costs they need to track with payroll. However, I have had contractors that will do the AJE to assign the payroll to the sub customer without issue. It depends on how much you want a cloud solution. Budget is usually a factor as well- 5 users with QBO Plus @ $39.95, vs $40-50 per user per month for hosting Pro/Premier/Enterprise. I love hosting as well, and have clients that use to host their desktop files.

      One new app (full disclosure, at the time of this writing, I have not yet reviewed it) to look at is BuilderTREND:

      • Hi Stacy, are you saying there is a third party app to help us track our payroll cost to a customer filtered P&L in QBO? I have been looking for a solution for over 3 years now.


  • Hi Stacy, I found your article to be the most thorough and easiest to understand while trying to train myself in QBO job costing. I am like a few of the others searching for a way to have payroll merge with P&L per job would like to know do you recommend a spread sheet or service so I can input employee hrs to jobs since QBO does not offer that as of yet?
    Thank you very much for your time.
    Misty S

  • You are AWESOME. This is the best article out there on this issue. I’m setting up a nonprofit accounting system and planned on fund accounting using customer and job tracking for fund source and grant,with class tracking for each program. Unfortunately, I didn’t know that QBO doesn’t have the same job functionality as desktop. You have solved the problem here. Saved me hours of head pounding.


  • Dear Stacy,

    I am new to quick books online and have an essentials package. I have 2 sales managers whom are currently inputting estimates into QBO. The challenge I can see down the road is that I need a way to identify which sales rep was responsible for completing the estimate. Do you have any suggestions.
    Best Regards,
    Daniel Bertrand. Toronto, Canada.

    • Daniel,
      If you use sub customers for the job costing, you could use class or location tracking for sales reps. Another option may be to use one of the 3 custom fields available to add to invoices/vendor bills, but that may limit your reporting options.

  • Hi Stacy,

    I am trying to convert a customer in QB (with associated invoices and invoice payments) to a parent customer with jobs? How can this be done without disrupting any previous activity on the account?



  • Pavlina,

    In QBO, you can just go to your customer list, choose the customer, click edit, and then click the box next to “is sub customer”, then choose the parent you want to which you want to assign them. All the existing transactions related to the customer should follow right along without issue. (I tested this using the new QBO interface, and then I changed it back from being a sub customer and it worked just fine.)

    Hope this helps!

  • Hello again,

    Thank you so much for the explanation provided. It turned out though, that we want to do something different. We have the parent customer and we also have sub-customers or jobs. However all the prior activity is under the parent customer. Going forward we will be using the sub-customers for billing. Is it possible to move the prior activity from the parent customer to the sub-customers, without causing disruptions?



    • Without testing (I’m on my cell phone today), I’m thinking you’ll have to edit each transaction from the parent to the sub. I don’t know of a way to batch reclass by customer – only account and/or class. Sorry! 🙁

  • Thanks for this info. However, in trying to run the P&L report for a specific customer, none of my customers or sub-customers will show in the customer list? Am I missing a step? I did change the columns to Customers and the P&L will show all my customers and sub customers but I would like to narrow it down further.

  • Great information Stacy. Have you ever tried allocating overhead to actual jobs on QuickBooks online? If so, how?

  • Hello Stacy,

    Being that QuickBooks updates very frequently, do you happen to know if this workaround is still applicable in the newer releases of QBO Plus?

  • Hi Stacy,

    It is a great work around, appreciated. However, I believe, the work around is a way to present the Profit & Loss by Job (Job as a sub-customer) effectively but has a very limited utility as it cannot address open questions like inventory tracking / valuation and work in process in job costing environment, of course due to QBO’s inherent limitations. Please correct me if I have erred.

  • Hello Stacy,

    Thank you for the great tutorial. I am a contractor and have signed up for QBO. I’m a little confused about the sub customer method. We currently track job costing for customers. I.E. Vendor Invoices posted to a particular job/customer.

    Can you clarify how the sub customer works when you are trying to have a vendor invoice post to a customer?

    Thank you.

    • Hi Stephen,
      We work with a lot of contractors so my “parent” company will be ABC Contractor. When I go to add a job for the XYZ residence, i go into my parent account, select new estimate and then under customer I select “add new” and I type in my project name, click on details, and check the box that says “is a sub-customer of” then select ABC Contractor from the list. I also always select “bill to this customer” to keep all the projects separate.
      When I’m entering vendor expenses, i just look for the project name under the customer field and add it to that vendor invoice.

  • Great help!
    Once i’m in the “budget” window and I select my customer, it only lets me enter numbers for “income”. My COGS doesn’t show any sub lines to enter in the estimated cost. And I do have multiple categories under my cogs, so I don’t know why it’s only showing the sub categories for the income lists?

    thank you,

  • This is great stuff. I think it’s all dependent on verticals. Sectors like engineering and construction can have production schedules with so many moving parts, you have to have the right ERP system, with the right job costing module and the right implementation partner to join all the dots to ensure you’re going to see maximum ROI.

    • Using Sub Customers and billable items on vendor invoices you can tie out all the material and sub cost. Employees cost is more of a challenge, yet I figured out a way with a third party payroll.(test only)

  • Hi Stacy-

    Just saw your article. Thank you. I’m a QBO newbie in remodeling. I use client/subclient for customers/jobs as you talk about. It seems to work better with our linked job management app. I’ve noticed a couple of strange things I thought you might understand–sometimes for the same job, I get 2 subclients–one has the name of the job, and the other is the same but tacks on a random number afterwards like “Smith remodel (255)” What’s going on?

    2nd issue–QBO doesn’t seem to like the job as subclient strategy because it keeps asking me for permission to turn the subclients into jobs. I’m afraid that I will accidentally hit the wrong button and undo my set up. How do I tell QBO to chill?

    • Robb, I don’t think that Stacy is responding to comments in her old articles here – she hasn’t written for Accountex Report in a very long while.

      This article is pretty old, QBO has changed quite a bit since then. They’ve introduced projects/jobs since that time, for a different approach. I’m not sure if Stacy’s method still applies. You might look at this article for some info: – but note that it might also be a bit out of date, as this is an area where Intuit is making a lot of changes. That is one of the issues with QBO – nothing is set in concrete, things come (and go) all the time.

Leave a Comment