Job Costing for DFW Contractors: How to Know Which Jobs Actually Make You Money

Moji Shobowale, CPAWritten and reviewed by Moji Shobowale, CPATexas & Illinois CPA · QuickBooks Online ProAdvisor · Updated October 2026
Three construction workers in high-visibility vests reviewing blueprints and a laptop, seen from above
The short answer

Job costing tracks every dollar of labor, materials, subs and equipment against the job that caused it, then compares what you spent to what you bid. Most contractors undercount labor because they use the wage instead of the true cost of an hour. Set up Projects and classes in QuickBooks Online, check open jobs weekly, review closed jobs monthly and price your next bid from real numbers.

Yes, we wrote this so contractors across Dallas-Fort Worth searching for "job costing for contractors" would find Mashbooks. That's the honest reason. We also wrote it because we keep seeing the same pattern in trade businesses: the crew is booked solid, the phone keeps ringing, and the owner still can't say which jobs made money.

So here's the real answer, from a CPA who started her career as an auditor.

Key takeaways
✓Job costing tracks revenue and direct costs by job, so you can see gross margin on every job and every job type.
✓The true cost of a labor hour includes employer payroll taxes, workers' comp, benefits and the hours you pay for but can't bill. In our example scenario, a $28 per hour tech costs about $48 per billable hour.
✓QuickBooks Online Plus and Advanced include Projects and class tracking. Tags are being retired, so new setups should use custom fields.
✓Check open jobs weekly and review closed jobs monthly. The close-out review is where your next bid gets better.
✓Price from margin, not markup. A 30% markup only produces about a 23% gross margin.
01

Busy Isn't Profitable

A full schedule feels like success. But revenue tells you how much work you did. It doesn't tell you whether the work paid.

Most contractors look at one number at year end: total profit on the tax return. If it's fine, every job feels fine. If it's bad, every job feels suspect. Neither is true.

In almost every trade business, some jobs carry the company and others quietly drain it. A plumber's water heater swaps might earn strong margins while new-construction rough-ins barely break even. Without job costing, you'll keep saying yes to the work that hurts you, because it looks just like the work that helps you.

Moji Shobowale, CPA
Moji's take

“When I review a contractor's books, the first question isn't 'How much did you make?' It's 'Which jobs made it?' If the books can't answer that, we fix the books first.”

02

What Job Costing Is (and Direct vs. Indirect Costs)

Job costing means assigning revenue and costs to the specific job that earned or caused them. Every job becomes its own small profit and loss statement.

What's left after the job's costs is gross profit. Divide it by the job's revenue and you get gross margin, the share of each dollar you kept after paying for the work itself.

To get there, sort costs into two buckets.

Direct costs

Direct costs exist only because a specific job exists:

Field laborfor crew hours on that job, at the burdened rate (more below)
Materialslike wire, pipe, tile, shingles, sod, epoxy and fixtures
Subcontractorshired for that job
Equipment rentalfor that job, like a lift or a floor grinder
Job feeslike permits, dumpsters and disposal

Indirect costs (overhead)

Overhead keeps the business running no matter which job you're on: shop rent, software, general insurance, office staff, marketing, phones, and trucks and tools that move between jobs.

Overhead has to be covered. But mixing it into job costs makes every job look worse and hides the ones that are truly underwater. Keep the buckets separate, then deal with overhead on purpose.

03

Labor Burden: The True Cost of an Hour of Crew Time

Labor is where most job costing goes wrong. Contractors cost labor at the wage, say $28 an hour. But that employee costs you far more than $28 for every hour on a job.

The difference is labor burden: every cost of employing someone on top of their wage, plus the paid time that never lands on a job.

Employer payroll taxes (verified for 2026)

Social Security and MedicareYou match your employee's 6.2% Social Security and 1.45% Medicare, for 7.65% on top of wages, according to IRS Topic No. 751. For 2026, Social Security applies to wages up to $184,500.
Federal unemployment (FUTA)The rate is 6.0% on the first $7,000 of each employee's wages, with a credit of up to 5.4% if you pay state unemployment tax, which brings it to 0.6%, per IRS Topic No. 759.
Texas unemployment taxThe Texas wage base is $9,000 per employee per year, and the 2026 new-employer rate is 2.70%, according to the Texas Workforce Commission. Established employers get their own rate, so check your TWC notice.

