GLOSSARY

What is first response time?

First response time is the elapsed time between a customer's first unanswered inbound message and the first substantive human reply to it, reported as a median and a 90th percentile rather than a mean.

Free forever plan · No credit card required · Cancel anytime

Quick definition

First response time is the elapsed time between a customer's first unanswered inbound message and the first substantive human reply to it, reported as a median and a 90th percentile rather than a mean.

Two words carry the whole definition: unanswered and substantive.

What it means

First response time, usually shortened to FRT, is the wait a customer experiences between asking and being answered for the first time in a conversation. It is the single most visible service metric you have, because it is the only one the customer can measure themselves while it is happening.

It is also two metrics wearing one name. Calendar FRT counts every minute on the clock, including nights and weekends, and describes the customer experience. Business FRT subtracts the hours your team was not working, and describes team performance. Both are correct. Publishing one and managing to the other is where the trouble starts, because the numbers can differ by an order of magnitude.

The metric matters on both sides of the business. In support it drives satisfaction more reliably than resolution time, because a customer who has been answered knows their problem is being handled even if it is not finished. In sales it is the first component of the sales cycle, and lead-response research has repeatedly found a steep decay in contact and qualification rates once the first attempt slips past the first hour.

The formula, written out

FRT = first_substantive_outbound_at - first_unanswered_inbound_at

  • first_unanswered_inbound_at: the timestamp of the earliest inbound message from the customer that has no outbound reply after it. In a burst of three messages, this is the first of the three, not the last.
  • first_substantive_outbound_at: the timestamp of the first outbound message from an agent or an answering AI, that is publicly visible to the customer. Automated receipts, internal notes and system events are excluded.

For business-hours FRT, subtract the closed intervals:

BusinessFRT = FRT - sum of the durations of all non-working intervals that overlap the span

  • Non-working intervals: everything outside the queue's opening hours, plus declared holidays, expressed in the queue's timezone rather than the server's.

And for reporting, over a set of conversations:

Median FRT = the 50th percentile of the FRT values

p90 FRT = the value below which 90% of conversations fall

Never report the mean. Response-time distributions have a long right tail, so a mean is dominated by a handful of overnight arrivals and describes no conversation that actually happened.

A worked example, end to end

Six conversations across a Tuesday and Wednesday. The queue is open 09:00 to 18:00.

  1. Inbound Tue 09:04, agent reply Tue 09:18. Fourteen minutes.
  2. Inbound Tue 11:47, reply Tue 12:09. Twenty-two minutes.
  3. Inbound Tue 16:52, reply Tue 17:31. Thirty-nine minutes.
  4. Inbound Tue 18:40, forty minutes after close, reply Wed 09:06. Calendar: 866 minutes. Business: 6 minutes, because 18:40 to 09:00 is closed time.
  5. Inbound Wed 09:12, reply Wed 09:20. Eight minutes.
  6. Inbound Wed 10:30, auto-acknowledgement at 10:30:02, human reply Wed 12:05. Ninety-five minutes.

Calendar values: 14, 22, 39, 866, 8, 95 minutes.

  • Mean: 1,044 / 6 = 174 minutes, or 2 hours 54 minutes.
  • Median: sorted, the middle two are 22 and 39, so 30.5 minutes.
  • p90 by nearest rank: 866 minutes.

Business-hours values: 14, 22, 39, 6, 8, 95 minutes.

  • Mean: 184 / 6 = 30.7 minutes.
  • Median: middle two are 14 and 22, so 18 minutes.
  • p90: 95 minutes.

Same six conversations, four defensible headline numbers ranging from 18 minutes to 2 hours 54 minutes. The mean-versus-median gap is entirely conversation 4, and the calendar-versus-business gap is entirely the overnight. Anyone quoting a single FRT without saying which of the four it is has not really told you anything.

The practical reading: business median 18 minutes says the team answers quickly while it is at its desk. Calendar p90 of 866 minutes says a customer who writes in the evening waits until the next morning. Those are two different problems with two different fixes, and only one of them is about how fast agents type.

Three ways the number goes wrong

