Skip to content
XICBOT

Settings

Deutsch
Technology, projects & quality

AI chat response time: measure, don’t guess

Which wait times visitors really experience with an AI assistant, why a mean hides the outliers and how to measure with the median and the 95th percentile.

In plain language

How fast does a chat answer? There are several values for this. One measures the time to the first sign. Another measures the time to the whole answer. Just one slow case can distort the average. The middle value is more stable. Also look at the slowest cases. A time without a note on how it was measured does not help.

13 min read By XICBOT

More on integration

How fast is your assistant? The honest answer to that question is rarely a single figure. A visitor does not experience one response time but several: the time until the first character appears on screen, the time until the answer stands complete, and, hidden inside both, the time the search in the knowledge base takes. Blend the three into one value and you get a number that reads well and steers nothing. More often the measurement is missing altogether: one second sounds plausible, so one second goes on the slide. This article describes which times can actually be measured on an AI assistant, why the mean is the most misleading of them, what median and 95th percentile show instead, and how to spot a figure with no measurement series behind it. The numbers in this text come from our own series against our own assistant, documented under measurement series.

Measuring response time instead of guessing
Measuring response time instead of guessingThree measuring points per answer, median and 95th percentile instead of meanCourse of one answer: where the time is spentfirst charactercomplete answerRequest leavesKnowledge searchModel startsAnswer streams outDistribution instead of meanMedianMean95th percentileOutlierThe mean moves with the outlier, the median stays put.Without these three details, no claimMeasuring point: first character or complete answerMetric: median, 95th percentile or meanScope: how many questions, which period, which networkIf one of them is missing, the figure cannot be checked.Own measurement series: 1.3 s to the first character, median64 questions to our own assistant, not to customer projects
Three measuring points per answer, median and 95th percentile instead of mean
Labels in the illustration
  • Course of one answer: where the time is spent
  • first character
  • complete answer
  • Request leaves
  • Knowledge search
  • Model starts
  • Answer streams out
  • Distribution instead of mean
  • Median
  • Mean
  • 95th percentile
  • Outlier
  • The mean moves with the outlier, the median stays put.
  • Without these three details, no claim
  • Measuring point: first character or complete answer
  • Metric: median, 95th percentile or mean
  • Scope: how many questions, which period, which network
  • If one of them is missing, the figure cannot be checked.
  • Own measurement series: 1.3 s to the first character, median
  • 64 questions to our own assistant, not to customer projects

Measuring response time instead of guessing

Three times a visitor actually experiences

Several things happen one after another in a conversation with an assistant, and the visitor notices almost none of them. They type a question, press send and wait. What they perceive first is emptiness: the input is gone, nothing is there yet. That emptiness ends with the first character of the answer. After that a completely different perception begins, namely reading, and reading no longer feels like waiting, even if the text keeps running for a while. This is exactly why the time to the first character is the most important measuring point, not the total duration. An answer that begins after one second and keeps writing for five seconds is experienced as fast. An answer that appears complete in one go after four seconds is experienced as slow, even though it finished earlier.

This distinction is not hair-splitting; it decides which number you should measure in the first place. Anyone who starts the stopwatch only at the end of the answer inevitably measures the length of the answer as well. A detailed, well-supported reply then looks worse than a curt half-sentence, although it is worth more. Conversely, the bare time to the first character hides an answer that trickles out painfully slowly afterwards. It therefore makes sense to record both times separately and to look at them separately. How an assistant gets onto the page at all, and which paths that creates, is described in the article on embedding in website and shop.

  • Time to the first character

    The span between sending the question and the first visible character. It decides whether the conversation feels alive or dead.

  • Time to the complete answer

    The span up to the last character. It depends heavily on the length of the answer and is no measure of speed on its own.

  • Time of the knowledge search

    The share in which the matching sections of the knowledge base are retrieved. It sits before the first character and is the part most open to tuning.

Why a mean hides the outlier

The mean is the metric everybody knows, and the only one of the usual set that a single value can shift arbitrarily far. Take twenty answers, nineteen of which arrive quickly and one after a very long wait. The mean rises noticeably, although nineteen out of twenty visitors noticed nothing. It works the other way round just as well: a batch of very short answers pulls the mean down and makes a series look good in which individual outliers occurred. In both cases the number describes nobody's experience. It describes a sum divided by a count, and a visitor experiences neither sums nor counts.

