“Monthly Recurring Revenue: Contract Portfolio Breakdown”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Monthly Recurring Revenue: Contract Portfolio Breakdown

How much of your revenue is recurring, which clients drive the most income, and where concentration risk is hiding. Generated by AI via Proxuma Power BI MCP server.

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

Monthly Recurring Revenue: Contract Portfolio Breakdown

How much of your revenue is recurring, which clients drive the most income, and where concentration risk is hiding. Generated by AI via Proxuma Power BI MCP server.

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 › Monthly Recurring Revenue: Contract P...
What you can measure in this report
Summary Metrics
Contract Type Distribution — The Answer
Top Clients by Revenue
Revenue Concentration Risk
Analysis
What Should You Do With This Data?
Frequently Asked Questions
ACTIVE RECURRING
TOTAL REVENUE
RECURRING SHARE
ACTIVE CONTRACTS
AI-Generated Power BI Report
Monthly Recurring Revenue:
Contract Portfolio Breakdown

How much of your revenue is recurring, which clients drive the most income, and where concentration risk is hiding. Generated by AI via Proxuma Power BI MCP server.

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 Summary Metrics
ACTIVE RECURRING
1,207 (63.9%)
MRR base
TOTAL REVENUE
$17.6M
All contract types
RECURRING SHARE
67.7%
Of active contracts are recurring
ACTIVE CONTRACTS
1,377
Out of 1,889 total
View DAX Query — Summary Metrics
EVALUATE SUMMARIZECOLUMNS('BI_Autotask_Contracts'[contract_type_name], "Count", COUNTROWS('BI_Autotask_Contracts'))
What are these DAX queries? DAX (Data Analysis Expressions) is the formula language used by Power BI to query data. Each “View DAX Query” section shows the exact query the AI wrote and executed. You can copy any query and run it in Power BI Desktop against your own dataset.
2.0 Contract Type Distribution — The Answer

Active contracts broken down by type, showing the recurring revenue backbone of the portfolio

67.7% recurring
Active Contracts
by Type
Contract TypeTotalActiveActive %Share of Active
Recurring Service 1,207 932 77.2%
67.7%
Time & Materials 504 287 56.9%
20.8%
Block Hours 173 158 91.3%
11.5%
Fixed Price 5 0 0.0%
0.0%
Total 1,889 1,377 72.9%
View DAX Query — Contract Type Distribution
EVALUATE
ADDCOLUMNS(
    VALUES('BI_Autotask_Contracts'[contract_type_name]),
    "count", CALCULATE(COUNTROWS('BI_Autotask_Contracts')),
    "active", CALCULATE(
        COUNTROWS(
            FILTER('BI_Autotask_Contracts',
                [contract_status_name] = "Active")))
)
ORDER BY [count] DESC
3.0 Top Clients by Revenue

The five largest clients by total contract revenue, with their share of the overall portfolio

Patterson Hood P.
€2.3M
13.1%
Martin Group
€2.2M
12.5%
Foster Inc
€1.4M
8.0%
Hernandez Ltd
€637K
3.6%
Wall PLC
€477K
2.7%
#ClientRevenueCostMarginPortfolio Share
1 Patterson Hood Perez €2,300,000 €1,081,000 53.0% 13.1%
2 Martin Group €2,200,000 €1,034,000 53.0% 12.5%
3 Foster Inc €1,400,000 €658,000 53.0% 8.0%
4 Hernandez Ltd €637,000 €299,000 53.1% 3.6%
5 Wall PLC €477,000 €224,000 53.0% 2.7%
Top 5 Total €7,014,000 €3,296,000 53.0% 39.9%
View DAX Query — Top Clients by Revenue
EVALUATE
VAR _TopClients =
    TOPN(5,
        SUMMARIZE(
            'BI_Autotask_Contracts',
            'BI_Autotask_Contracts'[company_name]
        ),
        CALCULATE(SUM('BI_Autotask_Contracts'[contract_revenue])),
        DESC
    )
RETURN
ADDCOLUMNS(
    _TopClients,
    "Revenue", CALCULATE(
        SUM('BI_Autotask_Contracts'[contract_revenue])),
    "Cost", CALCULATE(
        SUM('BI_Autotask_Contracts'[contract_cost])),
    "Margin", DIVIDE(
        CALCULATE(SUM('BI_Autotask_Contracts'[contract_revenue]))
        - CALCULATE(SUM('BI_Autotask_Contracts'[contract_cost])),
        CALCULATE(SUM('BI_Autotask_Contracts'[contract_revenue])))
)
ORDER BY [Revenue] DESC
4.0 Revenue Concentration Risk

How dependent is your revenue on a small number of clients? A healthy MSP keeps top-5 concentration below 40%.

39.9% top 5
Top 5 Client
Revenue Share
25.6% top 2
Top 2 Client
Revenue Share
53% margin
Portfolio
Gross Margin
MetricValueAssessment
Top 1 client share 13.1% Moderate risk
Top 2 clients share 25.6% Watch closely
Top 5 clients share 39.9% Near threshold
Remaining clients share 60.1% Healthy base
Portfolio gross margin 53% Above 50% target
Total portfolio revenue €17.6M Full portfolio
View DAX Query — Revenue Concentration Analysis
EVALUATE
VAR _TotalRevenue =
    CALCULATE(SUM('BI_Autotask_Contracts'[contract_revenue]))
VAR _ClientRevenue =
    ADDCOLUMNS(
        SUMMARIZE(
            'BI_Autotask_Contracts',
            'BI_Autotask_Contracts'[company_name]
        ),
        "ClientRev", CALCULATE(
            SUM('BI_Autotask_Contracts'[contract_revenue]))
    )
VAR _Top5Rev =
    SUMX(TOPN(5, _ClientRevenue, [ClientRev], DESC), [ClientRev])
