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.
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
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
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
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
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
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
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
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
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
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
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
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 / Project | Hours | Loaded rate | Debit | Credit |
|---|---|---|---|---|
| Job labor — Maple St. remodel | 168 | $42.00 | $7,056 | |
| Job labor — Ridgeview build | 144 | $42.00 | $6,048 | |
| Job labor — Service calls (unassigned) | 72 | $42.00 | $3,024 | |
| Overhead labor — shop & admin | 52 | $42.00 | $2,184 | |
| Payroll clearing | $18,312 |
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:
- Job costing in QuickBooks: the full setup — the five-step foundation this payroll process sits on top of.
- Does QuickBooks Pro have job costing? — Desktop vs. Online, and which plans actually support per-job labor.
- Free job cost calculator — see what a fully loaded labor rate does to a job's real margin.
- Bookkeeping & job costing for contractors — how we run allocation entries and burden every month.
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 consultPlan 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.