The median solves this problem because it does not compute, it sorts. You lay out all measured times side by side in order of size and take the time in the middle. Half the answers were faster, half slower. A single extreme value at the edge barely shifts that middle, because it is only one position in the row and not a weight in a sum. This is precisely why the median is the figure you quote to a customer when you want to describe what they experience as a rule. What it does not describe is the edge: anyone who only knows the median knows nothing about the cases in which it took a long time.

MetricWhat it answersWhat it is blind to
MeanHow much time was spent across all answersIndividual long cases pulling the value up
MedianWhat the middle visitor experiencesEverything happening at the edge of the distribution
95th percentileWhat the slowest cases experienceHow often those cases occur
MaximumHow unfavourably it once wentWhether that case recurs or was a one-off
MinimumWhat is possible under the most favourable conditionsEveryday operation, where those conditions are rare

A number nobody experienced

The mean of a response time is often a value that not one single answer in the whole series actually had. It sits between the fast cases and the outlier, that is, where nothing took place. Anyone steering by that value optimises a quantity no visitor has ever seen.

Median, 95th percentile and the maximum

The 95th percentile answers the question the median leaves open: how long did it take in the unfavourable cases? It is the value below which nineteen out of twenty answers stayed. Put differently: one twentieth of visitors waited longer than that figure. This is the quantity complaints attach to, because whoever is annoyed by slowness almost always belongs to that twentieth. Median and 95th percentile together describe a distribution precisely enough for any decision that comes up in a mid-sized project. If the two lie close together, the assistant runs evenly. If they are far apart, there is a case that regularly falls out of line, and it is worth hunting down.

  • Median: the middle of the sorted row. Half the answers were faster, half slower.
  • 95th percentile: the value below which nineteen out of twenty answers stayed. The quantity for the unfavourable case.
  • Maximum: the longest single case in the series. A pointer, not a control value.
  • Minimum: the shortest single case. Popular as a marketing figure, meaningless for operations.
  • Number of questions and period: without both, each of the four figures is an anecdote.

It matters that these metrics come from the same series. A median from the morning and a 95th percentile from the night do not form a picture together, they form a confusion. Nor may you mix metrics taken at different measuring points: a median to the first character next to a maximum to the complete answer looks like an outlier where in fact two different things were measured. So keep every figure together with its measuring point, the way a temperature without a unit is useless.

Where the time in the sequence is spent

An answer is produced in sections, and each section has its own duration. First the question leaves the browser and reaches the server. Then the knowledge base is searched for the sections that match the question. Our own knowledge base holds 2,670 sections from 70 documents; that figure applies to the corpus of the assistant answering on our site. Whether searching such a corpus costs noticeable time depends less on the volume than on the cut: sections that are too large return blurred hits, sections that are too small tear the context apart and force you to collect more of them. After that the model starts phrasing, and at that moment the first character drops.

After that the duration depends mostly on the length of the answer and on the amount of context handed to the model. A long history, many supplied sections and extensive instructions lengthen every single step. At the end comes the rendering in the window, and that costs time too if the widget only loads once somebody clicks on it. This last span appears in no server-side measurement and is therefore regularly overlooked. It is part of what the visitor experiences, though, and so it belongs in the measurement. Why an answer must not only be fast but also bound to your own content is covered in the article on hallucinations and the knowledge base.

SectionWhat happens thereWhat can be adjusted
Network path to the serverThe question leaves the browser and arrivesServer location, setting up the connection
Search in the knowledge baseMatching sections are retrievedCut of the sections, number of hits
First character of the modelThe model starts phrasingExtent of the instructions, size of the context
Rest of the answerThe text streams out character by characterLength and structure of the answer
Rendering in the windowThe text appears at the visitor's endWhen the widget loads, page structure

No measurement series, no claim

The most common time figure in documents about assistants is estimated. It comes about like this: somebody opens the window, types a question, finds it fast and writes down one second. That figure has three problems. It rests on a single attempt, it usually comes from your own network and often from the same location as the server, and it names no measuring point. Later it appears in the quote, in the manual and eventually on the website, and nobody can say any more what it referred to. The way out is not heavier measuring equipment but a short, repeatable series with a defined procedure.

