Sales pipeline analysis showing opportunity stages, win/loss rates, and deal values. Generated by AI via Proxuma Power BI MCP server.
Sales pipeline analysis showing opportunity stages, win/loss rates, and deal values. 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: Sales leads, MSP owners, and account managers tracking pipeline health
How often: Weekly for pipeline reviews, monthly for forecasting, quarterly for strategy
Sales pipeline analysis showing opportunity stages, win/loss rates, and deal values. Generated by AI via Proxuma Power BI MCP server.
EVALUATE ROW("TotalDeals", COUNTROWS('BI_HubSpot_Deals'), "TotalPipeline", SUM('BI_HubSpot_Deals'[amount]), "WonDeals", CALCULATE(COUNTROWS('BI_HubSpot_Deals'), 'BI_HubSpot_Deals'[deal_stage] = "closedwon"), "WonRevenue", CALCULATE(SUM('BI_HubSpot_Deals'[amount]), 'BI_HubSpot_Deals'[deal_stage] = "closedwon"), "LostDeals", CALCULATE(COUNTROWS('BI_HubSpot_Deals'), 'BI_HubSpot_Deals'[deal_stage] = "closedlost"), "LostRevenue", CALCULATE(SUM('BI_HubSpot_Deals'[amount]), 'BI_HubSpot_Deals'[deal_stage] = "closedlost"))
The 10 highest-value opportunities across all stages, ranked by amount
| # | Opportunity | Stage | Status | Amount | Prob. |
|---|---|---|---|---|---|
| 1 | Update required | Offerte verstuurd | Active | €2,657,650 | 50% |
| 2 | Training request | Afgewezen | Lost | €1,890,912 | 50% |
| 3 | Backup request | Afgewezen | Lost | €580,054 | 50% |
| 4 | Update required | Getekend, verwerkt naar project | Won | €292,580 | 50% |
| 5 | Network issue | Afgewezen | Lost | €291,687 | 50% |
| 6 | Performance issue | Getekend, verwerkt naar project | Won | €268,120 | 50% |
| 7 | Installation request | Afgewezen | Lost | €255,144 | 50% |
| 8 | Update required | Offerte verstuurd | Active | €219,979 | 50% |
| 9 | Support request | Afgewezen | Lost | €218,823 | 50% |
| 10 | Maintenance task | Getekend, verwerkt naar ticket | Won | €205,798 | 50% |
EVALUATE
TOPN(50,
SUMMARIZECOLUMNS(
'BI_Autotask_Opportunities'[title],
'BI_Autotask_Opportunities'[stage_name],
'BI_Autotask_Opportunities'[status_name],
'BI_Autotask_Opportunities'[owner_resource_name],
'BI_Autotask_Opportunities'[amount],
'BI_Autotask_Opportunities'[probability]
),
[amount], DESC
)
Distribution of all 45 opportunities across the five Autotask pipeline stages
EVALUATE
SUMMARIZECOLUMNS(
'BI_Autotask_Opportunities'[stage_name],
'BI_Autotask_Opportunities'[status_name],
"TotalAmount", SUM('BI_Autotask_Opportunities'[amount]),
"DealCount", COUNTROWS('BI_Autotask_Opportunities')
)
ORDER BY [TotalAmount] DESC
Which types of opportunities are being won, and which are consistently lost
| Deal Type | Won | Lost | Win Rate | Pattern |
|---|---|---|---|---|
| Update required | 2 | 0 | 100% | Strong closer |
| Performance issue | 1 | 0 | 100% | Strong closer |
| Maintenance task | 1 | 0 | 100% | Strong closer |
| Training request | 0 | 1 | 0% | Always lost |
| Backup request | 0 | 1 | 0% | Always lost |
| Network issue | 0 | 1 | 0% | Always lost |
| Installation request | 0 | 1 | 0% | Always lost |
| Support request | 0 | 1 | 0% | Always lost |
EVALUATE
ADDCOLUMNS(
SUMMARIZE(
'BI_Autotask_Opportunities',
'BI_Autotask_Opportunities'[title]
),
"Won", CALCULATE(
COUNTROWS('BI_Autotask_Opportunities'),
'BI_Autotask_Opportunities'[status_name] = "Closed"),
"Lost", CALCULATE(
COUNTROWS('BI_Autotask_Opportunities'),
'BI_Autotask_Opportunities'[status_name] = "Lost"),
"WonAmount", CALCULATE(
SUM('BI_Autotask_Opportunities'[amount]),
'BI_Autotask_Opportunities'[status_name] = "Closed"),
"LostAmount", CALCULATE(
SUM('BI_Autotask_Opportunities'[amount]),
'BI_Autotask_Opportunities'[status_name] = "Lost")
)
ORDER BY [WonAmount] + [LostAmount] DESC
The pipeline has produced €4.5M in lost revenue against €1.8M in closed won. That is €2.50 lost for every €1.00 signed. The largest single loss was a €1.89M training request that went to Afgewezen. When a single lost deal is larger than your entire won portfolio, the pricing or qualification process on large deals needs a second look.
The €2.66M “Update required” opportunity sitting in Offerte verstuurd accounts for 86% of the total active pipeline. If that deal closes, the quarter looks strong. If it does not, the remaining €440K in active deals will not come close to covering the gap. That level of concentration is a forecasting problem.
Deals categorized as “Update required,” “Performance issue,” and “Maintenance task” have closed at a 100% win rate across the dataset. These are existing-client, operational needs that convert predictably. Contrast that with training, backup, network, and installation requests, all of which have a 0% win rate in this sample. The team closes operational work but struggles with new-capability proposals.
4 priorities based on the findings above
A single opportunity making up 86% of active pipeline value is a concentration problem. Get a second contact involved on the client side. Confirm the decision timeline. Prepare a fallback forecast that assumes this deal slips by at least one quarter. If the deal requires executive sponsorship, make sure your sponsor is still engaged.
Five deal categories have a 0% win rate. That pattern is not random. Pull the rejection reasons for the €1.89M training request and the €580K backup request. Were these priced too high? Did the client go with a competitor? Was the proposal delivered too late? Understanding the root cause on your two largest losses will tell you more than any pipeline report can.
The deals you are winning (updates, maintenance, performance fixes) are existing-client operational work. Those close reliably, but they are capped by your current client base. To grow revenue, you need to improve the win rate on new-capability deals: training, backup, network infrastructure. Consider whether those proposals need different packaging, different pricing, or a different sales motion entirely.
No single deal should represent more than 30% of active pipeline value. That rule forces the team to keep prospecting even when a large deal is in play. Right now, removing the top deal drops the pipeline from €3.1M to €440K. A healthy pipeline would absorb that loss and still have a viable quarter.
Autotask PSA stores every sales opportunity with its stage, amount, probability, and owner. Proxuma Power BI connects to Autotask and builds a semantic model that makes this data queryable with DAX. The AI writes and executes the DAX queries, then formats the results into this report.
Win rate is the number of opportunities in “Getekend” stages (signed/won) divided by the total number of closed opportunities (won + lost). Active deals still in “Offerte verstuurd” or “Offerte maken” stages are excluded from the win rate calculation because they have not reached a final outcome yet.
“Offerte maken” means creating a quote (early pipeline). “Offerte verstuurd” means the quote has been sent to the client (active pipeline). “Getekend, verwerkt naar project” and “Getekend, verwerkt naar ticket” both mean signed and processed, with the difference being whether the work becomes a project or a service ticket. “Afgewezen” means rejected/lost.
The 50% probability is a default value in Autotask when reps do not update the probability field per deal. For more accurate weighted pipeline forecasting, train your sales team to update probability as deals progress through stages. A deal in “Offerte verstuurd” should carry a higher probability than one still in “Offerte maken.”
Yes. Connect Proxuma Power BI to your Autotask account, 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 data, and produces a report like this in under fifteen minutes.
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