How to Track Job Costing for Small Construction Companies

Table of Contents

Last Updated: October 13, 2026

Why Job Costing Matters for Small Construction Companies

Job costing is the practice of tracking every cost tied to a single construction job so you know whether that job made money.

Most small contractors find out a job lost money months after the final invoice, when the crew has moved on and the money is gone.

The stakes are simple. When you track costs by job, you can:

  • Price future bids with real numbers, not gut feel
  • Catch cost overruns while you can still fix them
  • See which job types actually make money

Everything below builds one repeatable system: set up cost codes, track labor, materials, subs, and equipment, compare actual to estimated costs, and handle change orders and retainage correctly.

How to Calculate Job Costs: Direct Costs, Overhead, and Profit Margin

To calculate job costs, add up all direct costs for the job, then add your share of overhead, and subtract the total from what you billed.

Direct costs are expenses you can tie to one job. Overhead costs are expenses that keep the business running no matter which job you are on.

Direct Costs vs. Overhead Costs

Direct costs hit one job only. Overhead covers everything else. Mixing them is a common mistake in contractor books.

Cost Type

Examples

How to Handle

Direct costs

Labor hours, materials, subcontractors, equipment rental

Charge to the specific job

Overhead costs

Office rent, insurance, office salaries, truck payments

Allocate across all jobs

Profit

What is left after both

Track per job, not per month

The Basic Job Cost Formula with a Worked Example

The formula is: Job Profit = Contract Revenue – (Direct Costs + Allocated Overhead).

Say you bill $50,000 for a roofing job. Direct costs run $32,000 in labor, materials, and subs. Your overhead allocation is 10% of revenue, or $5,000. Job profit is $13,000, a 26% margin.

Pro TipSet your overhead allocation as a percentage of revenue and apply it to every job the same way. Consistency matters more than precision here. A steady 10% beats a different guess each month.

Worked Example: Job Profitability on a $20,000 Kitchen Remodel

Here is the full calculation for a kitchen remodel billed at $20,000. Follow each step with your own numbers.

  1. Add up the direct costs. Materials $7,500 + labor $6,000 + subcontractor $2,000 + job-specific permits and equipment $500 = $16,000 in direct costs.
  2. Calculate gross profit. $20,000 revenue – $16,000 direct costs = $4,000 gross profit.
  3. Calculate gross margin. $4,000 gross profit / $20,000 revenue = 0.20, or a 20% gross margin.
  4. Allocate overhead. Using the same 10% of revenue rule for every job, $20,000 × 10% = $2,000 of overhead.
  5. Calculate net job profit. $4,000 gross profit – $2,000 allocated overhead = $2,000 net job profit.
  6. Calculate net margin. $2,000 net job profit / $20,000 revenue = 0.10, or a 10% net margin.

The job looks strong at a 20% gross margin, but half of that gross profit goes to overhead. If your real overhead runs higher than 20% of revenue, this remodel loses money once overhead is counted. To see how clean job-level records make this math automatic, read about our contractor bookkeeping

Setting Up Your Cost Structure and Job Cost Codes

A cost code is a short label that sorts every expense into a category, such as 03-100 for concrete or 06-200 for framing. Job cost codes let you compare costs across jobs and spot patterns fast.

Building a Cost Code List for a Small Crew

Start small. A crew of five does not need 300 codes. Build 20 to 30 codes that match how you actually work:

  • 01-000 Labor (split by trade if needed)
  • 02-000 Materials (lumber, concrete, roofing)
  • 03-000 Subcontractors

Add codes only when a category gets big enough to matter.

A Practical Setup Walkthrough for a Small Contractor

Here is how to set it up in a weekend:

  1. List your last three jobs and the costs you remember.
  2. Group those costs into 20 to 30 categories.
  3. Assign each category a number and name.
  4. Load the codes into your accounting software or spreadsheet.
  5. Require every receipt and invoice to carry a job name and code.

That last step is the one people skip. Without it, the system falls apart in a week.

Construction Labor Cost Tracking: Hours, Burdened Rates, and Field Data

Construction labor cost tracking starts with accurate hours and a burdened rate. The hours come from the field. The rate comes from payroll.

Track hours daily, not weekly. Crews forget details fast. A foreman who logs hours at the end of each day captures reality. One who waits until Friday guesses.

Calculating a Burdened Labor Rate

