Skip to main content
Back to Blog
Job Costing

How to Read a P&L Statement as a Contractor

A top-to-bottom walkthrough of a contractor P&L. Revenue, COGS, gross margin, overhead, operating income, and net income — with a worked roofing example and healthy targets.

Tyson Faulkner·May 11, 2026·14 min read

What a P&L Actually Tells You

A profit and loss statement is the report card your business writes itself every month. Revenue at the top, expenses in the middle, profit at the bottom. Read top to bottom and you can answer three questions in under a minute: Is the business making money. Where is the money going. Is each layer of the business healthy on its own.

The trouble is that most contractors get a P&L from their bookkeeper, glance at the bottom number, and either feel good or feel bad. That is not reading a P&L. Reading a P&L is checking each section against a benchmark, finding the line items that are out of range, and using the gaps to decide what to fix next month. This article walks through the structure section by section, gives healthy targets for construction trades, and runs a full worked example for a small roofing shop so the math is concrete.

If you have not built per-project P&Ls yet, start with how to calculate job profitability for every project before you read this. The company P&L is the sum of all your job P&Ls plus overhead. The job-level numbers are what feed it.

A Quick Intro

I am Tyson Faulkner, founder of Piece Work Pro. My background is in roofing, gutters, and soffit/fascia, with the occasional siding job. The example in this article is a roofing P&L because that is the business I ran. The structure and margin targets translate to any specialty trade — siding, framing, concrete, electrical, plumbing — even if the percentages shift a few points.

I did not go to business school. Most contractors learn to read a P&L by getting one in their inbox, calling a bookkeeper to ask what a line meant, and slowly building intuition for what the numbers should look like. If that is where you are, this article is the version of that process worth having on hand five years earlier.

The Five Sections of a Contractor P&L

Every P&L, no matter who builds it, has the same five sections in the same order:

  1. Revenue — what customers paid you (or owe you) for completed work.
  2. Cost of Goods Sold (COGS) — direct costs of producing that revenue.
  3. Gross Profit — Revenue minus COGS.
  4. Operating Expenses — overhead. The cost of running the business, not any specific job.
  5. Net Income — Gross Profit minus Operating Expenses, then minus interest and taxes.

The reason the structure matters is that each section has its own benchmark. A bad gross margin is a job-cost problem. A bad operating margin with a healthy gross is an overhead problem. They get fixed in completely different ways. Reading the P&L means you can tell which one you have.

Section 1: Revenue

Revenue goes at the top. For a contractor, this is contract revenue earned during the period — completed jobs, plus the earned portion of jobs in progress if you use percent-complete accounting. Change orders are revenue. Retention you have already billed is revenue.

A few things that are NOT revenue, even though contractors sometimes confuse them:

  • Customer deposits on jobs you have not started. That is a liability until the work happens.
  • Sales tax you collected. That is a pass-through to the state, not revenue.
  • Reimbursable expenses you billed at cost. Some accountants book these as revenue with a matching expense, some net them out. Either is fine, just be consistent.

If your revenue line jumps month to month and you do not know why, ask your bookkeeper which jobs closed in the period. Do not move on until you understand the top line.

Section 2: Cost of Goods Sold

COGS is the direct cost of producing revenue. Five buckets cover almost every contractor:

  1. Direct Labor — wages or piece work paid to crew members who did the production work. Office staff is not in here. See how to calculate roofing labor costs for how to build the labor side cleanly.
  2. Labor Burden — payroll taxes, workers comp, GL insurance, benefits, and any other cost of having an employee on payroll. This belongs in COGS, not overhead. If your bookkeeper has it in operating expenses, your gross margin is wrong. Walk through the fully burdened labor rate guide and how to calculate labor burden in construction to set this up right.
  3. Materials — shingles, underlayment, fasteners, flashing, lumber, fixtures, anything you bought to put on a job.
  4. Subcontractors — anyone you paid who was not on your payroll. Dumpster, crane, specialty trades.
  5. Equipment used on jobs — fuel, repair share, depreciation share, rental fees for equipment used at job sites. The truck the foreman drives belongs here. The truck the owner drives to QuickBooks lunch meetings does not.

Common contractor mistake: lumping burden into operating expenses. Burden is a direct cost of labor and has to follow labor into COGS. Putting it in overhead inflates gross margin (looks great on paper) and hides labor problems (the actual issue). If you take one thing from this article, it is to check where burden lives on your P&L.

Section 3: Gross Profit and Gross Margin

Gross Profit = Revenue minus COGS. Gross Margin = Gross Profit divided by Revenue, expressed as a percentage.

Gross margin is the single most important number on the P&L for a contractor. It tells you whether your bidding and production work pay for themselves before any office cost is layered on. If gross margin is wrong, nothing else can save you.

Healthy gross margin targets for construction trades:

TradeTypical Gross Margin
Residential roofing28% – 35%
Commercial roofing22% – 30%
Residential remodel30% – 40%
New construction GC18% – 25%
Specialty trade subs (electrical, plumbing)30% – 40%
Concrete / framing / earthwork22% – 30%

