Skip to main content
Back to Blog
Job Costing

Mid-Year Profit Check: Is Your Crew Making Money?

A 60-minute mid-year financial check on each crew. Pull YTD revenue, direct labor, burden, and gross margin. Walk through a worked example and a diagnostic tree for underperforming crews.

Tyson Faulkner·April 27, 2026·12 min read

The 60-Minute Question Every Contractor Should Be Asking

Mid-year is the cheapest time to catch a crew that is not making money. Catch it now and you have six months left to fix it. Catch it at year-end and you already lost the year.

This is a 60-minute exercise. You are going to pull four numbers per crew, compute one ratio, and decide which crews are healthy and which need work. That is it. No accounting degree required.

If you have been running job costing for contractors properly all year, the numbers are already in your system and this takes 30 minutes. If you have not, the first time you run this it will take longer because you are pulling data from invoices, payroll, and supplier statements. Either way, the math is simple.

A Quick Note From Tyson

My background is in roofing, not a generic trade, but the profit-check math works the same way regardless of what your crews do. The numbers below come from how I ran roofing crews, but the framework applies to siding, framing, drywall, electrical, plumbing, landscaping, or any production trade where you have crews working on jobs.

When I was running crews, I ran this check four times a year. First quarter the data was thin and I mostly looked at trends. Mid-year was the big one. That is the check that decided whether I held the same crew structure into fall or made changes. The mid-year check saved me from a full year of unprofitable work more than once.

Here is the process.

What You Need to Pull

For each crew, you need four YTD numbers:

  1. Revenue: total dollars billed on jobs completed by that crew
  2. Direct material cost: shingles, underlayment, fasteners, lumber, whatever applies
  3. Direct labor cost: piece rate or hourly wages paid to that specific crew
  4. Labor burden: payroll taxes, workers comp, general liability, benefits, vehicle, fuel, small tools

If you do not know your fully burdened labor rate, stop and read Fully Burdened Labor Rate for Construction first. Without that number, every margin calculation downstream is wrong.

Use our labor burden calculator to back into your burden percentage if you do not have it tracked.

The Math

Once you have those four numbers, the formulas are:

  • Direct cost = direct material + direct labor + labor burden
  • Gross profit = revenue - direct cost
  • Gross margin % = gross profit / revenue

That is the entire calculation. The question is what to do with the answer.

Step 1: Set the Target

Before you compute anything, decide what gross margin you need each crew to hit. The target depends on your overhead and your owner pay expectations.

A simple way to set the target:

  • Sum up your annual company overhead (office, admin pay, marketing, insurance not allocated to crews, software, accounting, legal)
  • Add your target owner pay
  • Add your target net profit
  • Divide that total by projected annual revenue
  • The result is the gross margin percent your crews need to average to cover overhead, pay you, and produce profit

For most trade contractors, that target lands somewhere between 28 and 38 percent. If your overhead is lean and your volume is high, you can run lower. If your overhead is heavy or volume is light, you need more.

For this article, we will use a 30 percent target. Anything below that is a flag.

Step 2: Pull the Numbers Per Crew

Run the calculation for each crew separately. The whole point is to find the gaps between crews. A company-level number tells you the average. The crew-level number tells you where the problem actually is.

Worked example. You have three crews. YTD through end of June:

CrewYTD RevenueYTD MaterialYTD LaborYTD BurdenDirect CostGross ProfitGross Margin %
Crew A$480,000$145,000$115,000$35,000$295,000$185,00038.5%
Crew B$420,000$135,000$130,000$45,000$310,000$110,00026.2%
Crew C$360,000$108,000$86,000$26,000$220,000$140,00038.9%

Crew A and Crew C are both above the 30 percent target. Crew B is at 26.2 percent, well below target. The dollars look fine because Crew B is producing volume, but the percent tells the real story.

If you only looked at revenue, Crew B looks like your second-best performer. Once you look at margin, Crew B is your problem.

Step 3: Diagnose the Underperforming Crew

Before you do anything drastic, figure out why Crew B is below target. There are four common causes. Walk through them in order.

Cause 1: Rate Problem

Are you charging enough for the work this crew does? Pull a sample of recent jobs and compute sell price per square (or per unit, or per hour, depending on how you bid). Compare to the other crews on similar work.

If Crew B is running similar job types as Crew A and Crew C but at a lower sell price per square, the problem is your bid rate. The fix is to raise rates on the next bids, not to change the crew.

