I've looked at a lot of MSP dashboards. The typical setup shows ticket count, average resolution time, maybe an SLA compliance percentage, and a graph of tickets opened vs. closed over time. It looks professional. It fills a screen. And it tells you almost nothing useful about the health of your business.
Ticket count doesn't tell you whether those tickets were profitable. Resolution time doesn't tell you whether the tech who closed them was working efficiently or just rushing to clear the queue. SLA compliance doesn't tell you whether your SLA targets are appropriately set or just easy to hit.
Here are the reports I actually build for MSPs — the ones that change how they make decisions.
Revenue per endpoint per client
This is the number that tells you whether your pricing matches your service delivery reality. Take each client's total monthly revenue (agreements + project + hourly) and divide by their total managed endpoints.
The number itself isn't as important as the variance across your client base. If Client A generates $45/endpoint/month and Client B generates $22/endpoint/month, you need to understand why. Are they on different agreement structures? Is Client B getting the same service at a lower rate because the agreement was never updated? Is Client A's environment legitimately more complex?
This report usually surfaces 2–3 clients where the per-endpoint revenue is dramatically lower than the rest — and those are the conversations that lead to agreement renegotiation.
Effective hourly rate by client
Similar concept, different angle. Take the total revenue from each client in a given month and divide by the total labor hours your team spent on that client — including agreement-covered time.
If your target effective rate is $150/hour and a client's effective rate is $75/hour, you're delivering twice the labor value for the same revenue. That client is unprofitable, regardless of what the top-line revenue looks like.
This metric requires accurate time tracking. Every minute needs to be logged against the right client, the right ticket, with the right work type. If your time entry discipline is sloppy, this report will be unreliable — and that's actually useful information too, because it tells you time tracking needs to be fixed before you can trust any profitability data.
Technician utilization (real utilization, not the vanity version)
Utilization is one of the most misunderstood metrics in MSP operations. A lot of shops calculate it as "hours logged / hours available" and call it a day. That number is useful but incomplete.
What I build is a three-layer view:
Total utilization: Hours logged / available hours. This tells you whether the tech is busy.
Billable utilization: Billable hours / available hours. This tells you whether the tech's time is generating revenue.
Effective utilization: (Billable hours × effective rate) / (available hours × target rate). This tells you whether the tech's time is generating revenue at the right margin.
A tech with 90% total utilization but 40% billable utilization is very busy doing work that doesn't generate revenue. That's an operational problem — either too much internal work, too much agreement-covered work that should be bounded, or too much time on admin tasks that should be automated.
The target for billable utilization at most MSPs is 65–75%. If you're below that, look at where the non-billable time is going. If you're above that, your team might be skipping internal work, cutting corners on documentation, or heading toward burnout.
SLA compliance with breach analysis
Raw SLA compliance percentage is a vanity metric. "We hit 96% SLA compliance this month" sounds good until you realize the 4% that breached were all from your largest client, and they're about to bring it up in the QBR.
The useful version of this report breaks SLA compliance down by: client (who's experiencing the most breaches?), priority level (are you failing on critical tickets or low-priority ones?), time of day (are breaches happening during business hours or after hours?), and root cause (was it a staffing gap, a routing failure, or a genuinely complex issue?).
Trend the data monthly. A steady 95% compliance is fine. A 95% that dropped from 98% over the past quarter is a leading indicator of a staffing or process problem.
Agreement coverage ratio
For every managed client, you should know: what percentage of total ticket volume falls within the agreement coverage, and what percentage is out-of-scope billable work?
If a client's agreement covers "standard break/fix support" and 90% of their tickets are within scope, the agreement is working correctly. If only 60% of their tickets are within scope, either the agreement definition is too narrow (and you should restructure it) or the client's needs have evolved beyond what the agreement was designed for (and you should renegotiate).
This report catches two problems: clients who are under-covered (you're doing work you're not billing for because the scope is ambiguous) and clients who are over-covered (you're including services in the agreement that should be billed separately because they require specialized or project-level work).
Stale ticket aging report
Forget average resolution time. Show me the tickets that have been open for more than 5 business days and what's blocking them.
This report should surface every open ticket older than your target SLA resolution time, grouped by: assigned tech, status (is it in progress or waiting on something?), and last activity date. If a ticket has been open for two weeks and the last note was entered eight days ago, that ticket is abandoned — it's just that nobody noticed because it's not showing up on anyone's daily queue.
Run this report weekly. Review it in your service manager standup. Make sure every stale ticket has a documented reason for being open and a next action with a date.
How to build these
Both ConnectWise and HaloPSA can produce all of these reports, though the path differs.
In ConnectWise, the built-in Report Writer handles the basics but complex calculations (like effective hourly rate) usually require BrightGauge or Power BI with a data warehouse connection. ConnectWise's reporting is one of its weakest areas and most shops outgrow it quickly.
In HaloPSA, NHServer reporting is more capable out of the box, and the improving dashboard system handles more of these metrics natively. For advanced analysis, the same BI tools apply.
The key is building the reports once, automating the refresh, and actually looking at them weekly. A dashboard nobody reviews is worse than no dashboard at all — it creates the illusion of data-driven management without the substance.
Need help building reporting that actually matters? Book a call and I'll walk you through what's possible with your platform.
Cory Neese
Founder & PSA Consultant at PaxRig
Cory helps MSPs get more out of their ConnectWise and HaloPSA platforms through expert configuration, migration, and automation. He founded PaxRig to bring enterprise-level PSA expertise to the MSP channel.