Job costing means tagging every dollar of materials, labor, subcontractors, and equipment to the specific job it belongs to — so you see profit per job, not one lump number. Set up a contractor chart of accounts, tag every cost to a job, and read a job profitability report monthly. That's how the jobs quietly losing money finally show up.

Your bank account can look healthy while one whole category of your work loses money on every single job. Company-level books can't show you that. Job costing can — and for a Jacksonville contractor pricing the next kitchen, roof, or repipe, it's the difference between bidding from your real numbers and bidding from a gut feeling.

What job costing actually is (and what it isn't)

Your regular Profit & Loss answers one question: did the company make money this month? Job costing answers a different, more useful one: did this job make money?

It's the same transactions with one extra step — every cost gets tagged to the job it belongs to. Once that habit exists, each job gets its own mini P&L:

  • Materials — everything that went into that job, from the lumber package to the last tube of caulk.
  • Direct labor — the crew hours worked on that job, at their loaded cost (more on that below).
  • Subcontractors — every sub payment, tied to the job it was for.
  • Equipment, permits, and fees — rentals, dump runs, permit costs, inspections.

What doesn't go into a job's cost: overhead. Your truck insurance, office rent, software, and phone bill belong to the company, not to any one job — they get covered by the margin your jobs throw off. Mixing overhead into job costs is the most common way contractors convince themselves a good job was a bad one, or worse, the reverse.

Why "one big pile" books hide the losing jobs

Picture a Duval County remodeler closing two jobs in the same month. Job A cleared $14,000. Job B lost $3,000. The company P&L shows a healthy $11,000 month — and nothing else. The losing job is invisible, so next month it gets bid exactly the same way. And the month after that.

A profitable company can carry a losing job type for years. The winning jobs pay for it, and lump-sum books never tattle.

This is why "we're busy and the account looks fine" is not the same as "our bids are right." Busy season in Northeast Florida can hide a lot of sins — until the slow months, when the losers are suddenly all you have.

How to set it up: the four pieces

1. A chart of accounts built for a contractor

Generic bookkeeping templates lump everything into one or two expense accounts. A contractor chart of accounts splits cost of goods sold into its real buckets — materials, direct labor, subcontractors, equipment rental, and permits/fees — separate from overhead. That split is what makes every report downstream readable. If your QuickBooks was set up from a generic template, this is usually the first thing to fix.

2. Tag every cost to a job — no orphans

Every supplier bill, every card swipe at the supply house on Atlantic Boulevard, every timesheet hour gets a job name attached. The rule is simple: no orphan costs. A cost with no job tag is a cost you'll never be able to explain. Fifteen minutes of tagging a week beats a month-end archaeology dig every time.

Tagging sub payments to jobs has a bonus: your January 1099s assemble themselves instead of becoming a scramble. And if you're not sure whether a helper is really a subcontractor or an employee — that classification changes your labor math too — here's the breakdown: 1099 vs. W-2 for Jacksonville subcontractors.

3. Cost labor at the loaded rate, not the paycheck rate

Payroll taxes, workers' comp, and liability insurance typically add 25–40% on top of gross wages in construction. A framer you pay $22/hour really costs you roughly $28–31/hour once the burden is in. Job-cost the loaded rate — otherwise every labor-heavy job looks more profitable than it is, and your labor-heavy bids stay too low. (Your exact burden depends on your comp rates and payroll setup — worth confirming with your accountant.)

4. Track WIP and retainage

On jobs that span months, timing lies to you. Costs pile up before you invoice, so a hard-working month looks terrible; bill ahead of the work and a month looks great when it isn't. Work-in-progress (WIP) tracking matches costs to the billing on each open job so you can see whether you're over- or under-billed — before it becomes a cash surprise mid-job.

Then there's retainage — the slice of each progress payment the GC or owner holds back until the work is accepted, commonly 5–10% (on Florida public projects, state law caps it at 5%). That's your profit, sitting in someone else's account. Track it as a receivable with a date on it, or it quietly becomes a donation.

One honest prerequisite: you can't tag costs that were never recorded. If the books are months behind, job costing starts with getting current — here's the full guide: catch-up bookkeeping for Jacksonville contractors.

A simple example: two jobs, one truth

A kitchen remodel in Arlington, $42,000 contract:

  • Materials: $16,400
  • Crew labor (loaded, with burden): $8,700
  • Subcontractors (electrical, plumbing, counters): $9,600
  • Permits, dumpster, equipment rental: $1,500
  • Total job cost: $36,200 → gross profit $5,800 → 13.8% margin

Same month, a $9,500 repipe out in St. Johns County: $2,100 materials, $2,800 loaded labor, $300 permit — $5,200 total cost, $4,300 gross profit, a 45% margin.

The company books say: fine month. Job costing says: the kitchens are running far below target and the small plumbing work is carrying the company. Now you have real decisions — raise the kitchen bids, chase more repipe work, or both. Without the tags, that conversation never happens.

How to read profit per job: the monthly 30 minutes

Once costs are tagged, the review is short. Once a month, pull the job profitability report and look for four things:

  • Gross margin vs. your target. Many Jacksonville remodelers and specialty trades target roughly 25–35% gross per job (new-construction GC work often runs thinner). Your real floor is set by your own overhead — margin has to cover it before anything is truly profit.
  • Estimate vs. actual, by bucket. Did materials blow the budget, or did labor hours? The answer tells you what to fix: pricing, takeoffs, or crew time.
  • Margin fade. A job that starts at 30% on paper and finishes at 18% is usually leaking through change orders that got done but never billed.
  • Unbilled costs. Tagged costs with no invoice behind them yet — the earliest warning you're financing someone else's project.

If you'd like a second set of eyes on what your jobs are telling you, a free Profit & Loss review is the fastest way to find out where your numbers actually stand.

Tools: QuickBooks Projects, classes, or a spreadsheet

For most Jacksonville trades businesses, QuickBooks Online's Projects feature (on the Plus and Advanced plans) is the practical answer: income and costs tagged per job, with a job profitability report built in. Classes add a second lens if you also want to compare crews, divisions, or service lines across all jobs.

A spreadsheet is a legitimate starting point for an owner-operator running two or three jobs at a time. It breaks the moment you add a crew, subs, and retainage — which is usually exactly when you can least afford blind spots. And if you run your crew in Spanish and your books in English, the numbers shouldn't get lost in between: this is work a bilingual bookkeeper can set up and walk you through in either language.

Start with your last three jobs

You don't need a system installed to get the first insight this week. Pull your last three completed jobs. Gather the supplier invoices, the sub payments, the crew hours (at loaded cost), the permits and rentals. Total each job, subtract from what you charged, and compute the margin.

One of those three numbers will surprise you. That surprise — the job you were sure about that wasn't, or the small job that quietly out-earned the big one — is the entire case for job costing.