CSAT calculator
Compute your Customer Satisfaction Score with the margin of error almost nobody shows, see the average score next to the binary cut, compare against your industry median and find out how many responses have to cross the cut for you to hit your goal. In the second mode, compare two periods and learn whether the change is real or sampling noise.
This calculator is about CSAT, satisfaction with one specific interaction, asked right after it on a 1 to 5 scale. If what you want to measure is willingness to recommend the whole company, on a 0 to 10 scale with a result in points from minus 100 to plus 100, the right place is the NPS calculator. They are different questions: CSAT collapses when a specific process breaks, NPS collapses when the relationship as a whole sours. Mixing the two on the same ruler is the most common experience dashboard mistake, because 70% CSAT is an average result while NPS 70 is rare excellence.
The CSAT formula is a division any spreadsheet can do. What this tool adds is the uncertainty around the number and the information the binary cut throws away. CSAT is an estimate drawn from a sample, and every estimate carries statistical slack. On top of that, it treats a 1 and a 3 as the same thing, and a 4 and a 5 as the same thing too: a base can migrate en masse from 1 to 3, a huge real world improvement, without moving the score at all. Here you get the score, the margin of error from the Wilson interval, the true range, the average score alongside it, the arithmetic path to your goal and an honest test between two periods.
-
-
-
-
CSAT is a sample estimate, not a fact. The range shown is the Wilson interval, which never runs past 0% or 100% and therefore is not symmetric around the score: any swing smaller than the margin is noise, not a trend. Nothing here leaves your browser.
How to use it
- Pick the mode: CSAT of one survey (the default) or compare two periods.
- Set what counts as satisfied. The market standard is the top-2 box (scores 4 and 5). The strict top box (score 5 only) is a much harder ruler and drops the number immediately, as you will see below.
- Enter how many responses landed on each score, 1 through 5. Count only valid responses, not people who dropped out mid survey.
- Set the confidence. Use 95%, the market standard. Move to 99% when the decision is expensive and hard to undo.
- Pick the benchmark industry and the CSAT goal you are chasing. Read the true range before the score: if the distance to the goal is smaller than the margin of error, the tool warns you that this sample cannot tell whether you hit it.
How it works: the formula
The score is a proportion, and the uncertainty range comes from the Wilson interval rather than the classic formula:
Where p is the satisfied share, n is the total number of responses and z is the normal critical value for the chosen confidence (1.96 at 95%). Choosing Wilson is not academic fussiness: the classic Wald formula, p ± z·√(p(1−p)/n), assumes the sampling distribution is well approximated by a normal centered on p itself, which stops holding exactly where CSAT lives, near the ceiling of the scale and on small samples. Wilson inverts the score test instead of approximating on top of the estimate, so the interval never escapes 0% to 100% and real coverage stays close to the stated one. The price is that it is not symmetric: that is why the tool shows the margin as HALF the width of the range, not as slack to add and subtract from the score.
Worked example (reproduces the default output)
With the values already filled in: 380 fives, 320 fours, 160 threes, 90 twos and 50 ones, for a total of 1,000 responses. Under the top-2 box, satisfied is 380 + 320 = 700, so p = 0.70 and CSAT is 70.0%.
For the range, z = 1.96 and z² = 3.8416. The denominator is 1 + 3.8416/1,000 = 1.0038416. The center is (0.70 + 3.8416/2,000) ÷ 1.0038416 = 0.7019208 ÷ 1.0038416 = 0.699235. The half width is (1.96 ÷ 1.0038416) × √(0.21/1,000 + 3.8416/4,000,000) = 1.952499 × √0.00021096 = 1.952499 × 0.0145245 = 0.028359. The range runs from 0.670876 to 0.727593, that is, from 67.1% to 72.8%, with a margin of 2.8 points. Notice that the center of the interval (69.92%) is not your score (70.0%): that is by design, and it is what keeps Wilson inside the scale.
The average score comes from the same survey: (5×380 + 4×320 + 3×160 + 2×90 + 1×50) ÷ 1,000 = 3,890 ÷ 1,000 = 3.89. The sample standard deviation of that distribution is 1.157, so the standard error of the mean is 1.157 ÷ √1,000 = 0.0366 and the 95% margin is 1.96 × 0.0366 = 0.07. The average sits between 3.82 and 3.96. Keeping both numbers side by side is what prevents the blindness of the cut: if next month the 50 people who scored 1 move up to a 3, CSAT stays at exactly 70.0% and the average climbs to 3.99.
The default goal of 80% is 10 points away. Since every response that crosses the cut adds 100 ÷ 1,000 = 0.1 point, you need 100 responses moving from 3, 2 or 1 up to 4 or 5. If you cannot convert anyone in the current base, the math is different: (0.8 × 1,000 − 700) ÷ (1 − 0.8) = 100 ÷ 0.2 = 500 brand new satisfied responses just to dilute the past up to the goal. That asymmetry explains why an aggressive CSAT goal takes months: fixing the process is fast, washing the history is slow.
In compare mode, the defaults bring 380/320/160/90/50 in the previous period (CSAT 70.0%) against 400/330/150/80/40 in the current one (CSAT 73.0%). The standard errors are 1.449 and 1.404 points, the standard error of the difference is √(1.449² + 1.404²) = 2.018, and the 95% margin lands at 1.96 × 2.018 = 4.0 points. The interval for the difference runs from minus 1.0 to 7.0 and the p-value is 13.7%. Translation: CSAT went up 3 points on the chart and the data does not let you say it went up. The average score moved from 3.89 to 3.97 in the same swing, which hints at a direction, but a hint is not proof.
Wilson versus Wald: where the classic formula breaks
At 1,000 responses and 70% satisfied, the two formulas essentially agree: Wilson gives a 2.8 point margin, Wald gives 2.8 as well. The problem shows up when the sample is small and the score is high, which is the situation of any decent support operation measuring one week of tickets.
Take 9 satisfied out of 10 responses. The score is 90%. Wald computes √(0.9 × 0.1 ÷ 10) = 0.0949, or 9.49 points, and returns a margin of 1.96 × 9.49 = 18.6 points, putting the upper bound at 108.6%. A calculator that ships that is claiming more people than exist could be satisfied. Wilson returns a range of 59.6% to 98.2% for the same data: wide, honest and inside the scale. When that happens, the tool shows a warning explaining what the naive formula would have done.
Margin of error by sample size
The table below uses a CSAT of 70% at 95% confidence. It is the most useful argument on this page in an operations review: it shows which swing deserves a meeting and which is collection noise.
| Responses | Margin of error | True range of a 70% CSAT |
|---|---|---|
| 50 | ±12.3 points | 56.2% to 80.9% |
| 100 | ±8.8 points | 60.4% to 78.1% |
| 200 | ±6.3 points | 63.3% to 75.9% |
| 500 | ±4.0 points | 65.8% to 73.9% |
| 1,000 | ±2.8 points | 67.1% to 72.8% |
| 2,000 | ±2.0 points | 68.0% to 72.0% |
| 5,000 | ±1.3 points | 68.7% to 71.3% |
Notice the square root effect: quadrupling the sample halves the margin. Going from 500 to 1,000 responses buys a little over one point of precision, and going from 2,000 to 5,000 buys less than one. There is a point where insisting on more responses stops paying off, and it arrives much earlier than most teams assume.
How to read it, and where CSAT misleads
The first limit is how arbitrary the cut is. Top-2 box is a convention, not a law of nature. On the same example data, switching the selector to the strict top box drops CSAT from 70.0% to 38.0% (range 35.0% to 41.0%), without a single person changing their mind. Pick a ruler, state which one it is next to the number, and never compare a time series that switched cuts halfway.
The second is the information loss the cut creates, already shown above: the whole distribution collapses into a yes or no. Always publish the distribution of the five scores next to the indicator, and the average score with it. Whoever looks only at CSAT will not see a base moving from hatred to indifference, which is exactly the move that precedes recovery.
The third is response bias. Satisfaction surveys have low, selective uptake: the very happy and the very angry answer, and the middle stays silent. If the response rate shifts between periods, the profile of respondents shifts with it and the indicator moves on its own, with nothing having happened in the operation. Track the response rate as carefully as you track the score.
The fourth is the most expensive: CSAT becomes a bonus target and stops measuring. Once the score drives pay, the team learns to ask for high scores, to time the survey and to avoid sending it on hard cases. The number rises and the experience does not change. If CSAT has to be a target, it must come with the response rate and a coverage audit, otherwise you are rewarding collection, not service.
The fifth is scope. CSAT is episodic and does not predict retention on its own: a customer can rate every interaction well and still cancel, because the product does not solve their problem. For relationship reading, use NPS. For effort along a journey, use CES. The three measure different things and none replaces the others.
Measurement good practice
- Freeze the method: same question, same scale, same trigger, same channel. Change the method and you break the time series.
- Publish the margin of error and the response rate next to the score. An indicator without uncertainty becomes narrative.
- Fire the survey close to the interaction, while memory is fresh, and never twice to the same person in one cycle.
- Keep the full distribution of scores. The aggregate hides exactly the movement you need to see.
- Read the open text field by theme before looking at the number. The cause lives there, and the cause is what gets fixed.
- Before announcing an improvement, run the comparison between periods. If the interval for the difference crosses zero, you have noise, not a result.
Frequently asked questions
- How is CSAT calculated?
- CSAT is the percentage of satisfied responses over all valid responses. On a 1 to 5 scale, the market standard counts scores 4 and 5 as satisfied (the top-2 box). With 380 fives, 320 fours, 160 threes, 90 twos and 50 ones, that is 700 satisfied out of 1,000 responses: 70.0%. The result is a percentage from 0 to 100, never points from minus 100 to plus 100 like NPS.
- What is a good CSAT score?
- The practical reading is: below 60% is critical, 60% to 75% is weak, 75% to 90% is solid and above 90% is excellence. The normal level still shifts by industry: customer support tends to sit near 85%, while telecom lives around 70%. That is why this tool compares your number against the median of the industry you pick, not only against the generic scale.
- What is the difference between CSAT and NPS?
- CSAT measures satisfaction with ONE specific interaction, asked right after it happens (the support ticket, the delivery, the onboarding call), almost always on a 1 to 5 scale. NPS measures willingness to recommend the whole company, on a 0 to 10 scale, and is a relationship measure rather than an episode measure. They answer different questions and do not replace each other: CSAT drops when a specific process breaks, NPS drops when the relationship as a whole sours. Putting both on the same ruler is the most common experience dashboard mistake, because 70% CSAT is average while NPS 70 is exceptionally rare.
- Why does the interval use Wilson instead of the classic formula?
- Because CSAT lives near the ceiling of the scale and is usually measured on small samples, which are exactly the two conditions where the classic formula falls apart. With 9 satisfied out of 10 responses, the Wald formula returns 90% with a margin of 18.6 points, an upper bound of 108.6%, which does not exist. The Wilson interval never leaves the 0% to 100% range and keeps the stated coverage on small samples. The trade-off is that it is not symmetric around the score: near the ceiling, the upper side is shorter.
- How many responses do I need to measure CSAT?
- Pick by the margin you can live with. At 1,000 responses and a CSAT of 70%, the 95% margin is 2.8 points. At 200 responses it grows to 6.3 points, and at 50 responses it passes 12 points, which covers half the distance between a solid operation and one in trouble. Below 100 responses per period, tracking CSAT month over month is tracking noise.
- Is it worth more to convert a neutral or a dissatisfied response?
- In CSAT, exactly the same: every response that crosses the cut adds 100/n points, whether it came from a 3, a 2 or a 1. That differs from NPS, where converting a detractor is worth double converting a passive, because there is a subtraction there and the detractor leaves one side to join the other. Since the value is equal in CSAT, priority stops being arithmetic and becomes operational: go after whoever is easiest to move, which is usually the person who scored 3 for a specific, fixable reason.
Keep going
If your question is about loyalty rather than one specific interaction, the number you want is in the NPS calculator. Still planning the survey and wondering how many responses to collect? Start with the survey sample size calculator. And if the plan is turning measured dissatisfaction into tested improvement, the path is the conversion rate optimization guide alongside the conversion rate calculator.