Counting the auto-acknowledgement. Conversation 6 received a receipt two seconds after the inbound. Treat that as the first response and its FRT becomes 0.03 minutes. Recompute the business-hours set as 14, 22, 39, 6, 8, 0.03: the median falls from 18 minutes to 11 minutes and the mean from 30.7 to 14.8. Now imagine the acknowledgement fires on all six, which is what happens in a real deployment. Every FRT collapses to a couple of seconds, the dashboard turns green, and the metric now measures your mail server's latency. Exclude anything whose author type is a bot or a system rule, unless it genuinely answers the question.

Measuring from ticket creation. If the clock starts at ticket.created_at rather than at the customer's message, every agent-created record reports an FRT near zero, since the agent typically writes the first message moments after creating the ticket. In a queue where a third of records are created by agents following up on phone calls, this alone can pull the reported median down by half while nothing changes for any customer. Anchor to the inbound message and exclude conversations that have no inbound message before the first outbound.

Anchoring to the last message in a burst. A customer writes at 09:04, adds context at 09:05 and again at 09:07, and gets an answer at 09:18. Anchored to the first unanswered inbound the wait is 14 minutes; anchored to the most recent message it is 11. The error is small per conversation and systematic in direction, and it is largest for the customers who write most often, who are usually the most frustrated. Use the first unanswered inbound.

How FRT is actually derived from CRM data

The computation needs three things and a calendar:

  • The conversation record, with the channel, the queue, and whether it was customer-initiated or agent-initiated.
  • The message table, with direction (inbound or outbound), author_type (contact, agent, AI, bot, system) and a visibility flag distinguishing a public reply from an internal note.
  • Precise timestamps stored in UTC, with the display and business-hours arithmetic done in the queue timezone.
  • A business calendar per queue: opening hours per weekday, holidays, and any temporary closures.

The edge cases that separate a real implementation from a demo:

  • Internal notes. An agent writing a note to a colleague produces an outbound-looking row that the customer never sees. If it stops the clock, FRT becomes a measure of internal chatter.
  • Reopened conversations. A resolved ticket that receives a new inbound three days later should start a separate next-response-time measurement, not overwrite the original FRT and not create a second FRT for the same conversation.
  • Merged conversations. When two records are merged, two inbound anchors exist. Keep the earlier one, since that is when the customer first asked.
  • Transfers between queues. The clock belongs to the conversation, not the queue. Attribute the result to whoever answered, and count transfers separately.
  • Weekend and holiday boundaries. The business-hours subtraction has to walk the calendar interval by interval. A message arriving at 17:58 on the Friday before a public holiday spans three closed periods, and a naive "subtract 15 hours per night" approximation will be wrong by a day.
  • Channel mixing. A live chat message and an email arriving at the same second carry different expectations. Compute one FRT per conversation but always report it split by channel, because a blended median across chat and email describes a conversation type that does not exist.

Why it matters

FRT is the earliest controllable moment in any customer relationship. Everything downstream, satisfaction, resolution rate, churn, is influenced by whether the first message got an answer while the person was still paying attention. It is also unusually actionable: unlike most quality metrics it can be improved by staffing, routing and alerting, without changing how anybody does the substantive work.

On the sales side it is the first slice of the sales cycle, and by far the cheapest to remove. Days saved between an inbound arriving and a rep touching it come straight off the denominator of pipeline velocity, which is the one variable in that formula with more than linear leverage.

Common mistakes

  • Reporting the mean. One overnight message moves it by hours. Use the median and the p90 together.
  • One number across all channels. Chat and email expectations differ by two orders of magnitude.
  • A target on the median only. A team can hit a great median while abandoning the slowest ten percent entirely. Target the p90.
  • Business hours in the wrong timezone. A workspace configured in UTC while the team sits in Istanbul will misattribute three hours of every day.
  • Excluding conversations that were never answered. A conversation with no reply has no FRT, so it silently drops out of the report. Count them separately and prominently.

Related concepts

  • CSAT: the satisfaction score FRT moves most reliably.
  • Lead routing: the system that decides who is supposed to answer.
  • Round-robin assignment: an immediate owner is what starts the clock running against someone.
  • Pipeline velocity: response delay is sales cycle length in disguise.
  • NPS: the relationship-level counterpart to a conversation-level score.
  • Omnichannel CRM: why FRT has to be computed per channel and compared across them.

