ownernumbers
All guides

Guide

What goes in COGS vs. operating expenses

The categorization mistake that distorts every margin calculation. What belongs in COGS, what doesn't, and how to fix it without rewriting history.

Not sure where to find these numbers in your books? See where to find them in QuickBooks, Wave, or your accountant's report.

The categorization problem

This is the single most common bookkeeping mistake in small business, and it's expensive. If your shop labour is sitting in operating expenses instead of , your gross margin looks great and your operating profit looks terrible. You'll benchmark yourself against an industry and not understand why your numbers don't look like theirs. You'll quote pricing based on a margin that doesn't exist. When a buyer or banker reviews your numbers, they'll reclassify everything before forming an opinion — and the version they form will be different from the one you live with.

The good news: this is fixable, and it doesn't require rewriting your books. Most of the work is one conversation with your bookkeeper and a few new accounts in the chart of accounts. The hard part is knowing what should go where in the first place — which is what this guide is for.

The two-sentence rule

is what you would NOT have spent if you didn't make the sale. are what you spend whether or not you make the sale.

That's it. Almost every classification question can be answered by holding the expense up to those two filters and asking which one fits better. The exceptions and edge cases all flow from this.

What goes in COGS

The classics — these are uncontroversial:

  • Materials and parts that go into the product or job
  • Direct labour — the people whose hours are billed or whose time is directly tied to making/delivering what you sell
  • Subcontractors doing work on the job
  • Freight in — what it cost to get the materials to your shop
  • Packaging that ships with the product
  • Direct supplies consumed on jobs (consumables, fasteners, sandpaper for the job, not for the shop)

The grey area — these are where most categorization mistakes happen, and where you have to apply the two-sentence rule deliberately:

  • Shop foreman, project manager, lead tech. If their work is essential to producing or delivering the sale, they're COGS. If they're running the business administratively, they're OpEx. Most are a split — the cleanest treatment is to allocate based on time. A 70/30 allocation (70% direct, 30% admin) is common and defensible.
  • Shop rent and utilities. If the space exists to do the work, COGS. If it's your office space where you run the business, OpEx. A combined facility splits — 80% shop / 20% office is typical for trades.
  • Equipment depreciation. If the equipment is used to produce what you sell (CNC, ovens, trucks actually doing jobs), COGS. If it's office equipment (computers, printers in admin), OpEx.
  • Vehicles. Crew trucks that go to job sites are COGS. The owner's F-150 that's also for personal use is OpEx (and a partial owner add-back if applicable). The dispatcher's commute vehicle? OpEx.
  • Direct labour benefits and payroll taxes. If the wages are in COGS, the benefits and employer payroll taxes on those wages also belong in COGS. Many bookkeepers put all benefits and taxes in OpEx as a matter of habit; this distorts gross margin downward.

What goes in OpEx

The classics — almost always OpEx:

  • Sales and marketing — advertising, sales commissions, trade shows, sales team salaries (most cases)
  • Administrative salaries — bookkeeper, controller, office manager, owner's admin time
  • Office rent and utilities for office space
  • Office supplies, software subscriptions, IT, communications
  • Insurance — general liability, business owner's policy. Workers' comp on direct labour is sometimes split into COGS proportionally.
  • Professional fees — accountant, attorney (recurring; one-time fees may be add-backs)
  • Depreciation on office equipment
  • Bank fees, merchant fees, ongoing financing costs other than interest
  • Owner's salary — even though some of the owner's time is direct work, owner comp is conventionally treated as OpEx because it gets normalized for valuation separately

The grey area — here you'll commonly see misclassifications:

  • Sales commissions on specific deals. Some accountants treat commissions tied directly to specific sales as COGS (variable per sale). Others treat them as OpEx (sales department cost). Either is defensible; pick one and be consistent.
  • Customer service / warranty work. If there's a separate warranty team servicing past sales, they're typically OpEx. If your installers also handle warranty calls as part of their normal week, their time on warranty is still COGS (just not gross margin-improving).
  • R&D or product development. Almost always OpEx for small business — the work isn't tied to a specific sale.

A worked example: a $1.2M small electrical contractor

Annual numbers, with a mix of categorizations:

Revenue                                       1,200,000

