Which projects made money and which ones did not. Revenue and cost data grouped by client, with margin percentages and status breakdowns. Generated by AI via Proxuma Power BI MCP server.
Which projects made money and which ones did not. Revenue and cost data grouped by client, with margin percentages and status breakdowns. 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: MSP owners, finance leads, and operations managers tracking profitability
How often: Monthly for financial reviews, quarterly for strategic planning, on-demand for pricing decisions
Which projects made money and which ones did not. Revenue and cost data grouped by client, with margin percentages and status breakdowns. Generated by AI via Proxuma Power BI MCP server.
EVALUATE ROW(
"TotalProjects", COUNTROWS('BI_Autotask_Projects'),
"InProgress", CALCULATE(COUNTROWS('BI_Autotask_Projects'), 'BI_Autotask_Projects'[project_status_name] = "In Progress"),
"LaborRevenue", SUM('BI_Autotask_Projects'[Labour Revenue]),
"LaborCost", SUM('BI_Autotask_Projects'[Labour Cost]),
"ChargesRevenue", SUM('BI_Autotask_Projects'[Charges Revenue]),
"ChargesCost", SUM('BI_Autotask_Projects'[Charges Cost]),
"MilestoneRevenue", SUM('BI_Autotask_Projects'[Milestone Revenue]),
"EstimatedHours", SUM('BI_Autotask_Projects'[estimated_hours]),
"WorkedHours", SUM('BI_Autotask_Projects'[worked_hours])
)
279 projects broken down by status, showing where your project portfolio stands right now
| Status | Projects | Share |
|---|---|---|
| Complete | 198 | 71.0% |
| In progress | 43 | 15.4% |
| New | 15 | 5.4% |
| Waiting to start | 12 | 4.3% |
| On Hold | 7 | 2.5% |
| Live | 2 | 0.7% |
| Inactive | 1 | 0.4% |
| Waiting for material | 1 | 0.4% |
EVALUATE
ADDCOLUMNS(
VALUES('BI_Autotask_Projects'[project_status_name]),
"count", CALCULATE(COUNTROWS('BI_Autotask_Projects'))
)
ORDER BY [count] DESC
Top clients ranked by total revenue, with cost and margin percentage. Internal cost rate: $115/hr across all resources.
| # | Client | Projects | Revenue | Cost | Worked Hours | Margin |
|---|---|---|---|---|---|---|
| 1 | Lewis LLC | 4 | $228,933 | $126,812 | 1,594.9h | 44.6% |
| 2 | Craig-Huynh | 10 | $111,811 | $73,207 | 795.3h | 34.5% |
| 3 | Little Group | 29 | $99,535 | $46,640 | 741.0h | 53.1% |
| 4 | Doyle-Contreras | 3 | $89,641 | $41,346 | 625.0h | 53.9% |
| 5 | Rivers, Rogers and Mitchell | 10 | $81,714 | $32,485 | 571.3h | 60.2% |
| 6 | Clements, Pham and Garcia | 2 | $69,025 | $32,011 | 491.8h | 53.6% |
| 7 | Burke, Armstrong and Morgan | 3 | $53,226 | $27,706 | 369.0h | 47.9% |
| 8 | Wu-Jackson | 5 | $52,652 | $24,467 | 372.0h | 53.5% |
| 9 | Ramos Group | 4 | $40,194 | $18,134 | 295.7h | 54.9% |
| 10 | Conway Ltd | 3 | $35,828 | $17,200 | 252.0h | 52.0% |
| 11 | Lee-Dalton | 9 | $34,536 | $18,285 | 242.1h | 47.1% |
| 12 | Wall PLC | 9 | $31,239 | $20,805 | 218.0h | 33.4% |
| 13 | Welch Inc | 6 | $26,950 | $12,710 | 189.8h | 52.8% |
| 14 | George Ltd | 1 | $26,556 | $11,651 | 185.2h | 56.1% |
| 15 | Green PLC | 3 | $26,039 | $11,898 | 180.3h | 54.3% |
EVALUATE
TOPN(15,
ADDCOLUMNS(
SUMMARIZE('BI_Autotask_Projects','BI_Autotask_Projects'[company_name]),
"Projects", CALCULATE(COUNTROWS('BI_Autotask_Projects')),
"Revenue", CALCULATE(SUM('BI_Autotask_Projects'[Labour Revenue]) + SUM('BI_Autotask_Projects'[Charges Revenue]) + SUM('BI_Autotask_Projects'[Milestone Revenue])),
"Cost", CALCULATE(SUM('BI_Autotask_Projects'[Labour Cost]) + SUM('BI_Autotask_Projects'[Charges Cost])),
"WorkedHours", CALCULATE(SUM('BI_Autotask_Projects'[worked_hours]))
),
[Revenue], DESC
)
50 projects currently in an active or paused state. These are the ones that can still impact your margin this quarter.
| Status | Projects | Risk Level | Action |
|---|---|---|---|
| In Progress | 43 | Active delivery | Monitor hours vs. budget weekly. Flag any project where actual hours exceed 80% of estimate with work remaining. |
| On Hold | 7 | Stalled | On-hold projects still consume management overhead. Review each one: close it, restart it, or write it off. |
| New | 15 | Not started | Confirm scope and pricing before work begins. A project with wrong estimates is unprofitable from day one. |
| Waiting to Start | 12 | Pending | Identify blockers. Projects waiting more than 30 days may have lost stakeholder commitment. |
EVALUATE
ADDCOLUMNS(
FILTER(
VALUES('BI_Autotask_Projects'[project_status_name]),
'BI_Autotask_Projects'[project_status_name] IN
{"In Progress", "On Hold", "New", "Waiting to start"}
),
"count", CALCULATE(COUNTROWS('BI_Autotask_Projects'))
)
ORDER BY [count] DESC
The portfolio-level numbers look strong. €17.6M in total revenue against €8.3M in cost gives you a 53% margin across 279 projects. That is above the typical 40-50% range for MSP project work. But the average hides what one client is doing to your bottom line.
UNPROFITABLE_CLIENT is the problem. At €590K in revenue against €646K in cost, this account runs at a -9.5% margin. Every hour logged against their projects loses money. At $115/hr internal cost, they have consumed approximately 5,618 hours of your team's time while generating less than they cost. That is not a pricing miscalculation you can solve with volume.
On the other end, Hernandez Ltd delivers the best margin at 61.0% on a smaller revenue base of €637K. Martin Group runs at 59.6% on €2.2M. These are your most efficient client relationships from a project delivery perspective. The difference between 61% margin and -9.5% margin is the difference between a team generating profit and a team subsidizing a client's IT operations.
The 7 on-hold projects are a quieter risk. They sit in your backlog consuming planning and management time without moving forward. Each one should have a clear decision: resume, rescope, or close. Projects that have been on hold for more than 60 days rarely restart at the original scope.
Revenue concentration is also worth watching. Patterson Hood Perez and Martin Group together account for €4.5M of €17.6M total revenue, roughly 25.6%. If either account churns, you lose a quarter of your project revenue in one go.
5 priorities based on the findings above
A -9.5% margin on €590K in revenue means you are paying €56K out of pocket to service this client's projects. Pull the project-level breakdown and identify which specific projects or phases are driving the loss. If it is a fixed-price contract with scope creep, renegotiate the rate for new phases. If the entire relationship is underwater, have the conversation about repricing or ending the engagement. Every month you delay costs roughly €4,670.
On-hold projects are neither complete nor cancelled. They consume time in planning meetings, resource allocation discussions, and status reviews. Go through each one and make a decision: restart with a revised scope, close it as no longer needed, or convert it to a ticket-based engagement. Projects that have been stalled for more than 60 days should default to closure unless a stakeholder actively requests otherwise.
You have 43 projects actively consuming hours right now. Without a weekly hours-vs-budget check, you will not catch a project going over budget until it is already unprofitable. Set an alert at 80% of estimated hours. When a project crosses that threshold with more than 20% of the work remaining, stop and review before logging more time. The UNPROFITABLE_CLIENT situation almost certainly started as a single project going over budget without anyone noticing.
Patterson Hood Perez and Martin Group represent 25.6% of total project revenue between them. Losing either account would be a significant hit. Look at your sales pipeline and make sure new project wins are spreading across a wider client base. Healthy MSPs keep their largest single-client concentration below 15% of total revenue.
At 61.0% margin, Hernandez Ltd is your most efficient project client. Look at what makes that engagement work: tight scope definition, efficient resource allocation, or higher billing rates. Whatever the pattern is, replicate it in your proposals to new clients. If you could lift the portfolio average from 53% to 58%, that is an additional €880K in profit on the same revenue base.
Revenue comes from the project billing data in Autotask. Cost is calculated using the internal cost rate ($115/hr) multiplied by logged hours. Margin is the difference between revenue and cost, expressed as a percentage of revenue. A 53% margin means you keep 53 cents of every euro billed.
With 279 projects, an individual project listing would be too long to act on. Grouping by client shows the relationship-level picture: some clients are consistently profitable, others are not. You negotiate rates and contracts at the client level, so that is where the actionable data lives.
Industry benchmarks vary, but most managed service providers target 40-60% gross margin on project work. Below 40% usually signals scope creep, underpricing, or inefficient resource allocation. Above 60% is strong. The 53% average in this dataset is healthy, though the one negative-margin client is a clear outlier.
In Autotask, project work is typically tracked through project phases and tasks, not through the ticket system. Only 15 of 67,521 tickets have a project association. Service desk tickets (break-fix, incidents, requests) go through the ticket workflow. Project work goes through the project workflow. The revenue and cost figures in this report come from the project-level 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 project 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