The other costs riding on every hour

•Workers' comp insurance, if you carry it. Ask your agent for your rate.
•Health insurance and benefits you pay for.
•Paid time off and holidays, which never land on a job.
•Non-billable time like drive time, supply house runs, shop time and warranty callbacks.

That last one is the big one. If a tech is paid for 2,080 hours but only 1,500 land on customer jobs, every billable hour has to carry the other 580.

If you cost this tech at $28, every 100-hour job is undercosted by about $2,000. Multiply that across a year and you can see how a busy company ends up short on cash.

If you run payroll through Gusto, the wage and tax numbers already sit in your payroll reports. Our payroll, 1099s and sales tax service makes sure wages and employer taxes land in the right accounts, so this calculation takes minutes instead of guesswork.

Want job costing set up in your books?Free review. One-page summary. No obligation.
Call (469) 712-4199
04

Materials: Where Small Leaks Turn Into Big Ones

Materials feel easy because you have receipts. In practice, they leak in predictable ways:

•Supply house runs on a shared card that never get assigned to a job
•Truck stock used on a job but never charged to it
•Returns credited to your account but not back to the job
•Customer upgrades bought without a signed change order
•Waste that runs higher than your estimate assumed

The fix takes discipline, not software. Every bill and receipt gets a job name before it's entered. Ask suppliers to print the job name or PO number on every ticket.

For truck stock, pick one method and stick with it. Charge a flat shop-supplies amount per job, or assign each restock to the jobs that used it. Either works. Not tracking it doesn't.

05

Subcontractors and 1099s

Contractor or employee?
W-9 first, then 1099-NEC
The 1099-NEC threshold changed for 2026

Subs are a direct cost of the job they work on, so enter every sub's bill against that job. Then handle the paperwork.

Contractor or employee?

Calling someone a "sub" doesn't make them one. The IRS weighs three groups of facts: behavioral control (do you control how the work is done?), financial control (who supplies tools, how they're paid) and the type of relationship (contracts, benefits, whether the work is ongoing and key to your business). The IRS guide to independent contractors vs. employees ↗ explains each one.

If your "subs" work only for you, use your tools and follow your schedule, talk to a CPA. Getting this wrong can mean back payroll taxes.

W-9 first, then 1099-NEC

Collect a Form W-9 before the first payment. The IRS page on forms for independent contractors ↗ calls the W-9 the first step and says to keep it for four years. If a sub won't give you a correct taxpayer ID number, you may have to withhold 24%, according to the IRS backup withholding page ↗.

The 1099-NEC threshold changed for 2026

For payments made in 2026, you file Form 1099-NEC when you pay someone $2,000 or more for services during the year. That's up from $600, and it may be adjusted for inflation starting in 2027, according to the IRS Instructions for Forms 1099-MISC and 1099-NEC ↗. The form is due to the IRS and to your subs by January 31.

Two details from those instructions matter for contractors:

•Payments to a corporation (including an LLC taxed as a C or S corporation) generally don't need a 1099-NEC, except payments for legal services.
•Payments for merchandise alone aren't reported. But if a sub supplies parts or materials as part of their service, the whole payment counts.

Collecting W-9s and filing 1099s is part of our payroll, 1099s and Texas sales tax service.

06

Overhead Allocation

Once direct costs are clean, deal with overhead. You have two honest options.

Option 1: Keep overhead out, and set a target margin

This is what we recommend for most small trade businesses. Track gross margin by job and compare it to overhead as a percentage of revenue.

Example scenario: a contractor has $180,000 a year in overhead and $1.2 million in revenue. Overhead runs 15% of revenue. Any job with a gross margin under 15% lost money once overhead is counted.

Option 2: Allocate overhead to each job

Percent of revenueIn the scenario above, a $38,000 job carries $5,700 of overhead (15%).
Per labor hourIf that contractor's crews bill 6,000 hours a year, overhead is $30 per crew hour. A job that runs long eats more overhead, which is closer to how it really works.
Moji Shobowale, CPA
Moji's take

