Blog

Bookkeeping for Contractors: Job Costing Made Simple

T Tides Bookkeeping · · 12 min read

Most contractors know their business made money last year because the bank account is bigger than it was. What they usually can't tell you is which jobs made the money — and which ones quietly lost it. Job costing is the discipline that answers that question. Done right, it turns your books from a tax-time chore into the single most useful management tool you own. Here's how it works, what to track, and how to set it up in QuickBooks or Xero without hiring a full-time controller.

What job costing actually is (and why it's non-negotiable)

Job costing means assigning every dollar of revenue and every dollar of cost to the specific project that generated it. Instead of one big profit-and-loss statement for the whole company, you get a mini P&L for each job — the Miller kitchen remodel, the Route 9 retaining wall, the Anderson HVAC install — showing exactly what you billed, what it cost you, and what was left over.

For a service business with no direct costs, a company-level P&L is enough. For a contractor, it's almost useless on its own. Your margins swing wildly from job to job. One project runs 40% gross margin because the crew was fast and materials came in under estimate; the next runs negative because a change order was never billed and the concrete sub blew the budget. Average those together and the company P&L shows a "fine" 18% margin that hides both a winner and a disaster.

Without job costing you're flying blind on the three decisions that determine whether a contracting business survives:

This is exactly why we treat construction and the trades as a specialty rather than a generic account. If you want the short version of how we support builders, remodelers, electricians, plumbers, and specialty subs, our bookkeeping for contractors and trades page lays it out. This article is the deeper how-to.

The four buckets: what goes into a job's cost

Every dollar you spend on a project falls into one of four cost categories. Set your books up around these from the start and job costing becomes almost mechanical. Ignore any one of them and your job margins will lie to you.

1. Labor (and the "burden" nobody remembers)

Direct labor is the wages you pay the crew for time spent on a specific job. The trap is that the hourly wage is not the real cost of an employee. The real cost is the fully burdened labor rate — wage plus payroll taxes, workers' comp, health insurance, paid time off, and every other cost of keeping that person on the roster.

A framer you pay $28/hour might actually cost you $38–$42/hour fully burdened. Cost jobs at $28 and every project looks more profitable than it is — so you keep underbidding. The fix is to capture time by job (a time-tracking app that pushes hours into your accounting system is worth every penny) and apply a burden rate on top. If payroll is a moving target for you, it's worth seeing how we handle payroll support so the labor numbers flowing into job costs are right in the first place.

2. Materials

Lumber, wire, fixtures, concrete, permits, disposal — every material and direct expense tied to the job. The discipline that makes or breaks this bucket is coding the receipt or vendor bill to the right job at the time it's entered. A $6,000 lumber order that lands in "Materials" with no job attached is a $6,000 hole in your cost data. Photograph receipts on site, note the job, and make sure whoever enters them knows which project each one belongs to.

3. Subcontractors

The electrician, the plumber, the excavator you hire for a job. Sub costs are usually your largest single cost bucket on bigger projects, and they carry a second obligation: year-end 1099 reporting (more on that below). Track sub costs by job like everything else, and keep the subs' invoices attached to the project so you can reconcile what they billed against what you approved.

4. Overhead and equipment

This is the bucket that sinks contractors who think they're profitable. Overhead is the cost of being in business regardless of any single job — office rent, your truck, general liability insurance, the estimator's salary, software, the shop. Some of it can be allocated to jobs (equipment hours, for example); much of it is simply the number your total gross profit has to clear before you make a dime. A job can show a healthy "gross" margin and still lose money once its share of overhead is counted — so knowing overhead as a percentage of revenue tells you the minimum markup every bid must carry.

Estimate vs. actual: the report that changes how you bid

Tracking actual costs is half the job. The other half is comparing them to what you estimated. The estimate-vs-actual report (sometimes called a job budget-vs-actual, or an over/under report) lines up your original bid, broken out by cost category, against what the job is really running.

Here's a simplified example for a deck build:

The company P&L would just show a $3,000 profit and move on. The estimate-vs-actual report tells you the real story: your labor estimate was off by 30%, probably because the crew hit rot under the old deck. Now you know to pad labor on similar jobs, or to write demolition contingencies into the bid. Run this on every job and your estimating gets sharper every quarter — it's the highest-value report a contractor can look at, and it only exists if the costs were coded to the job as you went.

Setting it up: QuickBooks and Xero, the practical version

You don't need contractor-specific software to do this well. The two mainstream platforms both have the tools built in — you just have to turn them on and use them consistently. (If you're still deciding between them, we broke down the trade-offs in QuickBooks Online vs Xero.)

