Guide for every trade

How to Read a Profit and Loss Statement for Contractors

Updated · 13 min read

The short answer

A contractor's profit and loss statement shows whether the work you did over a period made money. Read it top down: revenue, minus cost of goods sold (job costs such as materials, field labor, subcontractors and permits), equals gross profit; minus overhead (office staff, rent, insurance, marketing, software) equals net profit. Check gross margin against your target first, then overhead, then net profit, and compare each to the same month last year.

What a P&L tells you, and what it doesn't

A profit and loss statement (P&L, also called an income statement) answers one question: did the work you did over a period make money, and where did it go? It covers a stretch of time, such as a month or a year, and it's built from your invoices, bills, payroll and receipts.

It does not tell you how much cash you have. Unpaid invoices, loan payments, a new truck and what you take out for yourself can all make your profit and your bank balance tell different stories. Read the P&L for profit, and your bank balance and unpaid invoices for cash.

Every contractor P&L, from a one-van detailer to a solar installer with three crews, comes down to five lines. Bookkeepers and software label them differently, so the other common names are in parentheses:

Line What goes in it
Revenue (income, sales) Service calls, installs, maintenance plans, memberships, change orders
Cost of goods sold (cost of sales, job costs, direct costs) What the jobs cost: materials, equipment, field labor, subcontractors, permits, disposal
Gross profit Revenue minus cost of goods sold
Overhead (operating expenses, indirect costs) What it costs to be open: office staff, rent, insurance, marketing, software, accounting
Net profit (net income) Gross profit minus overhead and other costs such as loan interest

Revenue: split it the way your work splits

One revenue number hides what's going on. Break it into the kinds of work that have different costs, prices and seasons:

  • HVAC: service and repair, replacements, maintenance agreements.
  • Roofing: retail replacements, insurance jobs, repairs.
  • Plumbing: service calls, water heaters and other installs, drain and sewer work.
  • Electrical: service calls, panel upgrades, EV chargers, remodel work.
  • Solar: system installs, batteries, service.
  • Auto detailing: one-time details, memberships, paint correction and coatings.
  • Pressure washing: residential jobs, commercial accounts, add-ons such as gutters.

A month where replacements fell and service calls rose can look flat in total while the mix, and the margin, changed underneath.

Keep two more things on their own lines:

  • Sales tax you collect. If your state taxes your work, that money belongs to the state. Keep it out of the revenue you judge the month by, and ask your CPA how to report it.
  • Refunds and discounts. Record them separately, not netted out of each invoice, so you can see what they cost you over a year.

Cost of goods sold: what the jobs cost

Cost of goods sold holds every cost that exists only because a job happened. The test: if the job hadn't happened, would you have spent this money? If not, it's a job cost.

Trade Typical job costs, besides field labor
HVAC Condensers, furnaces, coils, line sets, refrigerant, thermostats, permits
Roofing Shingles, underlayment, flashing, decking, dumpsters and dump fees, subcontracted crews
Plumbing Water heaters, fixtures, pipe and fittings, permits, equipment rented for a job
Electrical Wire, panels, breakers, devices, chargers you supply, permits, lift rental
Solar Modules, inverters, racking, wiring, permit and interconnection fees, subcontracted trenching
Auto detailing Chemicals, pads, towels, coating product
Pressure washing Sodium hypochlorite and surfactants, fuel, wear parts such as nozzles

Field labor belongs here, with its burden. Wages for time on jobs are a job cost, and so are the payroll taxes, workers' comp and benefits that come with them. If all wages sit in one overhead account, gross margin looks high, overhead looks bloated, and you can't tell whether your prices cover crew time. Labor-heavy trades like detailing and pressure washing get the most distorted picture. How to set your labor rate shows what an hour of field labor really costs.

Decide where the gray areas go, then leave them there. Truck fuel, small tools, shop supplies and a tech's paid time between jobs can sit in job costs or overhead. Either works. Switching back and forth doesn't, because then no two months compare. Write your rules on one page for whoever keeps your books.

Watch for stock-ups. If materials are expensed when you buy them rather than when you use them, a plumber who stocks up on water heaters in March shows a weak March and a strong April, even if the jobs were identical. Read gross margin over two or three months at a time, or track materials by job.

Gross profit and gross margin: check these first

Gross profit is revenue minus cost of goods sold. Gross margin is gross profit as a share of revenue:

  • Gross profit = Revenue minus Cost of goods sold
  • Gross margin % = Gross profit ÷ Revenue × 100

Check it first: it shows whether your prices cover what the work costs, and every dollar of overhead and profit comes out of it.

