Average resolution cost: €38 per ticket based on 0.8 hours at €50/hr.
Average resolution cost: €38 per ticket based on 0.8 hours at €50/hr.
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: Service desk managers, dispatch leads, and operations teams
How often: Daily for queue management, weekly for trend analysis, monthly for capacity planning
Average resolution cost: €38 per ticket based on 0.8 hours at €50/hr.
Across 66,677 resolved tickets, the average resolution takes 0.8 hours of labour, costing €38 at the internal rate of €50/hr.
Cost per ticket is calculated using an internal hourly rate of €50/hr, multiplied by the average hours worked per resolved ticket. This reflects labour cost only and excludes tooling, licensing, and overhead.
EVALUATE
SUMMARIZECOLUMNS(
"TotalResolved", CALCULATE(
COUNTROWS('BI_Autotask_Tickets'),
NOT(ISBLANK('BI_Autotask_Tickets'[complete_date]))
),
"TotalHoursWorked", CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
USERELATIONSHIP('BI_Autotask_Time_Entries'[ticket_id], 'BI_Autotask_Tickets'[ticket_id])
),
"AvgHoursPerTicket", DIVIDE(
CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
USERELATIONSHIP('BI_Autotask_Time_Entries'[ticket_id], 'BI_Autotask_Tickets'[ticket_id])
),
CALCULATE(
COUNTROWS('BI_Autotask_Tickets'),
NOT(ISBLANK('BI_Autotask_Tickets'[complete_date]))
),
0
),
"TotalBillableHours", CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_to_bill]),
NOT(ISBLANK('BI_Autotask_Time_Entries'[ticket_id]))
)
)
Higher-priority tickets often demand more time because of faster response expectations, escalation paths, and more senior engineers getting pulled in.
| Priority | Tickets | Total Hours | Avg Hours | Avg Cost |
|---|---|---|---|---|
| P2 - Hoog | 1,769 | 1451.2h | 0.8h | €41 |
| P4 - Laag | 29,859 | 18219.9h | 0.6h | €30 |
| Service/Change req. | 15,410 | 8778.4h | 0.6h | €28 |
| P3 - Medium | 14,625 | 3439.5h | 0.2h | €11 |
| P1 - Kritisch | 5,014 | 320.3h | 0.1h | €3 |
EVALUATE
SUMMARIZECOLUMNS(
'BI_Autotask_Tickets'[priority_name],
FILTER(
'BI_Autotask_Tickets',
NOT(ISBLANK('BI_Autotask_Tickets'[complete_date]))
&& NOT(ISBLANK('BI_Autotask_Tickets'[priority_name]))
),
"TicketCount", COUNTROWS('BI_Autotask_Tickets'),
"TotalHours", CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
USERELATIONSHIP('BI_Autotask_Time_Entries'[ticket_id], 'BI_Autotask_Tickets'[ticket_id])
),
"AvgHours", DIVIDE(
CALCULATE(
SUM('BI_Autotask_Time_Entries'[hours_worked]),
USERELATIONSHIP('BI_Autotask_Time_Entries'[ticket_id], 'BI_Autotask_Tickets'[ticket_id])
),
COUNTROWS('BI_Autotask_Tickets'),
0
)
)
ORDER BY [AvgHours] DESC
Top 10 categories ranked by total hours consumed.
Some ticket categories consistently consume more hours than others. Categories with high average cost point to areas where automation, templates, or training could reduce time-to-resolution.
| Metric | Value |
|---|---|
| Total Tickets | 67,521 |
| Avg Hours/Ticket | 1.40h |
| Revenue/Ticket | $261 |
| Total Revenue | $17,606,769 |
EVALUATE ROW("TotalTickets", COUNTROWS('BI_Autotask_Tickets'), "TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]), "TicketsWithTime", DISTINCTCOUNT('BI_Autotask_Time_Entries'[ticket_id]), "AvgHoursPerTicket", DIVIDE(SUM('BI_Autotask_Time_Entries'[hours_worked]), DISTINCTCOUNT('BI_Autotask_Time_Entries'[ticket_id])), "TotalRevenue", SUM('BI_Autotask_Billing_Items'[total_amount]))
Average cost per ticket over the last 12 months.
Monthly cost-per-ticket fluctuations show the effect of seasonal workload changes, onboarding new clients, and staffing shifts.
| Month | Tickets | Avg Hours | Avg Cost | Trend |
|---|---|---|---|---|
| Feb 2025 | 3,476 | 0.5h | €26 |
|
| Mar 2025 | 3,766 | 0.6h | €28 |
|
| Apr 2025 | 4,339 | 0.5h | €22 |
|
| May 2025 | 3,634 | 0.5h | €25 |
|
| Jun 2025 | 3,642 | 0.5h | €26 |
|
| Jul 2025 | 6,606 | 0.3h | €17 |
|
| Aug 2025 | 3,599 | 0.5h | €27 |
|
| Sep 2025 | 4,530 | 0.5h | €27 |
|
| Oct 2025 | 3,966 | 0.6h | €28 |
|
| Nov 2025 | 3,262 | 0.7h | €33 |
|
| Dec 2025 | 2,771 | 0.7h | €34 |
|
| Jan 2026 | 1,671 | 0.5h | €27 |
|
Top 10 clients ranked by total ticket labour cost.
Clients with a high average cost per ticket may need a different service approach: dedicated onboarding, proactive maintenance, or a contract review to match effort with revenue.
| Client | Tickets | Total Hours | Avg Cost / Ticket | Total Cost |
|---|---|---|---|---|
| Craig-Huynh | 5,393 | 3519.0h | €32 | €175,950 |
| Little Group | 5,250 | 3002.7h | €28 | €150,134 |
| Martin Group | 2,742 | 1986.3h | €36 | €99,313 |
| Wall PLC | 2,356 | 1451.9h | €30 | €72,592 |
| Lewis LLC | 1,745 | 1180.8h | €33 | €59,041 |
| Thompson, Contreras and Rios | 1,783 | 939.1h | €26 | €46,955 |
| Burke, Armstrong and Morgan | 1,611 | 932.4h | €28 | €46,620 |
| Rivers, Rogers and Mitchell | 6,268 | 875.4h | €6 | €43,768 |
| Ramos Group | 1,692 | 854.6h | €25 | €42,728 |
| Price-Gomez | 2,155 | 810.0h | €18 | €40,500 |
The split between billable and non-billable hours on tickets directly affects profitability. Non-billable time is labour cost that cannot be recovered from the client.
The average cost to resolve a ticket sits at €38, based on 0.8 hours of work at an internal rate of €50/hr. That number tells one story. The variance behind it tells a more useful one.
P2 - Hoog tickets average €41 per resolution, the highest among all priority levels. This makes sense: urgent issues pull senior staff, require faster turnaround, and often involve multiple touchpoints before closure.
By category, Illustrator tickets carry the highest per-ticket cost at €345. Categories like these are worth investigating: is the complexity inherent, or could better documentation, automation, or client training reduce the time spent?
The billable ratio of 75.6% means that for every hour worked on tickets, roughly 24.4% goes unrecovered. Closing that gap, even partially, has a direct impact on margin.
Four actions you can take this week based on the data above.
At €345 per ticket, this category is worth a deep dive. Look at the top 10 tickets by hours worked and identify patterns: recurring issues, missing documentation, or manual steps that could be automated.
With 24.4% of ticket hours going unbilled (€619,390 in absorbed cost), review which non-billable entries could be reclassified or shifted to billable contracts. Even a 5% improvement pays for itself.
Use the priority breakdown as a baseline. Track cost per ticket monthly and flag outliers. A P1 costing €41 is expected; the same cost on a P4 is not.
Combine cost-per-ticket data with contract revenue per client. Clients where ticket cost exceeds contract value need a service review or contract adjustment.
Cost per ticket = average hours worked per resolved ticket x internal hourly rate (€50/hr). This covers labour cost only. Tooling, licensing, and overhead are not included.
Higher-priority tickets require faster response, pull senior engineers, and often involve escalation. Each of these factors adds time. Critical issues also tend to be more complex, with root cause investigation and post-incident reviews adding to the total.
Billable hours can be invoiced to the client under their contract. Non-billable hours are absorbed by the MSP, covering internal work, warranty fixes, goodwill, or time that falls outside the contract scope.
Focus on the highest-cost categories and look for patterns. Common cost drivers: missing runbooks, no templates for common issues, manual processes that could be scripted, and clients without proper onboarding. Fixing the root cause costs less than fixing the symptom repeatedly.
Yes. The DAX queries use date filters that can be adjusted. In Proxuma Power BI, you can set the date range to any period and the report recalculates automatically.
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