A complete breakdown of revenue, cost, and profit per client from Autotask PSA billing data. This report identifies the 22 unprofitable clients that are silently eating into your margins and ranks all 542 clients by their true financial contribution.
A complete breakdown of revenue, cost, and profit per client from Autotask PSA billing data. This report identifies the 22 unprofitable clients that are silently eating into your margins and ranks all 542 clients by their true financial contribution.
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 complete breakdown of revenue, cost, and profit per client from Autotask PSA billing data. This report identifies the 22 unprofitable clients that are silently eating into your margins and ranks all 542 clients by their true financial contribution.
Key financial metrics from Autotask PSA billing data across 542 active client accounts.
The highest-grossing clients ranked by total billing, showing revenue, cost, profit, and margin side by side.
| Client | Revenue | Hours | Revenue/Hour | Tickets |
|---|---|---|---|---|
| Craig-Huynh | 2324617 | 3575 | 650 | 5458 |
| Lewis LLC | 2212915 | 1206 | 1835 | 1758 |
| Little Group | 1431177 | 3050 | 469 | 5290 |
| Martin Group | 637092 | 2046 | 311 | 2775 |
| Lopez-Reyes | 589694 | 670 | 880 | 1317 |
Client E stands out. It is the 5th largest client by revenue but the only one in the top 10 that is losing money. Cost exceeds revenue by $55,879, producing a -9.5% margin. That is worth an immediate contract review.
EVALUATE TOPN(15, ADDCOLUMNS(VALUES(BI_Autotask_Companies[company_name]), "TicketCount", [Tickets - Count - Created], "BillingRevenue", CALCULATE(SUM(BI_Autotask_Billing_Items[total_amount])), "HoursWorked", [Tickets - Hours Worked], "RevenuePerHour", DIVIDE(CALCULATE(SUM(BI_Autotask_Billing_Items[total_amount])), [Tickets - Hours Worked])), [BillingRevenue], DESC)
These clients cost more to serve than they bring in, ranked by total loss from highest to lowest.
Two clients account for 69% of all losses. Client K and Client E together lost $122,485. Client K has revenue of just $23,124 against costs of $89,730, meaning costs run at 3.9x revenue. Client E is more concerning because it generates $589,694 in revenue but still loses money due to $645,574 in costs.
EVALUATE
TOPN(
10,
ADDCOLUMNS(
SUMMARIZE(
'BI_Autotask_Billing_Items',
'BI_Autotask_Companies'[company_name]
),
"Revenue", [Revenue - Total],
"Cost", [Cost - Total],
"Profit", [Profit - total],
"Margin", [Profit - total - percentage]
),
[Profit], ASC
)
ORDER BY [Profit] ASC
How 280 revenue-generating clients are distributed across five margin bands.
52% of clients sit above the 50% margin line. That is a healthy base. But 90 clients (32%) fall in the 20-50% range, and another 44 clients (16%) are at thin or negative margins. The 15 clients with negative margins represent a combined loss that drags the overall average down by about 2 percentage points.
How overall profit margin has moved quarter by quarter since Q3 2024.
Q2 2025 was the low point at 44.4%. That quarter had the highest cost-to-revenue ratio in the dataset. Q1 2026 shows a strong recovery to 68.2%, though this is a partial quarter with lower volume ($771K revenue vs $2.8M-$3.5M in full quarters). The overall trajectory is stable around 52-56% with one notable dip.
EVALUATE
ADDCOLUMNS(
SUMMARIZE(
'BI_Autotask_Billing_Items',
'BI_Common_Dim_Date'[year_quarter]
),
"Revenue", [Revenue - Total],
"Cost", [Cost - Total],
"Profit", [Profit - total],
"Margin", [Profit - total - percentage]
)
ORDER BY 'BI_Common_Dim_Date'[year_quarter] ASC
The split between profitable, unprofitable, and zero-billing clients in the Autotask company list.
Of 542 companies in Autotask, 261 are profitable and 22 are losing money. The remaining 259 have no billing items, which likely means they are inactive, internal accounts, or contacts-only records. The 22 unprofitable clients make up just 4.1% of the client base but deserve attention because even small losses compound over time.
Actionable insights from the profitability data.
At $589,694 revenue it is the 5th largest account, but costs of $645,574 produce a -9.5% margin. That is a $55,879 loss on what looks like a major account. The contract pricing or scope is misaligned with actual service delivery costs.
With just $23,124 in revenue against $89,730 in costs, Client K has the worst margin in the dataset at -288%. This is likely a scoping issue where time entries far exceed what the contract covers. Either renegotiate or consider whether this account is worth keeping.
All other quarters sit between 52-60%, but Q2 2025 dropped to 44.4%. This coincided with the highest revenue quarter ($3.46M), suggesting either aggressive discounting, a large project with thin margins, or cost overruns on specific accounts.
More than half of revenue-generating clients sit in the healthy zone. 50 clients achieve margins above 70%, which is excellent. These are the accounts to protect and replicate. Study what makes them different: contract structure, service mix, or simply lower complexity.
Concrete steps to improve client profitability across the portfolio.
Pull detailed time entries and billing items for Client K, Client E, Client L, Client M, and Client N. Compare contracted hours vs actual hours. Look for scope creep, unbilled work, or rate mismatches. Target: convert at least 3 of 5 to breakeven within 90 days.
Clients with 0-20% margins are one bad month away from going negative. Build a Power BI alert that flags any client dropping below 15% margin on a rolling 3-month basis. Catch problems before they become losses.
The 50 clients above 70% margin show what good looks like. Compare their contract structures, rate cards, and service packages with the bottom quartile. Adjust pricing for renewals accordingly.
Profitability is calculated as Revenue minus Cost from Autotask billing items. Revenue comes from SUM of total_amount and Cost from SUM of our_cost in the BI_Autotask_Billing_Items table. Margin is Profit divided by Revenue as a percentage.
These are company records in Autotask without associated billing items. They could be inactive clients, prospects, internal accounts, or vendors. Filter them out when analyzing profitability to avoid skewing averages.
Start with the biggest losses. Review their contracts, compare actual hours to contracted scope, and check if rates match current pricing. Some may need a rate increase, others may need a scope reduction. A few might not be worth keeping.
Monthly for the KPI dashboard, quarterly for the full client-by-client breakdown. Set up automated alerts for any client dropping below 10% margin so you catch problems between reviews.
This includes all billing item types from Autotask: recurring services, time and materials, milestone billing, and ad-hoc charges. The Revenue - Total measure sums all total_amount values regardless of billing type.
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.
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