Financials & cash flow

COGS and labor percentage for contractors: the two numbers that explain your margin

Revenue tells you what came in. COGS and labor percentage tell you what you actually kept. This guide covers how to calculate both, what the numbers reveal, and how to use them to catch margin drift before the month closes.

By Datacube content engineAutogenerated

Formula

COGS = direct labor + materials and parts + subcontractor costs + equipment costs per job

Cost of goods sold (COGS) captures everything spent to complete a job before overhead enters the picture. For a plumbing or HVAC company, that means technician wages and burden (payroll taxes, benefits), the parts and materials on the truck, any subcontractors used on that call, and equipment wear allocated to the work. Overhead items such as management salaries, rent, insurance, and software are excluded from COGS. Gross profit = revenue minus COGS. Gross margin = gross profit divided by revenue, expressed as a percentage.

Definitions vary by accounting method. Always reconcile your COGS categories with your controller before building a reporting view.

Formula

Labor percentage = total labor cost / total revenue x 100

Labor percentage isolates the share of revenue consumed by field and install labor including burden. In most skilled-trades companies it is the single largest variable in COGS and the first number to move when something is off: overtime runs high, a job takes longer than the estimate, or crew mix is wrong for the work type. If labor percentage is running above your company target mid-month, gross margin is almost certainly compressing. Labor percentage and COGS are two views of the same cost story told at different levels of detail.

What this article covers

  • How to calculate COGS and gross margin in a home-service context, with the exact formula.
  • How labor percentage connects to COGS and why it is the fastest leading signal of a margin problem.
  • Which role in a contracting business owns each number and what decision it should trigger.
  • The data hygiene prerequisites before you can trust either metric in a reporting tool.
  • How to see COGS and labor percentage in real time, not just at month-end.

Why COGS and labor percentage belong on every contractor's dashboard

Most home-service companies track revenue because it is easy: jobs are billed, payments are collected, the number is obvious. COGS and labor percentage are harder to see in real time because the data lives in two places: the CRM holds the job and the revenue, and the accounting system holds the cost. When those two systems do not talk, margin is invisible until the bookkeeper closes the month.

The practical cost of that delay is real. If labor percentage climbs three points above target in week two, an owner who knows about it in week two can adjust scheduling, pull back on overtime, or review job types. An owner who finds out on the 8th of the following month is reviewing history. COGS and labor percentage are leading indicators of a margin problem, but only if you can see them before the period closes.

These two metrics also point at different parts of the cost structure. COGS is the full direct-cost picture per job or per period: labor, parts, subcontractors, equipment. Labor percentage isolates the biggest variable inside COGS, the one that moves the fastest and is most directly controllable by the operator through scheduling, dispatching, and coaching. Use both together: COGS to audit the overall margin, labor percentage to find the immediate lever.

Breaking down COGS in a field service business

COGS in a home-service company is not identical to COGS in a product-based business. You are selling labor and expertise, not manufacturing inventory. The line items that belong in COGS vary by trade and accounting approach, but the categories below cover most field service setups.

Field labor and burden

Technician and installer wages plus burden: payroll taxes (FICA, FUTA, SUTA), workers compensation, health insurance attributable to field staff, and any paid time off that is job-allocated. Burden typically adds 20 to 30 percent on top of the base wage. An HVAC technician earning $28 per hour may cost $34 to $38 per hour all-in. A company that prices labor at straight hourly rates without burden is underestimating its real labor cost per job.

Materials, parts, and inventory

Parts purchased for a specific job, materials pulled from truck inventory, and supply-house runs. For electrical, plumbing, and HVAC companies, materials cost per job can vary widely: a simple drain clear uses minimal parts; a full system install may have equipment costs that represent 30 to 50 percent of the job revenue. Accurate materials tracking requires that technicians log parts used in the CRM, not just the invoice total.

Subcontractor costs

Any outside labor used to complete a job billed under your company. Common in roofing, restoration, and general contracting, but also in electrical and plumbing for specialty work. Subcontractor cost belongs in COGS because it is a direct cost of delivering that specific job.

Equipment and vehicle allocation

Some companies allocate a portion of fleet costs and specialized equipment depreciation to COGS, treating it as a cost of doing the work rather than overhead. Others keep fleet entirely in overhead. Either approach is consistent as long as it is applied the same way every period. Shifting the treatment mid-year makes comparisons meaningless.

Who owns each margin metric in a home-service company

MetricWho tracks itDecision it drivesFrequency to review
COGS as % of revenue (gross margin)Controller or ownerIs the business profitable enough to cover overhead and grow?Weekly mid-month, monthly to close
Labor percentageOperations manager or GMIs scheduling and crew mix right for the job volume?Daily or weekly; adjust before overtime compounds
Materials cost per jobDepartment manager or service managerAre technicians logging parts and pricing jobs at cost-plus correctly?Per job and per week
Gross profit per tech per daySales manager or service managerWhich technicians are generating profitable production?Weekly for coaching, monthly for comp review
COGS by department (service vs. install)Owner or GMWhich revenue lines are actually profitable, and which are subsidized?Monthly at minimum; mid-month if one department is busy

