Mapping coverage rates, identifying gaps, and quantifying revenue at risk across the client portfolio.
Mapping coverage rates, identifying gaps, and quantifying revenue at risk across the client portfolio.
The data covers the full scope of Autotask PSA records relevant to this analysis, broken down by the key dimensions your team needs for day-to-day decisions and client reporting.
Who should use this: NOC teams, service managers, and MSP owners monitoring backup compliance
How often: Daily for operations, weekly for management review, monthly for client reporting
Mapping coverage rates, identifying gaps, and quantifying revenue at risk across the client portfolio.
A snapshot of contract coverage across the entire client base.
EVALUATE ROW("TotalCompanies", COUNTROWS('BI_Autotask_Companies'), "WithContracts", DISTINCTCOUNT('BI_Autotask_Contracts'[company_id]), "ActiveContracts", CALCULATE(COUNTROWS('BI_Autotask_Contracts'), 'BI_Autotask_Contracts'[contract_status_name] = "Active"), "TotalContracts", COUNTROWS('BI_Autotask_Contracts'))
Of 67,521 total tickets, 64,770 are linked to an active contract. That leaves 2,751 tickets (4.1%) without contract assignment.
EVALUATE
VAR TicketsWithContract = CALCULATE(
COUNTROWS('BI_Autotask_Tickets'),
NOT(ISBLANK('BI_Autotask_Tickets'[contract_name])))
VAR TicketsNoContract = CALCULATE(
COUNTROWS('BI_Autotask_Tickets'),
ISBLANK('BI_Autotask_Tickets'[contract_name]))
VAR TotalTickets = COUNTROWS('BI_Autotask_Tickets')
RETURN
ROW(
"TicketsWithContract", TicketsWithContract,
"TicketsNoContract", TicketsNoContract,
"TotalTickets", TotalTickets,
"CoveragePct", DIVIDE(TicketsWithContract, TotalTickets, 0) * 100
)
Time entries tell a different story. While ticket coverage is strong at 95.9%, only 84.2% of logged hours fall under a contract. That means 8,008 hours of work (15.8%) happened outside any contract scope.
The 11.7 percentage point gap between ticket coverage (95.9%) and hours coverage (84.2%) suggests that uncovered tickets tend to require more labor. These are likely project work or ad-hoc requests that fall outside recurring service contracts.
EVALUATE
VAR HoursWithContract = CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
NOT(ISBLANK('BI_Autotask_Time_Entries'[contract_name])))
VAR HoursNoContract = CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
ISBLANK('BI_Autotask_Time_Entries'[contract_name]))
VAR TotalHours = SUM('BI_Autotask_Time_Entries'[hours_worked])
RETURN
ROW(
"HoursWithContract", HoursWithContract,
"HoursNoContract", HoursNoContract,
"TotalHours", TotalHours,
"HoursCoveragePct", DIVIDE(HoursWithContract, TotalHours, 0) * 100
)
Breakdown of active contracts by type across all clients.
| Contract Type | Active Contracts | Unique Clients | Share |
|---|---|---|---|
| Recurring Service | 932 | 236 | 67.7% |
| Time & Materials | 287 | 254 | 20.8% |
| Block Hours | 158 | 158 | 11.5% |
Recurring Service contracts dominate the portfolio at 67.7% of all active agreements. Every Block Hours client has exactly one contract of this type, while Recurring Service clients average 3.9 contracts each.
Coverage rates for the 10 highest-volume clients.
| Client | Total Tickets | Covered | Uncovered | Coverage |
|---|---|---|---|---|
| Rivers, Mitchell and Carter | 6,381 | 6,375 | 6 | 99.9% |
| Henderson Group | 5,458 | 5,457 | 1 | 100.0% |
| Morrison Technologies | 5,290 | 5,277 | 13 | 99.8% |
| Whitfield Corp | 2,775 | 2,775 | 0 | 100.0% |
| Patterson & Associates | 2,376 | 2,371 | 5 | 99.8% |
| Anderson Holdings | 2,364 | 2,364 | 0 | 100.0% |
| Price-Gomez | 2,180 | 2,178 | 2 | 99.9% |
| Sullivan, Contreras and Rios | 1,803 | 1,799 | 4 | 99.8% |
| Fletcher Industries | 1,758 | 1,757 | 1 | 99.9% |
| Coleman Partners | 1,728 | 1,726 | 2 | 99.9% |
The top 10 clients by ticket volume all maintain coverage above 99%. Most uncovered tickets in these accounts are one-off incidents that slip through before contract assignment, not systemic gaps.
These clients have tickets in the system but zero contract coverage. Every ticket is unbilled or billed ad-hoc. Bradley, Parker and Walsh alone accounts for 1,684 uncovered tickets.
| Client | Total Tickets | Uncovered | Coverage |
|---|---|---|---|
| Bradley, Parker and Walsh | 1,684 | 1,684 | 0.0% |
| Thornton Group | 550 | 550 | 0.0% |
| Miller and Reynolds | 302 | 302 | 0.0% |
| Crawford LLC | 14 | 14 | 0.0% |
| Dawson, Hartley and Blake | 10 | 10 | 0.0% |
| Price, Bennett and Marshall | 9 | 9 | 0.0% |
| Oneal LLC | 6 | 6 | 0.0% |
| Reynolds Corp | 5 | 5 | 0.0% |
The 8 fully uncovered clients represent 2,580 tickets with zero contract backing. Assuming an average of 0.75 hours per ticket at a blended rate of $125/hr, that is roughly $241,875 in unbilled or at-risk labor. Bradley, Parker and Walsh alone represents $157,875 of that total.
The data reveals a two-tier pattern. For clients with contracts, ticket coverage is excellent: the top 10 accounts all exceed 99%. The problem sits with the 280 companies that have no contract at all.
The gap between ticket coverage (95.9%) and hours coverage (84.2%) is the second red flag. Uncovered tickets consume disproportionately more labor, which points to project work or escalations happening outside contract scope. At a blended rate of $125/hour, those 8,008 uncovered hours represent roughly $1M in work that is either billed ad-hoc (less predictable revenue) or absorbed as cost.
Bradley, Parker and Walsh stands out as the biggest single risk: 1,684 tickets with zero coverage. If that is an active client relationship, a contract should have been in place months ago. If it is a dormant account, the tickets need investigation.
Recurring Service contracts make up 67.7% of all active agreements, with an average of 3.9 contracts per client. This suggests most MSPs are layering multiple service bundles per account, which is healthy from a coverage perspective but requires careful monitoring to avoid overlap or billing gaps.
Prioritized steps based on the coverage data.
1,684 tickets with zero coverage is the single largest gap. Review the account, confirm it is active, and create a Recurring Service agreement.
Export the list, classify each as active client, prospect, or dormant. Active clients need contracts. Dormant accounts should be marked inactive in Autotask.
The 11.7-point gap between ticket coverage and hours coverage suggests project work is happening outside contracts. Review time entries without contract links and determine whether they should be billed T&M or added to existing agreements.
Ensure every active client has a default service desk contract assigned. This prevents new tickets from slipping through uncovered.
Run this report every quarter to track the trend. Target: 100% ticket coverage for all active clients and 90%+ hours coverage within six months.
Contract coverage measures the percentage of a client's tickets and labor hours that are linked to an active contract in Autotask. High coverage means the work is scoped and billed under an agreement. Low or zero coverage means the work is ad-hoc, potentially unbilled, or assigned to the wrong contract.
Tickets without contracts tend to be more complex (project work, escalations, onboarding). They consume more hours per ticket on average. So even though only 4.1% of tickets lack a contract, those tickets account for 15.8% of total labor hours.
Revenue at risk is estimated by multiplying uncovered tickets by an average of 0.75 hours per ticket at a blended hourly rate of $125. For hours-based risk, the uncovered hours (8,008) are multiplied by the same blended rate. These are estimates based on synthetic demo data.
This report includes all three Autotask contract types: Recurring Service (monthly managed services), Time & Materials (billed per hour), and Block Hours (prepaid hour banks). Only active contracts are counted.
Yes. Connect Proxuma Power BI to your Autotask PSA, add your preferred AI via MCP (Claude, ChatGPT, or Copilot), and ask the same question. The report generates in under fifteen minutes using your live data.
Connect Proxuma Power BI to your PSA, RMM, and M365 environment, use an MCP-compatible AI to ask questions, and generate custom reports - in minutes, not days.
See more reports Get started