In QuickBooks Online

You have three levers, and the best setups use them together:

(QuickBooks Desktop and its Contractor edition do the same thing through the Customer:Job hierarchy and Items — same concepts, different menu names.)

In Xero

Xero's equivalent is tracking categories. You get up to two categories, each with its own list of options — so you might set one to "Job" and another to "Division." Tag every invoice, bill, and expense with the job, and Xero produces a P&L filtered to that job. For contractors who need full estimate-vs-actual and progress-billing tools, the Xero Projects add-on layers proper job costing on top, tracking time, cost, and profitability per project. For a smaller shop, tracking categories alone are often enough to see per-job margin.

Whichever platform you're on, the golden rule is the same: the coding only works if it happens every time. Job costing lives or dies on discipline, not software. Every bill, receipt, timesheet, and deposit gets tagged to a job — no exceptions. That consistency is the single most common thing we fix when a contractor hands us their books.

WIP and retainage: the two things that break contractor books

Two concepts trip up almost every contractor doing their own books, because neither exists in a normal service business. Get these wrong and your financials can look wildly better or worse than reality.

Work in progress (WIP)

On a multi-month job, you spend money and bill the customer at different rates than the work actually gets done. WIP accounting reconciles the two so your P&L reflects real progress, not billing timing.

The core idea is over/underbilling. If you've billed a customer $80,000 on a job that's only 50% complete on a $120,000 contract (so $60,000 "earned"), you've overbilled by $20,000 — that's cash you're holding for work not yet done, a liability rather than profit. Bill only $40,000 on that same half-finished job and you've underbilled — an asset. A WIP schedule tracks contract value, costs to date, estimated cost to complete, percent complete, billings to date, and the over/under for every open job. It's the report your bank and bonding company will ask for, and the one that keeps a "profitable" year from evaporating when a big job closes out.

Retainage

On larger and commercial jobs, the customer holds back a percentage of each payment — commonly 5–10% — until the project is fully complete and accepted. That retainage is money you've earned but won't collect for months. It needs its own account (a "retainage receivable"), not to be buried in regular accounts receivable, or you'll overstate your available cash and understate what's still owed to you. If you hold retainage back from your subs, that's a retainage payable on the other side — and tracking both cleanly is what separates books a bonding company trusts from books they don't.

Progress billing and draw schedules

Contractors rarely bill a job all at once. You bill in stages — a deposit, then draws tied to milestones (foundation complete, framing complete, dry-in, final), or a monthly application for payment based on percent complete. This is progress billing, and it's how you keep cash flowing into a job instead of financing months of labor and materials out of pocket.

Two things make progress billing work in your books. First, the draw schedule should map to the same cost categories as your estimate, so each invoice can be checked against the work completed. Second, every draw must be tied to the job so billings-to-date feed your WIP schedule automatically. Sloppy draw tracking is the fastest way to end up overbilled without realizing it — collecting cash early feels great right up until the final phase, when the money's gone and the work isn't done.

Not sure your jobs are actually profitable?

Book a free 15-minute call. We'll look at how your books are set up and tell you straight — no sales pitch.

Schedule Free Consultation →

Percentage-of-completion vs. completed-contract

For longer projects, there are two ways to recognize revenue and cost, and the choice affects both your financial statements and your tax bill. This is one of the more technical areas of contractor accounting, so treat what follows as an orientation and confirm the specifics with your CPA — rules and dollar thresholds change, and the figures below are current as of 2026.

Percentage-of-completion (POC) recognizes revenue and cost gradually as the job progresses — typically by comparing costs incurred to date against total estimated costs. A job that's 60% through its budgeted costs recognizes 60% of its revenue and profit. POC gives the most accurate picture of profitability period-to-period and is what banks, sureties, and investors expect to see, which is why most contractors use it for their financial statements regardless of what they do for taxes.

Completed-contract (CCM) recognizes nothing until the job is substantially finished — all the revenue and all the cost land in the year it wraps. For tax purposes this can defer income, which is attractive, but it also makes your interim financials nearly useless for management and can concentrate a big tax hit into a single year.

For tax reporting, the tax code (IRC Section 460) generally requires the percentage-of-completion method for "long-term contracts" — broadly, any contract not expected to be completed in the same tax year it starts. But there's a widely used small-contractor exception. If your business's average annual gross receipts for the prior three years are at or under the inflation-adjusted threshold — $31 million for 2025 and $32 million for 2026 (per IRS Revenue Procedure 2025-32) — and the contract is expected to be completed within two years, you're generally free to use completed-contract or another permitted method instead of POC. The vast majority of small and mid-size contractors fall under that threshold, so they have a real choice.