This often happens when one crew works for a specific customer or referral source that has been getting old pricing for years. Check if Crew B is heavy in one customer relationship. If yes, that is where the rate conversation starts.

Cause 2: Job Mix Problem

Are the jobs themselves different? Some jobs are inherently lower margin even at fair pricing:

  • Cut-up roofs with lots of valleys, dormers, and chimneys
  • Tear-offs with multiple layers or rotted decking
  • Long material haul distances
  • Customer-supplied materials (no markup margin)
  • Insurance jobs with capped pricing

Pull the job list for Crew B. Are they getting a disproportionate share of these tough jobs? If so, the crew is not the problem. The mix is. Either rebalance the work across crews or price the harder jobs at a higher margin.

For more on pricing accurately, read How to Price Roofing Jobs Accurately.

Cause 3: Productivity Problem

Are they slow? Compute squares per labor hour for each crew on similar work.

  • Crew A: 220 squares completed, 950 labor hours = 0.232 squares/hour
  • Crew B: 195 squares completed, 1,180 labor hours = 0.165 squares/hour
  • Crew C: 175 squares completed, 720 labor hours = 0.243 squares/hour

Crew B is producing 30 percent fewer squares per labor hour than the other two. That is a productivity gap, not a rate gap. The fix here is operational: crew lead, training, equipment, or crew composition.

Cause 4: Crew Lead Problem

Crew leads run the day-to-day. A weak lead shows up as:

  • Late starts
  • Long lunches
  • Disorganized loadouts
  • Material waste
  • High callback rate
  • Crew turnover within the crew

If you walk a Crew B job and it feels disorganized compared to Crew A or Crew C, the lead is likely a piece of the problem. Sometimes that means coaching. Sometimes that means swapping leads.

Step 4: Compare YTD Margin to Last Year

One number alone is not enough. Pull last year's YTD margin for each crew and compare. Three patterns:

  • Margin holding steady: crew is performing as expected, no action needed
  • Margin declining: something changed. Could be rate not keeping up with cost, could be a new crew lead, could be job mix shifting
  • Margin improving: keep doing what you are doing and figure out why so you can replicate it

A crew at 26 percent that was at 32 percent last year is a different problem from a crew at 26 percent that has been there for three years. The first is a recent change you can probably fix. The second is structural.

Step 5: Action Plan by Margin Band

Once you have the diagnosis, the action depends on how far below target the crew is.

Above target

Leave it alone. Document what is working. Use this crew as the benchmark for the others.

Within 3 points of target (e.g., 27-30%)

Coach. Tighten rates on next bids. Audit job mix. Watch for one quarter and see if it moves.

5-10 points below target (e.g., 20-25%)

Active intervention. Pick the one biggest cause from the diagnosis above and fix it specifically. Set a 60-day target to move the margin up at least 3 points. Track weekly.

More than 10 points below target

Hard call. The crew is losing you money on every job. You have three options:

  1. Restructure: change the crew lead, swap members, re-rate the work
  2. Reassign: move the crew to a different type of work where they can hit margin
  3. Cut: end the crew, redistribute work to remaining crews, hire more selectively going forward

Cutting a crew is hard, especially if you have personal relationships with the workers. But carrying an unprofitable crew through the back half of the year is more expensive than the conversation.

Step 6: Worked Diagnostic on Crew B

Let's run the full diagnostic on Crew B from the table above.

Starting numbers:

  • Revenue: $420,000
  • Direct cost: $310,000
  • Gross margin: 26.2%
  • Target: 30%
  • Gap: 3.8 points = roughly $16,000 in missing gross profit YTD

This puts Crew B in the "within 5 points" band. Active intervention, not a cut.

Diagnostic walk-through:

Rate check: Pull last 10 jobs. Average sell price per square = $268. Crew A's average on similar work = $282. That is a $14 per square gap. On 1,500 squares of YTD volume, that is $21,000 of missing revenue at the same cost. This is most of the gap.

Mix check: Crew B has done six insurance jobs YTD versus one for Crew A. Insurance jobs are running 22% margin versus 33% on retail. Some of the gap.

Productivity check: 0.165 squares per hour versus 0.243 for Crew C. Crew B is the slowest. Real but smaller dollar impact than rate.

Lead check: Crew B has had two crew lead changes in the last six months. Current lead is three months in. Likely a contributor to productivity.

