Analysis of billable vs. total hours across 14 clients, with 50,752 total hours logged in Autotask PSA. Overall billable ratio: 75.6%. Data sourced from the Proxuma Power BI semantic model.
Analysis of billable vs. total hours across 14 clients, with 50,752 total hours logged in Autotask PSA. Overall billable ratio: 75.6%. Data sourced from the Proxuma Power BI semantic model.
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: Account managers, MSP owners, and service delivery leads
How often: Monthly for client reviews, quarterly for QBRs, on-demand when client signals change
Analysis of billable vs. total hours across 14 clients, with 50,752 total hours logged in Autotask PSA. Overall billable ratio: 75.6%. Data sourced from the Proxuma Power BI semantic model.
DIVIDE([Company - Billable Hours], [Company - Hours Worked], 0) from the BI_Autotask_Companies table. Total hours include all time entries logged in Autotask PSA. Billable hours are those flagged as billable on the time entry. The 75.6% overall ratio means 12,388 hours were logged but not billed to any client.
Sorted by billable ratio. Green bars indicate >90%, amber 80-90%, red <80%.
EVALUATE TOPN(10, ADDCOLUMNS(VALUES(BI_Autotask_Time_Entries[company_name]), "TotalHours", CALCULATE(SUM(BI_Autotask_Time_Entries[hours_worked])), "BillableHours", CALCULATE(SUM(BI_Autotask_Time_Entries[Billable Hours])), "BillableRatio", DIVIDE(CALCULATE(SUM(BI_Autotask_Time_Entries[Billable Hours])), CALCULATE(SUM(BI_Autotask_Time_Entries[hours_worked]))), "NonBillableHours", CALCULATE(SUM(BI_Autotask_Time_Entries[Non billable Hours]))), [NonBillableHours], DESC)
The top 5 clients by billable ratio all exceed 95%. These are clean accounts where nearly every hour generates revenue. On the other end, the bottom 5 include Client F at 0% and four clients in the 82-85% range that are quietly leaking unbilled time.
EVALUATE
TOPN(10,
ADDCOLUMNS(
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_name],
"BillableHrs", [Company - Billable Hours],
"TotalHrs", [Company - Hours Worked]
),
"BillableRatio", DIVIDE([BillableHrs], [TotalHrs], 0)
),
[BillableRatio], ASC
)
ORDER BY [BillableRatio] ASC
Across all 14 clients, 12,388 hours were logged but never billed. That is 24.4% of all engineering time. The table below shows where those unbilled hours sit. Client F alone accounts for 1,662 of them, making it the single largest source of revenue leakage.
| Client | Total Hrs | Billable Hrs | Unbilled Hrs | Unbilled % | Status |
|---|---|---|---|---|---|
| Client F | 1,662 | 0 | 1,662 | 100.0% | Critical |
| Client B | 3,791 | 3,127 | 664 | 17.5% | Watch |
| Client A | 4,370 | 3,792 | 578 | 13.2% | Watch |
| Client D | 2,217 | 1,970 | 247 | 11.2% | Watch |
| Client G | 1,312 | 1,096 | 216 | 16.5% | Watch |
| Client I | 1,006 | 853 | 153 | 15.2% | Watch |
| Client C | 2,801 | 2,665 | 136 | 4.8% | OK |
| Client N | 782 | 681 | 101 | 12.9% | Watch |
| Client H | 1,171 | 1,114 | 57 | 4.9% | OK |
| Client M | 865 | 808 | 57 | 6.6% | OK |
| Client J | 962 | 916 | 46 | 4.8% | OK |
| Client E | 1,697 | 1,665 | 32 | 1.9% | OK |
| Client K | 962 | 954 | 8 | 0.9% | OK |
| Client L | 866 | 860 | 6 | 0.7% | OK |
High revenue does not always mean high billable efficiency. The table below compares each client's revenue contribution against their billable ratio. This helps you identify whether your most profitable clients are also your most efficient, or whether high revenue is masking poor time utilization.
Client A generates the highest total hours (4,370) but sits at only 86.8% billable. Client E, with fewer hours (1,697), runs at 98.1% billable. The question is whether Client A's volume compensates for the 578 unbilled hours, or whether those hours represent a contract issue that needs attention.
| Client | Total Hrs | Billable Hrs | Billable Ratio | Efficiency |
|---|---|---|---|---|
| Client A | 4,370 | 3,792 | 86.8% | Amber |
| Client B | 3,791 | 3,127 | 82.5% | Amber |
| Client C | 2,801 | 2,665 | 95.2% | Green |
| Client D | 2,217 | 1,970 | 88.8% | Amber |
| Client E | 1,697 | 1,665 | 98.1% | Green |
| Client F | 1,662 | 0 | 0.0% | Critical |
EVALUATE
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_name],
"Revenue", [Revenue - Total],
"BillableHrs", [Company - Billable Hours],
"TotalHrs", [Company - Hours Worked]
)
ORDER BY [Revenue] DESC
Every hour logged against Client F is non-billable. That is 1,662 hours of engineering time generating zero revenue. This is likely an internal project, a pro-bono arrangement, or a misconfigured billing setup. Either way, it needs review. If the hours are genuinely non-billable, the team should know that upfront so capacity planning accounts for it.
Client B (82.5%), Client G (83.5%), Client I (84.8%), and Client A (86.8%) are all under or near the 85% line. Together they account for 10,479 total hours, of which 1,611 were not billed. Client A and Client B are the two largest accounts by volume, which makes their lower ratios more impactful to overall profitability.
Clients L (99.3%), K (99.1%), E (98.1%), C (95.2%), J (95.2%), and H (95.1%) are all running at high efficiency. These accounts show that well-scoped contracts with clear billable definitions produce minimal time leakage. They can serve as the benchmark for improving other accounts.
1. Audit Client F immediately. Determine whether the 1,662 hours at 0% billable are intentional (internal project, warranty work) or a billing configuration error. If intentional, separate this client from billable ratio reporting so it does not drag down the average. If it is a mistake, fix the billing flags and recalculate.
2. Review contracts for Client B and Client A. These two accounts carry the most total hours (3,791 and 4,370 respectively) but bill at only 82.5% and 86.8%. The unbilled hours may come from out-of-scope requests, travel time, or internal meetings that should be covered. A contract review could recover some of that lost revenue.
3. Set a billable ratio target of 90% for all clients. Six clients already exceed 95%, proving it is achievable. For the four clients between 80-87%, work with account managers to identify which types of time entries are not being billed and whether the scope agreements need updating.
4. Add billable ratio to QBR reporting. Showing each client their own billable ratio during quarterly business reviews sets expectations and opens conversations about scope. Clients who see that 15-17% of time is non-billable may agree to adjustments.
5. Monitor monthly. Schedule this report via MCP to run every month. Set an alert threshold at 80% so any client that drops below gets flagged before it becomes a pattern.
This report was generated by an AI agent connected to Proxuma Power BI through the MCP (Model Context Protocol) server. The AI wrote three DAX queries against the BI_Autotask_Companies table, executed them, and formatted the results into this document.
Data source: Autotask PSA, synced to Power BI through the Proxuma connector. The dataset covers 50,752 hours across 14 clients. Billable hours are determined by the billable flag on each time entry in Autotask. The billable ratio per client is calculated as DIVIDE([Company - Billable Hours], [Company - Hours Worked], 0).
Scope: Top 14 clients by total hours worked. No date filter was applied. The overall billable ratio (75.6%) includes all clients in the dataset, not just the top 14 shown.
A billable hour is any time entry in Autotask where the billable flag is set to true. This is typically determined by the work type assigned to the time entry (for example, "Onsite Support" might be billable while "Internal Meeting" is not). The Proxuma Power BI model reads this flag directly from the Autotask API.
There are a few common reasons. The client might be an internal project coded as a company in Autotask. It could be warranty or goodwill work where all time is non-billable by design. Or the work types used for that client might be misconfigured, with the billable flag set to false when it should be true. Check the work types first.
Most MSPs target 85-95% billable ratio per client. Below 80% usually signals a problem with scope creep, contract gaps, or operational inefficiency. Above 95% is excellent and typically indicates well-defined contracts. The overall company billable ratio (across all clients) tends to be lower because it includes internal time, training, and admin.
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. If you are using a different data model, you may need to adjust the table and column names.
Billable ratio measures what percentage of hours logged against a specific client are billable. Utilization rate measures what percentage of an engineer's total available capacity is spent on billable work across all clients. Both are useful, but they answer different questions. This report focuses on the client-level billable ratio.
It depends on what you want to measure. If you include internal projects (like Client F at 0%), they will pull down your overall billable ratio significantly. For client profitability analysis, it is better to exclude internal projects and measure them separately. For total capacity planning, include everything.
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