Targets shift with region, scale, and labor model. Use these as a sanity check, not a verdict.

Section 4: Operating Expenses (Overhead)

Operating expenses are the cost of running the business when no jobs are happening. Rent. Office staff salary. Owner pay (if W-2). Software. Insurance that is not job-specific. Marketing. Vehicle costs for non-production trucks. Professional fees (accountant, attorney). Bank fees. Office supplies.

Group your operating expenses into roughly five buckets so the P&L is readable:

  1. Salaries and wages (non-production) — owner pay, office staff, estimator, sales.
  2. Office and administrative — rent, utilities, supplies, software, phones, internet.
  3. Insurance and professional fees — GL beyond what is in burden, professional liability, accounting, legal.
  4. Marketing and sales — ads, website, lead services, sales commissions.
  5. Other / depreciation — depreciation on office assets, bank fees, miscellaneous.

If your bookkeeper hands you a P&L with 60 line items in operating expenses, that is fine for the detailed version. For monthly review, ask for a summary view grouped into buckets like the above.

Section 5: Operating Income, Interest, Taxes, Net Income

Operating Income = Gross Profit minus Operating Expenses. Operating Margin = Operating Income divided by Revenue.

Below operating income, the P&L subtracts:

  • Interest expense — interest on your line of credit, equipment loans, building mortgage if applicable.
  • Other income / expense — gain or loss on equipment sales, interest income, anything not part of the core business.
  • Taxes — for an S-corp or LLC, this line is often zero on the company P&L because tax flows to the owners. For a C-corp, federal and state income tax shows here.

Net Income = what is left at the bottom. Net Margin = Net Income divided by Revenue.

Healthy net margin targets:

TradeTypical Net Margin
Residential roofing8% – 15%
Commercial roofing5% – 10%
Residential remodel8% – 12%
New construction GC3% – 8%
Specialty trade subs10% – 18%

Net margin under 5% in any specialty trade is a warning sign. It usually means either gross margin is too thin or overhead has crept up. The fix depends on which. That is why you read the P&L top down instead of just glancing at the bottom.

A Worked Example: Skyline Roofing, $1.5M Annual Revenue

Skyline is a hypothetical residential roofing shop. One owner, two crew leads, six crew members total, one office admin part-time. The P&L below is a simplified annual view.

LineAmount% of Revenue
Revenue$1,500,000100.0%
Direct labor (piece work + hourly)$345,00023.0%
Labor burden (28% on labor)$96,6006.4%
Materials$480,00032.0%
Subcontractors$30,0002.0%
Equipment (fuel, repair, depreciation)$24,0001.6%
Total COGS$975,60065.0%
Gross Profit$524,40035.0%
Owner salary$120,0008.0%
Office admin (part-time)$32,0002.1%
Estimator / sales (commission-based)$45,0003.0%
Office rent and utilities$18,0001.2%
Software and phones$14,0000.9%
Vehicle (non-production)$9,0000.6%
Insurance (non-burden)$22,0001.5%
Marketing$48,0003.2%
Professional fees (CPA, legal)$12,0000.8%
Depreciation, bank fees, misc$14,0000.9%
Total Operating Expenses$334,00022.3%
Operating Income$190,40012.7%
Interest expense$8,0000.5%
Net Income (pre-tax)$182,40012.2%

What this P&L tells you in 30 seconds:

  • Gross margin of 35% is at the top of the healthy range for residential roofing. Production is running cleanly.
  • Operating expense load of 22.3% is reasonable for a shop this size. Marketing at 3.2% is on the high end; worth checking ROI.
  • Operating margin of 12.7% and net margin of 12.2% are both healthy.
  • The biggest single COGS bucket is materials at 32% of revenue. Material price moves directly affect this business — a 5% material price spike with no bid adjustment would crush net margin.
  • Owner salary is in operating expenses at $120K. If this owner were taking draws instead, the P&L would show a $310K net income that overstates real profit by $120K.

What Contractors Most Often Get Wrong on Their P&L

A handful of mistakes show up over and over. Each one distorts margins and leads to bad pricing decisions.

Burden in operating expenses instead of COGS. Already covered above. This is the single most common mistake and it inflates gross margin while hiding labor problems.

Owner draws hidden as profit. If the owner takes $80,000 in draws and the P&L shows $80,000 of net income, the business actually broke even. The owner did not take any profit — they took their wage. A P&L without owner compensation is not honest. Either run W-2 owner salary so it shows on the P&L, or mentally subtract a reasonable owner wage when reading.

Equipment expensed instead of depreciated. A $40,000 truck bought in February should not show as $40,000 of expense in February. It should be capitalized and depreciated over its useful life. Expensing it all in one month makes that month look catastrophic and every subsequent month look artificially great. Your CPA handles this through Section 179 elections and depreciation schedules. Ask.

