Which technicians carry the heaviest load, where billable hours are leaking, and how workload distributes across your team. Generated by AI via Proxuma Power BI MCP server.
Which technicians carry the heaviest load, where billable hours are leaking, and how workload distributes across your team. Generated by AI via Proxuma Power BI MCP server.
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: Operations managers, service delivery leads, and MSP owners managing capacity
How often: Weekly for scheduling, monthly for utilization reviews, quarterly for staffing decisions
Which technicians carry the heaviest load, where billable hours are leaking, and how workload distributes across your team. Generated by AI via Proxuma Power BI MCP server.
Total hours logged per resource, ranked from highest to lowest
EVALUATE ROW("TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]), "BillableHours", SUM('BI_Autotask_Time_Entries'[Billable Hours]), "BillableRatio", DIVIDE(SUM('BI_Autotask_Time_Entries'[Billable Hours]), SUM('BI_Autotask_Time_Entries'[hours_worked])), "Employees", [Total Employees], "HoursPerEmp", DIVIDE(SUM('BI_Autotask_Time_Entries'[hours_worked]), [Total Employees]))
Segmented bars showing the billable (green) and non-billable (slate) proportion for each of the top 15 resources
EVALUATE
TOPN(15,
SUMMARIZECOLUMNS(
'BI_Autotask_Time_Entries'[resource_name],
"TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]),
"BillableHours", CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
'BI_Autotask_Time_Entries'[is_non_billable] = FALSE),
"BillablePct", DIVIDE(
CALCULATE(SUM('BI_Autotask_Time_Entries'[hours_worked]),
'BI_Autotask_Time_Entries'[is_non_billable] = FALSE),
SUM('BI_Autotask_Time_Entries'[hours_worked]))
),
[TotalHours], DESC
)
Hours, tickets, and client count for each of the top 15 resources
| # | Resource | Hours | Billable % | Tickets | Clients | Tier |
|---|---|---|---|---|---|---|
| 1 | Tech A | 2,400 | 72.9% | 603 | 46 | Medium |
| 2 | Tech B | 2,136 | 61.0% | 794 | 117 | Medium |
| 3 | Tech C | 2,060 | 55.6% | 99 | 54 | Low |
| 4 | Tech D | 2,050 | 89.6% | 2,613 | 115 | High |
| 5 | Tech E | 1,888 | 80.9% | 2,297 | 104 | High |
| 6 | Tech F | 1,862 | 76.0% | 84 | 45 | Medium |
| 7 | Tech G | 1,780 | 65.0% | 149 | 44 | Medium |
| 8 | Tech H | 1,585 | 77.5% | 763 | 77 | Medium |
| 9 | Tech I | 1,554 | 52.7% | 489 | 29 | Low |
| 10 | Tech J | 1,505 | 63.6% | 2,017 | 143 | Medium |
| 11 | Tech K | 1,492 | 73.3% | 724 | 84 | Medium |
| 12 | Tech L | 1,433 | 91.3% | 17 | 25 | High |
| 13 | Tech M | 1,418 | 94.7% | 3,220 | 146 | High |
| 14 | Tech N | 1,362 | 97.1% | 3,275 | 137 | High |
| 15 | Tech O | 1,344 | 80.9% | 578 | 51 | High |
Distribution of the top 15 resources by billable percentage tier
EVALUATE
VAR _ResourceUtil =
SUMMARIZECOLUMNS(
'BI_Autotask_Time_Entries'[resource_name],
"BillPct", DIVIDE(
CALCULATE(SUM('BI_Autotask_Time_Entries'[hours_worked]),
'BI_Autotask_Time_Entries'[is_non_billable] = FALSE),
SUM('BI_Autotask_Time_Entries'[hours_worked]))
)
RETURN
ROW(
"HighTier", COUNTROWS(FILTER(_ResourceUtil, [BillPct] > 0.80)),
"MediumTier", COUNTROWS(FILTER(_ResourceUtil,
[BillPct] >= 0.60 && [BillPct] <= 0.80)),
"LowTier", COUNTROWS(FILTER(_ResourceUtil, [BillPct] < 0.60))
)
Comparing resources with high ticket counts vs those with high hours to understand different working styles
High-ticket, high-efficiency resources handle large volumes of tickets with strong billable ratios. Tech N stands out with 3,275 tickets and a 97.1% billable rate across 1,362 hours. That is roughly 2.4 tickets per hour logged. Tech M follows a similar pattern: 3,220 tickets, 94.7% billable, 1,418 hours. These resources resolve issues quickly and bill for nearly everything they do.
High-hour, low-ticket resources tell a different story. Tech C logged 2,060 hours but only 99 tickets across 54 clients, with a 55.6% billable rate. Tech F logged 1,862 hours against just 84 tickets. These are likely project-focused or infrastructure resources doing longer-form work. The low billable percentage on Tech C (44.4% non-billable) is worth investigating.
Spread resources like Tech B (794 tickets, 117 clients) and Tech J (2,017 tickets, 143 clients) serve the widest client base. Tech J manages this with only 63.6% billable, which suggests context-switching overhead or a lot of internal coordination work that is not being billed.
The team-wide billable rate of 75.6% is reasonable for an MSP, but the spread between resources is significant. Tech N bills 97.1% of logged hours while Tech I bills only 52.7%. That gap represents real revenue left on the table.
The top 4 resources each logged over 2,000 hours. If this dataset covers roughly two years, that is sustainable. If it covers one year, these resources are working at or above 40 hours per week with no room for training, admin, or time off. Check the date range before drawing conclusions about burnout risk.
Two resources stand out for low billable percentages despite high total hours. Tech C at 55.6% and Tech I at 52.7% have nearly half their work classified as non-billable. This could reflect project work, internal tasks, or simply a billing configuration issue where work that should be billable is not being tagged correctly in Autotask.
On the positive side, Tech N and Tech M together handled 6,495 tickets across 283 clients with billable rates above 94%. These are the highest-throughput resources on the team. Understanding what makes their workflow efficient could help improve the team average.
Concrete steps to improve team utilization and billable recovery.
Both resources have billable rates below 56%. Pull their time entries for the past 90 days and categorize the non-billable work. If it is internal projects, that is a staffing decision. If it is client work that should be billed, fix the billing configuration. Target: move both above 65% within one quarter.
Tech B serves 117 clients and Tech J serves 143. That level of context-switching likely explains their lower billable percentages (61% and 63.6%). Consider reassigning some accounts to resources with fewer clients and available capacity.
These two resources handle the most tickets with the highest billable rates. Document their ticket handling process, tools, and escalation patterns. If their efficiency can be replicated across even 3-4 other team members, the impact on overall billable recovery would be substantial.
The current average is 75.6%. A 2.4 percentage point improvement across 50,752 hours would recover roughly 1,218 additional billable hours. At typical MSP billing rates, that translates directly to revenue without adding headcount.
Billable percentage is the sum of hours_worked where is_non_billable = FALSE, divided by total hours_worked for that resource. The data comes from the BI_Autotask_Time_Entries table in Proxuma Power BI, which syncs directly from Autotask PSA.
The 6.4% figure divides logged hours (50,752) by the total capacity in Autotask (787,858). That capacity number includes every resource slot going back to when the system was first configured. It is not a meaningful benchmark. Focus on billable percentage and hours per resource instead.
Industry benchmarks range from 65% to 85% depending on the role. Frontline service desk techs should target 75-85%. Escalation engineers and project resources typically land around 60-75%. Anything below 55% deserves a closer look at time entry practices or work assignment.
High ticket counts with relatively low hours indicate quick-resolution work, like password resets, simple requests, or dispatch-style tickets. These resources are efficient at volume but may not be logging all their time. Compare their ticket-to-hour ratio against the team average to see if time logging discipline is a factor.
Monthly for team-level planning. Quarterly for strategic decisions about hiring, role changes, or account reassignment. After any significant team change (new hire, departure, restructure), run it again to see the updated distribution.
Yes. Copy any query from the toggles above and paste it into DAX Studio or the Power BI Desktop performance analyzer. The queries reference standard Proxuma data model tables and measures that exist in every Proxuma Power BI deployment.
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