The action plan writes itself:

  1. Stop bidding retail jobs at the old rate. Bring Crew B's retail bids up to match Crew A's pricing. Effective immediately on new bids.
  2. Push insurance work to a separate sub-team or rate insurance work at a higher margin to compensate for capped pricing.
  3. Pair the new Crew B lead with Crew A's lead for two weeks of shadowing. Document what changes.
  4. Re-check margin at end of Q3. Target: 29%+ on Q3-only revenue.

If Q3 hits 29%, you keep going. If Q3 is still at 26%, you have a structural problem and the conversation gets harder.

Step 7: Lock the Process for Next Quarter

The mid-year check is most valuable when you do it again in three months. Lock in the calendar. Same spreadsheet, same numbers, same decision tree.

A few things to set up while the data is fresh:

  • A standard crew profitability report you can pull each quarter
  • A list of which jobs belonged to which crew (this is harder than it sounds if you do not track it)
  • A baseline target margin per crew so you are comparing to the same number every quarter
  • A standing 60-minute calendar block for the check

You can run all of this in a spreadsheet. You can also run it in Piece Work Pro where the crew, job, labor, and revenue data is already linked. Either works. The key is doing it on a schedule.

Notes

A few things worth flagging:

  • Burden is the most-fudged number: contractors routinely understate their burden because they do not include vehicle, fuel, small tools, or unallocated insurance. If your burden number looks low, dig deeper. A 10 percent understatement of burden can hide a real margin problem. Read How to Calculate Labor Burden in Construction for the full list.
  • Overhead is not in this calculation: the gross margin number is before company-wide overhead. That is intentional. The crew should not be allocated office staff and marketing costs. The crew is judged on what it produces and what it costs to produce it. Overhead absorption is a separate company-level question.
  • Crew profitability is not crew evaluation: a 26 percent crew is not necessarily a bad crew. They might be in a tough job mix or working at undersold rates that are not their fault. Diagnose before you judge.
  • Owner-operator crews are different: if you are running a crew yourself, your "crew" margin includes your sweat equity. Do not skip your own rate or you will think the crew is profitable when it is just running on free owner labor.
  • Re-run the check on overtime exposure: while you are pulling YTD labor, check your overtime calculations on piece rate workers. Read How to Calculate Overtime for Piece Rate Workers if you have any doubt about whether you are doing the math right.

Closing

The 60-minute mid-year check is the highest-leverage hour you spend all year on the financial side of your business. Pull four numbers per crew. Compute one ratio. Compare to target. Diagnose the gap. Make a plan.

You catch one underperforming crew at mid-year and adjust, you can move that crew from 26 percent to 32 percent in a quarter. On a $400K revenue base, that is $24,000 in gross profit you would not have caught if you waited until year-end.

Sign in to Piece Work Pro to track crew, job, and labor data in one place so the mid-year check takes 30 minutes instead of three hours.

Related reading:

Frequently Asked Questions

What gross margin should a contractor crew be hitting?

For most trade contractors, a healthy crew gross margin is 30 to 40 percent at the crew level, before company-wide overhead and owner pay. Below 25 percent, the crew is not contributing enough to cover overhead and profit. Use your own historical numbers as the benchmark. If your best crews are doing 35 percent and one is at 22 percent, that is the gap to investigate.

How often should I run a profit check on each crew?

Quarterly at minimum. Mid-year is a natural checkpoint because you have enough data to spot trends but enough season left to fix them. Some contractors run a monthly mini-check on revenue and direct cost, then do the full burden and margin pull every three months.

What is the fastest way to spot an underperforming crew?

Compare gross margin percent across crews on similar work. If two crews are doing the same job type and one is hitting 32 percent gross margin while the other is at 21 percent, that is your problem crew. The dollars matter, but the percent is what reveals whether the issue is rate, mix, or productivity.

When should I cut an underperforming crew versus trying to fix it?

Try to fix it first. Diagnose whether the problem is rate, job mix, crew lead performance, or crew composition. If after one quarter of focused fixes the margin still has not moved, you cut. Holding onto an unprofitable crew through a full season costs more than the hard conversation.

Free Guide

How to Pay Your Crew 20% More and Double Your Profit

The math most contractors never run — and the mistakes that cost them $93K+ a year. This free PDF breaks down the math in ten minutes. Plus, you'll understand the payroll traps that can wipe you out.