Subcontractor 1099s mis-coded as overhead. If you pay a subcontractor to install gutters on a specific job, that is COGS. If they get coded as "professional services" in operating expenses, gross margin overstates and overhead overstates. Sub costs follow the job into COGS.

Mixing personal and business expenses. This shows up in surprise places — vehicle costs, meals, travel, phones. The P&L gets noisy and the IRS gets interested. Run personal stuff through personal accounts.

No separation between production and admin labor. Office admin wages do not belong in COGS. Crew lead wages do. If you bundle all wages into one bucket, you cannot read gross margin correctly. The chart of accounts should split them.

For the full picture on payroll mechanics — including overtime mistakes that quietly inflate burden — see common piece rate payroll mistakes and the complete guide to construction payroll deductions. On the W-2 versus 1099 question that affects how cost lands on the P&L, W-2 vs 1099 piece work crews covers it.

How to Read Your P&L Each Month

A consistent monthly read takes about 15 minutes once you have done it a few times. Use this checklist:

  1. Revenue trend. Compare to last month and same month last year. Big swings need an explanation tied to specific jobs closing.
  2. Gross margin. Calculate gross profit / revenue. Compare to your trade's healthy range. Compare to last month and same month last year.
  3. COGS mix. Look at the percent of revenue going to labor, burden, materials, subs, equipment. If any line shifted by more than a couple percentage points, find out why.
  4. Operating expense total as a percent of revenue. This should be relatively stable. Sudden jumps are usually a one-time expense or a coding error.
  5. Operating margin and net margin. Compare to your healthy range. If gross is fine but operating is not, the problem is overhead. If gross is off, the problem is on jobs.
  6. One question for the bookkeeper. Pick the line that surprised you most and ask what is in it. You learn the chart of accounts faster by asking one question per month than by reading any book.

If you do this every month for a year, you will know your business cold. If you wait until tax time to look at the P&L, you are flying blind for 11 months out of 12.

A job profit calculator is useful for testing pricing scenarios without spinning up a full P&L every time. Pair it with the company P&L review and you have both ends of the picture covered. For broader profitability checks against a target, see the mid-year profit check for crews.

When to Call Your CPA

Your bookkeeper produces the P&L. Your CPA helps you read it strategically. Three situations always deserve a call:

  • Gross margin moves more than 3 percentage points from your trailing average. Either your pricing changed, your costs changed, or coding changed. A CPA can usually spot which one fast.
  • A new bucket of expense appears or grows quickly. New software stacks, new vehicles, new compensation arrangements all have tax implications.
  • You are thinking about a structural change. Hiring, buying equipment, opening a second location, switching from sole prop to S-corp. The P&L looks different after each of these. Get the call before the change, not after.

The cost of a one-hour call with a CPA is almost always less than the cost of one decision made without one.

Disclaimer: This article is for informational purposes only and is not legal, tax, or insurance advice. Consult a qualified professional before making decisions for your business.

Closing

A P&L is not a verdict. It is a map. Read it section by section and it tells you exactly where the business is healthy and where it is not. Skip the read and the same problems show up next quarter, only bigger.

If you want the inputs that feed a clean P&L — labor by job, burden by employee, materials by project — that is what Piece Work Pro is built for. Sign in or start a free trial and the data you need to read your P&L confidently is already in place when month-end arrives.

For deeper reading, job costing 101 covers the front end of the same problem, and building a payroll process that runs itself handles the labor inputs that show up on the P&L every month.

Frequently Asked Questions

What is a P&L statement?

A profit and loss statement, also called an income statement, summarizes revenue, costs, and profit over a period of time, usually a month, quarter, or year. It starts with revenue at the top, subtracts cost of goods sold to get gross profit, subtracts operating expenses to get operating income, then adjusts for interest and taxes to land on net income at the bottom.

What is a healthy gross margin for a construction contractor?

Most healthy specialty trade contractors run gross margins between 25 and 35 percent. Roofing tends to land in that range when materials, direct labor, and burden are properly captured. If your gross margin is under 20 percent, your direct costs are eating the job before overhead even gets a chance. If it is over 40 percent, double check that you are loading burden and equipment into COGS instead of overhead.

What is the difference between owner draw and owner salary on a P&L?

An owner draw is a distribution of profit and does not show up as an expense on the P&L. An owner salary is W-2 compensation and does show up as an expense, usually in operating expenses. The distinction matters because a P&L with no owner pay anywhere in it overstates profit. If you take draws only, you have to mentally add a reasonable owner wage when you read the statement to know what real profit looks like.

Why does my P&L look different from my bank account?

A P&L is built on accrual accounting in most cases — revenue is recorded when earned and expenses when incurred, not when cash moves. Big jobs invoiced but unpaid show as revenue. Materials bought on a 30-day net account show as expense before the cash leaves. The cash flow statement is what ties to your bank account. The P&L tells you if the business is profitable. The cash flow tells you if the business has money.

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.