“Client Profitability Analysis: Which Clients Cost More Than They Pay?”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Client Profitability Analysis: Which Clients Cost More Than They Pay?

Revenue, cost, profit, and margin per client. One client is running at a loss. 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

Client Profitability Analysis: Which Clients Cost More Than They Pay?

Revenue, cost, profit, and margin per client. One client is running at a loss. 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

Time saved
Building financial reports from PSA exports and spreadsheets is a full day of work. This report delivers it in minutes.
Margin visibility
Revenue numbers alone do not tell the story. This report connects revenue to cost for true profitability.
Pricing intelligence
Data-driven evidence for pricing adjustments, contract negotiations, and resource allocation.
Report categoryFinancial & Revenue
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
AudienceMSP owners, finance leads
Where to find this in Proxuma
Power BI › Financial › Client Profitability Analysis: Which ...
What you can measure in this report
Summary Metrics
Client Profitability — All Clients Ranked by Margin
Deep Dive: Garcia LLC
Margin Distribution Across the Portfolio
Revenue vs Cost — Top 10 Clients
Key Findings
Recommendations
Frequently Asked Questions
UNPROFITABLE CLIENTS
TOTAL LOSS
AVG PORTFOLIO MARGIN
CLIENTS ANALYZED
AI-Generated Power BI Report
Client Profitability Analysis:
Which Clients Cost More Than They Pay?

Revenue, cost, profit, and margin per client. One client is running at a loss. 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
UNPROFITABLE CLIENTS
1
Garcia LLC — negative margin
TOTAL LOSS
€55,879
Cost exceeds revenue by this amount
AVG PORTFOLIO MARGIN
55.6%
Healthy across profitable clients
CLIENTS ANALYZED
10
Top 10 by revenue
View DAX Query — Summary Metrics
EVALUATE
ROW(
    "UnprofitableClients",
        COUNTROWS(
            FILTER(
                ADDCOLUMNS(
                    VALUES('BI_Autotask_Companies'[company_name]),
                    "Profit", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
                             - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost]))
                ),
                [Profit] < 0
            )
        ),
    "TotalLoss",
        SUMX(
            FILTER(
                ADDCOLUMNS(
                    VALUES('BI_Autotask_Companies'[company_name]),
                    "Profit", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
                             - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost]))
                ),
                [Profit] < 0
            ),
            [Profit]
        ),
    "AvgMargin",
        DIVIDE(
            SUM('BI_Autotask_Billing_Items'[total_amount])
            - SUM('BI_Autotask_Billing_Items'[our_cost]),
            SUM('BI_Autotask_Billing_Items'[total_amount])
        )
)
What are these DAX queries? DAX (Data Analysis Expressions) is the formula language used by Power BI to query data. Each “View DAX Query” section shows the exact query the AI wrote and executed. You can copy any query and run it in Power BI Desktop against your own dataset.
2.0 Client Profitability — All Clients Ranked by Margin

The unprofitable client is highlighted in red at the top. All other clients sorted by margin percentage, lowest first.

MetricValue
Revenue$6,697,517
Cost$2,573,783
Margin61.6%
Companies160
View DAX Query — Client Profitability (Ranked)
EVALUATE ROW("TotalChargesRevenue", SUM('BI_Autotask_Charges'[billable_amount]), "TotalChargesCost", SUM('BI_Autotask_Charges'[extended_cost]), "GrossMargin", (SUM('BI_Autotask_Charges'[billable_amount]) - SUM('BI_Autotask_Charges'[extended_cost])) / SUM('BI_Autotask_Charges'[billable_amount]), "Companies", DISTINCTCOUNT('BI_Autotask_Charges'[company_id]))
3.0 Deep Dive: Garcia LLC

The only client where internal costs exceed billed revenue

Garcia LLC — Loss of €55,879

€589,694
Revenue billed
€645,574
Internal cost
-9.5%
Margin
1,317
Total tickets
670
Worked hours
€963
Cost per hour worked

Garcia LLC generated nearly €590K in revenue, placing them 5th in the portfolio by billing volume. That is not a small account. The problem is on the cost side: €645,574 in internal labor and resource costs, which is €55,879 more than the client pays.

With 1,317 tickets and 670 worked hours, Garcia LLC demands significant service desk time. The effective cost per worked hour is €963, which suggests the cost figure includes more than just technician time. It likely factors in tool licensing, overhead allocation, and possibly subcontracted work that eats into the margin.

For comparison, the portfolio average margin sits at 55.6%. Garcia LLC runs at -9.5%. Every euro of revenue from this client costs €1.09 to deliver.

View DAX Query — Garcia LLC Detail
EVALUATE
CALCULATETABLE(
    ROW(
        "Revenue", SUM('BI_Autotask_Billing_Items'[total_amount]),
        "Cost", SUM('BI_Autotask_Billing_Items'[our_cost]),
        "Profit", SUM('BI_Autotask_Billing_Items'[total_amount])
                  - SUM('BI_Autotask_Billing_Items'[our_cost]),
        "Tickets", COUNTROWS('BI_Autotask_Tickets'),
        "WorkedHours", SUM('BI_Autotask_Tickets'[worked_hours])
    ),
    'BI_Autotask_Companies'[company_name] = "Garcia LLC"
)
4.0 Margin Distribution Across the Portfolio

How many clients fall into each margin band

Below 0%
1
Garcia LLC
50% – 55%
4 clients
55% – 60%
3 clients
60% – 70%
2 clients

Nine out of ten clients operate above 50% margin. The distribution clusters between 50% and 60%, which is typical for managed services contracts. Two clients exceed 60%: Richards Burke Fowler at 67.4% and Hernandez Ltd at 61.0%. Only one client falls below zero.