Materials and parts                             280,000
Subcontractors                                   85,000
Crew wages (3 electricians, 1 apprentice)       340,000
Crew payroll taxes & benefits                    78,000
Foreman wages (70% direct, 30% admin)            85,000
Foreman benefits (70/30 allocation)              19,000
Shop and yard rent (80% shop / 20% office)       38,400
Truck depreciation (3 crew trucks)               24,000
Field consumables                                12,000

COGS                                            961,400
GROSS PROFIT                                    238,600
GROSS MARGIN                                       19.9%

Foreman admin time (30%)                         36,400
Office rent (20% allocation)                      9,600
Owner's salary                                  130,000
Bookkeeper                                       42,000
Sales and marketing                              28,000
Office supplies, software, IT                    14,000
General liability + BOP insurance                 9,000
Accountant + legal                                8,000
Office equipment depreciation                     3,200
Bank fees, merchant fees                          4,800

Operating expenses                              285,000
OPERATING INCOME                                (46,400)
OPERATING MARGIN                                  (3.9%)

The crucial detail: foreman wages and crew benefits are allocated. If a bookkeeper had put 100% of foreman wages and 100% of crew benefits and taxes in OpEx — which happens all the time — the same business would show:

  • COGS of $717,000 → gross margin of 40.3% (looks great)
  • OpEx of $529,400 → operating loss of $46,400 (looks the same)
  • Bottom line is identical, but the diagnosis is wrong

The first version (correctly categorized) tells you gross margin is the problem — at 19.9% in residential electrical, you're below the industry healthy zone. That points at materials pricing, job estimating, or productivity. The second version (mis-categorized) tells you OpEx is bloated, which points at administrative cost, which sends you optimizing the wrong things.

The five most expensive categorization mistakes

1. Putting all labour in OpEx

By far the most common mistake. Many bookkeepers maintain a single "wages" or "payroll" account that captures everyone — owner, admin staff, crew, foreman. The whole bucket lands in OpEx, gross margin looks 20-30 points higher than reality, and the operating margin captures all the labour as a single "personnel" line. The fix: separate accounts for direct labour vs. admin labour. Your bookkeeper can do this in QuickBooks in 15 minutes.

2. Putting payroll taxes and benefits all in OpEx

Even when wages are split correctly, the payroll taxes and benefits often aren't. The result is the same distortion — gross margin overstated, OpEx overstated, operating margin unchanged but unhelpful. The fix: payroll taxes and benefits follow the wages. If 70% of wages are in COGS, 70% of payroll taxes and benefits go in COGS.

3. Missing freight in

Freight charged to bring materials to your shop is COGS, not a generic shipping expense. Most bookkeeping systems dump freight into a single "shipping" account regardless of direction. The fix: separate accounts for "freight in" (COGS) and "freight out" (depends — for product businesses, often COGS; for service businesses, OpEx).

4. Treating shop overhead as OpEx

Shop rent, shop utilities, shop insurance, and depreciation on production equipment are COGS, not OpEx. The shop exists to produce what you sell. Office overhead is OpEx. A combined facility splits proportionally — usually 70-90% shop, 10-30% office for trades and manufacturing. The fix: allocate by square footage if the spaces are physically separate, by use if not.

5. Putting subcontractors in "professional fees"

Subcontractors doing work on the actual job are COGS, full stop. They're a substitute for direct labour, not for your accountant. The mistake usually comes from a chart-of-accounts that has "professional fees" as a catch-all. The fix: separate "subcontractors" (COGS) from "professional fees" (OpEx, things like accountant, attorney).

How to fix this without rewriting history

You don't need to re-class every transaction back to the start of time. You need to:

  1. Sit down with your bookkeeper for one hour. Walk through your chart of accounts. For each account, ask: COGS or OpEx? Apply the two-sentence rule. Note any accounts that need to split (foreman wages, combined facility, payroll taxes).
  2. Create the new accounts you need. In QuickBooks or Xero, this is a few minutes per account. Common adds: "direct labour" vs. "admin wages," "direct labour benefits" vs. "admin benefits," "subcontractors" separated from "professional fees," "shop rent" vs. "office rent."
  3. Set the going-forward rule. Document the two-sentence rule somewhere your bookkeeper sees it weekly. Decide on the split ratios (foreman 70/30, shop 80/20, etc.) and write them down. Without documentation, the discipline drifts within months.
  4. Re-class the current year if it's reasonable. For a calendar-year business in Q3 or Q4, re-classing year-to-date entries is usually a half-day of bookkeeping work and gives you a clean current year. Earlier years generally aren't worth touching.
  5. Don't panic about prior-year comparisons. For 2-3 quarters, your current-year vs. prior-year comparisons will be apples-to-oranges. Note the re-categorization in any reports that reference both. By the time you're into the next fiscal year, the comparisons normalize.

