How many hours your team has available each week, how those hours are allocated, and where the gaps are. Generated by AI via Proxuma Power BI MCP server.
How many hours your team has available each week, how those hours are allocated, and where the gaps are. 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
How many hours your team has available each week, how those hours are allocated, and where the gaps are. Generated by AI via Proxuma Power BI MCP server.
EVALUATE ROW("TotalResources", DISTINCTCOUNT('BI_Autotask_Time_Entries'[resource_name]), "TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]), "BillableHours", SUM('BI_Autotask_Time_Entries'[Billable Hours]), "NonBillableHours", SUM('BI_Autotask_Time_Entries'[Non billable Hours]))
How the 127,800 total Proxuma capacity hours are allocated across planned, actual, and spare time
| Category | Hours | % of Total | Status |
|---|---|---|---|
| Total Capacity | 127,800 | 100.0% | Baseline |
| Planned Hours | 4,479 | 3.5% | Low |
| Actual Hours | 13,578 | 10.6% | Low |
| Spare Hours | 123,321 | 96.5% | Very High |
EVALUATE
SELECTCOLUMNS(
'BI_Proxuma_User_Capacity_Items',
"total_capacity", [total_capacity_in_hours],
"planned", [planned_in_hours],
"actual", [actual_in_hours],
"spare", [spare_in_hours]
)
Each active resource is configured for 8 hours per day, Monday through Friday. All 84 active resources follow the same schedule.
| Metric | Value | Note |
|---|---|---|
| Hours per day (per resource) | 8h | Mon–Fri uniform |
| Days per week | 5 | No weekend capacity |
| Weekly hours per resource | 40h | 8h × 5 days |
| Active resources | 84 | Of 118 total |
| Total weekly capacity | 3,360h | 84 × 40h |
| Annual capacity (52 weeks) | 174,720h | Projected |
EVALUATE
SELECTCOLUMNS(
'BI_Autotask_Capacity',
"resource", RELATED('BI_Autotask_User_Details'[resource_name]),
"monday", [monday_hours],
"tuesday", [tuesday_hours],
"wednesday", [wednesday_hours],
"thursday", [thursday_hours],
"friday", [friday_hours]
)
Comparing total weekly capacity against actual hours logged, split by billable and non-billable
| Metric | Total | Weekly Avg | % of Capacity |
|---|---|---|---|
| Total Hours Worked | 50,752 | 976h | 29.0% |
| Billable Hours | 38,364 | 738h | 75.6% of worked |
| Non-Billable Hours | 12,388 | 238h | 24.4% of worked |
| Unused Capacity (weekly) | — | 2,384h | 71.0% |
EVALUATE
ROW(
"TotalHoursWorked", SUM('BI_Autotask_User_Details'[total_hours]),
"BillableHours", SUM('BI_Autotask_User_Details'[billable_hours]),
"NonBillableHours", SUM('BI_Autotask_User_Details'[non_billable_hours]),
"WeeklyCapacity", SUMX(
'BI_Autotask_Capacity',
[monday_hours] + [tuesday_hours] +
[wednesday_hours] + [thursday_hours] +
[friday_hours]),
"ActiveResources", COUNTROWS(
FILTER('BI_Autotask_Capacity',
[monday_hours] + [tuesday_hours] +
[wednesday_hours] + [thursday_hours] +
[friday_hours] > 0))
)
Of the 127,800 total capacity hours tracked in BI_Proxuma_User_Capacity_Items, only 13,578 hours (10.6%) have been logged as actual time. The remaining 123,321 hours sit as spare capacity. This suggests either a configuration gap where not all work is being tracked through Proxuma, or a significant underutilization of available resources.
With 4,479 planned hours against 127,800 total capacity, the planning layer is barely being used. Good capacity management starts with accurate planning. If resources are not being scheduled through the capacity system, the spare capacity number becomes meaningless as a planning tool.
Across all 50,752 hours logged in Autotask, 38,364 hours (75.6%) are billable. The MSP benchmark for billable utilization is typically 65-75%, so this number is at the top of the range. The focus should be on increasing total hours captured rather than shifting the billable/non-billable mix.
5 priorities based on the capacity data above
A 96.5% spare rate is almost certainly a data issue rather than a staffing issue. Check whether all resources are properly linked in BI_Proxuma_User_Capacity_Items and whether time entries from Autotask are flowing through correctly. The 50,752 hours in Autotask vs 13,578 actual in Proxuma suggests a sync gap.
Only 4,479 hours are planned against 127,800 capacity. Start scheduling project work, recurring maintenance, and internal tasks through the capacity system. Without planned hours, you cannot forecast workload or identify overcommitted resources before they burn out.
You have 118 total resources but only 84 are active (with capacity hours configured). Determine whether the remaining 34 are contractors, departed staff, or resources that should have capacity assigned. Clean resource data leads to accurate capacity reporting.
With 3,360 hours of weekly capacity and an average of 976 hours logged per week, your Autotask utilization sits at 29%. Set a target of 60-70% and track it weekly. The gap between 29% and your target tells you how many hours are either untracked or genuinely idle.
Your billable/non-billable split is already above the MSP industry average. Protect it by keeping internal project time categorized correctly and making sure non-billable time is captured intentionally, not by default. Every 1% improvement at your scale translates to roughly 500 additional billable hours per year.
Capacity data is pulled from two sources. BI_Autotask_Capacity stores each resource's configured working hours per day of the week (Monday through Friday). BI_Proxuma_User_Capacity_Items tracks planned, actual, and spare hours at a higher level. The AI runs DAX queries against both tables to calculate weekly totals and utilization rates.
Weekly capacity sums each resource's daily hours across Monday through Friday. In this dataset, every active resource is configured for 8 hours per day, 5 days per week, giving 40 hours per resource. Multiply by 84 active resources and you get 3,360 hours per week.
The 96.5% spare figure comes from the Proxuma capacity tracking layer, which may not yet have full coverage of all time entries. The Autotask data shows 50,752 hours actually worked, which is significantly more than the 13,578 hours registered in Proxuma. The gap likely reflects a configuration or sync issue rather than genuine underutilization.
Most MSPs target 60-75% overall utilization of available capacity, with billable utilization (billable hours as a percentage of total hours) in the 65-75% range. Anything below 50% usually means either poor time tracking or genuine overcapacity. Anything above 85% risks burnout and leaves no room for unplanned work.
Yes. The DAX query in section 3.0 returns per-resource capacity by day. You can modify it to include actual hours logged per resource by joining with time entry data. In Power BI, this can be built as a matrix visual with resource names on rows and days of the week on columns.
Yes. Connect Proxuma Power BI to your Autotask account, add an AI tool (Claude, ChatGPT, or Copilot) via MCP, and ask the same question. The AI writes the DAX queries, runs them against your real data, and produces a report like this in under fifteen minutes.
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