This report provides a detailed breakdown of contract profitability analysis 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
ROW(
"Total Revenue", SUM('Contracts'[Revenue]),
"Total Cost", SUM('Contracts'[Cost]),
"Total Profit", SUM('Contracts'[Revenue]) - SUM('Contracts'[Cost]),
"Avg Margin Pct", DIVIDE(
SUM('Contracts'[Revenue]) - SUM('Contracts'[Cost]),
SUM('Contracts'[Revenue])
),
"Active Contracts", CALCULATE(
COUNTROWS('Contracts'),
'Contracts'[Status] = "Active"
),
"Loss Clients", CALCULATE(
DISTINCTCOUNT('Contracts'[CompanyID]),
DIVIDE(
SUMX(VALUES('Contracts'[CompanyID]),
CALCULATE(SUM('Contracts'[Revenue]) - SUM('Contracts'[Cost]))
),
SUMX(VALUES('Contracts'[CompanyID]),
CALCULATE(SUM('Contracts'[Revenue]))
)
) < 0
)
)
All 20 clients ranked by margin, highest to lowest. Rate = estimated revenue per hour of support time.
| # | Client | Revenue | Margin % | Rate / Hr | Status |
|---|---|---|---|---|---|
| 1 | Torres-Jones | $255,698 | 81.7% | $1,301 | Best |
| 2 | Richards, Bell and Christensen | $328,165 | 67.4% | $419 | Strong |
| 3 | Lee-Dalton | $198,503 | 64.9% | $289 | Strong |
| 4 | Wu-Jackson | $321,669 | 62.2% | $334 | Strong |
| 5 | Martin Group | $637,092 | 61.0% | $287 | Strong |
| 6 | Lewis LLC | $2,212,915 | 59.6% | $790 | Good |
| 7 | Clements, Pham and Garcia | $175,507 | 59.4% | $203 | Good |
| 8 | Price-Gomez | $286,926 | 58.1% | $332 | Good |
| 9 | Craig-Huynh | $2,324,617 | 56.4% | $532 | Good |
| 10 | Thompson, Contreras and Rios | $320,832 | 55.9% | $319 | Good |
| 11 | Wall PLC | $476,622 | 55.0% | $281 | Good |
| 12 | Burke, Armstrong and Morgan | $469,660 | 52.2% | $358 | Average |
| 13 | Buchanan, Acosta and Chambers | $188,912 | 50.4% | $434 | Average |
| 14 | Patterson, Riley and Lawson | $416,450 | 50.3% | — | Average |
| 15 | Hahn Group | $253,148 | 47.4% | $357 | Watch |
| 16 | Ramos Group | $205,547 | 38.6% | $176 | Watch |
| 17 | Montgomery-Peck | $214,469 | 37.6% | $314 | Watch |
| 18 | Kelley-Walsh | $203,888 | 35.4% | $544 | At Risk |
| 19 | Lopez-Reyes | $589,694 | -9.5% | — | Loss |
Red row indicates a client where total cost exceeds revenue. "—" indicates rate per hour not available in demo dataset.
EVALUATE
ADDCOLUMNS(
SUMMARIZE(
'Contracts',
'Companies'[CompanyName],
"Revenue", CALCULATE(SUM('Contracts'[Revenue])),
"Cost", CALCULATE(SUM('Contracts'[Cost])),
"Profit", CALCULATE(SUM('Contracts'[Revenue])) - CALCULATE(SUM('Contracts'[Cost]))
),
"Margin Pct",
DIVIDE([Profit], [Revenue]),
"Revenue Per Hour",
DIVIDE(
[Revenue],
CALCULATE(SUM('TimeEntries'[HoursWorked]))
)
)
ORDER BY [Margin Pct] DESC
Active contracts by billing model across the portfolio. Time & Materials contracts dominate by volume; Recurring Service contracts tend to carry higher margins due to predictable cost structures.
At -9.5% margin on $589,694 in revenue, Lopez-Reyes is generating an estimated $56,021 annual loss. This is the only client in the portfolio where cost exceeds revenue. The account requires immediate review: either a rate increase, scope reduction, or an exit plan. At current trajectory this client costs more than 6 mid-market client accounts generate in combined profit.
EVALUATE
ADDCOLUMNS(
SUMMARIZE(
FILTER('Contracts', 'Contracts'[Status] = "Active"),
'Contracts'[ContractType],
"Contract Count", COUNTROWS('Contracts'),
"Total Revenue", SUM('Contracts'[Revenue]),
"Total Cost", SUM('Contracts'[Cost])
),
"Avg Margin",
DIVIDE(
[Total Revenue] - [Total Cost],
[Total Revenue]
)
)
ORDER BY [Contract Count] DESC
Torres-Jones is the standout performer at 81.7% margin, generating $255,698 in revenue at an effective rate of $1,301 per hour. That rate suggests either a very specific high-value service, a premium contract with strong scope definition, or a client where tickets resolve quickly. Understanding why this client is so profitable is as valuable as finding the loss client, because the same model can potentially be replicated.
The two largest revenue clients, Lewis LLC ($2.21M) and Craig-Huynh ($2.32M), both sit in the 56-60% range. They are not the most efficient accounts, but they are not problematic either. Together they represent 26% of total portfolio revenue, which means changes to either contract have an outsized impact on the P&L. The priority for these accounts is stability, not renegotiation.
Three clients sit below 40% margin: Ramos Group (38.6%), Montgomery-Peck (37.6%), and Kelley-Walsh (35.4%). These are not in loss yet, but at current trajectories, any unexpected increase in support volume, staff cost, or scope creep could push them negative within 12 months. Each of these accounts warrants a pricing review within the next contract renewal cycle.
Lopez-Reyes at -9.5% is the only client actively destroying margin on every service delivery dollar. The situation is particularly striking given the $589,694 revenue size. This is not a small experimental account that slipped through unnoticed. It is a material relationship that has been losing money, and the absence of corrective action to date means the cumulative loss is already significant.
EVALUATE
FILTER(
ADDCOLUMNS(
SUMMARIZE(
'Contracts',
'Companies'[CompanyName],
"Revenue", CALCULATE(SUM('Contracts'[Revenue])),
"Cost", CALCULATE(SUM('Contracts'[Cost])),
"Profit", CALCULATE(SUM('Contracts'[Revenue])) - CALCULATE(SUM('Contracts'[Cost]))
),
"Margin Pct",
DIVIDE([Profit], [Revenue])
),
[Margin Pct] < 0
)
In the Autotask data model, cost typically includes the internal cost rate of each time entry logged against the client's contracts, plus any direct expenses or purchase orders linked to those contracts. It does not include overhead allocations like rent, software subscriptions, or sales costs unless those are explicitly coded to contract cost lines in your PSA. The margin figure here is a contract gross margin, not a fully-loaded net margin.
Yes. The DAX queries in this report can be extended with filter conditions on contract type (Recurring Service, Time & Materials, Block Hours, Fixed Price), service line, or specific date ranges. In Power BI, these become interactive slicers so you can dynamically compare, for example, how a client's recurring revenue margin compares to their T&M margin. This is particularly useful when a client has multiple contract types and you want to understand which type of engagement is more profitable.
The data gives you a clear and objective starting point. Quantify the annual loss in dollar terms, identify which specific services or ticket categories are driving the excess cost, and bring that analysis to the conversation rather than just leading with a rate increase request. Clients are more receptive to renegotiation when they understand the service delivery costs behind the numbers. In some cases, the issue is a scope problem rather than a pricing problem. Adding clarity to what is and is not included in the contract can be more effective than a flat rate increase.
Monthly is the recommended cadence for contract profitability reviews. A quarterly summary works for stable portfolios, but monthly visibility lets you catch margin erosion before it becomes material. The most effective setup is a recurring Power BI report scheduled to land in your operations or finance inbox at the start of each month, filtered to flag any client where margin has dropped more than 5 percentage points from the previous period. That kind of early warning is far easier to act on than discovering the problem at year-end review.
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