There’s a pattern I see over and over with contractors in California.
Revenue is up. The schedule is packed. They just landed another big contract. By every external measure, the business is doing well. But when I sit down and actually look at the numbers, the picture changes fast.
The margin is thin. Cash is tight. And when we dig deeper, we find the same problem almost every time: nobody actually knows which jobs are making money.
Not the owner. Not the bookkeeper. Nobody. That’s not a character flaw. It’s a systems problem. And it’s one of the most expensive problems a construction business can have, because you can’t fix what you can’t see.
Here’s what most contractors are actually tracking: total revenue in, total expenses out. Maybe a rough gross margin at the end of the month. That’s it.
And on the surface, that can look fine. If you’re doing $2 million in revenue and your overall margin is sitting at 12%, it feels like the business is working. But that number is lying to you.
That 12% is an average. Hidden inside it are jobs running at 28% margin, and jobs running at negative 6%. You’re winning on some and bleeding on others, and because everything gets pooled together, you have no way of knowing which is which.
The dangerous part? The losing jobs don’t announce themselves. They just quietly consume your labor, your materials, your subs, and hand you back less than you put in. Every month you run without project-level visibility, you’re essentially subsidizing your worst jobs with the profits from your best ones.
I had a client last year. Commercial GC, solid reputation, been in business for over a decade. He came to me because he felt like he should be doing better financially. Revenue wasn’t the issue. He had plenty of work. But every month felt like a scramble.
When we set up proper job costing in his QuickBooks, it took about two weeks to get clean data. What we found was eye-opening. His bread-and-butter project type, the work he’d been doing for years and was most comfortable pricing, was consistently his lowest margin category. He’d been underpricing it for so long it had become normal. The work he was least excited about bidding was actually carrying the whole business.
That’s information that changes how you run a company.
Job costing sounds like an accounting term. It’s not. It’s a management tool.
It means every single project in your business gets treated as its own small business. It has its own revenue. Its own expenses. Its own profit or loss. You’re not just asking “how did the company do this month?”
You’re asking “how did each job perform?”
In California, this matters even more. Between prevailing wage requirements on public works projects, workers’ comp audits, and the sheer complexity of managing multiple trades and subcontractors, you need data. Clean data. Project-level data.
Without it, you’re guessing. And guessing is expensive.
Here’s the system I install for every construction client I work with. It’s not complicated. It doesn’t require expensive software beyond what you probably already have. And it can be fully operational within a week.
The reason most contractors don’t have this in place isn’t laziness. It’s because nobody set it up correctly from the start. QuickBooks has the functionality built right in. It’s called Projects, and it works for both QuickBooks Online and Desktop. But if your books were set up by someone who didn’t specialize in construction, there’s a good chance it was never activated or configured properly.
The setup itself isn’t complicated. Every active contract gets its own Project in QuickBooks. From that point forward, every cost tied to that contract (labor, materials, subcontractors, permits, equipment, anything) gets tagged to that project when it’s entered. Your bookkeeper does this as a normal part of their workflow. It adds maybe ten minutes a day if your books are already organized.
What it gives you in return is a real-time scoreboard for every job in your business. At any point, you can open QuickBooks, pull up your Project Profitability report, and see exactly where you stand on every active contract.
For California contractors juggling multiple job types (tenant improvements, ground-up residential, public works, service work), this is the difference between running a business and running blind.
Setting up job costing is step one. The habit that makes it valuable is a weekly review, and it takes less time than most contractors spend waiting for a material delivery.
Once a week, open your Project Profitability report. Sort it by margin, lowest to highest. Look at the bottom of the list and ask one question: what happened here?
Most of the time, the answer almost always falls into one of four categories:
If there’s one financial habit that separates contractors who build real wealth from those who stay stuck in the revenue hamster wheel, it’s this: billing change orders fast.
Most contractors let change orders pile up and bill them at the end of the project. It feels easier. You’re busy. You’ll get to it. But what’s actually happening is that you’re doing the work, paying your crew, buying the materials, and then waiting weeks or months to get paid for it.
In the meantime, your books show the costs but not the revenue. Every one of those unbilled change orders is making your job look less profitable than it actually is. And if a project closes before you’ve caught up on billing, some of that money disappears entirely.
The rule I give every construction client I work with: change orders get invoiced within seven days of the work being performed. No exceptions.
This is also a legal protection specific to California contractors. The CSLB and California contract law strongly favor contractors who document and bill changes in writing and on time. A change order billed promptly, with written authorization from the client, is nearly bulletproof in a dispute. One that lives in a notebook for three months is not.
In dollar terms: across my client base, fixing change order billing speed alone typically recovers between $20,000 and $100,000 per year. That’s not new revenue. That’s money that was already earned, sitting in a blind spot.
Once your system is running, the metrics that matter most are simple.
I want to be honest about something. Setting this up takes effort upfront. Reclassifying historical expenses, training your bookkeeper on the new workflow, getting your field team to submit receipts tagged to the right job. It’s a real operational change.
But here’s the tradeoff: contractors who go through that process almost always look back and say it was the single most clarifying thing they did for their business. Not a new estimating system. Not a bigger marketing budget. Just knowing with certainty which work is actually worth doing.
When you know your numbers at the project level, everything else gets easier. Estimating gets sharper because you’re bidding based on what your actual costs are, not what you think they should be. Conversations with clients about change orders get easier because you have documentation. And decisions about which types of work to pursue or walk away from become obvious instead of gut-feel.
That’s what financial clarity actually buys you. Not just a cleaner P&L. A better-run business.
California is not a forgiving market for thin margins. Labor costs are among the highest in the country. Material prices are unpredictable. And the regulatory environment — between CSLB licensing, prevailing wage compliance, and workers’ comp requirements — adds overhead that contractors in other states simply don’t face.
In that environment, running without project-level financial visibility isn’t just inefficient. It’s genuinely risky.
The contractors I see building durable, profitable businesses aren’t necessarily the ones winning the most bids or doing the most volume. They’re the ones who know exactly what each job cost them, and use that information to get better every single year.
If you’re ready to build that kind of clarity into your construction business, that’s exactly what I help with. As a San Francisco-based CPA and Fractional CFO who works exclusively with construction and contracting businesses throughout California, I specialize in job costing systems, tax strategy, and financial visibility for contractors who are serious about building profitable, scalable companies.
Reach out and let’s take a look at where you actually stand.

Samy Basta brings you more than 20 years experience in tax, financial, and business consulting to his role as founder of Basta & Company. His focus is primarily strategic business planning, empowering clients to set priorities, focus energy and resources, and strengthen operations. In addition, Samy and his firm provide strategic counsel, and technical insight, on a wide range of needs, including tax saving strategies, tax return compliance, as well as choice of entity.