“Weekly Hours vs Capacity: Are Your Techs Overworked or Underutilized?”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Weekly Hours vs Capacity: Are Your Techs Overworked or Underutilized?

How many hours did each technician log versus their available capacity? This report breaks down total hours, billable hours, and utilisation rates across 76 resources to identify who is stretched thin and who has room for more work.

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

Weekly Hours vs Capacity: Are Your Techs Overworked or Underutilized?

How many hours did each technician log versus their available capacity? This report breaks down total hours, billable hours, and utilisation rates across 76 resources to identify who is stretched thin and who has room for more work.

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 › Weekly Hours vs Capacity: Are Your Te...
What you can measure in this report
Key Performance Indicators
Hours Logged by Resource
Billable vs Non-Billable Hours by Resource
Utilisation Rate Ranking
Workload Distribution: Time Entries per Resource
Key Findings
Analysis
Recommended Actions
Frequently Asked Questions
Total Resources
Total Hours Worked
Billable Hours
AI-Generated Power BI Report

Weekly Hours vs Capacity: Are Your Techs Overworked or Underutilized?

How many hours did each technician log versus their available capacity? This report breaks down total hours, billable hours, and utilisation rates across 76 resources to identify who is stretched thin and who has room for more work.

1.0 Key Performance Indicators
Total Resources
76
Active technicians
Total Hours Worked
50,752
All time entries
Billable Hours
38,364
75.6% billable
Weekly Capacity
40h
Standard per resource
2.0 Hours Logged by Resource

Total hours worked per resource, sorted highest to lowest. Resource A leads with 2,400 hours, while the bottom of the top 12 still logs over 1,400 hours.

