Using QuickBooks Zero-Dollar Checks to Record Payroll Costs by Job and Class

Written by Doug Sleeter

See a video of Doug Sleeter demonstrating this process:


If you use an outside payroll service (or payroll software from a source other than Intuit) to process your payroll, using zero-dollar checks may be the easiest way to enter job cost payroll expenses.

One advantage to this method is that it does not require you to subscribe to any of the QuickBooks payroll services, and it does not cost anything to implement. In fact, you can completely turn off the payroll option in the Preferences window and you’ll never see any warnings about downloading tax tables or setting up your payroll. However, this method only approximates the payroll costs for jobs and classes, meaning that the amount of payroll expense allocated to each job and class will be based on the average hourly payroll expense of putting one person on any given job.

  1. Using a journal entry, enter the totals for your payroll into the general ledger just as you normally do when using a payroll service. This entry should credit the bank account for net pay, and debit the gross wages, payroll taxes, and other accounts as necessary.
    Journal entry to record payroll from payroll service reports
  2. Compute the average cost incurred to place one person on any given job for one hour. To calculate this amount, you should look at your total payroll expenses for a given period (e.g. last quarter) including payroll taxes and worker’s compensation, subtract all payroll expenses are not job costed (e.g., officer salaries), and then divide by the total number of hours all employees worked on all jobs during the period. For the purposes of this discussion, we will assume the average hourly expense to be $18.00.
  3. Create a Bank account called Payroll Service Clearing. This will be a clearing account used to record the zero-dollar checks for the payroll job costing.
  4. Create an Expense account called Payroll Job Costs.Note: If you have long-term contracts whereby you capture job costs on the balance sheet in an asset account, you should use an Other Current Asset instead of an expense for Payroll Job Costs. Then, continue with the setup and transactions shown in this method.
  5. Edit each existing Service Item in your Item list, making them two-sided Items. Enter “Payroll Costs for Jobs and Classes” in the Description on Purchase Transactions field, enter “18.00” in the Cost field, and enter “Payroll Job Costs” in the Expense Account field. Then click OK to save your changes.
    Edit each service item to include the Payroll Job Costs account and average cost per hour
    Note: This change to your Service Items will have no effect on their use in Sales Receipts or Invoices.
  6. Create an Other Name record (not an Employee record) for each employee.
  7. Enter daily time sheet information for each employee using the Other Name record you just created. On each timesheet, include the Service Item, the name of the job on which the employee worked, and the class (if applicable).
    Detailed timesheets with jobs and classes
  8. Open the Write Checks window and select Payroll Service Clearing from the Account drop-down menu.
  9. Enter the employee’s name (Other Name) on the Pay to the Order of field of the Check. Then press TAB.
    Write Checks window with employee's Other Name in the Pay to the Order of field
  10. QuickBooks will notify you that the name you entered has time sheet data in the file and ask if you want to use this information when creating this check. Click Yes.
    Pay for Time Worked window
  11. Enter 01/01/2007 in the Start Date field and 01/31/2007 in the End Date field. Then click OK.
  12. Select the period for which you want to job cost payroll expenses. If you use this method monthly, enter the beginning and ending date of the month. If you use this method quarterly, enter the beginning and ending date for the quarter.
    Select Time Period window
  13. QuickBooks will then import the timesheet information into the Items tab of the Check, multiplying the number of hours the employee worked by the average cost per hour to place the employee on any given job.
    The Items tab of the Write Checks window with imported time data
  14. Click the Expenses tab and then enter Payroll Costs in the Account field and the amount of the check as a negative number in the Amount field. The net post to the Payroll Service Clearing account and to the Payroll Costs Expense account is zero.
    Use the Expenses tab to zero the amount of the Check
  15. Click Save & Closeto record the zero-dollar check.Since you already used a General Journal Entry to update the General Ledger for payroll expenses, payroll liabilities, and bank accounts, it is very important that this check not increase the balance in the Payroll Job Costs expense account. If it did, it would overstate expenses for the period. You must therefore zero-out the amount of the check.
  16. Review the Profit & Loss by Job report to confirm that payroll expenses now show for specific jobs. Be sure to include the date of the Zero Check created above (01/31/2011) in your report.
    Profit & Loss by Job
  17. However, the Profit & Loss Standard report (and the general ledger as a whole) does not show any balance in the Payroll Job Costs account because you zeroed this account out when you recorded the check.

