This report provides a detailed breakdown of client affordability: revenue & margin per account for managed service providers.
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
EVALUATE
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_name],
"Revenue", [Revenue - Total],
"Cost", [Cost - Total],
"Profit", [Profit - total],
"Margin_Pct", DIVIDE([Profit - total], [Revenue - Total], 0)
)
ORDER BY [Revenue] DESC
The top 20 clients account for the majority of your managed revenue. Two accounts — Craig-Huynh and Lewis LLC — each exceed $2M in total revenue and represent your most valuable long-term relationships. Lopez-Reyes stands out for the wrong reason: $590K in revenue but $645K in costs, resulting in a $55K net loss. This client needs immediate pricing or service scope review.
| Metric | Value |
|---|---|
| Total Revenue | $17,606,769 |
| Billing Items | 125,751 |
| Companies | 293 |
| Avg per Company | $60,091 |
EVALUATE ROW("TotalBillingItems", COUNTROWS('BI_Autotask_Billing_Items'), "TotalRevenue", SUM('BI_Autotask_Billing_Items'[total_amount]), "DistinctCompanies", DISTINCTCOUNT('BI_Autotask_Billing_Items'[company_id]))
Of your top 20 clients by revenue, 14 sit above 50% gross margin — solid for a managed services operation. Four clients fall into the 35-50% "watch" zone, which typically signals scope creep or under-pricing relative to the service effort required. One client (Lopez-Reyes) has gone negative.
Torres-Jones stands out with an 81.7% margin on $256K revenue. This client likely has a favorable contract structure or low service demand. Understanding what drives this relationship, and whether the same conditions can be replicated with similar-sized accounts, is worth a dedicated analysis.
The four "watch" clients — Hahn Group, Ramos Group, Montgomery-Peck, and Kelley-Walsh — are all above $200K in revenue. For each, a 5% margin improvement adds $10K or more in annual profit. Review ticket volumes, time entries, and out-of-scope work to find where cost is accumulating.
-- Count clients above 50%, between 35-50%, and negative margin
DEFINE
VAR _ClientMargins =
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_name],
"Margin", DIVIDE([Profit - total], [Revenue - Total], 0)
)
EVALUATE
ROW(
"Above50", COUNTROWS(FILTER(_ClientMargins, [Margin] > 0.5)),
"Between35And50", COUNTROWS(FILTER(_ClientMargins, [Margin] >= 0.35 && [Margin] <= 0.5)),
"Negative", COUNTROWS(FILTER(_ClientMargins, [Margin] < 0))
)
Your top 3 clients — Craig-Huynh, Lewis LLC, and Little Group — together account for roughly $5.97M in total revenue. If these three accounts represent more than 40% of your current annual run rate, you have concentration risk. Losing even one would significantly affect your financials.
At the other end: 290 companies appear in the dataset, most with very small revenue footprints. Many are likely one-time projects or inactive accounts. The active managed client base is substantially smaller, making the concentration at the top even more significant.
-- Affordability: revenue divided by active contacts per client
EVALUATE
SUMMARIZECOLUMNS(
'BI_Autotask_Companies'[company_name],
"Affordability", [Analytics - Client Affordability],
"Affordability_LastMonth", [Analytics - Client Affordability - Last Month],
"Trend", [Analytics - Affordability Trend MoM]
)
ORDER BY [Affordability] DESC
This client generates $590K in revenue but costs $646K to service — a net loss of $55,879. Before the next contract renewal, calculate the exact service hours consumed and compare against the contract value. Either the scope needs to narrow or the rate needs to increase by at least 12% to reach breakeven.
Kelley-Walsh, Montgomery-Peck, Ramos Group, and Hahn Group all sit below the 48% average. For clients above $200K in revenue, a 5% margin improvement adds $10K or more per year. Review ticket volumes, time entries, and out-of-scope work to find where cost is accumulating.
An 82% gross margin on $256K revenue is exceptional. This client likely has a favorable contract structure, low escalation volume, or an efficient service delivery model. Document what makes this relationship work and look for similar clients to acquire. This is the template for your ideal customer profile.
Craig-Huynh, Lewis LLC, and Little Group together generate nearly $6M in total revenue. If they represent more than 35% of your current annual run rate, your account protection strategy needs attention. A dedicated account manager or executive sponsor for each significantly reduces churn risk at this revenue level.
In MSP terms, client affordability measures how much revenue a client generates relative to the contacts or users you support. A client paying $50 per user per month with 100 users generates $60K per year. The metric helps you compare accounts on a per-seat basis, regardless of contract size, and informs pricing decisions at renewal time.
Negative margin happens when service delivery costs exceed the revenue a client pays. Common causes: scope creep (technicians working beyond the contract), under-pricing at contract signing, high-complexity environments requiring more hours than anticipated, or a flat-rate contract that was never adjusted as the client grew. The fix is either renegotiating the contract or reducing the service scope.
Quarterly is the standard for MSPs. A monthly check on your top 10 clients catches drift early. Any client that moves more than 5 percentage points in margin within a quarter should trigger a review meeting with the account manager. The goal is catching negative-trend clients before they reach the loss threshold.
Industry benchmarks vary, but most MSPs target 50-65% gross margin on managed services contracts. Below 40% typically signals either pricing issues or service inefficiency. Above 70% is achievable for well-structured contracts with low ticket volumes.
Yes. In the live Power BI dashboard version of this report, you can filter by contract type, service territory, industry vertical, and account manager. The DAX queries shown here use all-time totals without filtering, but can be extended with CALCULATETABLE filters to segment by any dimension in your Autotask data.
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