VAR _Top2Rev =
    SUMX(TOPN(2, _ClientRevenue, [ClientRev], DESC), [ClientRev])
VAR _Top1Rev =
    SUMX(TOPN(1, _ClientRevenue, [ClientRev], DESC), [ClientRev])
RETURN
ROW(
    "TotalRevenue", _TotalRevenue,
    "Top1Share", DIVIDE(_Top1Rev, _TotalRevenue),
    "Top2Share", DIVIDE(_Top2Rev, _TotalRevenue),
    "Top5Share", DIVIDE(_Top5Rev, _TotalRevenue),
    "PortfolioMargin", DIVIDE(
        _TotalRevenue
        - CALCULATE(SUM('BI_Autotask_Contracts'[contract_cost])),
        _TotalRevenue)
)
5.0 Analysis

The portfolio generates €17.6M in total contract revenue at a 53% gross margin, which is a healthy baseline for an MSP of this size. The cost base of €8.3M leaves room for operational investment, though margin consistency across the top 5 clients suggests pricing is standardized rather than optimized per account.

Recurring Service contracts make up 67.7% of all active contracts. That is a strong foundation. MSPs that operate below 60% recurring typically face more volatile revenue quarters and higher sales pressure. The 932 active recurring contracts give you a predictable revenue floor that does not depend on closing new project work each month.

Time & Materials contracts account for 20.8% of the active base, with 287 active out of 504 total. The 56.9% active rate is notably lower than Recurring Service (77.2%) or Block Hours (91.3%). This could indicate T&M contracts are used for short-term engagements that expire and are not renewed, or that some clients have shifted to recurring agreements. Either way, the gap is worth investigating.

The concentration numbers tell a more nuanced story. Patterson Hood Perez and Martin Group together represent 25.6% of total revenue. Losing either one would create a hole that takes 6 to 12 months of new business to fill. The top 5 at 39.9% is just under the 40% threshold that most MSP financial advisors flag as concerning. You are not in the danger zone, but you are on its border.

Block Hours contracts have the highest active rate at 91.3%, which suggests strong retention for pre-purchased support hours. Fixed Price contracts are effectively dead, with all 5 contracts inactive. Unless there is a strategic reason to keep them in the system, they are noise in the data.

6.0 What Should You Do With This Data?

5 priorities based on the findings above

1

Build a retention plan for Patterson Hood Perez and Martin Group

These two clients generate €4.5M combined, or 25.6% of your total revenue. If either one churns, your annual plan is immediately off track. Schedule executive-level touchpoints quarterly, assign a dedicated account manager, and make sure their contract renewal timeline is on your calendar now. Do not wait for the renewal conversation to start building the relationship.

2

Investigate the T&M active rate drop-off

Only 56.9% of Time & Materials contracts are active, compared to 77.2% for Recurring Service. Pull the inactive T&M contracts and look at when they expired and whether those clients are still active on other contract types. If clients are leaving T&M and not converting to recurring, you have a conversion opportunity. If they are leaving entirely, you have a churn problem that is hidden by the contract type split.

3

Push the recurring share above 70%

At 67.7%, your recurring contract share is solid but not where it should be. Target 70% or higher. Look at your T&M clients and identify which ones would benefit from a managed services agreement. Converting 30 to 40 T&M contracts to recurring would cross that threshold and make your revenue base more predictable for forecasting and valuation purposes.

4

Diversify revenue across more mid-tier clients

The gap between your top 3 (€1.4M+) and clients 4 and 5 (€477K to €637K) is steep. Growing mid-tier clients from €400K to €800K reduces your dependency on the top 2 without requiring net-new sales. Review which clients in the €300K to €600K range have expansion potential through additional services, more endpoints, or security add-ons.

5

Clean up inactive Fixed Price contracts

All 5 Fixed Price contracts are inactive. If they are historical artifacts, archive them. If they represent a contract type you no longer offer, remove the category from your PSA templates. Clean data makes every future report more accurate, and it removes confusion for account managers who might see these in their views.

7.0 Frequently Asked Questions
Where does the MRR data come from?

Proxuma Power BI connects to Autotask PSA and pulls contract data including type, status, revenue, and cost. The AI then writes DAX queries to aggregate this data by contract type and client. The "Recurring Service" category in Autotask maps directly to your MRR-generating agreements.

How is recurring revenue different from total revenue?

Recurring revenue comes from contracts that bill on a regular schedule (monthly, quarterly) and auto-renew. Total revenue includes everything: recurring service contracts, one-off T&M work, block hour drawdowns, and fixed-price projects. For valuation and forecasting, recurring revenue is the number that matters most because it is predictable.

What is a healthy recurring share for an MSP?

Most MSP financial benchmarks recommend 65% to 80% of revenue should come from recurring managed services contracts. Below 60%, your revenue is volatile and hard to forecast. Above 80%, you have a very stable base. At 67.7% of active contracts being recurring, this portfolio is in the healthy range but has room to improve.

What does client concentration risk mean?

Client concentration measures how much of your total revenue depends on a small number of clients. If your top 5 clients represent more than 40% of revenue, losing one of them has a significant financial impact. Buyers during MSP acquisitions discount valuations when concentration is high because it represents risk that transfers with the sale.

Can I filter this report by time period or contract status?

Yes. The DAX queries in this report can be modified with date filters or status filters. For example, you can filter to only active contracts created in the last 12 months, or compare Q1 vs. Q2 revenue by adding a date dimension. Run the queries in Power BI Desktop and adjust the filter context to match your needs.

Can I run this report against my own data?

Yes. Connect Proxuma Power BI to your Autotask PSA, 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 real contract data, and produces a report like this in under fifteen minutes.

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