GUIDE

The 5 customer service metrics a founder needs

Five customer service metrics to watch when you answer support yourself, with the formulas, a spreadsheet to get them and what to do when one looks bad.

By the Deacon team

Published

If you answer support yourself, five customer service metrics tell you nearly everything. First response time is how long customers wait for your first reply. The contact rate, your ticket volume for every 100 customers, says whether support is growing faster than the business. The top reasons for contact say what to fix, first contact resolution says how often one reply settles it, and the backlog is who is still waiting on you.

Deacon is an AI customer support agent for founders who answer support themselves. It answers your customers on your site in seconds, from your own docs, and its dashboard counts what they asked and who still needs you. It has a free plan.

Most lists of customer service metrics run from 7 to 17 of them, because they’re written for a support manager with a team, a helpdesk and a survey tool, and most of those numbers can wait until you hire. These five come out of your inbox and one spreadsheet, with the formulas below to copy.

The benchmarks below come from Freshworks’ 2025 report on its own customers and from Jeff Toister’s 2020 survey, and the Gmail and Google Sheets details from Google’s own help pages. All of them were read on 10 November 2026.

The five metrics at a glance

A conversation here is one email thread or chat that a customer starts. Each row is worked through below with one month at a small scheduling app, which had 300 paying customers in October 2026.

First response time

Formula
Your first reply’s time minus the time the message arrived, as the month’s median, in calendar hours
Look at it
Weekly
When it’s bad
Check when the longest waits arrived. Nights and weekends need an answer customers can get without you

Contact rate

Formula
Conversations started ÷ active customers × 100
Look at it
Monthly
When it’s bad
Sort the month by reason and find the one that grew

Top reasons for contact

Formula
Conversations about one reason ÷ all conversations × 100
Look at it
Monthly
When it’s bad
Fix the top reason where it starts, in the product, on the page people got stuck on or in a written answer

First contact resolution

Formula
Conversations settled by your first reply ÷ all conversations × 100
Look at it
Monthly
When it’s bad
Read the ones that took three replies or more, and ask up front for whatever you had to ask for

Backlog

Formula
Conversations not yet solved, with the age of the oldest
Look at it
Every day you do support
When it’s bad
Close what’s finished, chase what waits on the customer, and reply today to anything a week old

First response time, in calendar hours

First response time = time of your first reply − time the customer’s message arrived

Take the median, the middle wait once the month’s waits are sorted, so one weekend email doesn’t swamp the month. Beside it, take the 90th percentile, the wait that nine in ten customers stay under, because it shows how long your slowest replies took. Count calendar hours, nights and weekends included, since that’s how long the customer waited.

In October the app’s founder replied to all 72 conversations. Sorted, the middle wait was 2 hours 10 minutes. The 90th percentile came to 14 hours, and the 7 longest waits all arrived after 18:00 or at the weekend.

For email, an hour is the mark to beat. In Freshworks’ Customer Service Benchmark Report 2025, which covers more than 32,000 companies on its products in 2024, the median first response time for tickets was 1 hour, and the fastest fifth of companies managed 3 minutes 10 seconds. Companies of up to 250 employees had a median of 1 hour 3 minutes, and on chat the median was 41 seconds. In Toister’s survey of more than 3,200 people in March 2020, a reply within an hour met the expectations of 88% of them.

You fix each of the two numbers differently. A slow median means you check support too rarely, so pick two set times a day and keep to them. A fine median with a long 90th percentile means the waits are the hours you’re asleep or away. Those customers need an answer that doesn’t depend on you, from a help page they can find or an AI support agent that answers from it. A two-line “I’m on it” lowers the number without answering anything, so read first contact resolution beside it.

Contact rate, or ticket volume per 100 customers

Volume goes up as you grow, and that’s fine. The contact rate tells you whether each customer needs you more often than before.

Ticket volume = conversations customers started in the month

Contact rate = conversations started ÷ active customers × 100

In September the app had 280 customers and 56 conversations, a contact rate of 20. In October it had 300 customers and 72 conversations, a rate of 24. Customers grew by 7% and conversations by 29%, so something in October made people need help more often.

For active customers, use paying customers at the end of the month from your billing tool, or for a free product, the people who logged in that month. Pick one and keep it, and compare the rate with your own earlier months, since how often people need help depends on what you sell. A rising rate almost always comes from one new reason, often after a release or a pricing change, and you find it with the next metric.

