If your MSP is fully booked, your techs are slammed, and you still can't figure out where the money went, you're not alone. The most common reason MSPs are busy but not profitable is not bad pricing. It's invisible cost leakage: vendor subscriptions nobody is reviewing, client environments that cost more to service than they generate, and Microsoft 365 licenses assigned to employees who left six months ago. Profitability in an MSP is rarely a revenue problem. It's a visibility problem.
On Reddit's r/msp, the thread "why are we so busy but still broke?" surfaces every few months. The answers follow a pattern:
This is the MSP margin trap. You built a business that scales work before it scales systems. Revenue goes up. Complexity goes up faster. And somewhere in between, 8–15% of everything you earn quietly disappears before you invoice it.
Industry data puts it plainly: the average MSP loses between 5% and 15% of annual revenue to unbilled costs and unreviewed vendor spend. For a $2M MSP, that's $100,000 to $300,000 every year — money you already earned, never collected.
BetterTracker data shows the average MSP manages 8–25 vendor solutions across their stack and their clients' stacks. Tools that made sense three years ago are still renewing. Licenses expand automatically. Distributors bill for seats nobody removed.
Auvik's 2026 IT Trends Report found that 36% of MSPs run 10 or more tools, and that figure does not include the cost of the tools themselves or the billing complexity they create across client environments.
The calculation is simple: if your combined vendor and tooling costs are eating 20–25% of gross margins, and you have never done a line-by-line audit of what is actually in use, you have a money leak you have not found yet.
"We audited our vendor stack last year and found three tools we were paying for that nobody had opened in over a year. Combined, that was $1,400/month we were just... burning." — r/msp
42% of Microsoft 365 E3 licenses in SMB environments are either unassigned or inactive. When a client's employee leaves, the MSP removes the license from the client's invoice. The license in the CSP portal? Often stays active for months.
The MSP absorbs the difference silently. Multiply this across 20 or 30 clients, factor in Microsoft's 8.3% price increase on E3 licenses taking effect in 2026, and this single issue can represent thousands of dollars per year in costs you're carrying for free.
The question to ask right now: Do you know the exact M365 license count for every client and does it match what you're billing them?
Most MSPs can tell you their total monthly revenue. Very few can tell you the actual cost to service Client A versus Client B.
This is how a $3,000/month client becomes a loss leader. Their environment requires more vendor tooling. Their team generates more tickets. Their old infrastructure needs more maintenance hours. But because you've never calculated cost-to-serve at the client level, they stay on your books at the same rate as a client who barely contacts you.
The healthy net margin range for an MSP is 20–30%. Industry average is around 8%. The gap between those two numbers almost always comes back to unreviewed per-client costs, not pricing.
When did you last look at your vendor renewal calendar?
Contracts with 60–90 day cancellation windows expire quietly. Pricing tiers increase automatically. A vendor that raised rates 15% sends the new invoice, and because the finance process is "does this look roughly right?", it gets paid.
58% of MSPs have no formal process for reviewing vendor contracts before renewal. The result: you're servicing clients on cost models from two years ago while your vendor costs climbed every quarter since.
Step 1 — Pull every active vendor subscription and compare it to what's actually deployed across your client base.
Step 2 — Run a license audit on Microsoft 365 across all clients. Look for unassigned seats. Compare to current billing.
Step 3 — Calculate your cost-to-serve for your top 5 clients. Add up vendor spend attributed to each client, plus average technician time per ticket. Divide by monthly recurring revenue. What's the actual margin?
Step 4 — List every vendor contract with an auto-renewal clause and identify which ones renew in the next 90 days.
Most MSPs who do this exercise for the first time find at least one significant issue within 20 minutes.
BetterTracker was built specifically for this audit problem, not as a one-time exercise, but as a permanent layer of visibility across your vendor stack, client environments, and contracts.
365 Scout scans every Microsoft 365 tenant you manage and surfaces unused licenses, unassigned seats, and security risks before they become billing errors or compliance issues.
CustomerTracker maps which applications and vendors are deployed per client, so you can see cost-to-serve at the client level instead of estimating it from memory.
ExpenseTracker monitors your vendor subscriptions, flags optimization opportunities, and alerts you when costs increase, so you are not discovering a 15% rate hike three months after it went into effect.
ContractTracker centralizes all your vendor contracts and renewal dates, with alerts before cancellation windows close. No more auto-renewals that should not have happened.
Navistack gives you a complete birds-eye view of every vendor, app, and technology layer across your client base and internal stack: the single source of truth most MSPs are trying to build in spreadsheets that decay within 90 days.
The promise is straightforward: if you can see exactly what you are spending, what you are billing, and what each client actually costs to service, you stop losing money you already earned.
See exactly where your margins are leaking.
Start your free 14-day BetterTracker trial, no credit card required.
Most MSP profitability problems are not pricing problems. They are visibility problems. When you do not have a clear view of vendor costs, per-client spend, and billing accuracy across your entire client base, revenue leakage accumulates silently. The typical leakage range is 5–15% of annual revenue, which can represent six figures for a mid-size MSP.
The three most common hidden costs are: (1) inactive or unassigned software licenses, especially Microsoft 365 seats, that MSPs pay for but do not bill back to clients; (2) vendor subscriptions with auto-renewal clauses that renew at higher rates without review; and (3) clients whose cost-to-serve exceeds what they pay, which is only visible if you calculate margin at the per-client level.
A healthy MSP net margin is 20–30%. The industry average is approximately 8%. The difference almost always comes down to how closely the MSP tracks and manages vendor costs, billing accuracy, and per-client profitability.
To calculate per-client profitability, you need two numbers: the monthly recurring revenue from each client, and the actual monthly cost to service them, including vendor licenses allocated to that client, technician time, and tooling overhead. Without a system that aggregates vendor spend at the client level, most MSPs are estimating from instinct rather than data.
BetterTracker gives MSPs real-time visibility into vendor spend, client-level costs, and contract renewals. Modules like 365 Scout, CustomerTracker, and ExpenseTracker surface the billing gaps and unused licenses that drive margin leakage, replacing the spreadsheet workflows that decay and the manual processes that miss things.
Vendor sprawl is the accumulation of software subscriptions, tools, and vendor contracts across an MSP's internal stack and client environments that have never been consolidated, audited, or rationalized. It typically develops as an MSP grows. Each new client or problem gets a new tool, and without active management, it quietly consumes 18–25% of gross margins through duplicate licenses, unused seats, and overlapping functionality.