“Contract Profitability Ranking: From Hero to Zero”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Contract Profitability Ranking: From Hero to Zero

A profitability analysis of 1,889 contracts in Autotask PSA, ranking each by revenue, cost, and margin. Total portfolio revenue stands at $17.6M with an overall margin of 53.0%, but some contracts are silently destroying that number.

Built from: Autotask PSA
How this report was made
1
Autotask PSA
Multiple data sources combined
2
Proxuma Power BI
Pre-built MSP semantic model, 50+ measures
3
AI via MCP
Claude or ChatGPT writes DAX queries, executes them, formats output
4
This Report
KPIs, breakdowns, trends, recommendations
Ready in < 15 min

Contract Profitability Ranking: From Hero to Zero

A profitability analysis of 1,889 contracts in Autotask PSA, ranking each by revenue, cost, and margin. Total portfolio revenue stands at $17.6M with an overall margin of 53.0%, but some contracts are silently destroying that number.

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

Time saved
Building financial reports from PSA exports and spreadsheets is a full day of work. This report delivers it in minutes.
Margin visibility
Revenue numbers alone do not tell the story. This report connects revenue to cost for true profitability.
Pricing intelligence
Data-driven evidence for pricing adjustments, contract negotiations, and resource allocation.
Report categoryFinancial & Revenue
Data sourceAutotask PSA · Datto RMM · Datto Backup · Microsoft 365 · SmileBack · HubSpot · IT Glue
RefreshReal-time via Power BI
Generation timeUnder 15 minutes
AI requiredClaude, ChatGPT or Copilot
AudienceMSP owners, finance leads
Where to find this in Proxuma
Power BI › Financial › Contract Profitability Ranking: From ...
What you can measure in this report
Portfolio Overview
Top Profitable Contracts
Profit Margin Distribution
Unprofitable Contracts
Revenue vs Cost Analysis
Profitability Tiers
Key Findings & Analysis
Recommended Actions
Frequently Asked Questions
Total Revenue
Total Cost
Total Profit
AI-Generated Power BI Report PSA
Contract Profitability Ranking:
From Hero to Zero

A profitability analysis of 1,889 contracts in Autotask PSA, ranking each by revenue, cost, and margin. Total portfolio revenue stands at $17.6M with an overall margin of 53.0%, but some contracts are silently destroying that number.

Demo Report: This report uses synthetic data to demonstrate AI-generated insights from Proxuma Power BI. The structure, DAX queries, and analysis reflect real MSP data patterns.
1.0 Portfolio Overview

Top-level financial metrics across all 1,889 contracts in the Autotask billing data.

Total Revenue
$17.6M
1,889 contracts
Total Cost
$8.3M
Labor + materials
Total Profit
$9.3M
Revenue minus cost
Overall Margin
53.0%
Healthy portfolio
How this data was generated: An AI assistant connected to Proxuma Power BI via MCP wrote three DAX queries against the Autotask billing and contract tables. The queries pull revenue from BI_Autotask_Billing_Items[total_amount], cost from BI_Autotask_Billing_Items[our_cost], and contract counts from BI_Autotask_Contracts. Profit and margin are calculated fields. All client and contract names are anonymized. You can expand the DAX toggles in sections 2, 3, and 5 to see the exact queries.
2.0 Top Profitable Contracts

The ten highest-revenue contracts ranked by total billing, with cost, profit, and margin for each.

ContractsTypesRevenueHours
188941760676950752
View DAX Query: Top Contracts by Revenue
EVALUATE ROW("TotalContracts", COUNTROWS(BI_Autotask_Contracts), "UniqueTypes", DISTINCTCOUNT(BI_Autotask_Contracts[contract_type_name]), "TotalRevenue", SUM(BI_Autotask_Billing_Items[total_amount]), "TotalHours", SUM(BI_Autotask_Time_Entries[hours_worked]))
3.0 Profit Margin Distribution

Horizontal bar chart showing profit margins for the top 10 contracts by revenue. Green bars indicate healthy margins, amber indicates thin margins, and red indicates losses.