As soon as such a figure goes public it is also a statement about a feature of the service. Section 5 (1) of the German Act Against Unfair Competition (UWG) provides that a misleading commercial practice is unlawful if it is apt to cause the consumer or other market participant to take a transactional decision they would not otherwise have taken. A time figure nobody measured is exactly the risk that sentence describes. Attach measuring point, metric and scope to it instead and an assertion turns into a checkable statement, and that can be defended.

  • The measuring point: first character or complete answer
  • The metric: median, 95th percentile, mean or maximum
  • The number of questions and the period of the series
  • The scope: which assistant on which knowledge base
  • The path of the measurement: through the public interface or internally
  • What was excluded: warm-up runs, repetitions, failed attempts

The question before the figure

Before a time figure is written down anywhere, one sentence belongs next to it: where does it come from, what exactly was measured, and how often? If that sentence cannot be formulated, the figure is not yet a statement but an impression.

Which deadlines really apply

There is no statutory requirement for how long a chat answer may take. That does not mean no deadlines run around an assistant; they simply attach to other procedures. As soon as an assistant processes personal data, and it does so with the conversation history alone, the deadlines of the General Data Protection Regulation apply. If a data subject asks about their data from the chat, a hard deadline runs from receipt of the request, and it is not measured in seconds but in one month.

The controller shall provide information on action taken on a request under Articles 15 to 22 to the data subject without undue delay and in any event within one month of receipt of the request.
Regulation (EU) 2016/679 (GDPR), Article 12 (3)

A second deadline sits in Article 33 (1) GDPR: a personal data breach must be notified to the competent supervisory authority without undue delay and, where feasible, within 72 hours after having become aware of it. Anyone storing conversation histories should know that deadline before needing it. Nothing about answer duration can be derived from the AI Regulation, Regulation (EU) 2024/1689, but a useful benchmark can: Article 15 (3) requires high-risk systems to declare accuracy levels and the relevant metrics in the instructions for use, and Article 72 requires post-market monitoring. A chat assistant on a company website will as a rule not fall under the high-risk classification. The underlying idea still holds: name a metric and keep observing it in operation.

How we measure without fooling ourselves

Our series runs through the same public interface a widget on a customer site uses. That is the first and most important decision: measuring internally, past the application, leaves out exactly the paths that cost time in operation. Each question gets its own conversation so that no growing history is measured along with it, because with every further question in the same window a larger context would ride along and the series would measure something other than at the start. There is a pause between questions; without it, from a certain question onwards only our own throttle would be measured.

  • Each question in its own conversation so that no history is measured along with it
  • Timestamps on send, at the first character and at the last character
  • A pause between questions so that the throttle does not become the measurement
  • Questions inside and outside the knowledge base in the same series
  • The answer text is recorded so that a fast wrong answer does not count as a success
  • Median, 95th percentile, minimum and maximum from the same series, not from different ones

The last point is the one most often missing. A response time without a look at the content rewards exactly the wrong behaviour: an assistant that fires off a short standard sentence at every difficult question wins any pure time measurement. That is why every time series needs a second column stating whether the answer was supported and whether an uncovered question reached a human being. How that handover runs cleanly is described in the article on handover to staff; how to build the catalogue of test questions is shown in the article on acceptance and test cases.

What the figure steers in operation

A measured figure is only worth something if it triggers a decision. Three uses have proven themselves, and all three assume the figure comes from an ongoing series and not from a one-off measurement before go-live. The median becomes the observed quantity, the 95th percentile becomes the threshold, and together they say when a change to the knowledge base or to the extent of the instructions has actually had an effect, and when only the feeling has changed.

  • A threshold that triggers something

    If the 95th percentile rises above a value fixed in advance, that is a reason to look, not a reason to worry. Without a threshold, every observation stays without consequence.

  • Feedback inside the conversation

    If the search takes longer than usual, a visible cue beats an empty window. Waiting with a sign is markedly more bearable than waiting without one.

  • A reason for the handover

    If an answer drags on unusually long, handing over to a person is often the better response than another round in the model.