How Pinlyx handles it

Pinlyx stores every message with its direction, author type and visibility, so automated acknowledgements and internal notes never stop the clock. Business hours are configured per workspace with a real timezone and holiday list, both calendar and business FRT are available side by side, and unanswered conversations are surfaced as their own queue rather than quietly dropping out of the average.

Worked example · six conversations, queue open 09:00 to 18:00

Same six tickets. Four defensible headline numbers.

The gap between mean and median is one overnight message. The gap between calendar and business is the same message again.

#InboundHuman replyCalendarBusiness hours
1Tue 09:04Tue 09:1814 min14 min
2Tue 11:47Tue 12:0922 min22 min
3Tue 16:52Tue 17:3139 min39 min
4Tue 18:40Wed 09:06866 min6 min
5Wed 09:12Wed 09:208 min8 min
6Wed 10:30Wed 12:0595 min95 min
Median / mean / p9030.5 / 174 / 86618 / 30.7 / 95

Conversation 6 carried an auto-acknowledgement two seconds after the inbound. Counting it as the first response drops the business median from 18 minutes to 11 minutes without helping anyone.

In the database

Business hours have to be walked, not approximated.

The tempting shortcut is to subtract a fixed number of closed hours per night. It breaks on the first weekend, and it breaks badly on a message that arrives at 17:58 on the Friday before a public holiday, spanning three separate closed intervals. Walk the calendar: enumerate the open windows between the two timestamps in the queue timezone, sum them, and store the calendar value alongside so both versions of the number can be produced from one row.

Watch out for

Unanswered conversations have no FRT, so they vanish.

Every percentile on this page is computed over conversations that eventually got a reply. The ones that never did contribute nothing, which means the worst possible outcome improves your metric by leaving the sample. Always publish the unanswered count next to the percentiles, and treat any rise in it as more serious than any rise in the p90.

First Response Time: FAQ

The definitional questions that decide whether your number means anything.

No. An auto-reply confirms receipt, it does not answer anything, and counting it collapses the metric to a couple of seconds for every conversation that has one. If your help desk fires an acknowledgement on every inbound and your dashboard reports a two-second first response time, you are measuring your mail server rather than your team. Filter by author type so that only agent or answering-AI messages stop the clock, and track acknowledgement coverage separately if you care about it.
Both, for different audiences. Calendar time describes what the customer actually experienced and belongs in any promise you make publicly. Business time describes whether the team did its job during the hours it was staffed and belongs in internal coaching. In the worked example on this page the two differ by a factor of five, so quietly swapping one for the other is an easy way to make a support team look better than it is.
It depends almost entirely on channel, because expectation is set by the medium. Live chat and messaging apps carry an expectation measured in seconds to a couple of minutes, email in hours, and a contact form somewhere between. Rather than chase a published figure, set a target per channel, measure the 90th percentile against it, and watch whether satisfaction scores move when the target does. A single company-wide number blends channels with incompatible expectations.
Not for this metric. First response time is about the first one, so a reopened conversation should start a separate measurement usually called next response time or subsequent response time. Merging them makes the headline number look better, because follow-up replies inside an active conversation are almost always faster than the initial one, and it hides the specific failure of slow first contact.
Anchor to the first unanswered inbound message, not the last one before the reply. A customer who writes at 09:04, adds a detail at 09:05 and again at 09:07, then gets an answer at 09:18, waited fourteen minutes, not eleven. Anchoring to the most recent message is a common implementation shortcut and it systematically understates the wait, most for exactly the anxious customers who are least happy about it.
It should not. The customer does not know or care that the conversation moved between two queues, and a transfer-resets rule turns internal routing into a way of erasing the wait. Keep one first response time per conversation, attribute it to the queue or agent that eventually answered, and report transfer count as a separate quality signal.
Ready to ship

Answer first. Measure honestly.

Pinlyx separates human replies from automated receipts and internal notes, computes calendar and business-hours response times side by side, and surfaces unanswered conversations instead of dropping them from the average.

Free forever plan · GDPR-ready · No credit card required

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.