Guide for contractors

How to job cost payroll in QuickBooks — including when payroll runs somewhere else

The short answer

To job cost payroll inside QuickBooks Online: use Plus or Advanced with QuickBooks Online Payroll, turn on Projects and time tracking, set an hourly cost rate per employee, and log hours against a project every week — wages and employer taxes then post to that job. If payroll runs outside QuickBooks (Gusto, ADP, Paychex, a PEO), you allocate labor with a period journal entry: hours × fully loaded rate, debited to job labor by project, credited to a payroll clearing account.

Shannon Price, founder of Accelerate Business Solutions

By Shannon Price

Founder, Accelerate Business Solutions · Published August 25, 2026 · Last updated August 25, 2026

Why labor is the weak link

Labor is your biggest job cost and your least accurate number.

Materials come with an invoice that names the job. Subs come with an invoice that names the job. Labor comes with a timesheet somebody filled out from memory on Friday — and it's usually the largest line on the job. If labor is wrong, every margin, every bid, and every "which work should we do more of" decision downstream is wrong with it.

Hours with no job attached

The single most common failure. Time gets entered for payroll purposes only, so it's accurate for paychecks and useless for job costing. Every hour needs a job the week it's worked.

Base wage used as job cost

Costing a $28/hr tech at $28 understates labor by 40–50%. Jobs that show a 15% margin are running at 3%, and nobody finds out until the year closes.

Working owners never costed

The owner runs the hardest job of the quarter and their time never hits it. The job looks like your best-ever margin, so you bid the next three the same way.

Overtime absorbed silently

OT premium gets buried in a company-wide payroll expense instead of the job that caused it — so the job that burned the overtime looks identical to the one that didn't.

Method 1 — QuickBooks Online Payroll

Six steps when payroll runs inside QuickBooks.

This is the cleanest setup available, because QuickBooks does the allocation for you at the moment payroll posts. It requires Plus or Advanced plus a QuickBooks Online Payroll subscription.

  1. 1

    Confirm the plan can do it

    Job-costed payroll needs QuickBooks Online Plus or Advanced (for Projects) plus an active QuickBooks Online Payroll subscription. On Simple Start or Essentials there is no Projects feature to cost to — upgrading is step zero.

  2. 2

    Turn on Projects and time tracking

    Account and Settings → Advanced → turn on Projects. Then Time → turn on time tracking so timesheets can carry a customer/project and a service item. Without the service item, your labor lands in one undifferentiated bucket.

  3. 3

    Set an hourly cost rate per employee

    Enter each employee's cost rate, not just their pay rate. This is what QuickBooks uses to value labor on the project. If you skip it, project profitability shows revenue and materials but a suspiciously clean labor line.

  4. 4

    Log hours to a project every week

    This is the whole ballgame. Crews code time to a project weekly — through timesheets or QuickBooks Time on their phones. Hours entered with no project attached cannot be job costed after the fact, ever.

  5. 5

    Run payroll and check the allocation

    When payroll posts, wages and employer taxes follow the hours to their projects. Open the Project Profitability report the same day and confirm labor actually landed. Catching a blank labor line in week one is cheap; catching it in month nine is not.

  6. 6

    Allocate burden with a monthly journal entry

    Workers' comp, benefits, and vehicle allowance rarely allocate on their own. Post a monthly burden entry that spreads them across projects in proportion to job hours. That's the difference between a labor number and a real labor number.

Method 2 — payroll outside QuickBooks

Gusto, ADP, Paychex, or a PEO? You can still job cost payroll.

