A breakdown of hours worked vs revenue generated per client from Autotask PSA time entries and billing data. This report identifies the clients where effort does not translate to income -- and highlights 3 critical mismatches that need immediate review.
A breakdown of hours worked vs revenue generated per client from Autotask PSA time entries and billing data. This report identifies the clients where effort does not translate to income -- and highlights 3 critical mismatches that need immediate review.
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, finance leads, and operations managers tracking profitability
How often: Monthly for financial reviews, quarterly for strategic planning, on-demand for pricing decisions
A breakdown of hours worked vs revenue generated per client from Autotask PSA time entries and billing data. This report identifies the clients where effort does not translate to income -- and highlights 3 critical mismatches that need immediate review.
Key metrics from Autotask PSA time entries and billing items across 77 resources and all active clients.
Clients ranked by effective hourly rate (revenue divided by total hours). Higher rates mean better return on time invested.
| Client | Total Hours | Billable Hours | Revenue | Effective Rate | Rating |
|---|---|---|---|---|---|
| Client P | 84 | 84 | $416,450 | $4,958/hr | Excellent |
| Client Q | 197 | 183 | $255,698 | $1,298/hr | Excellent |
| Client O | 695 | 622 | $589,694 | $848/hr | Excellent |
| Client C | 2,801 | 2,665 | $2,212,915 | $790/hr | Excellent |
| Client A | 4,370 | 3,792 | $2,324,617 | $532/hr | Strong |
| Client N | 782 | 681 | $328,165 | $420/hr | Strong |
| Client B | 3,791 | 3,127 | $1,431,177 | $378/hr | Strong |
| Client G | 1,312 | 1,096 | $469,660 | $358/hr | Strong |
| Client K | 962 | 916 | $321,669 | $334/hr | Average |
| Client M | 865 | 808 | $286,926 | $332/hr | Average |
| Client S | 683 | 666 | $214,469 | $314/hr | Average |
| Client I | 1,006 | 853 | $320,832 | $319/hr | Average |
| Client D | 2,217 | 1,970 | $637,092 | $287/hr | Below Avg |
| Client E | 1,697 | 1,665 | $476,622 | $281/hr | Below Avg |
| Client H | 1,171 | 1,114 | $205,547 | $176/hr | Critical |
| Client J | 962 | 954 | $167,540 | $174/hr | Critical |
| Client F | 1,662 | -- | -- | $0/hr | No Revenue |
EVALUATE
TOPN(15,
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_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),
"Revenue", SUM('BI_Autotask_Billing_Items'[total_amount]),
"TicketCount", DISTINCTCOUNT('BI_Autotask_Tickets'[ticket_id])
),
[TotalHours], DESC
)
Clients ranked by hours worked, with bars showing their effective hourly rate. The $347/hr average is the benchmark -- anything below it means you are getting less return per hour than the portfolio average.
EVALUATE
TOPN(15,
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_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),
"Revenue", SUM('BI_Autotask_Billing_Items'[total_amount]),
"TicketCount", DISTINCTCOUNT('BI_Autotask_Tickets'[ticket_id])
),
[TotalHours], DESC
)
How clients distribute across effective rate buckets. Circumference = 2 x pi x 55 = 345.58.
20% of top clients fall below $200/hr -- these are the accounts consuming disproportionate time relative to what they pay. Client F stands out with 1,662 hours and zero revenue. Client H and Client J each sit around $175/hr, roughly half the portfolio average.
Clients grouped into four quadrants based on hours worked (high/low threshold: 1,000 hours) and revenue (high/low threshold: $400,000).
These are your most efficient accounts -- high return, low effort.
These clients consume heavy resources without matching revenue. Immediate review needed.
Moderate accounts. Monitor for drift toward the red quadrant.
EVALUATE
TOPN(15,
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_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),
"Revenue", SUM('BI_Autotask_Billing_Items'[total_amount])
),
[Revenue], DESC
)
Overall billable ratio and per-client split. 75.6% of all hours are billable -- the remaining 24.4% represents internal time, non-billable work, and overhead.
Client H and Client J both have high billable ratios (95%+), meaning almost all their hours are tagged as billable -- yet revenue per hour is extremely low. This points to a rate card or contract issue, not a utilization problem. Client F has zero billable hours despite 1,662 hours logged, suggesting all work is classified as non-billable or the billing relationship is completely missing.
This is the largest mismatch in the dataset. Client F logged 1,662 hours -- the 6th highest across all clients -- with no billable hours and no associated revenue. This could be an internal project miscategorized as a client, a billing integration failure, or a contractual gap where work is being done without any billing mechanism. Either way, this represents roughly $576,000 in lost potential revenue at the portfolio average rate.
Both clients sit around $175/hr -- roughly 50% of the portfolio average of $347/hr. With a combined 2,133 hours, that is a significant resource commitment. If these accounts were billing at the average rate, they would generate $740K instead of $373K -- a $367K gap. The high billable ratios (95%+) confirm this is a pricing problem, not a utilization one.
Internal time entries account for 14.3% of all hours. While some internal overhead is expected, the $503 in associated revenue is unusual and likely a data anomaly. Review whether any client-related work is being misclassified as internal, as even a small percentage shift would improve the billable ratio noticeably.
Client C ($790/hr), Client A ($532/hr), and Client P ($4,958/hr) show that efficient client relationships are possible. Client P in particular demonstrates what a high-value, low-touch engagement looks like -- 84 hours generating $416K. Use these as benchmarks when renegotiating contracts for underperforming accounts.
Concrete steps to close the hours-vs-revenue gap across the portfolio.
Determine whether this is a data issue (missing billing integration), an internal project mislabeled as a client, or actual unbilled work. If it is real client work, establish a billing mechanism this month. At the portfolio average rate, 1,662 hours represents over $576K in potential revenue.
Both clients have near-perfect billable ratios but generate less than half the average rate. Pull their contracts and compare agreed rates to actual billing. If the rates are contractually locked, negotiate an adjustment at the next renewal. Target: bring both above $250/hr within 6 months.
7,264 internal hours is 14.3% of total capacity. Audit the time entries to confirm none of this work belongs to a client account. Even reclassifying 5% would add 363 billable hours back to the pool, improving the overall billable ratio to 76.3%.
Effective rate is total revenue divided by total hours worked for a client. It shows what you actually earn per hour of effort -- regardless of whether those hours are billed at different rates or include non-billable time. A low effective rate means you are spending more time than the revenue justifies.
Client F has 1,662 hours in Autotask time entries but no matching records in the billing items table. This typically means either the billing integration is broken, the work is done under a contract that does not generate billing items, or the company record is misconfigured in Autotask.
It varies by region and service mix, but a healthy MSP typically targets an effective rate above $200/hr. The portfolio average of $347/hr in this dataset is strong. Clients below $200/hr should be reviewed, and anything below $150/hr is almost certainly losing money when fully-loaded costs are included.
A high billable ratio with a low effective rate means the problem is pricing, not utilization. You are billing the hours -- just not at high enough rates. A low billable ratio with decent rates suggests too much non-billable work, which is a different problem requiring scope or process changes.
Yes. Copy any query from the toggles above and paste it into DAX Studio or Power BI Desktop. The queries reference standard Proxuma data model tables (BI_Autotask_Time_Entries, BI_Autotask_Billing_Items, BI_Autotask_Companies) that exist in every Proxuma Power BI deployment.
Clients with minimal hours (like Client P at 84 hours) can show extremely high effective rates because their revenue comes primarily from product licensing, managed services, or fixed-fee contracts rather than hourly billing. These rates are real but not directly comparable to high-touch service clients.
Monthly for the top-level KPIs and quarterly for the full client breakdown. Set alerts for any client whose effective rate drops below $200/hr on a rolling 3-month basis so you catch deterioration early.
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