What a change usually means:

  • It fell while revenue held: prices haven't kept up with material or labor costs, jobs ran over their hours, or work went out unbilled (change orders, return trips, callbacks).
  • It rose while revenue fell: lower-margin work dropped off, or job costs haven't been entered yet. Rule out the second first.
  • It swings every month: costs are landing in different months than their revenue, or categories are moving.

A margin target is not a markup. Adding a percentage to cost always yields a smaller margin percentage, so a markup equal to your target margin leaves you short; markup vs margin has the conversion table.

Don't compare your gross margin with another trade's, either. Equipment-heavy and labor-heavy work produce very different margins, and both can be healthy.

Example: Two businesses each bill $50,000 in a month, in made-up round numbers.

  • A detailing shop spends $4,000 on chemicals, pads and coating product and $21,000 on detailer wages with payroll taxes. Cost of goods sold is $25,000, so gross profit is $25,000: a 50% gross margin.
  • A solar installer spends $30,000 on modules, inverters and racking, $8,000 on crew labor and $2,000 on permit and interconnection fees. Cost of goods sold is $40,000, so gross profit is $10,000: a 20% gross margin.

Neither is good or bad alone. What matters is whether each gross profit covers that business's own overhead with room to spare.

Overhead: the cost of being open

Overhead is what it costs to run the business that doesn't belong to a particular job: office and dispatch wages, rent, utilities, insurance, marketing, software, phones, accounting and legal fees, and vehicles if you don't job-cost them.

Read it two ways:

  • In dollars, against your monthly average. Overhead should be steady. When it jumps, find out why: an annual insurance premium paid in one month, a new office hire, or a truck recorded as an expense instead of an asset.
  • As a share of revenue. Overhead stays roughly fixed while revenue swings with the seasons, so it takes a bigger share in slow months. An HVAC company's mild spring, a roofer's winter in a cold climate and a pressure washer's off-season can each show a loss in a year that ends profitable.

Overhead also sets your break-even point: monthly overhead ÷ gross margin (as a decimal) is the revenue you need each month just to cover it, as the sample P&L below shows.

Net profit, and why it isn't your paycheck

Net profit is gross profit minus overhead, minus items below the operating line such as loan interest. Only the interest belongs on the P&L; loan principal reduces what you owe, so it lives on the balance sheet. Owner's draws stay off the P&L too: they're money you take out of profit, not a cost of earning it, and recording them as expenses makes the business look less profitable than it is.

If you take draws rather than a wage, net profit also includes the pay for your own work, and the income tax on it usually isn't on the P&L at all. Two adjustments make the number honest:

  1. Subtract a fair wage for your own work, at what it would cost to hire someone to do it. What's left is what the business earns beyond paying for labor.
  2. Set aside money for taxes. If you're a sole proprietor, your net profit is also what self-employment tax is figured on, on top of income tax. That rate is 15.3% (12.4% Social Security, 2.9% Medicare) 1. Ask your CPA how much to put away and how often to pay it.

Example: A solo pressure washing owner bills $150,000 in a year. Job costs (chemicals, fuel, wear parts and a part-time helper) are $30,000, and overhead (truck costs, insurance, marketing, phone and software) is $40,000. Net profit is $80,000, with an 80% gross margin.

Suppose hiring a full-time tech to do the owner's washing would cost $45,000 a year with payroll taxes. Moved into job costs, that wage drops gross margin to 50% and net profit to $35,000. That $35,000 is what the business earns beyond paying for its labor, and 50% is the margin the prices must survive once the owner steps off the wand.

If your prices only work because you don't pay yourself, they won't work on the day you hire.

A sample contractor P&L, read top to bottom

Here's how the lines fit together for one made-up month.

Example: A three-truck plumbing company's month, in round, made-up numbers (not benchmarks):

Line Amount
Service and repair $55,000
Water heaters and repipes $40,000
Maintenance plans $5,000
Revenue $100,000
Materials and equipment $24,000
Field labor, with payroll taxes and workers' comp $30,000
Subcontractors $3,000
Permits and disposal $1,000
Cost of goods sold $58,000
Gross profit (42% of revenue) $42,000
Office and dispatch wages $9,000
Marketing $6,000
Vehicles: fuel, repairs, leases $5,000
Rent and utilities $4,000
Insurance $3,000
Software, phones and office $2,000
Accounting and legal $1,000
Overhead (30% of revenue) $30,000
Operating profit $12,000
Interest on truck loans $1,000
Net profit (11% of revenue) $11,000