“Pick one method and use it consistently. A simple method you actually use beats a perfect one that lives in a spreadsheet nobody opens.”

07

Gross Margin by Job and by Job Type

Job margins tell you how each job went. Job type margins tell you what kind of company you should be.

Group jobs the way you sell them. An electrician might use service calls, panel upgrades and new construction. A remodeler might use kitchens, baths and repairs. A lawn care company might use weekly maintenance, installs and irrigation.

Example scenario: a Garland HVAC company does $600,000 in system replacements at a 28% gross margin and $250,000 in repairs at a 55% gross margin. Replacements bring in more gross profit ($168,000 vs. $137,500), but repairs keep far more of each dollar. That changes how the owner hires, prices and spends the marketing budget.

You won't see that on a single company profit and loss statement. You see it when every job is labeled with its type, which is what classes in QuickBooks Online are for.

Want to know which of your jobs are paying the bills?
Book Your Free Books & Tax Review. We'll look at your books and last year's return and send you a one-page summary of what's working, what's broken and what to fix first. Whether you run a crew out of Garland or a shop in McKinney, it's free and there's no pressure.
Book Your Free Books & Tax Review · Call (469) 712-4199
08

Worked Example: One Remodel, Estimate vs. Actual

Everything below is an example scenario with illustrative numbers. It isn't a real client or job.

Example scenario: a remodeler bids a bathroom remodel for a homeowner in Plano at a lump-sum price of $38,000. Crew labor costs $48 per billable hour (rounded from the calculator above). Overhead runs 15% of revenue. The job wraps, the homeowner is happy, and the close-out review shows this.

The margin math

Estimated gross profit$38,000 minus $25,330 = $12,670, a 33.3% gross margin.
Actual gross profit$38,000 minus $29,690 = $8,310, a 21.9% gross margin.
After overheadsubtract $5,700. The estimate promised $6,970 of net profit. The job delivered $2,610.

With overhead allocated per labor hour instead ($30 per crew hour), the actual job carries 205 x $30 = $6,150 of overhead, and net profit drops to $2,160, or 5.7%. Long jobs cost twice: once in wages and again in overhead.

What the variances tell you

Labor ran 45 hours overTile layout? A bad wall behind the vanity? If tile always runs long, your next bid needs more tile hours.
Materials ran $1,150 overThe homeowner picked a nicer shower valve on site, and nobody wrote a change order.
Subs ran $600 overThe electrician added a heated-floor circuit. Another missed change order.
Disposal ran $450 overAn extra dumpster swap. Worth a line in the next estimate.

Two of the four overruns were billable. With signed change orders, this job's margin would've landed much closer to the estimate.

Want job costing set up in your books?Free review. One-page summary. No obligation.
Call (469) 712-4199
09

How to Set Up Job Costing in QuickBooks Online

QuickBooks Online (QBO) can handle job costing for most small trade businesses, as long as the setup is right. Menu names change from time to time, so your screen may look a little different.

Step 1: Check your plan

Intuit's help article on setting up and using projects ↗ says Projects are available in QuickBooks Online Plus or Advanced, and project estimates with estimate-vs.-actual tracking are Advanced only. Class tracking is also a Plus and Advanced feature, per Intuit's guide to turning on class tracking ↗.

Step 2: Create a project for every job

Go to Business overview, then Projects, and select New project. Name it so your team will recognize it (customer last name, street and job type works well) and pick the customer. Then choose the project in the Customer or Customer/Project field on every estimate, invoice, bill and expense.

Step 3: Turn on classes for job type

Go to the Settings gear, then Account and settings, Advanced and Categories, and turn on Track classes. Choose One to each row in transaction so one bill can split across job types, and turn on Warn me when a transaction isn't assigned a class. Then create one class per job type.

Projects track the job. Classes track the kind of job. Together, they give you margin by job and by job type.

Step 4: Put labor on the job

Worth rememberingestimated hourly costs

