Construction Accounting Basics: A Contractor's Guide to Job Costing | Projul
Construction accounting is nothing like regular business accounting. If you’ve ever handed your books to a general bookkeeper and watched them struggle with retention schedules, progress billing, and WIP reports, you already know this.
Most accounting advice out there is written for businesses that buy something, sell something, and collect payment. Contractors? You bid a job in March, start work in June, bill monthly through December, and might not collect your final retention payment until the following spring. That’s a completely different financial world.
This guide covers the accounting fundamentals every contractor needs to understand, whether you’re running a $500K operation or a $50M company. You don’t need to become a CPA. But you do need to know enough to ask the right questions and catch problems before they eat your profits.
Why Construction Accounting Is Different from Other Industries
A restaurant buys food, sells meals, and counts the register at the end of the night. A contractor might have 15 active projects, each at a different stage of completion, each with its own billing schedule, retention terms, and cost structure. That difference changes everything about how you track money.
Revenue recognition is complicated. You can’t just count cash that hits your bank account and call it revenue. On a $2M project where you’ve completed 60% of the work but only billed 45%, your actual earned revenue is $1.2M, not whatever your billing shows. The IRS, your bank, and your bonding company all care about this distinction.
Retention changes your cash flow math. Most commercial contracts hold back 5-10% of every payment until the project is complete (and sometimes for 30-60 days after that). On a $1M job with 10% retention, that’s $100K sitting in your client’s pocket until closeout. If you’re running five jobs like that, you could have half a million dollars earned but not collected. Try explaining that to a bookkeeper who’s used to retail accounting.
Progress billing requires percent-complete tracking. You don’t invoice for products shipped. You invoice based on work completed, often using a schedule of values that breaks the contract into line items. Each month, you and your client agree on what percentage of each line item is done. Get this wrong and you’re either leaving money on the table or setting yourself up for a cash crunch later.
Every job is its own profit center. This is the big one. In construction, your company P&L can look great while individual jobs are bleeding money. Without job costing that tracks costs per project, you won’t know which jobs are profitable and which ones are dragging you down until it’s too late.
Job Costing 101 for Contractors
Job costing is the practice of tracking every dollar spent on a specific project. It sounds simple, but most contractors don’t do it well. And the ones who skip it entirely? They’re guessing at their margins on every bid.
Direct Costs vs. Indirect Costs
Direct costs are expenses you can tie directly to a specific job:
- Labor - Crew hours worked on that project, including wages, burden (taxes, insurance, benefits), and overtime
- Materials - Everything from lumber and concrete to nails and caulk that gets installed on the job
- Equipment - Rental fees or usage charges for equipment used on that project
- Subcontractors - What you pay your subs for their scope of work on that job
Indirect costs (also called overhead) are expenses that keep your business running but don’t belong to any single job:
- Office rent and utilities
- Administrative salaries
- Vehicle payments and insurance
- Accounting and legal fees
- Software subscriptions
- Marketing costs
The tricky part is allocating indirect costs to jobs. Most contractors use a percentage markup or an overhead rate applied to direct costs. If your annual overhead is $300K and your annual direct costs are $2M, your overhead rate is 15%. That means a job with $100K in direct costs should carry about $15K in overhead allocation.
Cost Codes: The Foundation of Job Costing
Cost codes organize your expenses into categories that make job-to-job comparisons possible. A basic cost code structure looks like this:
- 01 - Labor (broken down further by trade if needed)
- 02 - Materials (broken down by type: rough, finish, specialty)
- 03 - Equipment (rentals, owned equipment usage)
- 04 - Subcontractors (by trade)
- 05 - Permits and fees
- 06 - Other direct costs
When your estimator bids $45K in labor on a kitchen remodel and the actual labor comes in at $52K, cost codes tell you exactly where the overrun happened. Without them, you just know the job cost more than expected.
The real power of cost codes shows up over time. After tracking 50 kitchen remodels, you’ll know your average labor cost per square foot. That historical data turns your estimates from educated guesses into data-backed numbers. Learn more about setting up job costing for your business.
Tracking Costs in Real Time
Job costing only works if the data is current. Getting a cost report three weeks after a job is done doesn’t help you. You need to know today that a job is over budget so you can make adjustments now.
This means:
- Time tracking must happen daily. Your crew logs hours at the end of each day, coded to the right job and cost code. Paper timesheets that get turned in on Friday and entered into the system the following Wednesday? That’s a two-week delay on your labor data.
- Material purchases get coded immediately. When someone picks up supplies at the lumber yard, that receipt gets assigned to a job number before it hits the truck seat.
- Sub invoices are matched to jobs on receipt. Not batched at the end of the month.
Software makes this dramatically easier. Projul’s job costing tools let your team code time and expenses from the field using their phones. The data flows into your job cost reports the same day.
The Chart of Accounts Every Contractor Needs
Your chart of accounts is the backbone of your accounting system. It’s the list of categories where every transaction gets sorted. For contractors, the standard chart of accounts that comes with QuickBooks or any other accounting software is a terrible starting point. You need a construction-specific structure.
Here’s what a solid contractor chart of accounts includes:
Revenue accounts (broken out by type):
- Contract revenue
- Change order revenue
- T&M (time and materials) revenue
- Service/repair revenue
Cost of goods sold / Direct job costs:
- Labor (wages and burden, separated)
- Materials
- Equipment
- Subcontractor costs
- Permits and inspections
- Other direct costs
Overhead / General and administrative:
- Office salaries and benefits
- Rent and utilities
- Vehicle expenses
- Insurance (GL, workers’ comp, auto)
- Professional services (accounting, legal)
- Software and technology
- Marketing and advertising
Balance sheet accounts specific to construction:
- Retention receivable (money clients owe you after retention release)
- Retention payable (money you’re holding from subs)
- Underbillings (work completed but not yet billed)
- Overbillings (amounts billed ahead of work completed)
- Work in progress (WIP) asset
The retention and billing accounts are where general bookkeepers get lost. If your bookkeeper doesn’t know what underbillings and overbillings are, they’re not set up to handle construction books. Period.
A good construction CPA can set up your chart of accounts in a few hours. That investment pays for itself every month in cleaner reporting and faster job cost analysis. And when your accounting system talks to your project management software through an integration like Projul’s QuickBooks sync, those categories map cleanly between systems.
WIP Reports and Why Your Bank Cares About Them
The WIP (work in progress) report is the single most important financial report in construction. If you’re not running one, your banker and your bonding company are both nervous about you, whether they’ve told you or not.
What a WIP Report Shows
A WIP report takes each active project and compares three things:
- Estimated total cost - What you originally estimated the job would cost
- Costs to date - What you’ve actually spent so far
- Percent complete - How far along the job is (based on costs incurred vs. estimated total cost)
From those three numbers, you can calculate:
- Earned revenue - Contract value multiplied by percent complete
- Billings to date - What you’ve actually invoiced
- Over/underbilling - The difference between earned revenue and billings
Why This Matters to Your Bank
Banks lend to contractors based on financial health, and the WIP report is how they measure it. Here’s what they’re looking for:
Consistent underbilling is a warning sign. If you’re always completing more work than you’re billing for, it means you’re financing your clients’ projects with your own cash. That puts pressure on your working capital and makes you a riskier borrower.
Large overbillings raise flags too. Billing ahead of work means you’ve collected money you haven’t earned yet. If something goes wrong on the job, you might owe money back. Banks see heavy overbilling as a sign that a contractor is using new project billings to fund old project costs, which is a recipe for cash flow collapse.
Fade on estimated margins signals estimating problems. If your WIP report shows that projects consistently end up costing more than estimated, your bank knows your bids are too tight. That erodes confidence in your financial projections.
Read real contractor reviews and see why Projul carries a 9.8/10 on G2.
The bottom line: a clean, accurate WIP report opens doors to better credit terms, higher bonding capacity, and banker relationships built on trust. A messy one, or worse, no WIP report at all, limits your growth.
Running an Accurate WIP
The accuracy of your WIP report depends entirely on the quality of your job cost data. If labor hours aren’t tracked correctly, if material costs are assigned to the wrong job, or if change orders aren’t reflected in your estimated totals, the whole report falls apart.
This is where your project management system and your accounting system need to work together. Your PM tool tracks the day-to-day costs. Your accounting system holds the financial records. When they’re connected, like Projul’s integration with QuickBooks, your WIP data stays current without someone manually reconciling spreadsheets every month.
Common Construction Accounting Mistakes
After talking to hundreds of contractors, the same accounting mistakes come up again and again. Here are the ones that cost the most money.
1. Treating All Revenue as Profit When It Hits the Bank
Cash in your account is not the same as profit. That $200K deposit on a new project? It’s not income. It’s an advance on work you haven’t done yet. Contractors who spend deposits like profit end up short when the bills come due mid-project.
2. Not Tracking Retention Separately
If you’re lumping retention in with your regular receivables, your cash flow projections are fiction. Retention isn’t collectible until project completion (and often later). Track it in its own account so you always know the difference between what you’re owed and what you can actually collect.
3. Skipping Job Costing on Small Projects
“It’s only a $30K job, I don’t need to track costs on it.” You do. Small jobs are where margin erosion hides. You might make great money on your big projects and lose it all on the small ones. You’ll never know without the data. Here’s how to track job costs effectively.
4. Using Personal Accounts for Business Expenses
This seems obvious, but it’s incredibly common with smaller contractors. Mixing personal and business finances makes job costing nearly impossible, creates tax problems, and makes your books unreliable for any financial decision-making.
5. Waiting Until Tax Season to Look at the Numbers
If the only time you review your financials is when your CPA asks for them in March, you’ve missed 12 months of opportunities to catch problems and adjust. Monthly financial reviews, even a quick 30-minute check on your job cost reports, can save you tens of thousands per year.
6. Not Reconciling Estimates to Actuals
You bid a job at a 22% margin. Did you actually hit 22%? If you’re not comparing your original estimate to the final job cost report on every completed project, you’re not learning from your bids. That feedback loop is what separates contractors who grow from contractors who stay stuck.
7. Ignoring Change Order Accounting
Change orders affect your contract value, your estimated costs, and your percent complete calculations. If a $50K change order gets approved but never entered into your accounting system, your WIP report is wrong, your job cost report is wrong, and your margin analysis is wrong. Every approved change order should update your books within the week.
Integrating Your Accounting with Project Management
The biggest pain in construction accounting isn’t the concepts. It’s the data entry. When your project management lives in one system, your accounting lives in another, and your job costing lives in a spreadsheet, you’re paying someone to enter the same information three times. That’s slow, expensive, and guaranteed to produce errors.
The fix is connecting your systems. When your field team logs time in your project management app and that data flows directly into your accounting software, you get accurate job costs without the manual work.
Here’s what good integration looks like:
Time tracking flows to payroll and job costing simultaneously. A crew member clocks in on a job, and those hours show up in your labor cost report and your payroll system without anyone re-keying the data.
Invoices created from project data. Instead of your office manager building invoices from scratch, your invoicing system pulls the contract value, completed work, and retention terms directly from the project record.
Expenses sync between systems. Material purchases and sub invoices entered in your PM tool push to your accounting software with the right job code and cost category already attached.
Real-time reporting across both platforms. Your project managers see job cost data in their PM tool. Your bookkeeper sees project progress in the accounting system. Nobody has to wait for the other team to “catch up.”
Projul connects directly with QuickBooks Online to make this happen. Job costs, invoices, and payments sync automatically. Your field team works in Projul. Your bookkeeper works in QuickBooks. And the data matches because it’s the same data.
If you’re still running your construction business on disconnected spreadsheets and hoping the numbers add up at year end, it’s time to look at what connected systems can do. Check out Projul’s pricing to see what a fully integrated project management and job costing platform costs. Spoiler: it’s less than the profit you’re losing to bad data.
Try a live demo and see how Projul simplifies this for your team.
Frequently Asked Questions
The FAQ section above covers the most common questions contractors ask about construction accounting and job costing. If you’re just getting started with job costing, the most important step is picking a system and being consistent. Even basic cost tracking on every job is better than perfect tracking on none.
For a deeper look at protecting your margins once you have your accounting dialed in, read our guide to construction profit margins.