Generated by AI via Proxuma Power BI MCP server. Distribution of 1,889 Autotask contracts across contract types, with active vs inactive breakdown.
Generated by AI via Proxuma Power BI MCP server. Distribution of 1,889 Autotask contracts across contract types, with active vs inactive breakdown.
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: Account managers, finance teams, and MSP owners managing renewals
How often: Monthly for pipeline review, 90 days before expiry for renewal preparation
Generated by AI via Proxuma Power BI MCP server. Distribution of 1,889 Autotask contracts across contract types, with active vs inactive breakdown.
EVALUATE SUMMARIZECOLUMNS('BI_Autotask_Contracts'[contract_type_name], "Count", COUNTROWS('BI_Autotask_Contracts'))
| Status | Count | % |
|---|---|---|
| Active | 1,377 | 72.9% |
| Inactive | 512 | 27.1% |
Recurring Service contracts dominate at 63.9% of the total portfolio. This is a healthy sign. For most MSPs, a Recurring Service majority translates directly into predictable monthly revenue. The T&M share at 26.7% is worth watching: those contracts react to how much work clients actually generate, which makes revenue planning harder.
EVALUATE SUMMARIZECOLUMNS('BI_Autotask_Contracts'[contract_status_name], "Count", COUNTROWS('BI_Autotask_Contracts'))
| Contract Type | Active Rate | Retention Signal | Active | Inactive |
|---|---|---|---|---|
| Block Hours | 91.3% | Strong retention | 158 | 15 |
| Recurring Service | 77.2% | Solid | 932 | 275 |
| Time & Materials | 56.9% | High churn risk | 287 | 217 |
| Fixed Price | 0% | All inactive | 0 | 5 |
Block Hours contracts have the highest active retention rate at 91.3%. These are pre-purchased hour bundles, so clients commit upfront. T&M contracts show the lowest retention at 56.9%, which makes sense: when work slows down, clients let T&M contracts lapse. If a large portion of your T&M contracts are going inactive, consider converting them to Recurring Service agreements with a fixed monthly scope.
EVALUATE
ADDCOLUMNS(
SUMMARIZECOLUMNS(
'BI_Autotask_Contracts'[contract_type_name],
"Total", COUNTROWS('BI_Autotask_Contracts'),
"Active", CALCULATE(COUNTROWS('BI_Autotask_Contracts'), 'BI_Autotask_Contracts'[contract_status_name] = "Active"),
"Inactive", CALCULATE(COUNTROWS('BI_Autotask_Contracts'), 'BI_Autotask_Contracts'[contract_status_name] <> "Active")
),
"Active Rate %", DIVIDE([Active], [Total]) * 100
)
ORDER BY [Active Rate %] DESC
| Contract Type | Active Count | Share of Active Portfolio | Revenue Character |
|---|---|---|---|
| Recurring Service | 932 | 67.7% | Fixed monthly, forecastable |
| Time & Materials | 287 | 20.8% | Variable, demand-driven |
| Block Hours | 158 | 11.5% | Pre-paid, draws down over time |
Looking at just active contracts, the mix tilts further toward Recurring Service at 67.7%. This is where your stable revenue comes from. The 158 active Block Hours contracts represent pre-committed work: clients who have already paid for a block of hours. That is a useful metric for capacity planning, since these clients will generate tickets until their hours run out.
EVALUATE
VAR _active = CALCULATE(COUNTROWS('BI_Autotask_Contracts'), 'BI_Autotask_Contracts'[contract_status_name] = "Active")
RETURN
ADDCOLUMNS(
CALCULATETABLE(
SUMMARIZECOLUMNS(
'BI_Autotask_Contracts'[contract_type_name],
"Active Count", COUNTROWS('BI_Autotask_Contracts')
),
'BI_Autotask_Contracts'[contract_status_name] = "Active"
),
"Active Share %", DIVIDE([Active Count], _active) * 100
)
ORDER BY [Active Count] DESC
63.9% of all contracts and 67.7% of active contracts are Recurring Service. This is a healthy contract portfolio mix, giving you a strong base of predictable monthly revenue to plan against.
Only 56.9% of Time & Materials contracts are currently active. Nearly half have gone inactive or expired. This is worth reviewing: a targeted conversion campaign could move some of these clients onto Recurring Service agreements with more stable billing.
91.3% of Block Hours contracts are active. Pre-committed hours create reliable engagement because clients have already paid. These contracts also help with capacity planning: active Block Hours clients will keep generating work until their balance reaches zero.
Only 5 Fixed Price contracts exist in the portfolio, and none are currently active. This contract type is effectively dormant. It is not worth tracking separately unless you plan to reintroduce Fixed Price agreements as part of a new service offering.
Recurring Service contracts are fixed-fee agreements billed on a recurring schedule, typically monthly. These are the foundation of managed services revenue. Clients pay a set amount each period in exchange for a defined scope of services, regardless of how many hours are actually used.
Contract type distribution tells you how predictable your revenue is. A higher Recurring Service share means more forecastable income that you can plan staffing and costs against. A higher T&M share means revenue fluctuates with client demand, making it harder to budget accurately month to month.
Industry benchmarks suggest that 70% or more of active contracts should be Recurring Service for a well-structured MSP portfolio. This demo portfolio sits at 67.7% of active contracts being Recurring Service, which is close to that benchmark and generally considered healthy.
Clients purchase a set number of hours upfront and work is drawn down against that block as tickets and tasks are completed. Once the block runs out, clients either renew or purchase additional hours. This structure gives clients budget control while giving the MSP pre-committed revenue.
Yes. In Proxuma Power BI you can filter the contract type breakdown by company, contract period, date range, and contract status. You can also drill into individual company portfolios to see what contract types each client is on and whether their agreements are active or lapsed.
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