“Resource Utilization Across Your MSP: A Complete Power BI Dashboard”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Resource Utilization Across Your MSP: A Complete Power BI Dashboard

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.

Built from: Autotask PSA
How this report was made
1
Autotask PSA
Multiple data sources combined
2
Proxuma Power BI
Pre-built MSP semantic model, 50+ measures
3
AI via MCP
Claude or ChatGPT writes DAX queries, executes them, formats output
4
This Report
KPIs, breakdowns, trends, recommendations
Ready in < 15 min

Resource Utilization Across Your MSP: A Complete Power BI Dashboard

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

Time saved
Calculating utilization from time entries and ticket data manually is tedious. This report does it automatically.
Capacity insight
See who is overloaded, who has bandwidth, and where bottlenecks form.
Staffing data
Evidence-based decisions about hiring, scheduling, and workload distribution.
Report categoryResource & Capacity
Data sourceAutotask PSA · Datto RMM · Datto Backup · Microsoft 365 · SmileBack · HubSpot · IT Glue
RefreshReal-time via Power BI
Generation timeUnder 15 minutes
AI requiredClaude, ChatGPT or Copilot
AudienceOperations managers, service delivery leads
Where to find this in Proxuma
Power BI › Resources › Resource Utilization Across Your MSP:...
What you can measure in this report
Summary KPIs
Hours Distribution by Resource (Top 15)
Billable vs Non-Billable Split per Resource
Workload Balance
Utilization Tiers
Team Efficiency Patterns
Analysis
Recommended Actions
Frequently Asked Questions
TOTAL HOURS LOGGED
BILLABLE RATE
TEAM SIZE
AI-Generated Power BI Report
Resource Utilization Across Your MSP:
A Complete Power BI Dashboard

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.

Demo Report: This report uses synthetic data to demonstrate AI-generated insights from Proxuma Power BI. The structure, DAX queries, and analysis reflect real MSP data patterns.
1.0 Summary KPIs
TOTAL HOURS LOGGED
50,752
Across all resources
BILLABLE RATE
75.6%
38,364 billable hours
TEAM SIZE
77
Distinct resources with time entries
AVG HOURS / RESOURCE
659
Wide variance across team
What are these DAX queries? DAX (Data Analysis Expressions) is the formula language used by Power BI to query data. Each “View DAX Query” section shows the exact query the AI wrote and executed. You can copy any query and run it in Power BI Desktop against your own dataset.
2.0 Hours Distribution by Resource (Top 15)

Total hours logged per resource, ranked from highest to lowest

Tech A
2,400
Tech B
2,136
Tech C
2,060
Tech D
2,050
Tech E
1,888
Tech F
1,862
Tech G
1,780
Tech H
1,585
Tech I
1,554
Tech J
1,505
Tech K
1,492
Tech L
1,433
Tech M
1,418
Tech N
1,362
Tech O
1,344
View DAX Query — Hours per Resource (Top 15)
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]))
3.0 Billable vs Non-Billable Split per Resource

Segmented bars showing the billable (green) and non-billable (slate) proportion for each of the top 15 resources

Tech A
72.9%
27.1%
Tech B
61%
39%
Tech C
55.6%
44.4%
Tech D
89.6%
Tech E
80.9%
Tech F
76%
24%
Tech G
65%
35%
Tech H
77.5%
22.5%
Tech I
52.7%
47.3%
Tech J
63.6%
36.4%
Tech K
73.3%
26.7%
Tech L
91.3%
Tech M
94.7%
Tech N
97.1%
Tech O
80.9%
Billable Non-Billable
View DAX Query — Billable vs Non-Billable per Resource
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
)
4.0 Workload Balance

Hours, tickets, and client count for each of the top 15 resources

#ResourceHoursBillable %TicketsClientsTier
1Tech A2,40072.9%60346Medium
2Tech B2,13661.0%794117Medium
3Tech C2,06055.6%9954Low
4Tech D2,05089.6%2,613115High
5Tech E1,88880.9%2,297104High
6Tech F1,86276.0%8445Medium
7Tech G1,78065.0%14944Medium
8Tech H1,58577.5%76377Medium
9Tech I1,55452.7%48929Low
10Tech J1,50563.6%2,017143Medium
11Tech K1,49273.3%72484Medium
12Tech L1,43391.3%1725High
13Tech M1,41894.7%3,220146High
14Tech N1,36297.1%3,275137High
15Tech O1,34480.9%57851High
5.0 Utilization Tiers

Distribution of the top 15 resources by billable percentage tier

15 resources
Tier Distribution
High (>80% billable)6 resources
Medium (60-80%)7 resources
Low (<60%)2 resources
View DAX Query — Utilization Tiers
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))
)
6.0 Team Efficiency Patterns

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.

7.0 Analysis

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.

8.0 Recommended Actions

Concrete steps to improve team utilization and billable recovery.

1

Audit non-billable hours for Tech C and Tech I

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.

2

Redistribute client load from Tech B and Tech J

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.

3

Study the workflow of Tech N and Tech M

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.

4

Set a team billable target of 78% for next quarter

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.

9.0 Frequently Asked Questions
How is the billable percentage calculated?

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.

Why is the overall utilization rate only 6.4%?

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.

What is a good billable rate for an MSP technician?

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.

Why do some resources have thousands of tickets but fewer hours?

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.

How often should this report be reviewed?

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.

Can I run these DAX queries on my own Power BI dataset?

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.

Generate this report from your own 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