Profit & Loss Standard report

The Accounting Behind the Scenes

Essentially, this method uses a Check as a zero-dollar journal entry that feeds the job cost and class reports. The Items tab increases (debits) the balance in the Payroll Job Costs expense account by $3330.00, allocating the amount over each job and class on which Mike Mazuki worked for the period. The Expenses tab (Figure 11‑124) decreases (credits) the balance in the Payroll Job Costs expense account but does not affect job or class information. The job cost and class reports will therefore show the expenses by job and class, but the net effect on the General Ledger (e.g., the Profit & Loss Standard report) will be zero.

This is an excerpt from the QuickBooks Consultant’s Reference Guide by The Sleeter Group, available in print or as a PDF file.


Save pagePDF pageEmail pagePrint page

About the author

Doug Sleeter

DougSleeter (@dougsleeter) is the founder and former CEO of The Sleeter Group, an international network of accounting software consultants, and the former producer of SleeterCon, an annual conference and tradeshow for accounting professionals.

In 2015, he sold The Sleeter Group to Diversified Communications (www.divcom.com) and the company has since become The Accountex Network.

He is a passionate leader of innovation and change in the small business accounting technology world. As a CPA firm veteran and former Apple Computer Evangelist, he melded his two great passions (accounting and technology) to guide developers in the innovation of new products and to educate and lead accounting professionals who serve small businesses.

Always in search of the next big thing, he is currently focusing on digital currencies and blockchain technology. He believes these technologies will change virtually everything in global commerce.

The CPA Practice Advisor recognized Doug as one of the "Top 25 Thought Leaders" in the accounting profession and he has been named to Accounting Today's "Top 100 Most Influential People in Accounting" each year 2008 through 2015. In 2013, he was recognized by Small Business Trends with the Small Business Influence Champion award.

In the early 1990s, Doug was a pioneer in developing the first QuickBooks seminars in the country and has since built the largest group of accounting software consultants in the small business accounting profession. Doug serves on several advisory boards for technology companies and has consulted with numerous industry leaders including Intuit, Sage, Apple, and Adobe Systems. 