A burdened labor rate is the base wage plus every cost of employing that person: base hourly wage, payroll taxes, workers’ compensation insurance, health or retirement contributions, and paid time off.

If a worker earns $25 an hour and burden adds $10, the burdened rate is $35. Charge labor to jobs at $35, not $25.

Watch OutCharging jobs at base wage only is the fastest way to think a job made money when it did not. That missing burden shows up later as a cash shortage with no obvious cause.

Tracking Materials, Subcontractor Costs, and Equipment

Materials, subcontractor costs, and equipment are the three expense lines that quietly drain job profit. Each needs its own tracking habit.

For materials, match every purchase order to a job before the material leaves the yard.

  • Keep purchase orders tied to a job number
  • Log sub invoices and payments in one place
  • Track retainage withheld from each sub

A simple rule: if a cost cannot be traced to a job, it is overhead.

Actual vs. Estimated Construction Costs: Budget Comparison and Variance

Comparing actual vs. estimated construction costs is how you catch problems early. The gap between the two is your cost variance. Run a budget comparison every week, not at the end of the job.

How to Calculate Cost Variance

The formula is simple: Cost Variance = Estimated Cost – Actual Cost. A positive number means you are under budget. A negative number means you are over.

Use the percentage version to compare across cost codes of different sizes:

Variance % = (Actual Cost – Estimated Cost) / Estimated Cost × 100

Say your framing estimate is $18,000. Two weeks in, actual framing costs are $11,500 against a scheduled $10,000 for that point in the job.

Variance Thresholds That Trigger Action

Set thresholds before the job starts so you are not deciding in the moment whether a number is bad:

  • Under 5% over estimate: note it, keep watching weekly.
  • 5% to 10% over: review the cost code with the foreman, check for a coding error, and confirm whether the overrun is timing or real.
  • Over 10% over: stop and forecast. Recalculate the remaining cost to complete and decide whether to adjust labor, change the approach, or notify the customer if a change order is warranted.

A common pattern is to review only the total job variance and miss a single cost code running 30% over while another runs under. Review variance by cost code, not just by job.

Committed Costs and Work in Progress

Committed costs are amounts you have promised to pay but have not paid yet: open purchase orders, signed subcontracts, and materials ordered but not delivered.

Contact Us →

If you ignore committed costs, a job can look profitable right up until the bills arrive.

True Job Position = Actual Costs + Committed Costs

Compare that total to the contract amount, not to what you have billed.

A job is only profitable if actual costs plus committed costs plus cost to complete stay under the contract amount. Track all three, or you are flying blind.

Cost to Complete and Forecast at Completion

Cost to complete is your best estimate of what is left to spend. Forecast at completion is actual costs plus committed costs plus cost to complete.

Update the forecast every week. If it creeps above the contract amount, you have a decision to make now, not at closeout. Most small contractors who lose money find out at the final invoice; the ones who protect margin find out at week three.

Labor Productivity as a Leading Indicator

Dollar variance lags; labor productivity leads. Track installed units per labor hour against your estimate, square feet of drywall hung, linear feet of pipe run, squares of roofing installed.

If productivity runs 10% under estimate, your labor cost variance will follow within a week or two. Catching it at the productivity stage gives you time to add crew, adjust the schedule, or renegotiate scope before the cost hits the books.

Construction Job Costing Spreadsheet: A Low-Cost Tracking Workflow

A construction job costing spreadsheet works well for small companies not ready for dedicated software.

Construction business owner reviewing job costing spreadsheets on a laptop at a site office desk
Construction business owner reviewing job costing spreadsheets on a laptop at a site office desk

Stage 1: Build the Spreadsheet

Use one workbook with three tabs:

  1. Job tab (one per job): list every cost code down the left side.
  2. Columns: Estimated Cost, Actual Cost, Committed Cost, Cost to Complete, Forecast at Completion, Variance.
  3. Summary tab: pull totals from every job into one view using a simple reference formula like ='Job 1042'!D12.

Sample rows for a $50,000 roofing job:

Code

Description

Estimated

Actual

Committed

Forecast

Variance

01-000

Labor

12,000

7,400

0

12,800

-800

02-000

Materials

14,000

9,100

3,200

14,300

-300

03-000

Subcontractors

4,000

1,500

2,500

4,000

0

04-000