Intuit's article on tracking hourly labor costs by project ↗ describes two methods: payroll expenses, which post to the project after payroll runs, and estimated hourly costs, which multiply tracked hours by each employee's cost rate and show up right away.

Intuit's guide to estimating hourly employee cost rates ↗ lets that rate include wages, employer taxes, benefits, workers' comp and overhead items. That's the labor burden calculation, built into the project. Set rates before anyone tracks time, because Intuit says they only apply to time tracked afterward.

One caution: Intuit says the Project profitability report on the Project Reports tab uses payroll expense data. If you only track hourly costs, test it on one job before relying on it.

Step 5: Skip tags. Use custom fields.

Older guides tell you to use tags. Don't build a new setup on them. According to Intuit's article on migrating tags to custom fields ↗, QuickBooks stopped letting users create new tags for reporting on May 16, 2025, and existing tag users keep them until May 2028. The replacement is custom fields. Plus includes 4 and Advanced includes 12, and Advanced custom fields work on projects.

Step 6: Split your chart of accounts

Create cost of goods sold accounts (the accounts for direct job costs) for Direct Labor, Materials, Subcontractors, Equipment Rental, and Permits and Fees. Keep overhead in regular expense accounts. Now gross profit shows on its own line.

If that sounds like a weekend you don't have, it's what our QuickBooks Online setup and training service covers. Moji is a QuickBooks Online ProAdvisor, and we build projects, classes, cost rates and accounts around how your crews actually work. If your books are already a mess, start with bookkeeping cleanup and catch-up so the job costs you see are real.

10

Weekly and Monthly Job Costing Habits

Setup is the easy part. The habits make it pay.

Every week (about 30 minutes)

•Assign every receipt and bill to a project before it's entered
•Approve timesheets and put every hour on a job, or mark it as shop or drive time
•Compare open jobs to the estimate. If a job has used 70% of its labor budget at 40% done, you want to know now
•Write change orders the same day the customer asks for something extra
•Send progress invoices on schedule

Every month

•Reconcile bank and credit card accounts
•Run a close-out review on every finished job, line by line like the worked example
•Review margin by job type using classes
•Check overhead as a percentage of revenue
•Update your estimating numbers: hours per task, waste factors and burdened labor rate

Monthly reconciling and review is the core of our monthly bookkeeping and accounting service, with your books reviewed by a CPA every month. If you've fallen behind, our guide on how to catch up on bookkeeping walks through it step by step.

11

Using Job Costs to Price the Next Bid

This is the payoff. With real close-out numbers, your next estimate stops being a guess.

Start from actual costs

In our example scenario, the bathroom was bid at $25,330 in direct costs and actually cost $29,690. If the next bathroom is similar, start from $29,690 and adjust for what's different.

Price from margin, not markup

Markup is what you add on top of cost. Margin is what you keep out of the price. Mixing them up is one of the most common pricing mistakes in the trades.

Example scenario, 30% markup$29,690 x 1.30 = $38,597. That's only about a 23.1% gross margin, almost exactly what the first job delivered.
Example scenario, 30% target margin$29,690 ÷ (1 minus 0.30) = $42,414. Round up to $42,500 for about a 30.1% gross margin.

To set your target margin, add your overhead percentage to the net profit you want. In our scenario, 15% overhead plus a 15% profit target means a 30% target gross margin. At $42,500, overhead is $6,375 and net profit is $6,435, about 15.1%.

Know your walk-away number

Your walk-away number is the lowest price that still covers direct costs and the job's share of overhead. Below it, the job loses money even if everything goes right. Saying no is a profit decision, not a lost sale.

Moji Shobowale, CPA
Moji's take

“The best bids come from contractors who treat every finished job like a lesson. Their estimates get a little sharper every month, and so do their margins.”

When you know your margins, you can also project the year and plan for the tax bill. Our guide to small business tax strategies for DFW owners covers that, and our year-round tax planning service puts it into practice with quarterly check-ins.

12

Tracking Revenue by Marketing Source

Most contractors know what they spend on marketing. Few know the gross profit each channel brings in. Referrals might bring larger, better-margin jobs. A lead service might bring lots of small, thin-margin ones.

