Support Team ROI Calculator
Work out what your support team protects in revenue, on assumptions you can actually defend in the room.
CSAT drives the save rate below. A team customers trust keeps more of the accounts it talks to.
Want this properly evidenced, with your real ticket data, benchmarks and a board-ready summary?
Get in touch →The assumptions, in the open
Every support ROI number rests on assumptions. Most calculators hide them. These three are the ones that actually move the answer, so they are inputs. Change them to match your business and watch the number move.
Fully loaded cost multiplier
Salary alone understates what a person costs. This adds benefits, payroll tax, tooling licences and the share of management time they consume. 1.25× is a conservative middle; finance teams commonly use 1.2×–1.4×.
Tickets per customer per year
This is the one most calculators get wrong. The same customer raises several tickets a year, so counting tickets as if each were a different account inflates the result enormously. Dividing by this converts ticket volume into the number of real customers your team actually spoke to.
At-risk contact rate
Most contacts are routine and carry no churn risk at all. Only some put the relationship in play: billing disputes, cancellation intent, repeated failures, serious bugs. 10% is a defensible default for B2B SaaS; pull it from your own tags if you have them.
How the calculation works
Cost baseline
Headcount × salary × the loading multiplier gives the fully loaded annual cost of the team. This is the denominator of the ROI, and the number finance will recognise.
Customers, not tickets
Annual ticket volume is divided by tickets per customer to get the customers your team actually served. The at-risk rate then narrows that to the ones whose renewal was genuinely in question.
Save rate and value
CSAT sets how many of those at-risk customers your team keeps, from 20% at a CSAT of 50 up to 70% at 100. Those saves × lifetime value is the revenue protected. Divided by cost, that is the ROI.
tickets = agents × ticketsPerAgent × 12
customers = tickets ÷ ticketsPerCustomer
atRisk = customers × atRiskRate
saveRate = 0.20 + ((CSAT − 50) ÷ 50) × 0.50
protected = atRisk × saveRate × lifetimeValue
ROI = protected ÷ cost
Why most support ROI numbers fall apart
Every support leader gets asked to justify the team eventually. The usual answer comes out of a calculator that multiplies ticket volume by customer value by a churn percentage, produces something enormous, and then dies the first time a CFO looks at it properly.
The reason is nearly always the same. The model treats every ticket as a separate customer whose entire future revenue was rescued by one reply. A team handling thirty thousand tickets a year doesn't have thirty thousand customers on the brink. It has a few thousand customers, most of them asking routine questions, and a much smaller group whose relationship is genuinely at risk.
What a defensible model needs
Count customers instead of contacts, so the same account doesn't get counted five times over. Separate the contacts that were actually at risk from the ones that weren't, because resetting a password protects no revenue. Then tie the save rate to something you measure. CSAT is a flawed proxy, but it's a much better one than a number somebody picked because it sounded about right.
What you get out is a smaller figure, which is the whole idea. A 3x you can defend line by line is worth more in a budget conversation than a 13x that falls over the moment someone asks how you got there.
Using this with your own numbers
The three assumptions are the ones worth replacing with real data. Tickets per customer comes straight out of your helpdesk, unique requesters divided into total tickets. The at-risk rate comes from your tags, assuming your taxonomy is clean enough to trust. If it isn't, that's worth knowing on its own. The loading multiplier is a question for whoever owns the budget.
Treat what comes out as a directional argument rather than an audit. It should get you a serious conversation. It won't finish one.
Common questions
Why is the number lower than other support ROI calculators?
Because most of them multiply by ticket volume rather than customer count, which counts the same customer once for every time they write in. This one converts tickets into customers first, then narrows to the share whose renewal is actually at risk. You get a smaller number that's much harder to argue with.
What counts as an at-risk contact?
Billing disputes, cancellation or downgrade intent, repeated contacts about the same unresolved problem, serious bugs affecting daily use, and anything that's already been escalated. Routine how-to questions and password resets don't count, even though they're most of the queue.
Where does the save rate come from?
It scales with CSAT, from 20% at a CSAT of 50 up to 70% at 100. The assumption is that a team customers rate highly holds onto more of the accounts it talks to. That's a proxy rather than a measurement. If you already report save rates on your at-risk queue, use your own figure instead.
Can I use this to justify headcount?
It'll get you the meeting. Winning it takes the same model run against your real ticket data, with your own at-risk tagging, plus a comparison showing what happens to those numbers if the team doesn't grow.
Is any of this saved or sent anywhere?
No. Everything runs in your browser. Nothing is stored, transmitted or recorded, and there's no email form on this page.