A data-driven analysis of contract profitability from your Power BI environment, with breakdowns and actionable findings.
This report analyzes contract profitability using data from Autotask PSA.
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
A data-driven analysis of contract profitability from your Power BI environment, with breakdowns and actionable findings.
EVALUATE ROW(
"ProjectsTotal", DISTINCTCOUNT(BI_Autotask_Projects[project_id]),
"ProjectsWithRevenue",
CALCULATE(
DISTINCTCOUNT(BI_Autotask_Projects[project_id]),
FILTER(VALUES(BI_Autotask_Projects[project_id]), [Project Total Revenue] > 0)
),
"ProjectsUnprofitable",
CALCULATE(
DISTINCTCOUNT(BI_Autotask_Projects[project_id]),
FILTER(VALUES(BI_Autotask_Projects[project_id]), [Project Profit] < 0)
),
"TotalProjectRevenue", [Project Total Revenue],
"TotalProjectCost", [Project Total Cost],
"TotalProjectProfit", [Project Profit]
)
Distribution of contracts across types
| Project | Client | Revenue | Cost | Profit |
|---|---|---|---|---|
| Project Eye | Patterson, Riley and Lawson | €0 | €3,046 | –€3,046 |
| Project Today | Shaw-Ryan | €0 | €1,889 | –€1,889 |
| Project Price | Craig-Huynh | €0 | €775 | –€775 |
| Project Do | Little Group | €0 | €468 | –€468 |
| Project Quite | Little Group | €0 | €263 | –€263 |
| Project Camera | Fox, Conner and West | €0 | €118 | –€118 |
| Project Best | Marks PLC | €0 | €4 | –€4 |
EVALUATE
TOPN(8,
FILTER(
ADDCOLUMNS(
SUMMARIZECOLUMNS(
BI_Autotask_Projects[project_id],
BI_Autotask_Projects[project_name],
BI_Autotask_Projects[company_name],
"Revenue", [Project Total Revenue],
"Cost", [Project Total Cost],
"Profit", [Project Profit]
),
"Margin", DIVIDE([Profit], [Revenue])
),
[Profit] < 0
),
[Profit], ASC
)
ORDER BY [Profit] ASC
Revenue breakdown by company from billing data
| Project | Client | Revenue | Profit | Margin % |
|---|---|---|---|---|
| Project Environment | Lewis LLC | €227,918 | €101,632 | 44.6% |
| Project Along | Doyle-Contreras | €77,269 | €41,830 | 54.1% |
| Project Leave | Clements, Pham and Garcia | €59,583 | €32,284 | 54.2% |
| Project Somebody | Craig-Huynh | €88,995 | €26,485 | 29.8% |
| Project Though | Burke, Armstrong and Morgan | €49,122 | €23,392 | 47.6% |
| Project Number | Little Group | €42,903 | €22,601 | 52.7% |
| Project Feel | Wu-Jackson | €39,867 | €21,359 | 53.6% |
| Project Anyone | Ramos Group | €26,162 | €15,510 | 59.3% |
EVALUATE
TOPN(8,
FILTER(
ADDCOLUMNS(
SUMMARIZECOLUMNS(
BI_Autotask_Projects[project_id],
BI_Autotask_Projects[project_name],
BI_Autotask_Projects[company_name],
"Revenue", [Project Total Revenue],
"Cost", [Project Total Cost],
"Profit", [Project Profit]
),
"Margin", DIVIDE([Profit], [Revenue])
),
[Revenue] > 0
),
[Profit], DESC
)
ORDER BY [Profit] DESC
Monthly revenue trend over the observed period
| Project outcome | Count |
|---|---|
| Profitable (revenue > cost) | 207 |
| Loss-making (cost > revenue) | 7 |
| No billing yet (no rev, no cost) | 65 |
EVALUATE
ADDCOLUMNS(
{ "Profitable", "Breakeven (no rev)", "Active no billing" },
"Projects",
SWITCH([Value],
"Profitable",
CALCULATE(
DISTINCTCOUNT(BI_Autotask_Projects[project_id]),
FILTER(VALUES(BI_Autotask_Projects[project_id]), [Project Profit] > 0)
),
"Breakeven (no rev)",
CALCULATE(
DISTINCTCOUNT(BI_Autotask_Projects[project_id]),
FILTER(VALUES(BI_Autotask_Projects[project_id]), [Project Profit] < 0)
),
"Active no billing",
CALCULATE(
DISTINCTCOUNT(BI_Autotask_Projects[project_id]),
FILTER(VALUES(BI_Autotask_Projects[project_id]), [Project Total Revenue] = 0 && [Project Total Cost] = 0)
)
)
)
What the data is telling us
The data above paints a picture of contract profitability across your MSP operations. Look for patterns, outliers, and trends that warrant attention. Each section includes the DAX query used, so you can drill deeper into any metric that catches your eye.
Set up a weekly or monthly review of contract profitability metrics. Trends matter more than snapshots. Use the DAX queries in this report as your starting point.
This report uses demo data. Connect Proxuma Power BI to your own Autotask PSA to generate this analysis from your real numbers.
This report pulls data from PSA through the Proxuma Power BI integration, using DAX queries against the live data model.
The underlying Power BI dataset refreshes daily. Reports can be regenerated at any time for the latest figures.
Yes. Proxuma reports are fully customizable. You can modify the DAX queries, add new sections, or adjust the analysis to match your specific MSP needs.
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