Outside payroll almost always lands in QuickBooks as one lump entry: total wages, total taxes, zero job detail. That's not a dead end — it just means the allocation becomes a bookkeeping step instead of a software feature. Here's the process we run for clients on outside payroll.

  1. 1

    Keep hours somewhere codeable by job

    Gusto, ADP, Paychex, a PEO — it doesn't matter which, as long as approved hours exist per employee per job for the period. QuickBooks Time, a job-coded timesheet app, or a clean weekly spreadsheet all work.

  2. 2

    Build a fully loaded hourly rate

    Base wage + employer taxes + workers' comp + benefits + a non-billable time factor. Recalculate it quarterly. This single rate is what turns raw hours into job cost.

  3. 3

    Import payroll to a clearing account

    Let the payroll feed post total wages and taxes to a payroll clearing (or 'payroll to allocate') account instead of straight to expense. Now you have a bucket to distribute, and something to reconcile against.

  4. 4

    Post one allocation journal entry per period

    Debit direct job labor by project (hours × loaded rate), credit payroll clearing. Any leftover balance in clearing is unallocated overhead labor — that residual should be small and explainable.

  5. 5

    Reconcile clearing to zero-ish every month

    If clearing carries a big balance, hours weren't coded or the loaded rate is stale. This account is your early-warning system that job costs have quietly stopped being true.

Worked example

One pay period, $18,400 of payroll from an outside provider, allocated across three jobs.

Account / ProjectHoursLoaded rateDebitCredit
Job labor — Maple St. remodel168$42.00$7,056
Job labor — Ridgeview build144$42.00$6,048
Job labor — Service calls (unassigned)72$42.00$3,024
Overhead labor — shop & admin52$42.00$2,184
Payroll clearing$18,312
The $88 left in payroll clearing is rounding and unposted time — small and explainable. If that residual were $3,000, hours weren't coded, and no report built on this data could be trusted.

One rule that decides whether this works: allocate every period, not at year-end. A quarter of un-allocated payroll is a data project. One pay period is twenty minutes.

What good looks like

Three things job-costed payroll should tell you every month.

Estimated vs. actual hours

Per job. If actual labor hours beat the estimate consistently, your bids are under-priced and now you can prove it with numbers.

Labor as a % of revenue

By job and by job type. A creeping labor percentage is the earliest visible sign that margin is eroding.

Crew-level productivity

Same job type, two crews, different hours. That gap is either training, scheduling, or scope — and it's invisible without job-costed payroll.

Questions about job costing payroll

How do I job cost payroll in QuickBooks Online?

Projects + time tracking turned on (Plus or Advanced), an hourly cost rate on every employee, hours logged against a specific project each week, and payroll run through QuickBooks Online Payroll. Do those four and wages plus employer taxes land on the right job automatically. Skip any one and project profitability shows a labor line that isn't real.

Can I job cost payroll if payroll runs outside QuickBooks?

Yes — this is how most contractors we work with operate. The payroll feed from Gusto, ADP, or a PEO posts one lump sum with no job detail, so you allocate it: hours × fully loaded rate, debited to job labor by project, credited to a payroll clearing account. It takes about 20 minutes per pay period once the rate table exists.

Do employer payroll taxes get job costed?

They should. QuickBooks Online Payroll carries employer taxes along with wages to the project. Workers' comp, benefits, and other burden generally do not follow automatically — those go on a monthly burden allocation entry. Burden is commonly 20–35% on top of base wages, which is far too much to leave off a job.

Why is labor cost missing from my project report?

Almost always one of three things: hours entered without a project, no hourly cost rate on the employee record, or payroll processed outside QuickBooks. The first one is the only unfixable one — hours never coded to a job can't be reconstructed honestly months later.

Does QuickBooks Time make this easier?

Meaningfully, yes. Crews clock in and pick the job from their phone, and the hours arrive already coded. Field-side coding is what makes payroll job costing survive past month two — asking one person to reconstruct everyone's week on Friday afternoon is what kills it.

Can Accelerate just run this for me?

That's exactly what we do. Job-costed payroll — allocation entries, burden, per-job labor variance — is part of our monthly bookkeeping for contractors, starting as low as $600 a month depending on job and crew volume. Fixed price, quoted up front.

Keep reading:

Don't want to run allocation entries yourself?

We do this every pay period for contractor clients — job-costed payroll, burden allocation, and per-job labor variance you can actually act on. Book a free 30-minute consult and we'll look at how your payroll is posting today.

Book your free consult

Plan capabilities and payroll features described reflect QuickBooks Online as of 2026. Confirm current plan features with Intuit before purchasing. Example figures are illustrative, not client data.