Top reasons for contact

This one is a list with counts rather than a single number, and you read it to decide what to change. Tag each conversation with one reason as you reply, from a short list you keep under ten. Sorting messages by kind and urgency is called ticket triage, and you only need to write down the kind.

Reason share = conversations about one reason ÷ all conversations × 100

These are the app’s last two months.

Calendar sync stopped

September
3
October
18

Invoices and billing

September
11
October
12

Adding a teammate

September
8
October
9

Other bugs

September
9
October
8

Feature asks

September
6
October
6

One-offs

September
19
October
19

Calendar sync was 25% of October, and it went from 3 conversations to 18, which is 15 of the 16 extra. Without those 15, October’s contact rate would have been 19, slightly better than September’s.

Each kind of reason has its own fix. A bug needs fixing, and a how-to needs its answer on the page where people get stuck. A run of billing questions usually means an invoice or the plan page is unclear, and feature asks go on a list with a count beside each. How to reduce support tickets goes through the fix for each kind, and customer insights covers what each kind of question tells you about the product.

First contact resolution

First contact resolution = conversations settled by your first reply ÷ all conversations × 100

Count a conversation as settled when the customer didn’t write again about the same thing within 7 days. That means October’s figure is ready in the second week of November.

In October, 41 of the app’s 72 conversations were settled by one reply, so first contact resolution was 57%. Of the other 31, 11 needed a second message only because the founder’s first reply had to ask which calendar the customer used.

Far fewer emails than chats are settled in one reply. At the median company in Freshworks’ report, 18% of tickets were resolved in the first interaction, and 38% at the top fifth, against 83% of chat conversations at the median. Helpdesks also count it in different ways, so compare yours with your own last few months.

To raise it, read the conversations that took three replies or more. If your first reply asked for something, such as the account email, a screenshot or the browser, ask for it before they write, with a field on your contact form or a line in your auto-reply. For the app that’s one question on the form, “Which calendar do you use?”, and it would have saved 11 replies in October. If your first reply answered the wrong question, your next one should start by asking what they’re trying to do.

Backlog and the oldest open conversation

The backlog is a count at one moment, every conversation not yet solved, including the ones waiting on the customer. Note the age of the oldest as well as the count, because a small count can include one customer who has waited three weeks.

Backlog = conversations not yet solved, right now

Average backlog = new conversations a day × average days each stays open

Days to clear it = backlog ÷ (conversations solved a day − new conversations a day)

At 18:00 on Saturday 31 October the app had 9 conversations open, 4 waiting on the customer and 5 on the founder. The oldest, a sync bug waiting on a fix, had been open 12 days. Nine is about what you’d expect from October’s pace. About 2.3 new conversations arrived a day and each stayed open about 4 days, and 2.3 × 4 is about 9. Solving 3 a day would clear it in just under 13 days, since 9 ÷ (3 − 2.3) is 12.9.

A backlog that grows week on week means fewer conversations get solved than arrive. One hard week clears it for a while, and it grows back unless fewer arrive or each one takes you less time. Close what’s finished, chase anything waiting on the customer once a week, and answer by question, so one written reply clears every conversation that asks it. Anything open longer than a week gets a reply today, even if it only says the fix isn’t out yet.

Try Deacon for free

Install Deacon

Getting all five from Gmail and a spreadsheet

You don’t need a helpdesk for any of this. The volume and the backlog come from Gmail searches, and the rest from one spreadsheet with a row per conversation. Adding a row as you send each first reply takes under a minute, and once the formulas are in, reading them on a Monday takes about ten minutes.

The Gmail searches

Gmail’s search operators do the counting if customers write to one address, such as support@. Put your own address and dates in.

Last month’s volume

Search
to:support@yourdomain.com after:2026/10/01 before:2026/11/01

Open now

Search
to:support@yourdomain.com -label:solved

Open, and arrived more than 3 days ago

Search
to:support@yourdomain.com -label:solved older_than:3d

For the last two, give each thread a Solved label when you finish it, and take the label off if the customer writes back. If customers write to your own address, give their threads a Support label and search label:support in place of the to: part.

The spreadsheet