Doug is the author of numerous books and courseware materials including The QuickBooks Consultant’s Reference Guide, and QuickBooks Complete, a college textbook.
Doug attended both the University of California Santa Cruz and Santa Clara University and holds a Bachelor of Arts degree in Computer Information Systems. Doug and his family live in Pleasanton, CA. Doug's hobbies include woodworking, golf, and lifelong learning.


  • Beautiful. I don’t use these features at present but it is great to know how nicely it can be done. Easy to know I am an accountant! Thank you for sharing.

  • I’ll be Tweeting this as Using QuickBooks Zero-Dollar Checks to Record Payroll Costs by Job and Class when using an outide payroll service as that is a more accurate title. I will also pass it along to my Seattle area clients.

    Of course, if you use Intuit’s service, you don’t have to go through these steps.

    • Keith,
      You are correct that you do not have to do this if you use Intuit’s Payroll services, but the whole point here is that sometimes clients have outside services, and so we accountants have to just deal with that reality. And this is a slick way to accomplish that without a huge amount of work…

  • Would this work to record time that you Don’t want to show on a paycheck. I have to add time to a job, but do not want it on a paycheck. Please help- it is a new job and I have never worked with “time” as an entry before. Thanks so much ] martha pollock houston

  • This is wonderful! We really want to use it and tested it out yesterday. It works like a charm except for one snag. Currently: We do everything by job cost, but as an Accounting Manager I’m having to re-enter the job costs in journal entries as items do not carry over to that portion of quickbooks. With this solution: This absolutely fixes that redundancy, but we now allow everyone with A/P permissions to see salary information and we can’t do that under our company controls. Is there a way to restrict access to a certain type of vendor (such as employees or other names) or does anyone with A/P access now see payroll information under this fix? Or is there a way to enter an employee under the employee center and cut a zero check to them, then simply restrict employee center access? We currently outsource payroll and do not have the payroll feature within QB activated. Thank you for any help!

    • April,
      You are correct, and the best way to mitigate this would be to use some type of “code” for each employee, and make a vendor record for each of them using that code as the vendor name. Then record timesheets and the zero-dollar checks using that code.

      I would like to have some way to restrict users like you’re asking for, but as long as they have access to the checking accounts, there wouldn’t be a way to hide these transactions. So use the coding approach.

  • Hi Doug,

    I use Quickbooks for Mac, 2012. I entered time and when I went to the check screen and entered the employee name the “Pay for Time Worked” window did not pop up. Is this solution for windows only?

    • Meg, this article addresses the Windows versions of QuickBooks. The Mac version of QuickBooks has many differences. I don’t have a Mac version here, so I can’t check on this for you, but it wouldn’t surprise me if it was different.

  • Hi Doug,

    I use QB Premier Contractor 2013. I am an accountant and I’d been in a lot of problems trying to figured it out this issue in my company. I am very thankful for your post. I’ll try this approach.


  • Thanks for the insight. I am a Premier Contractor 2013 user. We have numerous labor rates, for the various employees we have. It appears your approach identifies an average labor rate only. Is there a way to segregate, and track the various labor rates separately, using your approach?

    Thanks in advance


    • Charles,
      Yes, we use an “average” burdened rate in the example so you can quickly fill out timesheets with a single item that includes all of the costs for each employee.

      However, if your employees are billable at different rates, you can create as many service items as you need for each rate. Then, on the timesheets, create a separate line for the hours spent in each billable rate.

      My suggestion is that for job costing purposes, having “close” numbers is just fine. The method above doesn’t track job costs to the penny, but it will give you a very close approximation. This should give you what you need for management.

  • Worked this some more. It works excellent tracking labor costs. We have a dozen workers at various rates. Set up Items for each rate. results are exactly what I was looking for.

    Thank you for this workaround!


  • Doug – Thank you for the great article on zero checks for job costing. Is it possible to have employees entered as “employees” rather than as “other name”? I ask because we use a web based time capture system that syncs with our quickbooks file and it requires employees to be employees.

      • Doug,
        Thank you, I invoked manual payroll which requires a “payroll item” for time sheet entries, then manually revised over one year worth of timesheet data for each employee, created paychecks for the entire period, created a journal entry to zero out the payroll and it worked perfectly! I now have job costs related to time worked on jobs.

        However, I used the fully burdened hourly rate (excluding Overhead) as an hourly salary for each employee, full time or not. We are an engineering firm and my partner would like to be able to plan jobs/projects using multipliers. i.e. fringe factor, overhead multiplier and project profit multiplier. This requires knowing / splitting payroll into two buckets, direct labor and indirect labor. In your experience do you know if QuickBooks Premier Prof Services edition handles “multipliers” or must this be calculated outside of QB? Thank you again!

  • Hi Doug, we have a similar situation where we use an outside payroll service, but we still need to record it in QuickBooks. Is there any way to do payroll in QuickBooks without actually printing checks, or do we have to turn on the Payroll service? We need to record our payroll by employee, customer, class and Item (which are actually locations that we have set up as Non-Inventory Parts).


    • Bridgett,

      The whole point of this article is that you do not need to turn on payroll in QuickBooks to get full job costed payroll information into QB.

      However, you won’t be able to get actual “paychecks” unless you turn on payroll in QB. Are you sure you need “PAYCHK” transactions? I think it should be fine to just use the “CHK” transactions as I create in this article.

  • Doug,

    I followed your whole article and set up the accounts and items, but I don’t know to bring up the timesheet to fill. I am using 2014 version and I have the payroll turned off. Can you please comment on how to bring up timesheet for Other Name items?

    • Mat, do you have an “Employees” menu choice in the top menu? It should show even if payroll isn’t enabled. Under that you should have “Enter Time” as an option, and timesheets there. In the name dropdown you can add a new name, and you can specify that it is an “other name”.

      Note that you have to have “time and expenses” enabled in your preferences. Select “Edit” then “Preferences”, click on the “Time & Expenses” option on the left, select the “Company Preferences” tab, then select the option for “Do You Track Time”.

  • Hi Doug,

    We run payroll weekly using an outside service. A single lump sum payment from our checking account is made to the payroll company. I currently split the check in QB after electronically downloading transactions from our bank account. Do I still need to create a journal entry?

    Thank you!

  • We plan to transition to QuickBooks Premier (Accountant version) but are a combination manufacturing-contractor (Jan 2015 transition).
    We like the method above to use an average “manufacturing” rate on jobs. However, the other workaround I’m looking for is to keep names connected to wages off job cost reports. Various individuals will be reviewing those reports and I don’t want them to have payroll information. So I’m thinking we can use this zero dollar method to record a manufacturing rate to jobs, say $35 an hour, but still use QB payroll to generate payroll, just not enable the job costing features.
    I know it is two steps, but it achieves both things. We only have 8 people in manufacturing so it’s not a big deal. However, any issues with this and duplicating expenses? Thanks.

  • I stepped through the process and it worked! But subsequent attempts are not working. After entering/saving the timesheet, I proceed to write a check. Check # and check date are prefilled, I enter the “other” name, press tab and nothing happens. The auto-fill of the Items tab lines only happened the very first timesheet I processed.

    What would cause this to stop auto-filling?

    • Is the check date consistent with the date of the timesheet (dates?) If not, it wouldn’t pull in the timesheet data. Just a thought.

  • Hi, I followed this and it works great. We have a payroll leasing company so we have one deduction from our checkbook. I break out the deduction on a check to the different expenses. I do have a question? How do I get our payroll with burden to show up in the COGS on our P&L? It use to show up when I did the payroll, but now that I have this service and enter the time as you show in the video, it no longer shows under COGS, its now all under expenses on the P&L. How do I correct this?

    Thanks, Vicci

  • I have been using this method to job cost employees hours. It has worked very well so far. The only problem I have encountered is when I go to write checks. It asks if you would like to use the data from the timesheet. If you click no or cancel it will not ask you again. I have a few timesheets that haven’t been cleared due to this. Is there a way to do this manually?

    • What if they are already set up as an employee and not other names? The person before me tracked the time using them as employees, so I’d rather not have to re-enter everything.

      • Charlotte,
        Using Employees instead of Other Names is just fine. The reason we recommend Other name is that you can do that even when you have the payroll feature turned off in QB. But either way, your timesheets will work fine.

        • Thanks so much for answering Doug. I do have Payroll turned off, we use an outside service for it. But the time has all been entered to each as an employee, it just never got the rates assigned to the service items, those were just created as $0 amounts. But it looks like if I go back now and do it, we can have more reliable numbers for our job costs.

  • Doug,
    Sorry, I have another question. When I enter a couple of the employees, it doesn’t ask if I want to use data from the timesheet. I know I’m picking the right employee name. Is there something I need to turn on or off in their account? Thanks.

    • Not sure why, but try this:

      1) Verify that each line on the timesheet has a customer, and the “billable” column is checked.

      2) Preferences:
      Edit>Preferences>General>My Preferences – Check the box “Bring back all onetime messages”

      • Thanks….but no, neither one of those worked. I have 7 employees that I need to do this for, and 3 of them, it worked just like you said. I did the date range I needed, it pulled everything up. But the other 4, when I pulled them up, it didn’t ask me about using their time data. All I can think of to do is to delete it from their Employee name and re-enter all of it under their Other Names name. 🙁 Will be very time consuming, so I’m hoping there is another way. 🙂 Thanks Doug.

        • Hi Charlotte,
          This is the same problem I was having. When I would go to write checks for the time entered it would not ask if I wanted to input the existing date. There is a ENTER TIME button between Select PO and Clear Splits just above the Ending Balance at the top of the check. This is how to manually bring up the time data.
          Hope this helps.

    • Sorry, yeah that’s actually what I meant. I’ll have to delete the timesheets created under Employee names and recreate them under Other Names right? 🙁

      • Hi Doug,
        Just before I start doing it….you are thinking that’s my only option too, right? Delete timesheets entered under Employee list and re-create under Other Names list.

        • You shouldn’t need to use Other Names, so try just delete/recreate timesheets using employees. If that doesn’t work, then try other names option.

          Something still seems strange here though. It worked for some employees, but not for others.

          • I know, I just can’t figure it out…..I checked in each Employee file, and I see no differences in how they were entered, options that are checked, etc..

          • HI All,
            I have this same problem. Premier Contractor 2015
            I enter all info exactly as mentioned.
            Write a check in Payroll clearing, time info gets transferred, I write check with zero amount and gets entered into the account.
            But once that happens, it seems to not allow all other time from other employees to be entered and / or logged.
            It’s as if it locks them out.
            I even tried deleting the entries in the payroll service clearing account and now no old timesheets for the “other” names can be written a check for.
            I’m really hating on QB’s,….

  • Excellent article. This will be extremely helpful. Can I ask one question. When I write the check from Payroll clearing and enter Gross Payroll as one of the expenses, can’t I just select Customer/Job then? Will that still allow me to do job costing?



    • Hi Jim,

      That would work, but it takes all the simplification out of this method. The main simplification is that you can just record timesheets each day/week as you go. Then, when you create the paychecks (in payroll clearing), the Items tab fills in all the detail, including job costing automatically.

      So, if you don’t do any of that, then you’d be back to the manual process of hitting gross pay with multiple lines, one for each job/class.

      Hope that helps.

  • I am trying to utilize this method however when I go to the write function the time sheet for the employee is not popping up it is telling me that I need to pay them through the payroll center. Any suggestions

    • Hi Haley,

      Use Other Names instead of Employees. See step 6 above.

      Of course, this is very specific to situations where you are NOT using QuickBooks payroll, but instead recording the payroll from a payroll service. And the method allows you to record the job costs.

  • I am using this method and it is working great. I set up items for each employee with their specific burden, and then input the weekly time sheet utilizing their item so as to get a more accurate labor burden per employee instead of just averaging them all together. Seems to be working great!


    • Jason,

      Good to hear. Yes, if you add separate items for each employee’s burdened rate, it makes it even more accurate. But still it’s just a close estimate to the actual payroll costs.

  • Can you just pay for basic QB payroll service, create “dummy” paychecks, and then offset it with a JE in order to get the job costing to apply?

  • Hi, will your procedure of posting labor cost and paying from a zero account job cost accurately?
    Will the Wcomp, taxes and wages be accounted for as a total cost of employee?

    Thank you

  • Is there a similar work around to applying other job-related costs to the job cost reports? We currently use QB payroll so our payroll costs are being allocated to each job. However, we’re trying to find a way to assign our machine costs to a job to get an accurate cost for our jobs. For example, we have over 50 pieces of equipment and we track the hourly use of each piece of equip by job. We have an average cost we’ve determined it takes to run that machine that we’d like to see assigned to a job cost report while not affecting our P&L. Any ideas?

Leave a Comment