GLOSSARY

What is CSAT?

CSAT (Customer Satisfaction Score) is the percentage of survey responses that land in the satisfied band, normally the top two points of a five-point scale, measured against one specific interaction rather than the relationship as a whole.

Free forever plan · No credit card required · Cancel anytime

Quick definition

CSAT (Customer Satisfaction Score) is the percentage of survey responses that land in the satisfied band, normally the top two points of a five-point scale, measured against one specific interaction rather than the relationship as a whole.

CSAT = satisfied responses / all responses x 100. Every response stays in the denominator.

What it means

CSAT is a transactional score. It asks one person about one thing that just happened, usually in the form "how satisfied were you with this conversation?" with a five-point answer. That specificity is its strength: unlike relationship metrics it can be attributed to a queue, an agent, a channel or a day, so when it moves you can normally find out why.

The specificity is also its limit. A customer can be very satisfied with how politely you handled a refund and still be leaving. CSAT measures the interaction, not the relationship, which is why it lives alongside NPS rather than replacing it.

The term hides more variation than almost any other metric in this glossary. A "CSAT of 82" might be a five-point top-two-box percentage, a five-point average rescaled to 100, a seven-point top-three-box, or a thumbs-up rate. Those are four different measurements of the same sentiment and they do not produce the same number, so the first question about any CSAT figure is always how it was computed.

The formulas, written out

Method 1, top-two-box. The standard and the one worth defaulting to:

CSAT = (responses rated 4 or 5 / total responses received) x 100

  • Responses rated 4 or 5: the satisfied band. On a five-point scale that is the top two points.
  • Total responses received: every response, including neutrals and dissatisfied ones. Surveys sent but not answered are not in this denominator, which is why the response rate must be published alongside.

Method 2, average score. Common in tools that display a star rating:

MeanCSAT = ( sum over s of s x n_s ) / N, optionally x 100 / s_max to express as a percentage

  • s: each point on the scale, 1 through 5.
  • n_s: the number of responses at that point.
  • N: total responses.
  • s_max: the top of the scale, 5 here.

And the number nobody publishes and everybody should, because it bounds how much the other two can be trusted:

Response rate = (responses received / surveys delivered) x 100

A worked example, end to end

A support team resolves 1,000 conversations in a month and sends a survey on each. 214 people answer, a response rate of 21.4%. The distribution is 118 fives, 47 fours, 21 threes, 14 twos and 14 ones.

Top-two-box:

(118 + 47) / 214 = 165 / 214 = 77.1%

Average score:

(5x118) + (4x47) + (3x21) + (2x14) + (1x14) = 590 + 188 + 63 + 28 + 14 = 883

883 / 214 = 4.13 out of 5, which rescaled is 4.13 / 5 x 100 = 82.5%

Two headline numbers from one set of answers, 5.4 percentage points apart, both arithmetically correct. The average-score method is higher here because it gives partial credit for threes and twos, which the top-two-box method treats as failures.

Now the confidence interval, which is the part almost always omitted. With n = 214 and p = 0.771:

standard error = sqrt(0.771 x 0.229 / 214) = sqrt(0.000825) = 0.0287

That is 2.87 percentage points, so a 95% interval is roughly 77.1% plus or minus 5.6, from 71.5% to 82.7%. A move from 77.1% to 79.5% next month is not an improvement, it is the same number sampled twice. This single calculation would prevent most of the monthly meetings held about CSAT.

The same arithmetic at agent level is brutal. An agent with 18 responses has a standard error of sqrt(0.771 x 0.229 / 18) = 0.099, so a 95% interval of roughly plus or minus 19 points. Ranking a team on that is ranking them on noise.

Three ways the number goes wrong

Dropping neutrals from the denominator. Some dashboards compute satisfaction as satisfied divided by satisfied plus dissatisfied, quietly removing the middle of the scale. In this dataset that is 165 / (214 - 21) = 165 / 193 = 85.5%, a free gain of 8.4 points. It is almost never done deliberately, and it is very hard to spot once the chart is built, because the number looks plausible. If a CSAT figure ever jumps by several points after a reporting change and nobody can point at an operational cause, check the denominator first.