Warning

Data visibility gap: QuickBooks alone is not enough

Most home-service companies run QuickBooks for accounting and a CRM (ServiceTitan, Housecall Pro, or Workiz) for jobs and scheduling. COGS in QuickBooks reflects what was coded to expense accounts. Labor percentage in QuickBooks depends on how payroll is categorized. Neither system, on its own, shows COGS and labor percentage per job or per technician in real time. The CRM holds the job-level data. QuickBooks holds the cost coding. Only when both are consolidated into one view can you see gross margin by job type, by department, or by tech without building a manual spreadsheet every week.

How to read labor percentage as an early warning signal

Labor percentage moves before most other margin signals. Here is why: labor costs are incurred daily, but the revenue from those hours may be spread across jobs that close over several days or weeks. When overtime runs in week one and the jobs are still open, labor cost is already in the books but the revenue has not yet posted. That timing gap makes labor percentage one of the best weekly indicators of whether the current month is on track.

The most common drivers of high labor percentage in field service

Overtime accumulation: scheduled hours exceed what the job volume supports, so technicians run overtime to close work rather than being dispatched efficiently. Callback and rework: a job that requires a second truck roll costs labor without generating additional revenue. Poor crew mix: sending two technicians when one would complete the job adds labor hours to the same revenue. Slow season with fixed labor: a company keeping its full field team through a demand trough will see labor percentage climb because revenue is down while payroll is fixed.

What to do when labor percentage is running high

First, confirm whether the overtime is job-driven or administrative: if techs are running overtime completing booked calls, the schedule may be undersupported. If overtime is in the shop or on callbacks, it points to rework or inefficiency. Second, check if a particular technician or job type is driving the number: a single high-overtime week on a large install does not mean the whole service business has a labor problem. Third, adjust dispatching before the week closes rather than after payroll posts.

COGS and labor percentage signals: good, watch, and poor

These are directional signals only. Targets vary significantly by trade, market, season, job mix, and business model. Use these as a starting point for setting your own thresholds with your controller.

  • Gross margin (revenue minus COGS / revenue)Compression during a growth push is worth investigating immediately
    Good
    Current
    Stable or improving vs. prior period
    Target
    Consistent with your target, not just positive
  • Labor percentage trend week-over-weekRising labor % during a busy period is a scheduling or efficiency signal
    Good
    Current
    Within 2 percentage points of your target
    Target
    Flat or declining as revenue grows
  • Materials cost as % of revenueParts logging gaps in the CRM often show up as unexplained materials cost increases
    Watch
    Current
    Creeping above prior period average
    Target
    Consistent with job type and pricing model
  • COGS by department: service vs. installInstall jobs typically carry different cost structures; blending hides the department picture
    Watch
    Current
    Install COGS significantly higher than service as % of revenue
    Target
    Each department tracked to its own margin target
  • Gross profit per tech per dayMulti-week decline usually points to overtime, callback volume, or a job-mix shift
    Poor
    Current
    Declining over two or more consecutive weeks
    Target
    At or above department average

Info

Before you build this: four data hygiene checks

Before wiring COGS or labor percentage into any reporting view, confirm four things: (1) Your QuickBooks chart of accounts separates field labor from management and overhead labor, otherwise labor percentage will include non-field costs and be misleadingly high. (2) Your technicians are logging parts used per job in the CRM, not just at invoice time. Incomplete parts logging makes materials cost invisible at the job level. (3) Your payroll export is coded consistently: if some payroll runs sit in COGS and some in overhead depending on who processed it, the numbers will not tie out. (4) Your CRM and QuickBooks are measuring the same period: a mismatch in cut-off dates between systems creates phantom margin swings that are data problems, not business problems.

Tracking COGS and labor percentage in a dashboard

The challenge is not calculating these metrics: the formulas are straightforward. The challenge is getting the data into one place, current enough to act on, without rebuilding a spreadsheet every Monday morning.

For teams using QuickBooks alongside a CRM such as ServiceTitan, Housecall Pro, or Workiz, a dashboard that consolidates both sources can surface gross margin, labor percentage, and COGS as a percentage of revenue in a single Financial board, updated far more frequently than the monthly close. Datacube's Financial board is configured to pull revenue and cost data from QuickBooks, then layer on job-level CRM data for department and technician breakdowns. That means an owner can see labor percentage by department mid-week, not just as a month-end line on the income statement.

The goal is not to replace the income statement. It is to surface the signals that predict what the income statement will say, early enough to change the outcome. A labor percentage dashboard is most useful as a weekly coaching tool for operations managers and dispatchers, not as a month-end accounting report. See the financial dashboard page for a closer look at what those boards include.

COGS and labor percentage for contractors: common questions

See your margin picture before the month closes

If your COGS and labor percentage live in QuickBooks and your job data lives in your CRM, a datacube financial dashboard can bring both together in one view your controller and your operations manager can both use. Book a live demo to see what that looks like for a company at your scale.