Keep one tab a month in Google Sheets, with these headers in row 1 and one row per conversation. If customers also reach you through a chat on your site, their chats go in as rows too, so the sheet holds everything.

A, Arrived

What goes in it
The date and time the customer’s first message arrived

B, Customer

What goes in it
Their email address

C, Reason

What goes in it
One reason from your short list

D, First reply

What goes in it
The date and time of your first reply

E, Replies

What goes in it
How many replies it took you to settle it

F, Solved

What goes in it
The date you solved it, left blank while it’s open

G, Back within 7 days

What goes in it
Yes or No, filled in a week after you solve it

H, Wait in hours

What goes in it
=IF(D2="","",(D2-A2)*24), copied down the column

Then put these formulas anywhere to the right, leaving room under the reasons formula, which fills the cells below and beside it. Every function in them is in Google Sheets’ function list, and QUERY is the one that sorts the reasons. Swap 300 for your own number of active customers.

Conversations in the month
=COUNTA(A2:A500)

Contact rate
=COUNTA(A2:A500)/300*100

Median first response time, in hours
=MEDIAN(H2:H500)

90th percentile first response time, in hours
=PERCENTILE(H2:H500,0.9)

Reasons, most common first
=QUERY(C1:C500,"select C, count(C) where C <> '' group by C order by count(C) desc",1)

First contact resolution
=COUNTIFS(E2:E500,1,G2:G500,"No")/COUNTA(A2:A500)*100

Open now
=COUNTA(A2:A500)-COUNTA(F2:F500)

Days the oldest open conversation has waited
=IFERROR(INT(TODAY()-MIN(FILTER(A2:A500,F2:F500="",A2:A500<>""))),0)

Read at 18:00 on 31 October, the app’s October tab gave 72 conversations, a contact rate of 24, a median of 2.17 hours (2 hours 10 minutes), a 90th percentile of 14 hours, calendar sync at the top of the reasons with 18, 9 open and 12 days for the oldest. First contact resolution came to 56.9 once column G was filled in on 7 November. The last formula shows 0 when nothing is open.

Help desk metrics to ignore until you hire

Most of the rest are help desk metrics, made for managing the people who answer support. They become useful once someone other than you does the answering.

CSAT, NPS and customer effort score come from surveys. At 72 conversations a month, if a third of those customers answer a survey, you get 24 ratings, and each one moves CSAT by about 4 points. You wrote every reply, so you already know which went badly, and the reasons list tells you why people wrote in at all. NPS asks how likely customers are to recommend the whole company, so it says more about the product than about your replies.

Resolution rate barely moves. The median company in Freshworks’ report resolved almost 100% of its tickets, and the median reopen rate was 5%, so read the conversations of the few who come back, which first contact resolution already counts.

Average handle time is for planning a team’s shifts. Time yourself for one week instead. If 18 conversations take 144 minutes, that’s 8 minutes each, and 72 a month comes to about 10 hours, time you can weigh against building. Cost per contact follows from it, since 10 hours at $50 an hour is about $7 a conversation.

Average resolution time mostly measures how fast you ship fixes when you’re also the engineer, and the oldest open conversation already catches anything stuck on a bug.

A service level agreement promises a reply time, and you track how often you meet it once you’ve made that promise, usually to larger customers. Until then, your own median first response time tells you the same thing.

Escalation rate, first level resolution and the support tiers behind them count questions passed from one person to another. When you’re the only one answering, no question gets passed on. Abandoned calls, average speed of answer and occupancy belong to phone teams. Customer support for startups sets out when a second person, and then a helpdesk, are worth adding.

When an AI agent answers first

Once something answers customers before they reach you, such as a help centre or an AI support agent, add two readings to the five. One is the share of questions it answered, and what it counts as answered, since tools differ on whether a visitor who gave up counts as a success. The deflection rate, the containment rate and an AI resolution rate each count it their own way. The other is the list of questions it couldn’t answer, which is your reasons list with the easy questions already gone.

Your own five move as well. The volume reaching you falls, while first contact resolution and handle time on what’s left get worse, because the questions one reply used to settle are the ones the agent now takes. Read them beside your volume, or a good month looks like a bad one.

What Deacon counts for you

