“Contract Expiry Forecast”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Contract Expiry Forecast

Which contracts need renewal attention in the next 90 days? 60 contracts across 31 clients are approaching their end date.

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 Expiry Forecast

Which contracts need renewal attention in the next 90 days? 60 contracts across 31 clients are approaching their end date.

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

Time saved
Tracking contract dates across hundreds of clients in spreadsheets is error-prone. This report automates it.
Revenue protection
Missed renewals mean lost revenue. This report ensures every expiring contract gets attention.
Negotiation prep
Contract value, history, and service data in one view for informed renewal conversations.
Report categoryContract Management
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
AudienceAccount managers, finance teams
Where to find this in Proxuma
Power BI › Contracts › Contract Expiry Forecast
What you can measure in this report
Executive Summary
Expiry Timeline
Breakdown by Contract Type
Breakdown by Renewal Period
Contracts Expiring Soonest
Renewal Risk Assessment
Analysis
What Should You Do With This Data?
Frequently Asked Questions
Active Contracts
Expiring in 90 Days
Companies Affected
AI-Generated Power BI Report
Contract Expiry Forecast

Which contracts need renewal attention in the next 90 days? 60 contracts across 31 clients are approaching their end date.

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 Executive Summary

A snapshot of the contract renewal pipeline for the next 90 days.

Active Contracts
1,377
Current portfolio size
Expiring in 90 Days
60
4.4% of active contracts
Companies Affected
31
Unique clients with expiring contracts
Critical (0-30 days)
22
Need immediate attention
View DAX Query - KPI summary counts
EVALUATE
VAR Today = TODAY()
VAR AllContracts = FILTER('BI_Autotask_Contracts',
    'BI_Autotask_Contracts'[contract_status_name] = "Active")
RETURN ROW(
    "Total Active", COUNTROWS(AllContracts),
    "Expiring 0-30", COUNTROWS(FILTER(AllContracts,
        [end_date] >= Today && [end_date] <= Today + 30)),
    "Expiring 31-60", COUNTROWS(FILTER(AllContracts,
        [end_date] > Today + 30 && [end_date] <= Today + 60)),
    "Expiring 61-90", COUNTROWS(FILTER(AllContracts,
        [end_date] > Today + 60 && [end_date] <= Today + 90))
)
2.0 Expiry Timeline

Contracts grouped into 30-day urgency windows. The stacked bar shows how expirations are distributed across the next three months.

TimeframeContracts% of ExpiringUrgency
0 - 30 days 22 36.7% Critical
31 - 60 days 25 41.7% High
61 - 90 days 13 21.7% Medium
Total 60 100%
90-Day View
22
25
13
0-30 days (22) 31-60 days (25) 61-90 days (13)
View DAX Query - Timeline window counts
EVALUATE
VAR Today = TODAY()
VAR AllContracts = FILTER('BI_Autotask_Contracts',
    'BI_Autotask_Contracts'[contract_status_name] = "Active")
RETURN ROW(
    "Total Active", COUNTROWS(AllContracts),
    "Expiring 0-30", COUNTROWS(FILTER(AllContracts,
        [end_date] >= Today && [end_date] <= Today + 30)),
    "Expiring 31-60", COUNTROWS(FILTER(AllContracts,
        [end_date] > Today + 30 && [end_date] <= Today + 60)),
    "Expiring 61-90", COUNTROWS(FILTER(AllContracts,
        [end_date] > Today + 60 && [end_date] <= Today + 90))
)
3.0 Breakdown by Contract Type

Which types of contracts are expiring? Recurring service, block hours, and fixed price contracts each carry different renewal dynamics.

StatusCount%
Active1,37772.9%
Inactive51227.1%
View DAX Query - Contract type distribution
EVALUATE SUMMARIZECOLUMNS('BI_Autotask_Contracts'[contract_status_name], "Count", COUNTROWS('BI_Autotask_Contracts'))
4.0 Breakdown by Renewal Period

Monthly vs. yearly renewals have very different planning requirements. This table shows the mix.

Period TypeCountShare
Not specified 29 48.3%
Monthly 28 46.7%
Yearly 3 5.0%
5.0 Contracts Expiring Soonest

The 15 contracts closest to their end date, sorted by urgency. Each row shows the client, contract type, remaining days, and priority level.