Contract A
77.5%
Contract E
72.7%
Contract I
70.3%
Contract B
67.5%
Contract D
64.4%
Contract C
53.9%
Contract G
45.9%
Contract H
29.5%
Contract F
13.2%
Contract J
-64.3%
View DAX Query: Bottom Contracts (Unprofitable)
EVALUATE
TOPN(10,
    ADDCOLUMNS(
        SUMMARIZE('BI_Autotask_Billing_Items', 'BI_Autotask_Billing_Items'[contract_id]),
        "Revenue", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount])),
        "Cost", CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost]))
    ),
    [Revenue] - [Cost], ASC
)
ORDER BY [Revenue] - [Cost] ASC
4.0 Unprofitable Contracts

The ten contracts with the deepest losses. These contracts cost more to deliver than they bring in, and together they represent a significant drag on the portfolio.

Contract Revenue Cost Loss Margin
Contract K $233,588 $383,764 -$150,177 -64.3%
Contract L $898 $79,872 -$78,974 -8,793%
Contract M $2,496 $80,671 -$78,175 -3,133%
Contract N $1,590 $40,634 -$39,044 -2,455%
Contract O $4,245 $38,623 -$34,378 -810%
Contract P $116 $16,716 -$16,600 -14,308%
(No contract) $17,876 $33,487 -$15,611 -87%
Contract Q $18,744 $29,660 -$10,916 -58%
Contract R $42,773 $50,138 -$7,366 -17%
Contract S $3,022 $10,230 -$7,208 -239%

Contract P stands out with a margin of -14,308%. It billed just $116 while accumulating $16,716 in costs. This is almost certainly a misconfigured contract or a billing gap where time entries were logged against the wrong agreement. Contracts L and M show a similar pattern: revenue under $2,500 paired with costs near $80K. These are not thin-margin contracts. They are cost centers with a billing label attached.

5.0 Revenue vs Cost Analysis

A portfolio-level view of how revenue and cost split across the contract base. The donut shows the profit share, and the comparison bars break down individual contracts.

53.0% MARGIN Overall Portfolio Margin
77.5% BEST Best Contract Margin
-64.3% WORST Worst Contract (by $)
Contract A
$1.64M rev
$369K cost
Contract B
$1.18M rev
$384K cost
Contract K (Loss Leader)
$234K rev
$384K cost
Revenue Cost (profitable) Cost (loss)
View DAX Query: Portfolio KPIs
EVALUATE
ROW(
    "TotalRevenue", [Revenue - Total],
    "TotalCost", [Cost - Total],
    "TotalProfit", [Profit - total],
    "TotalContracts", COUNTROWS('BI_Autotask_Contracts')
)
6.0 Profitability Tiers

Contracts grouped into four margin tiers. This view shows where most of your contracts land and how concentrated the risk is at each level.

Tier Margin Range Example Contracts Status
High Profit > 60% Contract A, B, D, E, I Strong
Moderate 30% - 60% Contract C, G Acceptable
Thin Margin 0% - 30% Contract F, H Watch
Loss-Making < 0% Contract J, K, L, M, N, O, P, Q, R, S Action needed

The top tier (above 60% margin) contains five of the ten largest contracts. These are healthy agreements where revenue significantly exceeds cost. The moderate tier sits in a comfortable range but could erode quickly if scope creep goes unchecked.

The thin-margin tier is the most dangerous for MSPs. Contracts F and H look profitable on paper, but one bad month of unplanned work could push them into negative territory. The loss-making tier already contains at least 10 contracts that actively lose money. Several of them (L, M, P) have margins worse than -1,000%, which almost always points to a billing configuration error rather than an actual service delivery problem.

7.0 Key Findings & Analysis
!

10+ contracts are actively losing money

The bottom 10 contracts have combined losses exceeding $438K. Contracts L, M, and P show extreme negative margins (-3,133% to -14,308%), which strongly suggests billing items are not attached to these agreements or the contract rate is set to zero. Every dollar of cost logged against these contracts comes straight out of your profit. A 30-minute audit of the billing configuration for each one could recover tens of thousands of dollars.

!

Contract F bills $417K but keeps only $55K

