# Job Costing Spreadsheet Template

A job costing spreadsheet tracks what one job actually cost against what you estimated, category by category: labor, materials, equipment, subcontractors, permits and disposal. It subtracts total job cost from the contract price to show gross profit and margin, then takes out an overhead share to show what the job really made.

## Key takeaways

- Download the blank CSV (formulas included) or the filled roofing example, and open either in Excel or Google Sheets.
- Log every cost the day it happens: receipts, supply house tickets and crew hours at a burdened rate.
- Compare estimate to actual on every job. The variances tell you which line in your estimates is wrong.
- Gross margin pays for overhead. A job can look profitable and still lose money once overhead is counted.

## The free job costing spreadsheet

The spreadsheet has two parts: a summary at the top that compares estimated and actual cost by category and calculates profit, and a cost log underneath where you enter every receipt and timesheet. Here's the full layout.

### JOB COSTING SHEET

**Job details**

Job name: ________   Customer: ________   Job #: ________
Job address: ________   Start date: ________   Finish date: ________
Contract price, including approved change orders: $_____
Overhead rate (decimal, 0.15 = 15% of revenue): _____

**Summary (category · estimated · actual · variance $ · variance %)**

Labor (hours × burdened rate) · $____ · $____ · = actual − estimated · = variance ÷ estimated
Materials · $____ · $____ · ____ · ____
Equipment and rentals · $____ · $____ · ____ · ____
Subcontractors · $____ · $____ · ____ · ____
Permits and fees · $____ · $____ · ____ · ____
Dump and disposal · $____ · $____ · ____ · ____
Other direct costs · $____ · $____ · ____ · ____
**Total direct job cost** · = sum · = sum · ____ · ____

**Profit**

Gross profit = contract price − total direct job cost
Gross margin % = gross profit ÷ contract price
Overhead share = contract price × overhead rate
**Net profit on job = gross profit − overhead share**

**Cost log (one row per cost)**

Date · Category · Vendor or employee · Description · Qty or hours · Unit cost · Amount (= qty × unit cost) · Receipt or bill #
Tip: use SUMIF on the Category column to fill the Actual column automatically. Category names must match the summary exactly.

### Download the template

