
Picture a client who sends a flood of easy requests. Password resets, printer jams, "my Outlook is slow." Each one feels free because you price by contract, not by ticket. But every one of those requests consumed someone's paid hour, and you have never once asked what that hour cost you.
Here's the plain answer: divide your loaded service-desk payroll by the number of tickets your desk closed in the same month. If payroll runs $40,000 and 500 tickets closed, each ticket averaged $80. That's your baseline. It is not a unit price for pricing individual tickets, and it will not tell you what any single ticket actually cost. What it does is give you a number to hold every client against, and that number is the start of seeing who quietly loses you money.
Grab the Numbers You Already Have
You need two numbers, and you already own both. Ticket counts come from your PSA: export the closed tickets for last month, total, and then again grouped by client. Payroll comes from your bookkeeper: the total loaded cost of your service-desk staff, meaning salary plus taxes, benefits and any overhead you load onto labor. Exclude sales, admin and anyone else who does not work tickets, or the denominator gets padded and your cost per ticket comes out too low.
No new tooling, no new reporting. Thirty minutes of exports and one question to your bookkeeper, and you have everything the rest of this needs.
The Simple Formula and the One That Actually Helps
The company-wide number is your starting point. Say you run a five-person desk, loaded payroll is $40,000 a month, and 500 tickets closed. That is $80 per ticket across the whole book of business.
Now take that same $80 and multiply it by each client's ticket count. A client who opened 200 tickets last month cost you $16,000 in labor. Compare that to their monthly contract revenue, and you have their gross margin contribution, before any hardware, licensing or project costs get layered on.
This is where the number earns its keep. Not as a price for a single ticket, but as a ruler you can hold against every client you have.
Rank Your Clients by Gross Margin to Spot the Leak
Build a spreadsheet. One row per client, three columns: monthly contract revenue, ticket count times your cost per ticket, and the difference. Sort by that difference, lowest first, and look at the bottom of the list.
Say a client pays you $5,000 a month and opened 150 tickets. At $80 each, that is $12,000 of labor against $5,000 of revenue. Negative $7,000 a month. That is not a client, that is a leak you have been funding from the profitable ones.
One caveat before you start firing anyone: a single month of high ticket volume can brand a client unfairly. One bad month, one project that spiked the count, and a healthy client looks like a loss-maker. Confirm a negative margin over two consecutive months before you act on it. And keep one-time project or hardware revenue out of the monthly comparison, or a $40,000 server sale makes a loss-making client look golden for one month.
Before You Fire the Client, Check Your Own Workflow
A negative-margin client is a symptom, and the cause is not always the client. Before you reprice or offboard, look at whether your own desk is inflating the cost.
Pull the ticket log for that client and look at what happened to their tickets. Were any left untouched for days, unassigned? Were any parked in Waiting-on-Client while a tech kept spending time re-opening and chasing them? Those are workflow problems you control, not client behavior, and they inflate effort without producing a resolution.
My view: fix your side first. If a recurring password-reset request could be a self-service script, that is a cost your team can cut without touching the client relationship. Better documentation, a knowledge base that actually gets used, automation on the repeat stuff. None of that changes what the client pays, but it changes what they cost you.
What to Do With the Unprofitable Ones
If a client is still negative after two consecutive months, and you have cleaned up the internal bottlenecks, then it is time to talk about the relationship. Not offboard yet, talk.
Start with scope. What does the contract actually promise, and what is the client actually using? If their users need constant hand-holding on things a documented fix would solve, a higher-priced tier that matches the service level they consume is a fair conversation, not a betrayal.
If the ticket volume is structural, if their environment or their users genuinely require the hours they consume, then the price has to reflect it or the relationship is a donation. Renegotiate the tier, reduce the scope to what they pay for, or, if neither is possible, offboard them cleanly. A client who loses you money every month is not a client, they are a liability, and keeping them funded by your profitable accounts is a decision you are making every month without meaning to.
Monday's first step is simple: pull last month's ticket counts and loaded payroll, build the spreadsheet, and rank your clients. You will find out in half an hour who is paying for the rest of the book.
mspoutpost.com/articles/what-one-ticket-really-costs-you-and-how-to-find-out-in-30-minutes
Written by Graham Whitfield
MSP Outpost publishes information, not legal, financial, insurance, tax or compliance advice, and reading it creates no professional relationship. For decisions about your business, talk to a qualified professional.


