Your chatbot dashboard says 70% of conversations were contained. It sounds like seven in ten customers got their answer without needing your team. It might mean that. It might also mean that some of them gave up, or rang you the next morning.

Containment rate is a common chatbot number, and one of the easiest to flatter. This guide is for a business that already runs a chatbot and wants to know what its own number really says. It sets out three ways to count, works through one illustrative example, and gives you a six-point check of how your number is measured.

What containment rate means

In broad terms, containment rate is the share of conversations that start with the chatbot and never need a person. The detail is in what counts as never needing a person, and the definitions published by chatbot vendors do not agree.

A common formula counts everything that was not escalated. Botpress gives it as: Containment Rate = (1 − [Escalated Interactions / Total Interactions]) × 100.

Decagon's glossary describes a stricter version. It counts a session as contained only if the customer confirmed the issue was resolved, or if no human contact followed within a defined window, typically 24 hours. It notes that the looser definition overstates true containment because it includes frustrated abandonments.

Neither definition is wrong. They answer different questions. The problem starts when one number is reported without saying which question it answers.

Three numbers worth keeping apart

These three numbers line up with the distinction in our guide to choosing AI customer service software, which separates deflection, containment and true resolution when you compare vendors. This article applies the same idea to the chatbot you already run.

A worked example, explicitly illustrative

The figures below are invented to show the arithmetic. They are not a benchmark and do not describe any real business or product.

StepConversationsShare of 1,000
All chatbot conversations in the month1,000100%
Handed to a person30030%
Not handed over (naive containment)70070%
Of those, the customer came back about the same issue within 7 days808%
Re-contact-adjusted containment62062%
Of those, the conversation stopped with no usable answer (from a reviewed sample)707%
Estimated resolved share55055%

The same month can honestly be reported as 70%, 62% or 55%, depending on the question. Only the last one comes close to how many customers were actually helped.

How to get each number

Total conversations and handovers come from your chatbot's own reports. Decide first what a conversation is: a visitor who opens the chat and types nothing should not count as contained.

Repeat contacts are harder. Most small businesses cannot match a chat visitor to a later email or phone call automatically. Take a sample instead: pick a set of contained conversations where the customer left contact details, and check your inbox and call log for the same person over the following days. Write down the window you used.

For conversations that just stopped, read a sample. Did the chatbot give an answer the customer could act on before they went quiet, or did they leave mid-question? Treat the result as an estimate and say so.

What to do with the result

A gap between the first and last number is not a failure. It tells you where to look. Many repeat contacts suggest answers that sound complete but are not. Many silent endings suggest a question the chatbot cannot handle, or a handover that is hard to find. Our AI customer support accuracy test helps you check the answers themselves, and a clear route to a person matters as much as the chatbot; see choosing a chatbot with human handover.

Whatever you report, put the definition and the window next to it. A 62% you can explain is worth more than a 90% nobody can check.

If you are comparing your current chatbot with others, run the same three numbers on each, using the same definitions. You can try an AI agent on a bounded set of questions and measure it the same way. This article makes no claim about the containment or resolution rate of any Dante configuration.