View DAX Query — Margin Distribution
EVALUATE
ADDCOLUMNS(
    VALUES('BI_Autotask_Companies'[company_name]),
    "Revenue", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount])),
    "Cost", CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
    "MarginPct",
        DIVIDE(
            CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
            - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
            CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
        )
)
ORDER BY [MarginPct] ASC
5.0 Revenue vs Cost — Top 10 Clients

Side-by-side comparison. When the red bar (cost) exceeds the teal bar (revenue), the client is unprofitable.

Patterson Hood Perez
€2.32M
€1.01M
Martin Group
€2.21M
€894K
Foster Inc
€1.43M
€603K
Hernandez Ltd
€637K
€248K
Garcia LLC ⚠
€590K
€646K
Wall PLC
€477K
€214K
Edwards Hall Hernandez
€470K
€224K
Nelson Taylor Hicks
€416K
€207K
Richards Burke Fowler
€328K
€107K
Martinez Contreras Rios
€321K
€141K
Revenue Cost
View DAX Query — Revenue vs Cost per Client
EVALUATE
TOPN(
    20,
    ADDCOLUMNS(
        VALUES('BI_Autotask_Companies'[company_name]),
        "Revenue", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount])),
        "Cost", CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
        "Profit", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
                  - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
        "Tickets", CALCULATE(COUNTROWS('BI_Autotask_Tickets')),
        "WorkedHours", CALCULATE(SUM('BI_Autotask_Tickets'[worked_hours]))
    ),
    [Revenue], DESC
)
6.0 Key Findings
!

Garcia LLC is the only unprofitable client

With a -9.5% margin, Garcia LLC costs €1.09 for every €1.00 in revenue. The loss totals €55,879. Their 1,317 tickets and 670 worked hours indicate heavy service consumption that the current contract does not cover.

!

Two clients sit below 53% margin

Nelson Taylor Hicks (50.3%) and Edwards Hall Hernandez (52.2%) are profitable but their margins are below the portfolio average of 55.6%. A spike in ticket volume could push them toward unprofitability.

Richards Burke Fowler is the most efficient client

At 67.4% margin, Richards Burke Fowler generates €221,073 in profit from €328,165 in revenue. Low cost-to-serve and healthy billing make this account a model for what good contract structures look like.

Top two clients carry the portfolio

Patterson Hood Perez (€1.31M profit) and Martin Group (€1.32M profit) together account for more than half of total portfolio profit. That concentration is worth monitoring.

View DAX Query — Findings Data
EVALUATE
TOPN(
    20,
    ADDCOLUMNS(
        VALUES('BI_Autotask_Companies'[company_name]),
        "Revenue", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount])),
        "Cost", CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
        "Profit", CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
                  - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
        "MarginPct", DIVIDE(
            CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
            - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
            CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
        )
    ),
    [Revenue], DESC
)
7.0 Recommendations

1. Audit the Garcia LLC contract immediately. Pull the agreement and compare contracted hours, included services, and billing rates against actual consumption. A 1,317-ticket volume with 670 worked hours at a -9.5% margin means the contract was either under-priced at signing or the scope has expanded without a matching rate increase.

2. Renegotiate or restructure. Options include raising the monthly recurring rate, moving to a per-device or per-user pricing model, capping included hours with overage billing, or reducing the scope of services covered under the agreement. Present the data. The numbers speak for themselves.

3. Monitor the two borderline clients. Nelson Taylor Hicks and Edwards Hall Hernandez sit at 50.3% and 52.2% margin. Set up a monthly margin alert in Power BI. If either drops below 48% for two consecutive months, trigger a contract review.

4. Protect the high-margin accounts. Richards Burke Fowler (67.4%) and Hernandez Ltd (61.0%) are efficient and profitable. Assign dedicated account management, prioritize their renewals, and use them as reference accounts for similar prospects.

5. Address portfolio concentration risk. Patterson Hood Perez and Martin Group represent over 50% of total profit. Losing either would have a material impact. Diversify by growing mid-tier accounts like Wall PLC and Martinez Contreras Rios.

View DAX Query — Recommendation Thresholds
-- Clients below 53% margin (watch list)
EVALUATE
FILTER(
    ADDCOLUMNS(
        VALUES('BI_Autotask_Companies'[company_name]),
        "MarginPct", DIVIDE(
            CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
            - CALCULATE(SUM('BI_Autotask_Billing_Items'[our_cost])),
            CALCULATE(SUM('BI_Autotask_Billing_Items'[total_amount]))
        )
    ),
    [MarginPct] < 0.53
)
8.0 Frequently Asked Questions
Where does the cost data come from?

The our_cost field in Autotask billing items represents the internal cost of delivering a service. It typically includes technician labor rates, tool licensing allocated per client, and any third-party costs passed through the billing system. Proxuma Power BI pulls this field directly from the Autotask API.

How is margin calculated?

Margin = (Revenue - Cost) / Revenue, expressed as a percentage. A client with €100,000 in revenue and €45,000 in cost has a 55% margin. A negative margin means cost exceeds revenue.

What margin should an MSP target per client?

Industry benchmarks for managed services margins range from 50% to 65%. Below 50% warrants investigation. Below 40% typically means the contract is under-priced or the client consumes more resources than scoped. Above 65% is strong performance.

Does this include all revenue types?

The query sums all billing items (total_amount) per company. This includes recurring managed services revenue, time-and-materials billing, project billing, and product resale. If your Autotask instance categorizes billing items differently, the numbers will reflect whatever is in your billing items table.

Can I run this against my own data?

Yes. Connect Proxuma Power BI to your Autotask PSA, add an AI tool via MCP, and ask the same question. The AI writes the DAX queries, runs them against your real billing 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