At a 13.2% margin, Contract F is the thinnest of the high-revenue contracts. It generates more revenue than Contracts G, H, or I, but retains less profit than any of them. This is typically caused by excessive time entries against a fixed-price agreement, or a contract rate that has not been adjusted to match the current cost structure. Review the labor hours logged against this contract and compare them to the agreed scope.

Contract A alone generates $1.27M in profit

Contract A is a standout performer with a 77.5% margin on $1.64M in revenue. It accounts for roughly 13.6% of total portfolio profit by itself. Protecting this contract should be a priority: ensure SLA performance stays high, schedule regular QBR meetings, and use it as a reference case for sales. If Contract A churned, the entire portfolio margin would drop noticeably.

8.0 Recommended Actions

1. Audit every loss-making contract within this week. Start with Contracts L, M, and P. Open each contract in Autotask, check the billing setup, and verify that time entries are linked to the correct billing items. Margins worse than -1,000% are almost always configuration errors. Fix the billing and you recover the revenue retroactively or stop the bleed going forward.

2. Review the scope and rate for Contract F. A $417K contract running at 13.2% margin needs attention. Compare actual hours worked against the contracted scope. If technicians are logging more time than the agreement covers, either renegotiate the rate or tighten the scope boundaries. A 10-point margin improvement on this contract alone would add $42K to the bottom line.

3. Protect Contract A with proactive account management. This single contract generates $1.27M in profit. Schedule a QBR, run a satisfaction check, and make sure the client has no unresolved complaints. Losing this contract would require five to six new agreements at average margins to replace the profit.

4. Investigate the "(No contract)" line. There are $17.9K in billing items and $33.5K in costs not attached to any contract. These orphaned entries either belong to an existing contract (miscategorized) or represent unbilled work. Assign them to the correct agreements to get accurate per-contract profitability.

5. Set a margin floor for new contracts. Based on this data, any contract below 30% margin should trigger a review before renewal. Build a quarterly profitability check into your operations cadence so loss-making contracts never run unnoticed for a full year.

9.0 Frequently Asked Questions
Where does the profitability data come from?

Revenue comes from the BI_Autotask_Billing_Items table (field: total_amount) and cost comes from the same table (field: our_cost). The AI groups these by contract_id and calculates profit as revenue minus cost. Margin is profit divided by revenue, expressed as a percentage.

Why do some contracts show margins worse than -1,000%?

Extreme negative margins happen when a contract has very low revenue (sometimes just a few hundred dollars) paired with significant cost. This usually means the contract is not configured to bill for the work being performed, or time entries are being logged against the wrong agreement. The fix is a billing audit, not a service delivery change.

What is a healthy margin for an MSP contract?

Most MSP industry benchmarks target 50-70% gross margin on managed services contracts. Below 30% typically signals scope creep or under-pricing. Above 70% is excellent and usually indicates a well-scoped agreement with efficient delivery. The overall portfolio margin in this report (53%) sits right in the healthy range.

What does "(No contract)" mean in the loss table?

These are billing items and cost entries in Autotask that are not linked to any contract. They show up as orphaned records in the data model. The revenue and cost are real, but without a contract association, they cannot be attributed to a specific agreement. Assign them to the correct contracts for accurate reporting.

How often should I run this report?

Quarterly is a good cadence for most MSPs. Run it before QBR preparation so you can discuss profitability with your team and flag any contracts that need rate adjustments at renewal. If you spot a sudden margin drop, run it monthly until the situation stabilizes.

Can I run this report against my own Autotask data?

Yes. Connect Proxuma Power BI to your Autotask PSA instance, add an AI tool (Claude, ChatGPT, or Copilot) via MCP, and ask the same question. The AI writes the DAX queries, runs them against your live data, and produces a report like this one in under fifteen minutes.

Does this include labor cost or just direct billing cost?

The our_cost field in Autotask billing items represents the internal cost recorded against each billing line. This typically includes labor cost based on the resource's internal rate. It does not include overhead, software licenses, or other indirect costs. For a fully loaded cost analysis, you would need to layer in additional cost data from your finance system.

Generate this report from your own 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