- [Blank job costing spreadsheet (CSV)](https://www.brix.so/templates/files/job-costing-spreadsheet.csv): Formulas for variance, gross margin, overhead and net profit, plus a 25-row cost log. Opens in Excel or Google Sheets.
- [Filled example: roof replacement (CSV)](https://www.brix.so/templates/files/job-costing-spreadsheet-roofing-example.csv): The worked example below, with every cost logged, so you can see how the formulas work.

Just want a quick number for one job? The [job costing calculator](https://www.brix.so/tools/job-costing-calculator) does the math in your browser. For the concepts behind the sheet, see [job costing](https://www.brix.so/learn/job-costing).

## What should a job costing spreadsheet track?

It should track every cost that exists only because the job happened, in the same categories you used to estimate it, plus the contract price including change orders. Matching categories is the point: if your estimate has a Materials line and your actuals have a Materials line, the variance shows exactly where your estimating is off.

**What goes in each category**

| Category | Include | Common miss |
| --- | --- | --- |
| Labor | Crew hours on the job × burdened rate (wage plus payroll taxes, workers' comp and benefits) | Using the bare wage. See [labor burden](https://www.brix.so/learn/labor-burden); the true cost is often well above the hourly wage. |
| Materials | Supply house tickets, truck stock used, returns credited back | Forgetting truck stock pulled for the job |
| Equipment and rentals | Rented lifts, excavators, dumpsters if not under disposal, fuel for rented equipment | Owned equipment wear (add an hourly charge if you price it in) |
| Subcontractors | Every sub invoice for the job | Late sub bills arriving after you closed the job |
| Permits and fees | Permits, inspections, engineering, utility fees | Re-inspection fees |
| Dump and disposal | Dumpsters, dump fees, overweight charges, recycling | Overweight charges that show up weeks later |
| Other direct | Job-specific fasteners and consumables, parking, delivery charges | Small receipts that never get turned in |

## Filled example: a roof replacement

A roofing contractor estimated a 30-square tear-off and re-roof. During tear-off the crew found rotted decking, replaced 12 sheets and got a $600 change order signed, bringing the contract to $20,600. Here's the summary from the example file. Numbers are illustrative.

**Estimated vs. actual, roof replacement**

| Category | Estimated | Actual | Variance |
| --- | --- | --- | --- |
| Labor (80 hrs est., 88 hrs actual × $50 burdened) | $4,000 | $4,400 | +$400 |
| Materials (incl. 12 sheets of decking at $37.50) | $7,200 | $7,650 | +$450 |
| Equipment and rentals | $650 | $650 | $0 |
| Permits and fees | $250 | $250 | $0 |
| Dump and disposal (incl. $250 overweight fee) | $700 | $950 | +$250 |
| Other direct costs | $300 | $180 | −$120 |
| **Total direct job cost** | **$13,100** | **$14,080** | **+$980** |
| Gross profit on $20,600 | $7,500 (36.4%) | $6,520 (31.7%) | −$980 |
| Overhead share at 15% | $3,090 | $3,090 |  |
| **Net profit on job** | **$4,410** | **$3,430** | **−$980** |

_The estimated column is the original estimate; the contract price includes the signed decking change order. Illustrative numbers._

> **What this job teaches**
>
> The change order covered the decking ($450 of materials plus 8 crew hours, or $400 of labor at $50, which together cost $850 against a $600 change order). The decking change order was underpriced by $250 before any overhead or profit.
>
> The dumpster overweight fee came from the extra rotted decking too. Next time, the change order should include disposal, and the estimate should carry a per-sheet decking price with labor and disposal built in.

## How does job costing differ by trade?

**What to watch in each trade**

| Trade | Biggest cost lines | What to track closely |
| --- | --- | --- |
| HVAC | Equipment, labor, materials | Install hours vs. estimate; equipment cost changes between estimate and order |
| Plumbing | Labor, fixtures, materials | Hours on repipes and sewer jobs; camera and jetter time |
| Electrical | Labor, wire and devices | Hours per circuit or device vs. estimate; inspection fails |
| Roofing | Materials, crew labor, disposal | Decking replaced vs. allowance; dumpster weight; crew hours per square |
| Remodeling / GC | Subcontractors, materials, labor | Each sub's bills vs. their quote; allowance overruns; change orders |
| Landscaping | Labor, plants and materials, equipment | Labor hours per install; plant waste; equipment fuel |
| Painting | Labor, paint | Hours per room or per 1,000 sq ft; gallons used vs. estimate |

## Common job costing mistakes

- **Costing labor at the bare wage.** Use the burdened rate, or every job looks better than it is. The [labor burden calculator](https://www.brix.so/tools/labor-burden-calculator) gives you the number.
- **Waiting until month-end.** Receipts get lost and hours get guessed. Log costs daily from the truck.
- **Forgetting change orders.** Add approved change orders to the contract price and their costs to the categories, or margins look wrong both ways.
- **Closing the job too early.** Sub invoices, dumpster fees and warranty callbacks show up later. Keep the sheet open 30 days.
- **Not comparing to the estimate.** The point isn't the final number, it's the variance. If labor runs over on every install, fix the estimate.
- **Ignoring overhead.** Gross profit isn't take-home. Check your rate with the [overhead rate calculator](https://www.brix.so/tools/overhead-rate-calculator).

BRIX tracks crew clock-ins and job hours, keeps expenses categorized and syncs invoices and payments to QuickBooks, which gives you the actual numbers a job costing sheet needs.

- [Crew timesheets](https://www.brix.so/#use-cases): Clock-ins, job hours and payroll-ready timesheets.
- [Bookkeeping and tax help](https://www.brix.so/features/bookkeeping-taxes): Keeps expenses categorized, tracks 1099 subcontractors and sales tax, and reminds you of quarterly estimated tax dates. BRIX does not file taxes or give tax advice.
- [QuickBooks sync](https://www.brix.so/integrations/quickbooks): Syncs customers, invoices and payments with QuickBooks so the books match the jobs.

## Frequently asked questions

### How do you make a job costing spreadsheet?

List your cost categories down the side (labor, materials, equipment, subcontractors, permits, disposal, other), with columns for estimated, actual and variance. Add the contract price, subtract total actual cost for gross profit, and add a cost log underneath. Or download the template on this page.

### Can I use this job costing template in Google Sheets?

Yes. In Google Sheets, choose File, Import, upload the CSV and pick Replace spreadsheet or Insert new sheet. The formulas for variance, margin and profit come through. Format the percentage cells as percentages after importing.

### What's the difference between job costing and estimating?

Estimating predicts what a job will cost before you do it. Job costing records what it actually cost. Comparing the two on every job is how your estimates get more accurate over time.

### Should overhead be included in job costing?

Direct job cost shouldn't include overhead, because overhead doesn't change job to job. But you should take an overhead share off gross profit to see real job profit. This sheet does that with a percent-of-revenue overhead rate.

### What labor rate should I use in job costing?

Use a burdened rate: the hourly wage plus employer payroll taxes, workers' comp, benefits and paid time off, divided by hours worked. Using the bare wage understates labor cost on every job.

### Is a spreadsheet enough, or do I need job costing software?

A spreadsheet works well for a handful of jobs a week if someone logs costs daily. As job count grows, tying timesheets, purchases and invoices to jobs in your software or QuickBooks saves hours and catches costs a spreadsheet misses.

## Related

- [Job Costing Calculator](https://www.brix.so/tools/job-costing-calculator)
- [What Is Job Costing?](https://www.brix.so/learn/job-costing)
- [How to Do Job Costing in QuickBooks Online](https://www.brix.so/learn/how-to-do-job-costing-in-quickbooks)
- [What Is Labor Burden?](https://www.brix.so/learn/labor-burden)
- [What Is Gross Margin?](https://www.brix.so/learn/gross-margin)
- [What Is Overhead, and How Do Contractors Calculate It?](https://www.brix.so/learn/overhead)
- [QuickBooks Chart of Accounts for Contractors (Import CSV)](https://www.brix.so/templates/quickbooks-chart-of-accounts-for-contractors)
- [Change Order Template](https://www.brix.so/templates/change-order-template)
- [Contractor invoicing software that sends the invoice and chases the money](https://www.brix.so/features/invoicing-payments)
- [Bookkeeping for contractors that keeps your books tax-ready all year](https://www.brix.so/features/bookkeeping-taxes)

---
Written by BRIX Editorial Team. Last updated 2026-10-19.
Canonical: https://www.brix.so/templates/job-costing-spreadsheet