Reading it in order:

  1. Revenue: $100,000 means little alone; next to the same month last year, it shows growth, and the three lines show which work drove it.
  2. Gross margin: $42,000 ÷ $100,000 = 42%. Against a 45% target, the month's jobs fell $3,000 short, and job costing shows which ones.
  3. Overhead: $30,000, or 30% of revenue. At a 42% gross margin, the shop needs $30,000 ÷ 0.42, about $71,400 of revenue a month, just to cover overhead.
  4. Net profit: $11,000, or 11%. If the owner takes draws, that $11,000 still has to cover the owner's pay and income tax.

Cash basis or accrual basis: check before you read

The same month can show a loss or a profit depending on the accounting basis, so check which one the report uses (it's usually printed in the header) before you read a line.

  • Cash basis records revenue when money arrives and expenses when you pay them.
  • Accrual basis records revenue when you earn it, usually when the work is done and invoiced, and expenses when you incur them, whether or not money has moved.

Those are the same two ideas the IRS uses for tax: under the cash method you generally report income in the year you receive it and deduct expenses in the year you pay them, and under an accrual method you generally report income in the year it's earned and deduct or capitalize expenses in the year they're incurred 2.

Example: A roofer installs a $20,000 roof in late March and pays the crew's $4,000 that month. The $8,000 of materials goes on the supplier account and is paid in April, and the customer pays the full $20,000 in April.

  • Cash basis: March shows no revenue and $4,000 of cost, a $4,000 loss. April shows $20,000 of revenue and $8,000 of cost.
  • Accrual basis: March shows $20,000 of revenue, $12,000 of cost and an $8,000 gross profit, in the month the roof went on.

Both total the same $8,000, but only the accrual view tells you in March whether the job made money.

Other timing gaps that distort cash-basis months:

  • Deposits count as revenue the month they land, before any work is done.
  • Milestone billing spreads a solar job's revenue across several months while the equipment bill lands in one; how to invoice solar installations shows how milestones line up with costs.
  • Commercial terms: a pressure washer billing property managers on net 30, or a detailer with fleet accounts, works one month and gets paid the next.

Accrual is the clearer view for judging prices and crews; cash is the clearer view of money in and out. On cash-basis books, read margins over a rolling three months and keep a list of deposits held, unpaid invoices and unpaid bills beside the P&L. The method your tax return uses is a separate decision with its own rules; make it with your CPA.

How the P&L lines up with your tax return

Your monthly P&L is a management report; your tax return reports the same year in the tax form's own categories. If you're a sole proprietor, the income or loss from your contracting business is reported on Schedule C of your Form 1040 3. If your business is set up another way, such as a partnership or a corporation, it may file a different return, so ask your CPA which applies to you.

  • Build the monthly P&L for decisions: revenue split by type of work, job costs above the gross profit line, overhead below it. Let your bookkeeper or CPA map those accounts to the tax form at year end.
  • Expect some differences. How fast a truck or large piece of equipment is written off for tax can differ from how your books spread its cost, and some expenses are treated differently on a return. Your CPA handles that; don't reshape your monthly report around it.
  • Keep personal spending out of the business accounts. A separate bank account and card make the P&L accurate and your records easier to support.

Use job costing to find out where the margin went

The P&L tells you what happened to the whole business; job costing tells you which jobs did it.

Make the two agree:

  1. Tag costs to jobs as they happen: materials, crew hours, subcontractors, permits, disposal and return trips.
  2. Use the same categories in job costs as in cost of goods sold, so each job rolls up into the same P&L lines.
  3. Reconcile monthly. Compare the month's total job costs with cost of goods sold on the P&L. A big gap usually means costs that never reached a job.
  4. Track callbacks and warranty visits as their own job type. They're labor, fuel and parts with no revenue, and buried in other jobs they quietly pull down gross margin.

Example: An electrical contractor's gross margin runs at 40% through the spring and drops to 35% over the summer. The P&L can't say why. Job costing on the summer's jobs does: service calls and panel upgrades held 40%, while EV charger installs, a third of the summer's revenue, came in at 25%. The job records show two causes. Long wire runs to detached garages took more hours than the quotes allowed, and wire was priced from a supplier quote that was months old. The fix is in pricing (a per-foot adder past a standard run length and a validity date on every quote), not in cutting overhead.

The electrical pricing guide covers both fixes. Whatever you track jobs in, costs have to reach the job while they're fresh. Redline, which is chat-first field service software, includes job costing for this.

A 30-minute monthly review

Read the P&L every month on the same day, with the same routine.

Close the month first, ideally within the first ten days: reconcile every bank, card and loan account, enter every supplier bill and receipt, and invoice every finished job, including change orders and extra trips.

Run three reports: this month, the same month last year and the last 12 months. For seasonal trades, the same-month-last-year column does most of the work: compare an HVAC July with last July, and a pressure washing January with last January.

Fill in the review sheet:

Check This month Same month last year Last 12 months Target
Revenue
Gross margin
Overhead
Net profit
Net profit as a share of revenue

Answer five questions in writing:

  1. Which revenue line moved most, and why?
  2. Is gross margin on target? If not, which job types missed it?
  3. Did any overhead line jump? Is it a one-time cost or the new normal?
  4. Is anything on the P&L that doesn't belong there: owner's draws, loan principal, equipment purchases, personal spending, transfers between accounts?
  5. What will change next month, and who owns each change?

Keep every month's sheet; the notes matter as much as the numbers. "Margin fell because two water heater jobs were quoted before the supplier's price increase" tells you exactly what to fix.

Common questions

How often should a contractor review the P&L?

Monthly, on a fixed day once the books are closed: every bank and card account reconciled, every supplier bill entered and every finished job invoiced. Each quarter, look at the last 12 months to see the trend through your busy and slow seasons, and sit down with your CPA before the year ends, while there's still time to act on what the numbers show.

Should field labor go in cost of goods sold or overhead?

In cost of goods sold. The wages of people working on jobs, plus the payroll taxes, workers' comp and benefits tied to those wages, are job costs. Office staff, dispatchers and salespeople go in overhead. A tech's paid time that isn't on a job, such as shop days or training, can go either way; choose one and stay consistent so your months compare.

Why does my P&L show a profit when my bank account is empty?

Because profit and cash move at different times. On an accrual P&L, unpaid invoices count as revenue before the money arrives. Loan principal payments, truck and equipment purchases, materials on shelves, owner's draws and income tax payments all take cash without showing up as expenses, or not in the same month. Read the P&L next to your balance sheet and your list of unpaid invoices to see where the cash went.

What's the difference between a P&L and a balance sheet?

A P&L covers a stretch of time, such as a month or a year, and shows revenue, costs and profit. A balance sheet is a snapshot of one day: what the business owns (cash, money customers owe you, trucks, equipment), what it owes (loans, supplier bills, card balances) and the difference, which is the owner's equity. Profit adds to equity, and the balance sheet shows whether it's sitting in the bank or tied up in receivables, equipment and stock.

Can I compare my P&L with other contractors'?

Carefully, if at all. Trades and business models have very different cost structures, and two shops may record the same cost on different lines, so another company's gross margin can mislead you. Your own same month last year and your last 12 months are the most reliable comparison. If you use outside figures, make sure they're for your trade and size and that they define cost of goods sold the way you do.

Sources

  1. Topic no. 554, Self-employment tax Internal Revenue Service
  2. Publication 538, Accounting Periods and Methods Internal Revenue Service
  3. Instructions for Schedule C (Form 1040) Internal Revenue Service

Rules and figures change, and many requirements vary by state and city. Check the current version of each source and your local authority before acting, and talk to a licensed professional about your specific situation.

How to Get Paid Faster as a ContractorHow contractors get paid sooner: payment terms set at booking, invoices sent the day the job ends, pay links, deposits, progress billing and reminders.How Much Deposit Should a Contractor Ask For?How to size a contractor deposit from what you'd lose if the customer cancels, check state limits and cancellation rights, and write terms customers sign.How to Follow Up on Quotes Without Being PushyA quote follow-up plan for contractors: a cadence by job size, text and call scripts for each touch, honest options, when to stop and how to track close rate.How to Get More Reviews LegallyGet more reviews without breaking FTC or Google rules: ask every customer at the right moment, use these scripts, offer nothing, and answer every review.How to Set Your Labor RateBuild your labor rate from real costs: billable hours, payroll burden, overhead and profit, with worked examples from HVAC, roofing, plumbing and other trades.Markup vs Margin: The Difference That Costs Contractors MoneyMarkup divides profit by cost; margin divides it by price. The formulas, an exact conversion table, the costly mix-up and how to price to a target margin.How to Handle Change OrdersA contractor's process for change orders: the contract clause, what to say on site, what the form must include, how to price changes and how to bill them.How to Collect Overdue InvoicesA contractor's plan for past-due invoices: a reminder schedule, a call script, payment plans, a final notice letter, late fees, liens and small claims.

All guides · Contractor glossary

Guides by trade