“Contract Rate Analysis: Default vs. Actual Rates by Role”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Contract Rate Analysis: Default vs. Actual Rates by Role

How your contract hourly rates compare to your default rate card, which roles carry the deepest discounts, and where revenue is leaking. 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

Contract Rate Analysis: Default vs. Actual Rates by Role

How your contract hourly rates compare to your default rate card, which roles carry the deepest discounts, and where revenue is leaking. 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: 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 Rate Analysis: Default vs. A...
What you can measure in this report
Summary Metrics
Role Rate Card: Default vs. Average Contract Rate
Rate Variance by Volume Impact
Top-Rated Contracts vs. Deepest Discounts
Analysis
What Should You Do With This Data?
Frequently Asked Questions
ROLES ANALYZED
AVG DISCOUNT
CONTRACTS W/ VARIANCE
WORST DISCOUNT
AI-Generated Power BI Report
Contract Rate Analysis:
Default vs. Actual Rates by Role

How your contract hourly rates compare to your default rate card, which roles carry the deepest discounts, and where revenue is leaking. 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
ROLES ANALYZED
14
All roles active
AVG DISCOUNT
220
Across 110 contracts
CONTRACTS W/ VARIANCE
117.71
Standard billing rate
WORST DISCOUNT
87.64
25.5% below default
View DAX Query — Summary Metrics
EVALUATE ROW("Total Roles", COUNTROWS('BI_Autotask_Roles'), "Active Roles", COUNTROWS(FILTER('BI_Autotask_Roles', 'BI_Autotask_Roles'[active] = TRUE())), "Contract Rate Records", COUNTROWS('BI_Autotask_Contract_Rates'), "Distinct Contracts with Rates", DISTINCTCOUNT('BI_Autotask_Contract_Rates'[contract_id]), "Avg Default Rate", AVERAGE('BI_Autotask_Roles'[hourly_billing_rate]), "Avg Contract Rate", AVERAGE('BI_Autotask_Contract_Rates'[contract_hourly_rate]))
What are these DAX queries? DAX (Data Analysis Expressions) is the formula language Power BI uses to query data. Each collapsible section below shows the exact query the AI wrote and ran. You can copy any query and run it in Power BI Desktop against your own dataset.
2.0 Role Rate Card: Default vs. Average Contract Rate

Side-by-side comparison of your default hourly rate per role against what clients actually pay on contracts

Engineer II (94 contracts)
$143
$99.27
Project Lead (89 contracts)
$153
$86.62
Specialist (11 contracts)
$123
$68.86
Manager (6 contracts)
$147
$111.50
Junior (6 contracts)
$123
$57.42
Default rate Avg contract rate
RoleDefault RateAvg Contract RateContractsDiscount %
Audiological scientist143.0099.279430.6%
Education administrator153.0086.628943.4%
Associate Professor123.0068.861144.0%
Administrator, sports147.00111.50624.2%
Dispensing optician123.0057.42653.3%
Accountant, chartered123.0033.33372.9%
Fine artist153.000.002100.0%
Surveyor, rural practice153.0074.50251.3%
Physiological scientist123.0050.00259.3%
View DAX Query — Default vs. Contract Rate by Role
EVALUATE ADDCOLUMNS(GROUPBY('BI_Autotask_Contract_Rates', 'BI_Autotask_Contract_Rates'[role_id], "Avg_Contract_Rate", AVERAGEX(CURRENTGROUP(), 'BI_Autotask_Contract_Rates'[contract_hourly_rate]), "Rate_Count", COUNTX(CURRENTGROUP(), 'BI_Autotask_Contract_Rates'[contract_rate_id])), "Role_Name", LOOKUPVALUE('BI_Autotask_Roles'[role_name], 'BI_Autotask_Roles'[role_id], 'BI_Autotask_Contract_Rates'[role_id]), "Default_Rate", LOOKUPVALUE('BI_Autotask_Roles'[hourly_billing_rate], 'BI_Autotask_Roles'[role_id], 'BI_Autotask_Contract_Rates'[role_id])) ORDER BY [Rate_Count] DESC
3.0 Rate Variance by Volume Impact

The gap between default and contract rates, weighted by the number of contracts on each role. High-volume roles with large discounts cause the most revenue leakage.

Engineer II
94 contracts · -$43.73/hr
30.6%
Project Lead
89 contracts · -$66.38/hr
43.4%
Specialist
44.0%
Manager
24.1%
Junior
53.3%
Reading the chart: Bar width represents the total number of contracts for each role. The percentage shows how far below default rate the average contract rate falls. Engineer II and Project Lead account for 89% of all discounted contracts (183 out of 206).
View DAX Query — Rate Variance by Volume
EVALUATE
ADDCOLUMNS(
    VALUES('BI_Autotask_Contract_Rates'[role_id]),
    "AvgContractRate", CALCULATE(
        AVERAGE('BI_Autotask_Contract_Rates'[contract_hourly_rate])),
    "Contracts", CALCULATE(
        COUNTROWS('BI_Autotask_Contract_Rates')),
    "MaxRate", CALCULATE(
        MAX('BI_Autotask_Contract_Rates'[contract_hourly_rate])),
    "MinRate", CALCULATE(
        MIN('BI_Autotask_Contract_Rates'[contract_hourly_rate]))
)
ORDER BY [Contracts] DESC
4.0 Top-Rated Contracts vs. Deepest Discounts

The three highest-rate contracts alongside the roles where average rates drop furthest from the rate card

