Blog · Wallet share and penetration · SaaS
How a SaaS company turns the hand-coloured whitespace spreadsheet into a computed, valued list per account: fit from what similar customers own, the gap at list price, untouched accounts from CRM activity, AE capacity, and the reconciliation to ARR.
Every SaaS revenue team has a whitespace map. Almost every one is a spreadsheet with cells coloured by hand in the week before the QBR, and it is wrong by the time the meeting starts. The information to compute it is in billing and the CRM. This guide shows how to turn it into a number per account that reconciles to ARR.
Whitespace, per account:
Whitespace = products in the account's fit set − products owned, valued
Untouched, per account:
Untouched = no logged activity in the last N days
Capacity, per AE or CSM:
Load = accounts owned ÷ the accounts one person can work
The third is what makes the first two actionable. A whitespace list that exceeds the AE's capacity is a list that will not be worked, and the ranking within capacity is what matters.
Account identifiers throughout.
A new product with low adoption never enters any fit set by this rule. Product marketing can declare it in the set for a band, and the report shows that override as a labelled assumption.
reported ARR = Σ segments = Σ owners = Σ accounts = Σ products
A product renamed in billing, or an account that changed owner mid-quarter without a date, each break one equality.
Mid-market band, fit set of Core, Analytics and Automation. One account.
| Product | Owned | ARR | In fit set | Gap at list | Gap at account rate |
|---|---|---|---|---|---|
| Core | Yes | $48,000 | Yes | ||
| Analytics | No | Yes | $30,000 | $24,000 | |
| Automation | No | Yes | $36,000 | $28,800 | |
| Enterprise SSO | No | No |
Whitespace: two products, $66,000 at list, $52,800 at the account's rate per product. Last logged activity: 104 days. The account is on the AE's untouched list and near the top of their whitespace list at once, which is the account to open Monday with.
Fit measured against the whole catalogue. Every small account shows whitespace it could never buy, and the AE stops reading. Fit per band, always.
Billing and CRM identifiers differ. The account in billing is the paying entity; the account in the CRM is the logo. Keep a mapping table and count the accounts that do not join; they are the ones no list can reach.
Owner changes without dates. An account that moved between AEs mid-quarter appears in both books. The owner assertion fails. The fix is the transfer date in the CRM.
Usage-driven churn ignored. An account with full product ownership and falling usage is not whitespace; it is risk. Load usage as another file and let it flag accounts before the renewal.
Mapped once, billing and the CRM export produce the same three lists per owner every week, reconciled to ARR, with capacity applied. Covirage builds this from the exports as they are. The SaaS page describes the setup, and you can upload a sample billing export and see the roll-up on your own rows.
From your own base. Band customers by size and segment, and a product is in the band's fit set if more than half the band owns it. An account below its band's fit set has whitespace; one above it is a reference customer for the band. Product marketing can override the rule per product.
Both are defensible; say which. List price gives the upper bound. The account's current spend per product gives what a similar deal has actually closed for. The second is usually the one sales leadership believes.
No. Billing and the CRM give whitespace and untouched accounts. Usage adds a risk signal and a fit signal, and can be loaded later as another file.