Cost of Goods Sold vs Operating Expense Categorization for Trade Business P&L Accuracy
Why this matters
The boundary between Cost of Goods Sold and Operating Expense is where most trade business P&Ls quietly lie about gross margin. A roofing contractor who buries direct labor in "Salaries and Wages" under Operating Expense shows a gross margin of 80 percent and operating margin of 6 percent - both numbers misleading. The right classification (labor that produced the revenue belongs in COGS) shows gross margin of 32 percent and operating margin of 6 percent, with a true read on whether the business has a pricing problem (low gross margin) or an overhead problem (low operating margin). Banks, equity buyers, equipment lenders, surety underwriters, and the IRS all read your P&L. Mis-classification means you're managing the business off bad numbers and presenting bad numbers to the people who decide whether to lend, invest, bond, or buy. Fixing the chart of accounts is one of the cheapest, highest-impact financial-hygiene moves a trade business can make.
The conceptual line
COGS includes the costs directly required to deliver the revenue you recognized. Operating Expense includes everything else needed to run the business but not directly tied to a specific job. The test: if the job didn't happen, would the cost still exist?
- Material for a specific job: COGS (no job, no material).
- Field technician's wages for hours billed to a job: COGS (no job, no technician hours).
- Field technician's wages for shop time, training, or callbacks: judgment call (most contractors COGS this; pure indirect work might be Operating Expense).
- Foreman / project manager: typically COGS to the extent they're job-allocated.
- Office manager's salary: Operating Expense.
- Dispatcher: Operating Expense (supports all jobs, not tied to any one).
- Owner's salary: Operating Expense if owner is non-billable; portion in COGS if owner works billable hours.
- Vehicle fuel for a truck going to a specific job: COGS.
- Vehicle insurance: Operating Expense (incurred whether truck rolls or not).
- Vehicle maintenance: typically COGS as part of vehicle operating costs (incurred because the truck is being used).
- Liability insurance: Operating Expense (incurred whether you do work or not).
- Workers comp: typically COGS allocated to field labor; some companies put 100 percent in COGS.
- Office rent: Operating Expense.
- Yard rent for material storage: COGS or Operating Expense depending on activity (heavily-used material yard is COGS-coded; quiet storage is Operating Expense).
The "absorption costing" framework GAAP requires for manufacturers (FASB ASC 330 Inventory) is the conceptual basis: all costs of production, both direct and reasonably allocable indirect costs, belong in COGS. Construction and service businesses adapt this through ASC 605 / 606 (revenue recognition) and industry custom.
The standard COGS categories for a trade business
A clean trade-business chart of accounts has these COGS sub-accounts:
5000 Direct Materials. Parts, fixtures, consumables charged to jobs. For HVAC: equipment, refrigerant, ductwork, electrical components. For plumbing: pipe, fittings, fixtures. For electrical: wire, conduit, devices, panels. Excludes shop supplies (those go in Operating Expense unless tied to job production).
5100 Direct Labor. Field technician wages for hours billed to jobs, including overtime premium for those hours. Excludes shop training time, paid time off, holidays.
5110 Payroll Tax on Direct Labor. Employer-side FICA (7.65 percent), federal unemployment (FUTA, currently 0.6 percent on first $7,000), state unemployment (varies). Apportion based on the labor in account 5100.
5120 Workers Comp on Direct Labor. Premium attributable to field labor classifications (5183, 5190, 5551, etc.). The class-code rate times the field payroll, not the total comp premium.
5130 Direct Labor Benefits. Health insurance, retirement match, paid vacation/sick allocated to direct labor. Apportion total benefit cost across all employees, then move the field-labor portion to COGS.
5200 Subcontractors. Payments to 1099 subs and sub-bid trade partners. Direct to specific jobs.
5300 Equipment Rental. Rental of cranes, lifts, excavators, scaffolding for specific jobs. Direct charges.
5400 Vehicle Operating - Field. Fuel, oil, tires, repairs on field service vehicles. Some practitioners pull insurance and registration here too; others keep insurance in Operating Expense. Be consistent.
5500 Permits and Fees. Permits, inspection fees, dump fees charged to specific jobs.
5600 Small Tools and Job Supplies. Consumables (drill bits, blades, fasteners not invoiced separately) that get used on jobs. Pure shop tools (a new bandsaw for the shop) are Operating Expense or capitalized.
5700 Warranty and Callback. Cost of returns, free re-work, comeback labor. Important standalone line so you can monitor callback cost as percent of revenue (high callback rate suggests upstream quality problem).
5800 Other Direct Costs. Delivery freight, hotel/per-diem for out-of-town jobs, special insurance riders for specific projects.
The OPERATING EXPENSE side then contains everything else - office salaries, marketing, rent, indirect benefits, accounting, software subscriptions, training, professional development, owner non-billable time, indirect insurance, office utilities, etc.
The labor allocation question (the hard part)
The single most contested categorization decision in a trade business is splitting labor between billable (COGS) and non-billable (Operating Expense). Three common approaches:
Approach 1 - All field labor in COGS. Field techs are 100 percent COGS, including non-billable time (training, paid vacation, shop time, callbacks). Simple. Slightly overstates COGS in periods with high non-billable time (training-heavy weeks, slow months).
References
- FASB Accounting Standards Codification (ASC) 330 (Inventory) - foundational guidance on absorption costing for produced goods.
- FASB ASC 606 (Revenue from Contracts with Customers) and ASC 605 (predecessor) - revenue recognition framework that drives the COGS matching principle.
- IRC Section 263A (Uniform Capitalization Rules) - the federal tax framework for capitalizing certain indirect costs into inventory and self-constructed assets; affects how COGS is computed for tax purposes.
- IRS Publication 538 (Accounting Periods and Methods) - guidance on tax-accounting methods including how to compute COGS and the accrual vs cash distinction.
- BLS Industry Productivity and Costs (https://www.bls.gov/lpc/) - benchmark labor productivity data by NAICS code for trades.
- Construction Financial Management Association (CFMA) Construction Industry Annual Financial Survey - benchmark gross margin and operating margin data by company size and trade.
- Service Roundtable, EGIA Contractor University, ACCA (Air Conditioning Contractors of America) - industry benchmark studies specific to HVAC, plumbing, electrical service contractors.