What is whitespace analysis for MSPs?
Whitespace analysis maps what each customer buys against everything you sell, so the gaps become a ranked expansion pipeline.
Whitespace analysis is the practice of mapping every customer against every service you offer, then working the gaps. The term comes from the picture: mark the cells where a customer is billing for a service and whatever is left is white space on the page. For MSPs it is usually the largest identifiable pool of revenue in the business, because it needs no new relationships. The full definition is in our glossary.
What makes it different from pipeline
A normal pipeline tracks deals somebody has already created. Whitespace is the opposite: it is the set of deals nobody has created yet, derived from facts rather than from rep activity. That matters because it does not depend on anyone remembering. A rep who never logs an opportunity still shows up in the whitespace grid, because the grid is built from contracts.
What you need to run it
- A defined offering list — 20 to 30 things you sell, not a raw SKU dump.
- Contract data showing what each customer currently buys, which lives in your PSA.
- A consistent way to match a contract service line to an offering, since PSA naming is rarely tidy.
- Ideally, a demand signal so the gaps can be ranked rather than merely listed.
The usual failure mode
Whitespace projects fail on matching, not on concept. One MSP calls it "BCDR - Datto SIRIS" and the next calls it "Backup (managed)", so a naive keyword match produces a grid nobody trusts, and a grid nobody trusts gets ignored. Whatever tool you use, budget real time for tuning the match rules against your own naming before you judge the output.
How Current approaches it
Current builds the grid from active recurring contracts in Autotask, ConnectWise, or HaloPSA, then reads recent tickets and inbound email twice a week to flag which gaps customers are actually asking about. See how whitespace works in Current, or read the manual method if you want to try it in a spreadsheet first.
What good looks like
A whitespace practice that works has four properties. It is derived from contract data rather than from anyone's memory, so it does not depend on reps logging things. It is refreshed continuously rather than annually, so it is never a stale artifact. It distinguishes a gap from an opportunity, because not every missing service is one somebody wants. And it produces tracked deals with owners and dates rather than a report that gets admired and filed.
The metrics worth watching
- Penetration per offering: what share of your customers buy each thing you sell. This tells you which services are under-sold across the whole book rather than at one account.
- Services per customer, trended. If this is flat while headcount grows, you are winning logos and not deepening them.
- Gap-to-deal conversion: how many identified gaps became real opportunities. A low number means the analysis is not reaching the people who sell.
- Revenue from expansion versus new logo. Most MSPs are surprised by how favorable expansion looks once measured.
Why the annual spreadsheet fails
Almost every MSP has tried this once. The reason it does not stick is not effort, it is decay. The moment it is built it starts aging: contracts change, services are added, customers churn. Within a quarter the file disagrees with reality often enough that people stop trusting it, and a report nobody trusts is worse than no report because it still consumes meeting time.
Anything that is going to survive has to be computed from live contract data rather than assembled by hand, which is the entire argument for doing this in a system rather than a spreadsheet.
Start narrow
Do not try to analyze thirty offerings across your entire book in the first month. Pick the two or three services with the clearest fit and the best margin, get the matching right for those, work the resulting gaps, and expand once the motion is producing deals. A narrow grid people trust beats a comprehensive one they do not.