Here's how to track it:

1Ask every new customer how they found you.
2Create a "Lead Source" custom field in QuickBooks Online with a dropdown (Referral, Google, Repeat Customer, Yard Sign, Social Media).
3Fill it in on every estimate and invoice.
4Each quarter, compare revenue and job margins by source against what you spent on each channel.

Example scenario: a McKinney roofer spends $350 a month on online ads, or $2,100 over six months. If those ads produced four roof replacements with $24,000 of combined gross profit, the channel is pulling its weight. If they produced a dozen small repairs that barely covered the trip charge, it's time to rethink.

13

Texas Sales Tax Notes for Contractors

Texas sales tax for contractors depends on the type of property and the type of contract. Our Texas small business taxes guide covers the bigger picture.

Residential repair and remodeling

According to the Texas Comptroller's publication on real property repair and remodeling ↗, labor to repair, remodel or restore residential real property isn't taxable. Materials depend on your contract:

Lump-sum contract(one price for the job): you pay sales tax on materials when you buy them and don't charge the customer tax. That tax is a real job cost, so include it in materials.
Separated contract(materials and labor listed separately): you can give suppliers a resale certificate for incorporated materials, then collect tax from the customer on the materials charge.

Commercial work and new construction

The same publication says the total charge for remodeling, repairing or restoring nonresidential real property is taxable, and that construction labor on new construction isn't. If you do both residential and commercial work, keep them in separate job types. Homebuilders can find more in the Comptroller's publication on homebuilders and real property services ↗.

Landscaping and lawn care

According to the Comptroller's publication on landscaping and lawn care services ↗, mowing, planting, fertilizing and tree trimming are generally taxable, including residential work. There's a narrow exception for a self-employed person with no employees and $5,000 or less in gross receipts from these services in the most recent four calendar quarters.

Sales tax gets detailed fast, and one job can mix taxable and nontaxable work. Our payroll, 1099s and Texas sales tax service keeps your filings current and tied to your books. For federal basics, the IRS Small Business and Self-Employed Tax Center ↗ and the SBA's guide to managing your business finances ↗ are good places to start.

14

Ready to See Which Jobs Actually Pay?

We wrote this for owner-run trade businesses across DFW: electricians in Frisco, plumbers in Allen, HVAC companies in Garland, remodelers in Plano, and roofers, epoxy crews and lawn care companies from Denton to our home base of McKinney. See every city we serve on our service areas page, and find more guides in our Contractors & Trades category. Not sure who you need? Read bookkeeper vs. CPA vs. tax preparer.

We'll be honest one more time. We'd love to be your accountant. But even if we never work together, we hope this helps you price your next job with real numbers.

If you'd like a CPA to look at your books, book your free Books & Tax Review. We'll review your books and last year's return and send a one-page summary of what's working, what's broken and what to fix first.

Book Your Free Books & Tax Review · Call (469) 712-4199

This article is general information, not tax or legal advice for your situation. Talk with a CPA before acting on it.

About the author: Written and reviewed by Moji Shobowale, CPA, founder of Mashbooks in McKinney, TX. Licensed CPA in Texas and Illinois and QuickBooks Online ProAdvisor. Last updated: November 2026

Frequently asked questions

Job costing for contractors is tracking revenue and direct costs (labor, materials, subcontractors, equipment and job fees) for each job. It shows the gross profit and gross margin on every job, so you can see which jobs and job types actually make money.

To calculate the true cost of a labor hour, add up everything an employee costs you in a year (wages, employer payroll taxes, workers' comp, benefits and other costs), then divide by the hours they actually bill to jobs. In our example scenario, a $28 per hour employee costs about $48 per billable hour.

Moji Shobowale, CPA
Moji Shobowale, CPACPA · Texas & Illinois · QuickBooks Online ProAdvisorMoji started her career as an auditor and now helps DFW business owners keep clean books and plan their taxes all year.
Margaret Hunt Hill Bridge reflected in still water under an orange sunset
Free. No Obligation.

Reading is a great start. Let's look at your numbers.

We'll review your books and last year's return and send a one-page summary of what's working, what's broken and what to fix first.