COGS and revenue matching for MSPs, explained
Pull up your P&L and try to answer one question: what’s the gross margin on your managed services agreements? Not the company’s blended margin. The margin on managed services specifically, after the cost of delivering them.
If you can’t answer that in 30 seconds, your books have a structural problem, and it’s costing you real money in decisions you can’t make. You can’t price agreements with confidence, you can’t tell whether projects subsidize managed services or the other way around, and you can’t fix a margin problem you can’t see. The fix comes down to two accounting concepts most MSP owners have heard of and few have implemented: COGS and revenue matching.
COGS isn’t just for companies that sell things
Cost of Goods Sold sounds like a retail concept, and that’s why so many service businesses ignore it. For an MSP, COGS means the direct costs of delivering each line of revenue. Not rent, not marketing, not your admin’s salary. The costs that exist because you deliver services, and that a buyer of your business would have to keep paying to keep delivering them.
The plain-language test: if someone bought your MSP tomorrow, what would it cost them to deliver your services? That’s COGS. Everything else is overhead.
The distinction matters because revenue minus COGS gives you gross margin, and gross margin by service line is the single most useful number in an MSP’s financials. A company-wide P&L that lumps every cost into one expense pile produces exactly one insight: whether the whole company made money last month. Useful, but nowhere near enough to run on.
Step one: split the revenue
You can’t match costs to revenue lines you don’t have. So before touching costs, your income needs to land in separate buckets: managed services, professional services, product, and other recurring revenue like resold Microsoft 365 or VoIP.
This is where most MSP books fail before the cost conversation even starts. One “Sales” or “Income” account, or a chart of accounts organized around tax categories instead of service lines. If that’s you, the revenue split is the first project, and your PSA already has the data since your agreements and invoices are categorized there. The books just need to agree with it.
Step two: what actually belongs in MSP COGS
For each revenue bucket, five cost components make up the direct cost of delivery.
Direct labor. Wages and salaries of the people delivering the service. Your techs, your engineers, your dispatcher if they’re part of delivery.
Service management. The service manager’s compensation is a direct cost of running delivery, and it’s the single most commonly misfiled cost in MSP books, usually parked in G&A where it quietly inflates your apparent gross margin.
Benefits and employer taxes. Health insurance, employer payroll taxes, retirement match, for the delivery staff above. Labor costs more than the wage, and COGS should reflect the loaded cost.
Hard costs. The tangible per-client delivery stack: RMM, EDR, backup. The rule of thumb is anything licensed per device or per end user belongs here.
Tool costs. Technician-facing tooling: your PSA, documentation platform, anything licensed per tech.
Get those five mapped against each revenue line and you can calculate labor loaded gross margin, which is the metric that tells you what each part of the business earns. The benchmarks worth writing on the whiteboard: best-in-class MSPs run 62% LLGM on managed services and 52% on professional services. If you’ve never calculated yours, expect a surprise, and expect it on the project side, where plenty of MSPs discover they’ve been doing projects at a loss for years.
One wrinkle that trips up nearly everyone: shared people. Your senior engineer who works managed tickets in the morning and project installs in the afternoon has to be fractionalized, with labor split between the two COGS sections based on where the time actually goes. Skip this and you overstate one line’s margin while understating the other, which means both numbers are fiction. Your PSA time entries tell you the split. Use them.
Step three: matching, or putting costs in the right month
Bucketing solves the “which line” problem. Matching solves the “which month” problem, and it’s the reason your books should run on an accrual basis even if you file taxes on cash.
The matching principle says costs belong in the same period as the revenue they support. Three MSP situations show why this isn’t academic.
The annual license bill. You pay your EDR vendor $24K for the year in January. On a cash basis, January’s managed services margin craters and the other eleven months look artificially rich. On an accrual basis, $2K/month hits COGS all year, and every month shows the true margin. Same money, same vendor, radically different information.
The prepaid agreement. A client prepays $60K for twelve months. Cash books show a monster January and eleven months of delivery cost with no matching revenue. Accrual books recognize $5K/month as you deliver, which is what actually happened economically. This is deferred revenue handled correctly, and it’s also what a buyer will insist on seeing if you ever sell.
The project hardware. You buy $30K of equipment in March for a project you bill in April. Cash books show a terrible March and a spectacular April, and neither month’s project margin means anything. Matched books put the hardware cost against the project revenue, and the project’s real margin appears.
The pattern in all three: unmatched books generate months that look like outliers but aren’t, and owners either panic over a fake bad month or celebrate a fake good one. Matched books generate a margin trend you can actually read, which is the entire point of having books.
What this buys you
Once revenue is bucketed, COGS is mapped, and timing is matched, a short list of expensive questions becomes answerable from a standard monthly report.
Which service lines earn their keep and which need repricing. Whether that big new agreement is actually profitable at the price you quoted. What happens to margin when you add the next tech. Whether project work is subsidized labor for managed services or a real profit center. And when you eventually face a buyer, whether your financials read as a mature operation or a reconstruction project.
The MSPs clearing 18% true net profit aren’t smarter than the median shop sitting at 7%. They can see, monthly, where the profit comes from and where it leaks, and they act on it. That visibility is built exactly here, in COGS structure and matching discipline. It’s not glamorous. It compounds anyway.
Frequently asked questions
What should be included in COGS for an MSP?
The direct costs of delivering each revenue line: direct labor for delivery staff, service management compensation, the benefits and employer taxes on that labor, per-device or per-user hard costs like RMM, EDR, and backup, and per-technician tool costs like the PSA. Overhead such as rent, marketing, and admin stays out.
Is labor part of COGS for a service business?
Yes, and for an MSP it’s the largest component. Delivery labor belongs in COGS at its loaded cost, including benefits and employer taxes, and shared staff should be split across service lines based on actual time worked.
What’s the difference between gross margin and LLGM?
LLGM, labor loaded gross margin, is a gross margin calculation that explicitly includes all five direct cost components, especially loaded labor and service management, per service line. Targets: 62% for managed services, 52% for professional services.
Why does revenue matching matter if I file taxes on a cash basis?
Tax filing and management reporting are different jobs. You can stay a cash-basis taxpayer while running accrual books, and accrual is the only way to see real monthly margins in a business with annual bills, prepaid agreements, and project timing gaps.
Instrumental provides outsourced accounting and strategic financial reporting built exclusively for MSPs. Bucketed revenue, properly loaded COGS, and matched timing are the default structure of every set of books we run, because that’s what it takes to see your margins for real.
Book a call with Instrumental and find out what your service lines actually earn.