Highest Contract Rates
ContractRoleRateStatus
Contract Beautiful-215 Role 29683465 $149
Contract By-667 Project Lead $148
Contract Marriage-305 Project Lead $147
Deepest Average Discounts by Role
RoleDefaultAvg ContractGap
Junior $123 $57.42 -$65.58 (53.3%)
Specialist $123 $68.86 -$54.14 (44.0%)
Project Lead $153 $86.62 -$66.38 (43.4%)
View DAX Query — Top and Bottom Contract Rates
-- Top 3 highest individual contract rates
EVALUATE
TOPN(
    3,
    ADDCOLUMNS(
        'BI_Autotask_Contract_Rates',
        "ContractName", RELATED('BI_Autotask_Contracts'[contract_name]),
        "Rate", 'BI_Autotask_Contract_Rates'[contract_hourly_rate]
    ),
    [Rate], DESC
)

-- Roles with deepest average discount
EVALUATE
ADDCOLUMNS(
    VALUES('BI_Autotask_Contract_Rates'[role_id]),
    "AvgContractRate", CALCULATE(
        AVERAGE('BI_Autotask_Contract_Rates'[contract_hourly_rate])),
    "Contracts", CALCULATE(
        COUNTROWS('BI_Autotask_Contract_Rates'))
)
ORDER BY [AvgContractRate] ASC
5.0 Analysis

Every role in this dataset is being sold below the default rate card. That is not unusual for MSPs. Contracts involve negotiation. The question is whether the discounts are intentional and documented, or whether they crept in over time without anyone reviewing the cumulative impact.

The Project Lead role is the biggest concern by total dollar impact. Across 89 contracts, the average rate of $86.62 sits 43.4% below the $153 default. Some contracts reach as high as $148, which shows the rate card is viable for at least some clients. But the average tells a different story. At $66.38 below default per hour, even modest utilization turns this into a significant margin gap over a year.

Engineer II carries the most volume: 94 contracts averaging $99.27 against a $143 default. The 30.6% discount is large, but the sheer number of contracts means this role accounts for the highest absolute revenue leakage. If the average rate moved from $99 to $115, the improvement across 94 contracts would compound quickly.

The Junior role at $57.42 average is the deepest percentage discount at 53.3% below the $123 default. Six contracts is a small sample, but if this pattern holds in newer deals, it signals that the Junior role is being treated as a giveaway in contract negotiations. A rate of $57/hr barely covers fully loaded labor cost for most MSPs.

Several contracts show a $0 minimum rate, which likely represents included hours or bundled service tiers rather than actual zero-rate billing. Those entries pull the average down and should be filtered separately when doing margin analysis.

The three top-priced contracts ($147-$149/hr) prove that near-default rates are possible. The gap between what some clients pay and what most clients pay is the starting point for your next round of contract renewals.

6.0 What Should You Do With This Data?

5 priorities based on the findings above

1

Audit all $0 contract rates and remove them from averages

Multiple roles show a minimum of $0/hr, which skews averages down. These likely represent bundled or included hours. Tag them in Autotask so your rate analysis reflects actual negotiated discounts, not structural artifacts. Until you do this, every metric in this report understates the real rate.

2

Set a rate floor for Project Lead at contract renewal

The Project Lead role averages $86.62 across 89 contracts, a 43.4% discount from the $153 default. Some contracts already pay $148. Target a minimum of $120/hr on all new and renewed contracts. At 89 contracts, moving the average from $87 to $120 recovers roughly $33/hr per contract. Even at 10 billable hours per month per contract, that is $29,370 in monthly revenue recovery.

3

Renegotiate the 94 Engineer II contracts in phases

Engineer II is your highest-volume discounted role. A phased increase of $10-15/hr at each renewal cycle, starting with contracts up for renewal in the next quarter, avoids sticker shock while closing the gap. Prioritize the contracts farthest from the $143 default first.

4

Stop offering the Junior role below $80/hr on new deals

At $57.42 average, the Junior role is a 53.3% discount. For new contracts, set a minimum of $80/hr. For existing contracts with $0 bundled rates, review whether the included hours are actually being consumed. If not, they are eroding your rate metrics for no reason.

5

Use the top three contracts as rate benchmarks in sales

Contracts at $147-$149/hr prove the market accepts near-default pricing. Share these as internal reference points with your sales team. When negotiating a new deal, start from the rate card and justify any discount, rather than starting from the discounted average and hoping to go higher.

7.0 Frequently Asked Questions
Where does contract rate data come from?

Contract rates are stored in BI_Autotask_Contract_Rates, which links each contract to a role and an hourly rate. Default role rates come from BI_Autotask_Roles. Proxuma Power BI joins these tables so you can compare negotiated rates against the rate card in a single query.

Why do some contracts show a $0 rate?

A $0 rate typically means the hours for that role are included in a flat-fee or bundled service contract. The client pays a fixed monthly amount, and the role rate is set to zero because hours are not billed individually. These entries should be excluded when calculating true discount percentages.

How is the discount percentage calculated?

Discount = (Default Rate - Average Contract Rate) / Default Rate. A 43.4% discount on the Project Lead role means clients pay an average of $86.62 versus the $153 rate card. This is a simple average across all contracts for that role, not weighted by hours billed.

Can I see which specific clients have the deepest discounts?

Yes. Copy the DAX queries from this report and add a grouping by company_name (via the contract relationship). That gives you a per-client, per-role rate breakdown. This report anonymizes client names for the demo, but your own data will show the full picture.

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