118 resources on paper. 24.4 full-time equivalents based on hours logged. Where is the gap, and who is carrying the load? Generated by AI via Proxuma Power BI MCP server.
118 resources on paper. 24.4 full-time equivalents based on hours logged. Where is the gap, and who is carrying the load? 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: MSP owners, HR leads, and operations managers planning workforce
How often: Monthly for headcount reviews, quarterly for planning, annually for budgeting
118 resources on paper. 24.4 full-time equivalents based on hours logged. Where is the gap, and who is carrying the load? Generated by AI via Proxuma Power BI MCP server.
EVALUATE ROW("Total Resources", [Resources - Total Count], "Active Resources", [Resources - Active Count], "Inactive Resources", [Resources - Inactive Count], "Active Pct", [Resources - Active %], "FTE Equivalent", [Resources - FTE Equivalent], "Total Hours", [Total], "Capacity Hours", [Capacity Total (Proxuma)])
The gap between how many people are on your roster and the full-time equivalent output they produce
Your Autotask instance contains 118 resources. Of those, 84 have logged at least one time entry. But the total hours worked across all resources is 50,751.57 hours. Divide that by the standard 2,080 hours per full-time employee per year, and you get 24.4 FTE.
That means 84 active resources are producing the output of roughly 24 full-time employees. The average active resource logs about 604 hours per year, which is 29% of a full FTE. This does not necessarily indicate a problem. Part-time staff, contractors, managers who only log a few hours, and seasonal variation all contribute to the gap. But knowing the number is the first step toward deciding whether the gap is acceptable.
EVALUATE TOPN(20, FILTER(SUMMARIZECOLUMNS('BI_Autotask_Time_Entries'[resource_name], "Hours", SUM('BI_Autotask_Time_Entries'[hours_worked]), "FTE", DIVIDE(SUM('BI_Autotask_Time_Entries'[hours_worked]), 1656)), [Hours] >= 200), [FTE], DESC) ORDER BY [FTE] DESC
The 10 resources contributing the most hours, with billable/non-billable split and utilization rate
| # | Resource | Total Hours | Billable | Non-Billable | Utilization |
|---|---|---|---|---|---|
| 1 | Dr. Jessica Adams DVM | 2,399.75 | 1,749.15 | 650.60 | 72.9% |
| 2 | Sarah Martinez | 2,135.98 | 1,303.36 | 832.61 | 61.0% |
| 3 | David Chen | 2,060.07 | 1,144.98 | 915.08 | 55.6% |
| 4 | API Integration | 2,050.27 | 1,837.69 | 212.58 | 89.6% |
| 5 | Michael Brown | 1,887.69 | 1,527.06 | 360.63 | 80.9% |
| 6 | James Wilson | 1,862.22 | 1,415.88 | 446.33 | 76.0% |
| 7 | Robert Thomas | 1,779.63 | 1,157.02 | 622.62 | 65.0% |
| 8 | Emily Davis | 1,584.52 | 1,228.02 | 356.50 | 77.5% |
| 9 | Lisa Anderson | 1,554.02 | 819.18 | 734.83 | 52.7% |
| 10 | Gregory Horn | 1,504.53 | 957.05 | 547.48 | 63.6% |
| Top 10 Total | 18,818.68 | 13,139.39 | 5,679.26 | 69.8% | |
EVALUATE
TOPN(
10,
ADDCOLUMNS(
SUMMARIZE(
BI_Autotask_Time_Entries,
BI_Autotask_Time_Entries[resource_name]
),
"TotalHours", CALCULATE(SUM(BI_Autotask_Time_Entries[hours_worked])),
"BillableHours", CALCULATE(SUM(BI_Autotask_Time_Entries[Billable Hours])),
"NonBillableHours", CALCULATE(
SUM(BI_Autotask_Time_Entries[hours_worked])
- SUM(BI_Autotask_Time_Entries[Billable Hours])
),
"UtilizationPct", DIVIDE(
CALCULATE(SUM(BI_Autotask_Time_Entries[Billable Hours])),
CALCULATE(SUM(BI_Autotask_Time_Entries[hours_worked]))
)
),
[TotalHours], DESC
)
ORDER BY [TotalHours] DESC
Global split across all resources showing how total hours break down by billing category
Of the 50,751.57 total hours logged, 75.6% were billable. That is a healthy ratio for an MSP. Industry benchmarks typically target 65-75% billable utilization across the entire team (including management and internal roles). At 75.6%, your team is at the top end of that range.
The 12,387.81 non-billable hours cover internal meetings, training, admin work, and project time that was not billed to a client. Some non-billable time is necessary. The question is whether those hours are invested in activities that improve the business or whether they represent time that could have been applied to client work.
EVALUATE
ROW(
"Total_Hours", SUM(BI_Autotask_Time_Entries[hours_worked]),
"Billable_Hours", SUM(BI_Autotask_Time_Entries[Billable Hours]),
"NonBillable_Hours",
SUM(BI_Autotask_Time_Entries[hours_worked])
- SUM(BI_Autotask_Time_Entries[Billable Hours]),
"Billable_Pct", DIVIDE(
SUM(BI_Autotask_Time_Entries[Billable Hours]),
SUM(BI_Autotask_Time_Entries[hours_worked])
)
)
How the top 10 resources compare on billable utilization, sorted from highest to lowest
EVALUATE
ADDCOLUMNS(
SUMMARIZE(
BI_Autotask_Time_Entries,
BI_Autotask_Time_Entries[resource_name]
),
"TotalHours", CALCULATE(SUM(BI_Autotask_Time_Entries[hours_worked])),
"BillableHours", CALCULATE(SUM(BI_Autotask_Time_Entries[Billable Hours])),
"UtilizationPct", DIVIDE(
CALCULATE(SUM(BI_Autotask_Time_Entries[Billable Hours])),
CALCULATE(SUM(BI_Autotask_Time_Entries[hours_worked]))
)
)
ORDER BY [UtilizationPct] DESC
The headline number is clear: 118 resources produce 24.4 FTE of output. That is a ratio of roughly 1 FTE for every 4.8 resources on the roster. Before that sounds alarming, consider what drives it.
34 of the 118 resources have logged zero time entries. These are likely inactive accounts, former employees who were never deactivated, or system accounts that do not represent real people. Cleaning up those 34 records would immediately make the ratio more honest: 84 active resources producing 24.4 FTE, or about 1 FTE per 3.4 active staff.
The top 10 resources by hours tell another story. They produce 18,819 hours, which is 37% of all hours worked, while representing only 12% of active staff. That concentration is a business risk. If Dr. Jessica Adams DVM (2,400 hours) or API Integration (2,050 hours) were to leave or go offline, you would lose a meaningful share of your output overnight.
Utilization rates across the top 10 range from 52.7% (Lisa Anderson) to 89.6% (API Integration). Four resources sit above 75% billable, which is strong. Two resources, David Chen and Lisa Anderson, are below 60%. That does not mean they are underperforming. They may hold internal-facing roles. But it is worth checking whether their non-billable hours are going to activities that generate long-term value.
The global billable rate of 75.6% is at the upper end of MSP benchmarks. Most MSPs target 65-75% across the entire team. You are already there. Pushing it higher may come at the cost of training time, documentation, and internal improvement work that keeps the business healthy.
4 priorities based on the findings above
These accounts inflate your resource count without contributing any output. They skew FTE calculations, complicate license audits, and create noise in reporting. Review each one: if the person is no longer active, deactivate the Autotask resource. This brings your real number from 118 down to 84 immediately.
Five people produce over 10,500 hours per year. That is 20.7% of total output from 6% of active resources. If any of them take extended leave or resign, you do not have a way to replace that capacity quickly. Document their workflows, cross-train a backup for each, and track this as an operational risk metric.
Outside the top 10, the remaining 74 active resources split the other 31,933 hours, averaging about 432 hours each. That is roughly 21% of a full FTE. Some of these will be part-time staff, managers, or contractors. But check whether any full-time employees are logging significantly less than expected. Poor time-tracking habits can hide real utilization problems.
When calculating cost-per-FTE, revenue-per-FTE, or tickets-per-FTE, use 24.4 as your denominator, not 84 or 118. This gives you an honest picture of what your team actually delivers. If you are planning to take on a new client that needs 2 FTE of support, you know that means finding 2 people who will each log 2,080 hours, not 2 more Autotask accounts.
FTE stands for Full-Time Equivalent. It converts total hours worked into the number of full-time positions that workload represents. The standard benchmark is 2,080 hours per year (40 hours per week, 52 weeks). If your team logs 50,752 total hours, that equals 50,752 / 2,080 = 24.4 FTE.
Several factors contribute. Part-time employees, contractors who only work a few hours per week, managers who spend most of their time in meetings rather than logging billable time, inactive accounts that were never deactivated, and inconsistent time-tracking habits across the team. The gap itself is not necessarily a problem. Understanding what drives it is what matters.
Most MSP benchmarks target 65-75% billable utilization across the full team (including management and internal roles). For individual technicians, 75-85% is a common target. Going above 85% for extended periods usually leads to burnout and reduced quality. Your team-wide rate of 75.6% is at the upper end of the healthy range.
Use FTE for any metric tied to output: revenue per FTE, cost per FTE, tickets per FTE. Use headcount for metrics tied to overhead: license costs, desk space, benefits enrollment. Mixing them up leads to decisions based on numbers that do not reflect reality.
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