Resource A
2,400
72.9%
Resource B
2,136
61.0%
Resource C
2,060
55.6%
Resource D
2,050
89.6%
Resource E
1,888
80.9%
Resource F
1,862
76.0%
Resource G
1,780
65.0%
Resource H
1,585
77.5%
Resource I
1,554
52.7%
Resource J
1,505
63.6%
Resource K
1,492
73.3%
Resource L
1,433
91.3%
View DAX Query - Hours by Resource
EVALUATE ROW("TotalEntries", COUNTROWS('BI_Autotask_Time_Entries'), "TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]), "BillableHours", SUM('BI_Autotask_Time_Entries'[Billable Hours]), "ResourceCount", DISTINCTCOUNT('BI_Autotask_Time_Entries'[resource_name]), "AvgHoursPerResource", DIVIDE(SUM('BI_Autotask_Time_Entries'[hours_worked]), DISTINCTCOUNT('BI_Autotask_Time_Entries'[resource_name])))
3.0 Billable vs Non-Billable Hours by Resource

Stacked breakdown per resource. The teal segment is billable, the slate segment is non-billable. Resources with large grey segments need closer review.

Resource A
1,749
651
Resource B
1,303
833
Resource C
1,145
915
Resource D
1,838
213
Resource E
1,527
361
Resource F
1,416
446
Resource G
1,157
623
Resource H
1,228
357
Resource I
819
735
Resource J
957
548
Resource K
1,094
399
Resource L
1,308
125
Billable Hours Non-Billable Hours
View DAX Query - Billable vs Non-Billable Split
EVALUATE
ROW(
  "TotalHoursWorked", [Company - Hours Worked],
  "TotalHoursBilled", [Company - Hours Billed],
  "TotalRevenue", [Revenue - Total]
)
4.0 Utilisation Rate Ranking

Overall billable utilisation at 75.6%. The donut shows the team-wide split. The table ranks all 12 resources by utilisation percentage, with entry counts for context.

75.6% billable Team Utilisation
(76 resources)
87.3% top 3 avg Top Performers
(D, E, L)
56.4% bottom 3 avg Lowest Performers
(C, I, B)
Resource Hours Worked Billable Hrs Non-Billable Utilisation Entries
Resource L 1,433 1,308 125 91.3% 340
Resource D 2,050 1,838 213 89.6% 4,513
Resource E 1,888 1,527 361 80.9% 3,705
Resource H 1,585 1,228 357 77.5% 1,278
Resource F 1,862 1,416 446 76.0% 672
Resource K 1,492 1,094 399 73.3% 1,634
Resource A 2,400 1,749 651 72.9% 2,043
Resource G 1,780 1,157 623 65.0% 733
Resource J 1,505 957 548 63.6% 3,398
Resource B 2,136 1,303 833 61.0% 2,236
Resource C 2,060 1,145 915 55.6% 715
Resource I 1,554 819 735 52.7% 850
View DAX Query - Utilisation by Resource
EVALUATE
TOPN(12,
  ADDCOLUMNS(
    VALUES('BI_Autotask_Time_Entries'[resource_name]),
    "HrsWorked", CALCULATE(SUM('BI_Autotask_Time_Entries'[hours_worked])),
    "HrsBillable", CALCULATE(SUM('BI_Autotask_Time_Entries'[Billable Hours])),
    "EntryCount", CALCULATE(COUNTROWS('BI_Autotask_Time_Entries')),
    "Utilisation", DIVIDE(
      CALCULATE(SUM('BI_Autotask_Time_Entries'[Billable Hours])),
      CALCULATE(SUM('BI_Autotask_Time_Entries'[hours_worked]))
    )
  ),
  [HrsWorked], DESC
)
5.0 Workload Distribution: Time Entries per Resource

Number of time entries per resource shows how work volume is spread. Resources D, E, and J handle the bulk of ticket-based entries, while C, F, and L operate on fewer, longer entries typical of project work.

Resource D
Resource E
Resource J
Resource B
Resource A
Resource K
Resource H
Resource I
Resource G
Resource C
Resource F
Resource L
6.0 Key Findings
!

1. Two resources run below 56% billable on 3,600+ combined hours

Resource C (55.6%, 2,060 hrs) and Resource I (52.7%, 1,554 hrs) together log 3,614 hours with 1,650 non-billable hours between them. If these two were brought to the team average of 75.6%, that would convert roughly 720 hours to billable work.

2. Resource L leads utilisation at 91.3% despite lower total hours

With only 1,433 total hours and 340 entries, Resource L converts nearly every hour to billable work. This is the benchmark for efficiency. The low entry count suggests focused, project-style work where tracking is tight.

!

3. High-volume resources maintain stronger billable rates

Resource D (4,513 entries, 89.6%) and Resource E (3,705 entries, 80.9%) both process large ticket volumes and stay above the team average. Reactive ticket work naturally fills billable hours. Resources with fewer entries but similar total hours tend to drift lower.

!

4. Resource B logs the second-most hours but only 61% billable

At 2,136 hours with 833 non-billable, Resource B is one of the busiest people on the team yet converts barely three out of every five hours. That is 833 hours of capacity not generating revenue. The 2,236 entry count is respectable, so this is not a tracking problem.

7.0 Analysis

The team is working plenty of hours. The issue is what those hours are spent on. At 50,752 total hours across 76 resources, the average comes out to 668 hours per person. That is well above a baseline capacity of 520 hours per quarter (40h/week x 13 weeks). The team is not underworked.

The 24.4% gap between actual billable rate (75.6%) and an 85% target represents roughly 4,770 hours. Those hours are logged but not billed. Some of that is legitimate internal work, training, and admin. But the spread between top performers (Resource L at 91.3%) and bottom performers (Resource I at 52.7%) is almost 39 percentage points. That variation is too wide for a team of this size.

Entry count reveals the nature of the work. Resources D, E, and J each process over 3,000 entries. They are handling high-volume reactive tickets, and their billable rates reflect that: 89.6%, 80.9%, and 63.6% respectively. Resource C logs 2,060 hours on just 715 entries, meaning an average of 2.9 hours per entry. That signals project work or long-running tasks, which is fine as long as the billing is correct.

Resource A is the top hour-logger at 2,400 hours but sits at only 72.9% billable. That means 651 non-billable hours. For the person putting in the most time, that volume of non-billable work needs a closer look. It could be team lead responsibilities, internal tooling, or simply tasks that should be recategorized.

8.0 Recommended Actions

Practical steps to close the utilisation gap and balance workload across the team.

1

Audit non-billable hours for Resources C, I, and B this week

Pull every non-billable time entry for these three resources over the last 90 days. Categorize them into internal projects, admin, training, or misclassified. Target: identify at least 40% of non-billable hours that should be reclassified or eliminated. Set individual billable targets of 70% for the next quarter.

2

Build a weekly billable-rate scorecard visible to all technicians

Make each person's billable percentage visible on a weekly basis. Resources that can see their own numbers tend to self-correct. Set the team target at 80% and flag anyone below 65% for a manager conversation. The data is already in Power BI; it just needs a dedicated view.

3

Review Resource A's non-billable hours for team lead reclassification

At 2,400 total hours, Resource A is the hardest-working person on the team. If 651 non-billable hours include legitimate lead responsibilities (mentoring, escalations, process work), those should be tracked separately rather than dragging down the utilisation metric. Create a "team lead" work type if one does not exist.

9.0 Frequently Asked Questions
What counts as "billable" vs "non-billable" hours?

Billable hours are time entries where the billable flag is set to true in Autotask. Non-billable includes internal meetings, training, admin tasks, and any entry explicitly marked as non-billable by the technician or contract billing rules.

How is utilisation percentage calculated?

Utilisation is billable hours divided by total hours worked, expressed as a percentage. A resource who logs 80 billable hours out of 100 total hours has 80% utilisation. It does not factor in capacity or available hours, only what was actually logged.

What is a good utilisation target for MSP technicians?

Most MSPs target between 75% and 85% billable utilisation. Below 70% usually signals either too much internal work or poor time tracking. Above 90% can mean a resource is stretched thin with no capacity for unplanned work or professional development.

Why do some resources have few entries but many hours?

That usually indicates project-based work. A single time entry might cover multiple hours on a migration, deployment, or infrastructure project. This is different from reactive ticket work where each entry is typically shorter. Both patterns are normal, but project-based resources need more attention to ensure billable tracking is accurate.

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.

How often should this report be reviewed?

Weekly for capacity tracking and monthly for the utilisation trends. The weekly view catches overworked or idle resources before it becomes a pattern. The monthly view reveals whether changes to workload distribution are actually sticking.

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