Industry variations

The two-sentence rule applies universally, but the specific line items differ:

  • Restaurants: COGS is food and beverage cost. Kitchen wages are a debated edge case — formal accounting practice puts them in OpEx, but many operators treat them as "prime cost" (food + beverage + labour) for management purposes. For benchmarking and valuation, follow standard practice (food/beverage = COGS, labour = OpEx). For internal management, prime cost is more useful.
  • Professional services: COGS is billable-staff wages and direct project costs (sub-consultants, travel charged to client). Non-billable staff and partners are OpEx.
  • Manufacturing: COGS includes raw materials, direct labour, factory overhead (heat, equipment depreciation, factory supervisor). The allocation of factory overhead to COGS is more involved than in trades — work with your accountant.
  • Retail: COGS is the cost of goods you sold (purchase price plus freight in plus prep). Store staff is OpEx. Stock-handling and merchandising staff are sometimes split.
  • SaaS: COGS is hosting, third-party integrations, customer support staff serving paid customers. Sales, R&D, and G&A are OpEx. Software-industry definitions are sometimes called "cost of revenue" rather than COGS but mean the same thing.
  • E-commerce: COGS is product cost + inbound freight + outbound shipping (debated; some treat outbound as OpEx) + payment processing fees + returns. Marketing is OpEx.

FAQ

What about the owner who works on jobs?

Convention is to keep the full owner salary in OpEx because owner compensation gets normalized separately for valuation purposes. The owner's time spent on direct work is real, but tracking and re-classing it monthly creates more confusion than clarity. Better to value the business by recognizing the labour-content of owner time as part of the conversation and when valuing for sale.

Does it matter if my categorization disagrees with my CPA's tax return?

Tax returns and management financials don't have to match exactly. Tax categorization is driven by what deductions are allowed and where; management categorization is driven by what gives you useful insight into the business. Most CPAs are fine with the management books being more refined than the tax books, as long as totals reconcile. Talk to yours before changing things mid-year.

What about workers' comp insurance?

Workers' comp on direct labour is COGS — it's a cost of having those people on the job. Workers' comp on admin staff is OpEx. Most policies bill at a single rate, but the labour component is allocable based on the payroll split. If your insurance bill doesn't break this out, allocate proportionally to wages.

What if I run a business where the line genuinely is fuzzy?

Some businesses have legitimate ambiguity (consulting where the partners do all the work, agencies where account managers split client work and business development). When in doubt: pick a treatment, document it, be consistent. Investors and bankers care more about consistency over time than about which specific treatment you chose. The thing that breaks trust is changing categorization between periods to make a quarter look better.

Does this affect taxes?

Generally no — both COGS and OpEx are deductible against revenue, so the tax outcome is the same. There are edge cases involving inventory (Section 263A capitalization rules) and depreciation timing where the categorization intersects with tax decisions. For those, your CPA is the right call.

Where this connects in OwnerNumbers

The categorization you settle on flows through every margin calculator on the site:

  • Gross Margin — directly affected. Wrong COGS categorization means wrong gross margin and wrong industry benchmark comparison.
  • EBITDA — bottom line is the same regardless of categorization, but the operating-margin and gross-margin views the calculator provides are only useful with correct categorization.
  • Profit Lift — points at the wrong levers if categorization is wrong. A "OpEx looks high" signal in a mis-categorized P&L is misleading.
  • Break-Even — relies on a clean fixed/variable split that mirrors COGS/OpEx for many businesses (though not perfectly).

If your gross margin looks suspiciously high or suspiciously low compared to industry benchmarks, the first thing to check is whether your COGS/OpEx categorization matches the industry convention. Often it doesn't, and the fix is one bookkeeping conversation away.