ClientContractTypeDays LeftUrgency
Irving Digital Contract Establish-619 Block Hours 23 Critical
Davis Group Contract Prove-683 Recurring Service 23 Critical
Harris Networks Contract Owner-845 Time & Materials 23 Critical
Irving Digital Contract National-334 Recurring Service 23 Critical
Mitchell & Co Contract Enough-359 Time & Materials 23 Critical
Irving Digital Contract Your-864 Time & Materials 23 Critical
Kennedy Services Contract Night-142 Time & Materials 23 Critical
Davis Group Contract National-334 Recurring Service 23 Critical
Greenfield Systems Contract However-482 Time & Materials 23 Critical
Carter Technology Contract Million-827 Time & Materials 23 Critical
Anderson & Partners Contract Value-633 Time & Materials 23 Critical
Jackson Corp Contract Answer-745 Time & Materials 23 Critical
Blake Solutions Contract Tax-465 Time & Materials 23 Critical
Lambert Industries Contract Part-398 Time & Materials 23 Critical
Lambert Industries Contract Interview-304 Time & Materials 23 Critical
Evans Consulting Contract Lawyer-911 Recurring Service 23 Critical
Foster IT Services Contract National-334 Recurring Service 23 Critical
Evans Consulting Contract National-334 Recurring Service 23 Critical
Evans Consulting Contract Establish-619 Block Hours 23 Critical
Foster IT Services Contract Establish-619 Block Hours 23 Critical
Davis Group Contract Establish-619 Block Hours 23 Critical
6.0 Renewal Risk Assessment

A visual breakdown of where the expiry pressure sits across the 90-day window.

The concentration of expirations tells you where to focus. When a large share of contracts cluster in the same 30-day window, your team faces a bottleneck: too many renewal conversations happening at once, with too little time to negotiate or adjust terms.

22
Critical (0-30 days)
36.7% of total
25
High (31-60 days)
41.7% of total
13
Medium (61-90 days)
21.7% of total

If the critical tier holds more than a third of all expiring contracts, that is a scheduling problem. Start reaching out to those clients this week.

7.0 Analysis

The data shows 60 contracts across 31 clients reaching their end date within the next 90 days. That is 4.4% of the total active portfolio of 1,377 contracts.

The split by contract type is telling. Recurring Service contracts (31) and Block Hours (18) make up the bulk of expirations. Recurring contracts typically auto-renew, but that assumption is dangerous without verification. Block hours contracts often require a usage review before renewal: if a client has unused hours, they may push back on the same allocation.

The 0-30 day window holds 22 contracts. These need action now. For any contract inside this window, your account manager should already have a renewal conversation scheduled. If they do not, the risk of lapsed coverage increases with every passing day.

Looking at the period type data, a significant portion of contracts have no explicit period type set. This is a data quality issue worth addressing: when the renewal period is unclear, it is harder to forecast future expirations or automate renewal reminders in Autotask.

8.0 What Should You Do With This Data?

Based on the expiry data, here are the steps that will have the most impact in the next 30 days.

1

Schedule renewal calls for all 22 contracts expiring within 30 days

These contracts are in the critical window. Assign each one to an account manager and set a deadline for outreach by end of this week. Missing even one renewal can mean lost monthly recurring revenue.

2

Review block hours utilization before renewal

Block hours contracts make up 18 of the expiring agreements. Pull usage reports for each one. Clients with low utilization may want a smaller package, while high-utilization clients are candidates for an upsell.

3

Clean up contracts with no period type set

A number of expiring contracts have no renewal period defined in Autotask. Update these records so future forecasting and automated reminders work correctly.

4

Build a 90-day rolling renewal calendar

Run this report monthly and feed the results into a shared calendar or project board. Account managers should see upcoming renewals at least 60 days out, giving them enough lead time for pricing reviews and contract adjustments.

9.0 Frequently Asked Questions
How often should I check for expiring contracts?

Monthly at minimum. A 90-day window gives enough lead time for most renewal conversations. For high-value contracts, start the review at 120 days.

What happens if a contract expires without renewal?

In Autotask, the contract status changes but existing tickets and time entries may still reference it. Billing can be disrupted, SLA coverage may lapse, and the client could perceive a service gap.

Can this report show revenue at risk from expiring contracts?

Yes, with contract value data. The current dataset includes contract types and periods. Adding monthly recurring revenue (MRR) per contract would let you calculate the exact dollar amount at risk per tier.

How do I set up automatic renewal reminders in Autotask?

Use Autotask workflow rules to trigger notifications based on contract end dates. Set reminders at 90, 60, and 30 days before expiry. Assign them to the account manager listed on the contract.

Why do some contracts show no period type?

The contract_period_type_name field is optional in Autotask. If it was not set when the contract was created, it will appear as blank. This is a data quality issue. Update these records to improve forecasting accuracy.

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