Deacon answers your customers on your site in seconds, at any hour, from your own docs and in the language they write in. When your docs don’t cover a question, it says it doesn’t know instead of guessing and asks for the visitor’s email, so you can reply. It counts every chat it has for you, on every plan, the free one included, and four of the five metrics have a place on its dashboard.

Your chat volume is the headline on Analytics › Widget, a sentence such as “Deacon answered 412 of 480 questions”, with how many people asked and the change on the period before, over 7, 30 or 90 days or all time. Only questions count, so hellos, thank-yous and requests for a person are left out, and a question that hit an error or came after your plan’s answers ran out counts as unanswered. Under it, Handled alone is the nearest Deacon comes to first contact resolution. It counts the conversations Deacon finished without you, with every question answered, no email left and nobody asking for a person. Answered means Deacon replied from what it knows, so read a few conversations each week to see whether the replies were right.

Deacon builds the reasons list for you. Topics group the questions people ask, count the people who asked and give a topic a type when one kind of question leads it, such as bug report, feature ask, how-to, pricing, or account and billing. On Analytics › Widget, What people ask leads with the most common kind of question, and What they ask you to build lists feature asks in your visitors’ own words.

The nearest thing to a backlog is What needs you, on both Analytics pages. It opens on a Start here sentence naming the first job, such as “Start here: reply to the 5 people waiting.” Below it come the people waiting for your reply whose email Deacon has, then bug reports beside your site’s own JavaScript errors, account and billing questions, and the questions Deacon didn’t know. Deacon only sees the chats on your site, so email sent to you stays with the Gmail searches above.

First response time is the one number it leaves to you. Deacon’s own replies take seconds, and once 30 questions are in, More detail on Analytics › Widget shows when people asked against working hours, which is where a long 90th percentile comes from. For your own replies on the chats it hands you, save Conversations as a CSV. Every row has its Time, in UTC, and a From column that reads Visitor, Deacon or Teammate, so your wait is the gap between a visitor’s message and the first Teammate row after it.

Each question Deacon didn’t know has an Answer this button in Conversations. Write the answer once, even as rough notes, and press Save, and Deacon puts it in your help document and shows you the reply it now gives. From then on the next person who asks can get that answer in seconds, so the reason behind it reaches you less often, and the more you answer, the less Deacon needs you.

On Mondays at 08:00 UTC, after any week with visitor messages or a new error on your site, owners get “Your week with Deacon”. It has the share of questions Deacon answered, with its change on the week before, and up to three topics the most people asked about, each with its questions still open.

Deacon doesn’t ask your customers for a CSAT or NPS score, and it doesn’t send a satisfaction survey of any kind. There’s no rating or thumbs up on an answer either. You read each question in the customer’s own words, which at 72 conversations a month tells you more than 24 ratings would. Chatbot analytics goes through each part of the dashboard, and you can try all of it on the free plan, which needs no card.

Questions about customer service metrics

What are the most important customer service metrics?

For a team of one or two, they’re first response time, contact rate, the top reasons for contact, first contact resolution and the backlog with the age of its oldest conversation. Once other people answer for you, add CSAT, average resolution time and, if you’ve promised reply times, how often you meet them.

What’s the difference between a customer service metric and a KPI?

A KPI, or key performance indicator, is a metric you’ve chosen to judge performance by, usually with a target. Customer support KPIs are the few a team is held to, often first response time and CSAT. For a founder, two targets are plenty, such as a median first response time under an hour on weekdays and nothing open longer than a week.

What are help desk metrics?

They’re the figures a helpdesk reports from its tickets, such as first reply time, resolution time, reopened tickets, tickets solved per agent and how often reply deadlines were met. Most of them exist to manage a team, which is why this page leaves them until you hire.

Does Deacon measure customer satisfaction?

No. Deacon doesn’t ask your customers to rate anything, and there’s no thumbs up or down on an answer. It gives you the questions they asked, the share it answered and the people still waiting for you.

Can I export Deacon’s analytics?

Not the Analytics pages themselves. Conversations saves as a CSV, one row per message, filtered however you’ve set the list. Both Analytics pages also have Copy this page for your coding agent, which copies the whole page as Markdown.

Try it on your own documentation

Add your help pages, ask it the question you know your docs cannot answer, and watch it say so.

The free plan covers 50 answers a month on one seat, and the paid plans are on the pricing page.

Start free

Free plan, no card.

READ NEXT