Ignoring non-response bias. 786 people did not answer. If they resemble the responders, the true satisfaction of the full population is also about 77%. If they are half as likely to be satisfied, which is a common pattern because unhappy customers often disengage entirely rather than complain, the picture changes materially. Among responders, 28 of 214 were dissatisfied, 13.1%. If the dissatisfied share among non-responders were double that, 26.2%, then across all 1,000 surveyed customers the dissatisfied share would be (28 + 0.262 x 786) / 1,000 = 23.4% rather than the 13.1% the responses suggest. Nobody knows which case is true, and that is the point: publish the response rate so the reader can weight the score accordingly.

Surveying only the successful outcomes. The 1,000 surveys went out on conversations marked resolved. In the same month 63 conversations were closed as "no reply from customer" and never surveyed at all. Those are disproportionately people who gave up waiting, which means the survey population is selected on the very outcome being measured. Any closure reason that excludes a conversation from the survey should be reported next to the score.

How CSAT is actually derived from CRM data

The survey is a record with its own lifecycle, joined to a conversation:

  • The survey record: conversation ID, contact ID, the agent snapshotted at the moment of resolution, sent_at, responded_at, score, optional comment, and the scale used.
  • The conversation: channel, queue, closure reason, and whether it was ever reopened.
  • The contact: language, so the survey goes out in a language the person reads, and account, so one large customer can be identified as such.

Edge cases that change the number:

  • Attribution window. A survey sent on 29 March and answered on 7 April belongs to which month? Attribute by sent_at so the cohort matches the work that was done, and accept that the last few days of a month are provisional until the responses land.
  • The agent snapshot. Store the responsible agent on the survey row at send time. Reading the conversation's current owner at report time attributes last month's scores to whoever touched the ticket most recently.
  • Reopened conversations. A reopen after a survey means the resolution was not one. Decide whether the reopen voids the score, triggers a second survey, or neither, and apply it consistently. Sending a second survey to the same person for the same problem is the fastest way to train them to ignore surveys.
  • Heavy users. One contact who opens fourteen tickets in a month can contribute fourteen responses and dominate an agent's score. Cap responses per contact per period, or report a contact-weighted score alongside the response-weighted one.
  • Language. A survey delivered in the wrong language does not produce a bad score, it produces no score, which silently removes a whole segment of customers from the metric.
  • Scale changes. Moving from a five-point scale to thumbs up or down breaks the time series completely. Keep the old scale running in parallel for one full period or accept that the chart restarts.

Why it matters

CSAT is the fastest feedback loop a service organisation has. A queue that degrades on Tuesday shows up in Tuesday's scores, long before it shows up in churn or in a quarterly relationship survey. Paired with first response time it usually explains itself: the two move together more reliably than CSAT moves with resolution time, because being answered matters more to people than being finished quickly.

The free-text comment attached to the score is often worth more than the score. A hundred numbers tell you something changed; twenty comments tell you what. Treat the score as the trigger for reading the comments rather than as the output of the programme.

Common mistakes

  • Publishing CSAT without the response rate. The two numbers are one fact and separating them is misleading.
  • Ranking agents on small samples. Below about a hundred responses the confidence interval swamps any real difference.
  • Tying compensation to it. Agents will begin asking for good scores, which changes the measurement rather than the service.
  • Blending channels. Chat, email and phone produce structurally different scores. Report them separately.
  • Reacting to movements inside the margin of error. Compute the interval once and put it on the chart.

Related concepts

  • NPS: the relationship-level counterpart, measured on a different scale with different maths.
  • First response time: the operational metric CSAT tracks most closely.
  • Churn rate: the outcome that a persistently low CSAT eventually turns into.
  • Omnichannel CRM: the system that makes per-channel comparison possible.
  • ICP: satisfaction split by fit often shows two very different service experiences.
  • Conversion funnel: pre-sale satisfaction predicts conversion as well as post-sale retention.