Equipment

1,000

400

0

900

+100

05-000

Permits

1,000

1,000

0

1,000

0

Forecast at Completion = Actual + Committed + Cost to Complete. Variance = Estimated – Forecast. Negative variance means over budget.

Stage 2: Assign Ownership and Timing

A spreadsheet fails when no one owns the entries. Assign each row of the workflow to a person:

  • Foreman (daily, end of shift): logs labor hours by cost code and notes material deliveries on a paper or phone form.
  • Office admin (twice weekly): enters invoices, receipts, and sub payments into the job tab; updates committed costs from open purchase orders and subcontracts.
  • Owner (weekly, 30 minutes): reviews the variance column by cost code and follows up only on codes past the threshold.

That last step is the one people skip. Without it, the system falls apart in a week.

Stage 3: The Weekly Review Routine

Pick a fixed day and time. Friday afternoon works for most small crews.

  1. Enter all invoices and receipts received that week.
  2. Update committed costs from any new purchase orders or sub contracts.
  3. Recalculate forecast at completion for each cost code.
  4. Flag any code more than 5% over estimate.
  5. Call the foreman on flagged codes before Monday.

Monthly, reconcile the spreadsheet to the bank account and to your accounting software. If the numbers do not match, find out why before you trust the job profit figure.

When to Move Off the Spreadsheet

A spreadsheet stops working when you have more than about five active jobs, when two people need to enter data at once, or when you spend more than an hour a week reconciling versions. At that point, dedicated job costing software pays for itself. Until then, a disciplined spreadsheet beats an unused software subscription.

Keep a separate tab listing every open purchase order and subcontract with its job code and remaining balance. That tab is your committed cost source of truth and takes five minutes a week to maintain.

Change Orders, Retainage, and Billing Alignment

Change orders and retainage break more contractor books than any other items.

Every change order needs written approval before the work starts.

Retainage is the percentage a customer holds back until the job is complete.

Keep billing aligned with costs:

  • Bill from the same cost codes you track
  • Match each invoice to a job and phase
  • Reconcile retainage monthly

When billing and cost tracking use the same structure, your financial reports finally tell the truth.

Frequently Asked Questions

What costs should a construction company track for each job?

Track direct costs first: labor hours and wages, materials and purchase orders, subcontractor invoices and payments, equipment costs, and any permits or disposal fees tied to that project. Then allocate a share of overhead costs, such as insurance, office expenses, and vehicle upkeep, using a consistent method like a percentage of direct costs. Keeping direct costs separate from overhead lets you see true job profitability and compare actual costs against your job estimate.

How do small contractors track labor and material costs by project?

Use a job cost code for every project and require the crew to record hours against that code daily, not weekly from memory. For materials, match every receipt and purchase order to a job number when it arrives, and enter supplier invoices the same week. A construction job costing spreadsheet with one tab per job, or job costing software like QuickBooks, keeps labor, materials, and subcontractor costs in one place so you can review each job’s numbers without digging through bank statements.

How do you compare estimated costs with actual job costs?

Build a budget comparison that lists each cost code with its estimated amount, actual costs to date, and committed costs from open purchase orders and subcontracts. Subtract actual plus committed from the estimate to get your cost variance. Review it weekly on active jobs. A variance over 5% on any cost code is a signal to investigate before the overrun grows, and it gives you a chance to adjust crew size, material orders, or change orders early.

Can QuickBooks track construction job costs?

Yes. QuickBooks Online tracks job costing through Projects and customer tags, letting you assign expenses, bills, and payroll to a specific job. You can run project profitability reports that show income, direct costs, and margin per job. For subcontractor payments, retainage, and committed costs, many contractors pair QuickBooks with a job costing spreadsheet or a construction-specific add-on. The key is entering every transaction against the right job code as it happens, not at year-end.


Small construction companies lose money on jobs they never should have taken, and job costing is how you stop that. MilesP Bookkeeping helps contractors build job-costing systems that fit how they actually work. Our team offers construction bookkeeping, QuickBooks Online setup and cleanup, payroll support, and custom monthly Profit & Loss, Balance Sheet, and Cash Flow statements. Get started with MilesP Bookkeeping and see exactly which jobs make money and which ones do not.

Need help with your books?

Call MilesP Bookkeeping at (800) 926-7710 or visit our contact page for a free consultation.