Home construction contracts get their own, more favorable treatment, and recent legislation (the 2025 tax law widely called the One Big Beautiful Bill Act) expanded completed-contract eligibility for residential construction contracts — broadly, those where at least 80% of estimated costs relate to residential property — for contracts entered into in tax years beginning on or after July 4, 2025. One more wrinkle to flag for your CPA: the deferral benefit of completed-contract can be reduced by the alternative minimum tax, which may require recomputing that income on a percentage-of-completion basis. The practical takeaway is that most contractors keep POC-style books for management and financing and let their tax preparer pick the method that's most advantageous — and legal — on the return. If the underlying cash-versus-accrual question is new to you, our explainer on cash vs accrual accounting is a useful companion read.

1099 subcontractor tracking (so January isn't a fire drill)

If you pay subcontractors, you have a reporting obligation, and the rules just changed. Historically you had to issue a Form 1099-NEC to any unincorporated subcontractor you paid $600 or more in a year for services. Under the 2025 tax law, that reporting threshold rises to $2,000 for payments made on or after January 1, 2026, with future years indexed for inflation. (The first forms under the new threshold go out in early 2027 for the 2026 tax year. As always, confirm the current figure before filing — thresholds move.)

The threshold change reduces how many forms you file, but it doesn't change the fundamentals, and the way you avoid a January scramble is the same as it's always been:

Handled month to month, 1099s are a non-event. Handled in January from a shoebox, they're a reason contractors dread tax season.

Equipment and mileage

Two more categories where contractors routinely leave money on the table. Equipment — owned or rented — is a real job cost when it's dedicated to a project. If you own a mini-excavator, an internal equipment rate (a per-hour or per-day charge you allocate to jobs) captures its wear, fuel, and financing so the cost lands on the jobs that used it rather than disappearing into overhead. Rented gear is simpler: code the rental bill straight to the job.

Vehicle and mileage tracking matters for both job costing and taxes. You'll generally choose between the IRS standard mileage rate and the actual-expense method for deducting vehicle costs — a decision worth making deliberately with your accountant, since the standard rate changes annually and the better choice depends on your vehicles and how you use them. Either way, a mileage log (an app that tracks trips automatically is ideal) protects the deduction and, if you allocate travel to jobs, sharpens your true cost per project.

The reports that tell you which jobs made money

Once the coding discipline is in place, a handful of reports do the heavy lifting. These are the ones we build and review with contractor clients every month:

None of these are exotic. They fall out of QuickBooks or Xero almost for free — if the underlying transactions were coded to jobs correctly all along. That "if" is the whole game. Setting up the reporting so these land in your inbox every month is the heart of our financial reporting work.

How Tides handles job costing for contractors

Everything above is doable on your own. Most contractors could, in theory, set up Projects in QuickBooks, tag every transaction, and keep a WIP schedule current. In practice, they're on a roof or bidding the next job — and the coding discipline is the first thing to slip when you're busy. That's the gap we fill.

When we take on a contractor, we set up the chart of accounts and job-costing structure around the four cost buckets, wire up time tracking and receipt capture so costs code to jobs automatically, and then keep it current every month. You get job profitability, estimate-vs-actual, and a WIP schedule you can hand to a lender without apologizing — plus a bookkeeper who already understands retainage, draws, and 1099s, so you're not explaining your own industry to your accountant. Our monthly bookkeeping service is built for exactly this rhythm, and if your books are behind or the job coding never happened, catch-up bookkeeping rebuilds prior periods so you start clean. Contractors are one of the core industries we specialize in — see the full list of trades we support on our who we serve page.

The bottom line

Job costing isn't accounting for accounting's sake — it's how a contractor learns which work to chase, how to bid the next one, and when a job is quietly going underwater. Set your books up around labor, materials, subs, and overhead; code every transaction to a job the first time; keep a WIP schedule if your projects run long; stay on top of retainage and 1099s; and read your job-profitability and estimate-vs-actual reports every month. Do that — or hand it to someone who will — and your books stop being a tax-time obligation and start being the tool that grows the business, and you'll never again wonder whether the busy year actually made you any money.

Keep Reading

Keep Reading

How to Categorize Business Expenses (the Right Way)
A plain-English guide to categorizing business expenses: the common categories, ...
The Small Business Chart of Accounts: A Complete Guide
What a chart of accounts is, the five account types, how to number and organize ...
Bookkeeping for Truckers & Owner-Operators
Owner-operator bookkeeping made clear: cost per mile, the per-diem deduction, IF...
Accounts Payable Receivable
Service