How Pinlyx handles it

Pinlyx attaches surveys to the conversation, snapshots the responsible agent at send time so attribution does not drift, and keeps the score, the free-text comment and the response timestamp on one row. Response rate is reported next to the score, results split by channel and queue without extra configuration, and surveys are delivered in the contact's own language so entire segments do not silently drop out of the sample.

Worked example · 214 responses from 1,000 surveys

Same answers. 77.1%, 82.5% or 85.5%.

Top-two-box, average score, and the version that quietly drops neutrals from the denominator.

ScoreLabelResponsesShareWeighted
5Very satisfied11855.1%590
4Satisfied4722.0%188
3Neutral219.8%63
2Dissatisfied146.5%28
1Very dissatisfied146.5%14
Totals214100%883

Top-two-box 165 / 214 = 77.1%, 95% interval 71.5% to 82.7%. Average score 883 / 214 = 4.13. Response rate 21.4%.

In the database

Snapshot the agent on the survey row.

If the report joins the survey to the conversation and reads the conversation's current owner, then every reassignment silently rewrites history: last quarter's scores follow the ticket to whoever touched it most recently. Write agent_id onto the survey record at send time. The same argument applies to the queue and to the scale in use, because both of those change too and a score is only interpretable against the scale it was collected on.

Watch out for

An agent with 18 responses has a plus or minus 19 point interval.

At a true score of 77%, eighteen responses give a standard error near ten percentage points, so a 95% interval covers almost every plausible level of performance. Ranking a team on that produces confident, wrong conclusions, and the agents who work the hardest cases will reliably sit at the bottom of it. Use per-agent CSAT to choose which conversations to read, and use the comments, not the rank, for the conversation that follows.

CSAT: FAQ

What to settle before the score goes on a dashboard anybody acts on.

CSAT asks about one interaction and is answered immediately after it. NPS asks about the whole relationship and is answered whenever you send it. That makes CSAT a fast operational signal, useful for spotting a bad week in a queue, and NPS a slow strategic one, useful for spotting a bad year in a product. They are not interchangeable and a company with a good CSAT and a bad NPS usually has polite support staff and a product problem.
No. Dropping the middle of the scale from the denominator is the single most common way CSAT gets inflated, and it is almost always done accidentally by someone building a chart. In the worked example on this page it lifts the score from 77.1% to 85.5% without a single customer changing their mind. Keep every response in the denominator and only the satisfied band in the numerator.
Reported figures vary enormously by channel and by how the survey is delivered, so treat any single benchmark carefully. Surveys embedded directly in the reply thread tend to do considerably better than emailed links. What matters more than the level is that you publish it: a CSAT quoted without its response rate hides the size of the population that said nothing, and that population is usually the least happy one.
More than most teams use. At a true score of 77%, an agent with 18 responses has a 95% confidence interval of roughly plus or minus 19 percentage points, which spans almost the entire useful range. At 214 responses the interval narrows to about plus or minus 6 points. Per-agent CSAT with fewer than about a hundred responses in the period should be treated as a conversation starter, never as a performance rating.
Immediately after the interaction closes, while the memory is specific. A survey sent three days later measures a blurred impression of the whole week, which is a different and less actionable thing. The exception is a case that required a follow-up: send after the follow-up, or you are asking about half a resolution.
Only loosely, and only when the scale and calculation are identical, which they rarely are. A five-point top-two-box score, a five-point average expressed as a percentage, and a thumbs up or down rate all produce different numbers from identical underlying sentiment. Before comparing anything, ask what scale was used, which points counted as satisfied, and whether neutrals were in the denominator.
Ready to ship

Ask after every conversation. Report the response rate too.

Pinlyx attaches surveys to conversations, snapshots the responsible agent, delivers in the contact's language, and shows response rate alongside every score.

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.