So that the series does not fall asleep, it belongs in a fixed rhythm: once in full before go-live, again after every larger change to the knowledge base, and regularly thereafter. Which questions are actually asked, and where the answers lag behind, is shown by the anonymised conversation analytics; the current state of operations is shown on the status page. How the case where the assistant does not answer at all can be rehearsed in advance is covered in the article on acceptance testing.

Limits: what a measurement does not say

A measurement series describes one assistant, on one knowledge base, in one period, across a certain number of questions. It says no more than that. It cannot be transferred to another project, because different content, different questions and a different network path come together there. Nor does it say anything about tomorrow: a change of model, a grown corpus or an altered instruction shifts the distribution, and then the old figure no longer holds. And it says nothing about the quality of the answer. A fast wrong reply is worse than a slow correct one. That is why time measurement stands next to the question of whether the answer was supported by the knowledge base. And because waiting does not affect everyone alike, accessibility belongs in this picture too: someone using a screen reader experiences slowly incoming text differently from someone skimming it. How our own series is set up, which questions it asks and where it stops is documented under measurements, so you can lay your own figures next to it.

Frequent questions

What response time is normal for an AI assistant?

There is no universally valid figure, because content, the cut of the questions, the network path and the length of the answers differ from project to project. What can be stated is our own measurement: in our own measurement series the time to the first character of the answer was 1.3 s at the median, with a coverage of 64 questions to our own assistant, not to customer projects. That figure holds for this assistant, on this knowledge base, in this period. Rather than adopting somebody else's number, it makes more sense to run a short series for your own project and record its median and 95th percentile.

Why is the mean not enough?

Because a single long case shifts it. The mean is a sum divided by a count; an outlier enters that sum with its full weight. This often produces a value that no single answer in the entire series actually had: it lies between the fast cases and the outlier, that is, where nothing took place. The median, by contrast, sorts the values and takes the middle, which is why a single edge value barely moves it. So if you can only name one figure, name the median and not the mean.

What does the 95th percentile tell you?

It is the value below which nineteen out of twenty answers stayed. One twentieth of visitors therefore waited longer. It thus describes the unfavourable case without resting on a single event the way the maximum does. Median and 95th percentile together give a usable picture: if they lie close, the assistant runs evenly; if they are far apart, there is a recurring case falling out of line. As a threshold for monitoring, the 95th percentile is more suitable than the median.

How long may the search in the knowledge base take?

There is no fixed requirement for this; the search is one section before the first character and feeds into that time. What matters is less the volume than the cut of the sections: sections that are too large return blurred hits, sections that are too small tear the context apart and force you to collect more of them. Our own knowledge base holds 2,670 sections from 70 documents. If you want to know whether the search carries weight in your case, set timestamps at the section boundaries and look, instead of tuning the model.

Are there statutory requirements for the response time of a chat assistant?

Not for the duration of a chat answer itself. Deadlines apply elsewhere: Article 12 (3) GDPR sets, for information to a data subject, without undue delay and in any event one month from receipt of the request, and Article 33 (1) GDPR requires notification of a personal data breach without undue delay and, where feasible, within 72 hours. Nothing about answer duration can be derived from Regulation (EU) 2024/1689. As soon as you publish a time figure, however, it is a statement about your service and falls under Section 5 (1) UWG.

How do I stop my own measurement from looking better than reality?

Four traps are responsible. The warm-up run: the first call after an idle period is usually the slowest and must not be dropped. Proximity: a measurement from the same data centre does not know the customer's network path. Repetition: the same question asked several times may hit a cached answer. Selection: asking only questions from the knowledge base means never measuring the case with no hit. On top of that comes a second column with the content of the answer, otherwise the measurement rewards an assistant that quickly says something arbitrary.

How does the assistant get onto your website?

The integration page shows how the widget goes into a website, CMS or shop with a short snippet and appears in the design of your site.

Enquiry in three steps

  1. 1. Topic
  2. 2. Your case
  3. 3. Contact

What is this about?

One click is enough, everything else is optional.

Tell us briefly about your case

Everything in this step is optional. It helps us reply with something concrete straight away instead of asking back.

Enquiries per month, roughly (optional)
When should it start? (optional)
How can we reach you?

Name and email address are enough. We reply personally.

We use your details to handle your enquiry. More on this in the privacy policy.