What is CSAT? Customer satisfaction score formula and WhatsApp survey templates
CSAT is the percentage of customers satisfied with a specific interaction, calculated as positive responses ÷ total responses × 100. With 160 ratings of 4 or 5 out of 200 responses, CSAT is 80%. This guide covers the two ways to calculate it, how it differs from NPS, CES, AHT, wait time and FCR, what skews the score, and how to ask on WhatsApp, with ready-to-use templates.

What you'll take away
- The formula with worked math, top-2-box versus average, and why the same service can produce different numbers
- CSAT, NPS, CES, AHT, wait time and FCR side by side, with the formula and when to use each
- WhatsApp in 2026: the 24-hour window, template category, button limits and templates for four industries
What is CSAT and what is the formula?
CSAT stands for Customer Satisfaction Score. It measures satisfaction with something specific that just happened: a support conversation, a delivery, a visit. The question is usually direct, such as “How would you rate this service?”, and the answer comes on a short scale, most often 1 to 5.
The formula is CSAT = (positive responses ÷ total responses) × 100. On a 1 to 5 scale, the most common cutoff counts 4 and 5 as positive. That is what the guides from Qualtrics, Octadesk and Zendesk do, as checked on November 2, 2026.
Here is the math in an example made up for illustration. A store closed 1,000 conversations in a month and sent the survey to all of them. 200 people answered, and 160 gave a 4 or a 5. CSAT is 160 ÷ 200 = 0.80, or 80%. The response rate is a different number: 200 ÷ 1,000 = 20%.
The most common math mistake is in the denominator. Dividing the 160 positive ratings by the 1,000 conversations gives 16%, and that is no longer CSAT. The score divides by responses, so it should always appear with the number of responses next to it.
CSAT has a clear limit. It captures a moment and does not tell you whether the customer will come back or recommend you. It is there to fix operations, while other metrics cover the relationship and effort. Our customer service guide shows how this number fits into a team's routine.
Top-2-box or average: the two ways to calculate CSAT
Two calculations are in use. Top-2-box is the percentage of 4 and 5 responses. The average adds up all ratings and divides by the number of responses, giving a result between 1 and 5. The first tells you how many customers were satisfied. The second compresses the whole distribution into one number.
They can point in opposite directions. Picture two fictional teams with 100 responses each. Team A got 50 fives, 30 fours, 10 threes, 5 twos and 5 ones. Team B got 30 fives, 60 fours, 5 threes, 3 twos and 2 ones.
By average, Team A wins: 415 ÷ 100 = 4.15, against 413 ÷ 100 = 4.13. By top-2-box, Team B wins comfortably: 90% against 80%. Team A has more top ratings and also twice as many 1s and 2s, 10 against 5. That difference disappears when only one number makes it to the report.
A third calculation adds to the confusion. Dividing the sum of ratings by the maximum possible turns the average into a percentage. Team A would get 415 ÷ 500 = 83%, which looks comparable to the 80% top-2-box but measures something else. Zendesk's documentation shows both at one vendor: Support divides good tickets by rated tickets, while the Zendesk QA surveys dashboard divides the sum of responses by the maximum.
The cutoff also varies among well-known guides. On November 2, 2026, Zendesk's Brazilian blog called ratings above 8 positive on a 0 to 10 scale. HubSpot's, in one example, counted responses from 5 to 7. RD Station, a Brazilian vendor, had one article with CSAT from 0 to 10 and another with 1 to 5 or Yes/No. Each choice is defensible, which is why CSAT from different sources rarely compares.
The practical rule fits in one sentence: write the formula next to the number. “Top-2-box CSAT, 1 to 5 scale, survey right after the conversation is resolved, 200 responses” is a figure you can use. If you change the calculation, recalculate the history or start a new series. Otherwise the chart shows an improvement that exists only in the spreadsheet.
What is a good CSAT score? The problem with benchmarks
There is no universal number. Industry guides repeat ranges such as 75% to 85%, usually without saying which question, scale or cutoff produced the data. Without that, the range is not a yardstick. This article gives no benchmark by industry because we did not find a comparable primary source for surveys run inside a conversation.
The most common wrong comparison involves the ACSI, the American Customer Satisfaction Index. HubSpot's blog, checked on November 2, 2026, attributes its CSAT-by-industry table to it, and Qualtrics also points to it. But the ACSI is a 0 to 100 index built from a weighted average of three questions on a 1 to 10 scale. A 78 on the ACSI does not mean 78% of customers were satisfied.
Compare only like with like: same question, scale, cutoff, timing, channel and a similar type of customer. Almost always, the comparison that counts is with your own history, split by contact reason. A score drop on “late delivery” tells you more than the distance to a number found online.
Does the law require you to measure customer satisfaction?
It depends on where you operate and who you are. In Brazil, Decree 13,135 of October 9, 2026, published on October 13 and in force 20 days later, replaced Decree 11,034/2022. It mentions “the degree of consumer satisfaction” once, in Article 2, item IV. There, digital platforms for intermediation, private paid individual transport and delivery must show the national consumer secretariat their service models with indicators, and that is one of them.
The other suppliers covered by the decree, listed in the sole paragraph of Article 1, are those offering services regulated by the federal government, according to each agency's criteria, and digital financial services supervised by the Central Bank. The text does not set a general survey duty for them. Our WhatsApp customer service guide covers the rest of the rules.
Three articles matter for this measurement. Article 6, item I, bans advertising on customer service channels at any stage, which counts against a survey with a coupon. Article 13, paragraph 2, requires telling consumers the estimated wait when they choose a live human on an electronic channel, which puts wait time on the customer's screen. And the sole paragraph of Article 8 bars conditioning human service on prior data, so a survey can never be a toll gate.
Elsewhere the rule can be stricter. In Spain, Law 10/2025 requires companies in its scope to keep a documented satisfaction system and, in Article 18, bans surveys before the case is resolved. It works as a general lesson wherever you sell: asking before the fix measures haste, and tells you little about the service.
CSAT, NPS and CES: the differences in a table
CSAT. Measures satisfaction with one interaction. Question: “How would you rate this service?”. Scale: usually 1 to 5. Formula: positive responses ÷ total responses × 100. Timing: right after the interaction. Use it to fix service, delivery and process.
NPS (Net Promoter Score). Measures willingness to recommend the company. Question: “From 0 to 10, how likely are you to recommend us?”. Scale: 0 to 10. Formula, per Bain: % promoters (9 and 10) − % detractors (0 to 6). Timing: periodic, away from a specific interaction. Use it to track the relationship with the brand.
CES (Customer Effort Score). Measures the effort to get something done. Created by the consultancy CEB, its best-known wording is “The company made it easy for me to handle my issue”. Scale: it varies, with 1 to 5 and 1 to 7 versions. Formula: average of ratings, or the percentage of high ratings. Timing: right after the task. Use it to remove friction.
Sample math, with made-up data. NPS: in 300 responses, 150 promoters, 90 passives and 60 detractors give 50 − 20 = +30, a balance and not a percentage. CES: in 200 responses from 1 to 7, with 7 as very easy, 150 ratings of 5, 6 or 7 give 75%. Check the scale's direction: in SurveyMonkey's guide, 1 is very easy and a low score is good.
Use CSAT to find out how that service went. Use CES when you suspect friction, such as transfers and data requested twice. Use NPS for the relationship, with a sample that includes customers with no recent support contact. Ask one question per survey. Stacking all three in one message tires people out and blurs what each one measures.
Support metrics: AHT, average wait time and FCR, with formulas and math
AHT, average handle time (TMA in Brazil), is total handling time ÷ completed interactions. Made-up example: 40 interactions adding up to 480 minutes give an AHT of 12 minutes. Decide up front whether it includes the notes written after the conversation and keep that rule, as RD Station recommends in its August 2026 guide.
Average wait time (TME in Brazil) is total waiting time ÷ interactions started. Made-up example: 60 customers who waited 240 minutes in total give 4 minutes. The average hides spikes. If nine customers wait 2 minutes and one waits 62, the average is 8 minutes and the median is 2. Look at both, plus the slowest case.
FCR, first contact resolution, is (cases resolved on first contact ÷ eligible cases) × 100. SQM Group, which specializes in this metric, removes from the base what could not be resolved anyway, such as wrong numbers and abandoned contacts. Made-up example: 390 cases out of 500 eligible give 78%. The math depends on a choice you make: how many days a new contact on the same issue can undo the case.
On WhatsApp these calculations need adjusting. The conversation is asynchronous: the customer disappears for hours and comes back, and one agent handles several at once. If AHT runs from the start to the end of the conversation, it measures the customer's absence. Count only active time, or track time to first reply, time to resolution and messages per case separately.
The value is in reading them together. AHT and FCR falling at once usually means rushing, and the conversation comes back, a warning RD Station also gives. High wait time with stable CSAT may mean that those who gave up never answered. High CSAT with low FCR calls for a look at who is answering the survey.
A shortcut for choosing: queue and team size, wait time; workload, AHT; rework, FCR; perception, CSAT; friction, CES; relationship, NPS. If you can only start with three, pick wait time, FCR and CSAT. One shows the wait, another the resolution, and the third what the customer thinks of both.
What skews the score: who answers, when and how you ask
Those who answer rarely represent everyone. Go back to the 1,000 conversations, 200 responses and 160 positives. If the 800 silent customers were all dissatisfied, the real rate would be 16%. If they were all satisfied, it would be 96%. The 80% CSAT is right as math, and real satisfaction could sit anywhere in that range. The lower the response rate, the wider it gets.
There is research on the direction of the error. Mazor and coauthors, in Health Services Research in 2002, studied 82 physicians and 6,681 patients at a health plan in Massachusetts, with a 32% response rate. Physicians with higher response rates had higher mean scores. In the simulation, the biased sample inflated the score, even more among the lowest rated. It is one healthcare setting, but the mechanism fits customer service.
The sample also shrinks before anyone answers. A survey triggered only on resolved conversations leaves out those who gave up in the queue and those who left without a solution. Bain cites a filter of this kind, the company that never surveys customers whose claim was denied. Track abandonment and reopening too, or the score looks good by design.
Timing changes what is being measured. Right after the conversation, the score speaks to the service. Days later, it blends product, delivery and memory. Asking before the fix measures how friendly the person was. Pick one moment per survey type and keep it. Service and delivery call for separate questions, at different times.
The scale matters as well. Going from five options to three, changing the button order, flipping the direction or swapping words for faces creates a new series. Run both versions side by side for a while before retiring the old one, so you know how much of the change came from the format.
Asking for the vote is an old distortion. In Net Promoter 3.0, from 2021, Reichheld and coauthors quote lines like “I'll lose my job if you don't rate me a 10” and rewards for high scores, and they speak of vanity statistics. The rule is simple: the survey goes out automatically, nobody asks for a rating, nobody chooses who receives it, and no gift depends on the answer.
How to ask on WhatsApp: 24-hour window, category and opt-in
Start with the 24-hour window. The Cloud API documentation says it starts when the customer messages or calls you, and resets with each new message. Inside it, the survey goes as a service message, with no template and no approval. Outside it, only with an approved template. Closing the conversation and asking right away is the simplest path.
Outside the window, the category decides. Meta's template categorization page, read on November 2, 2026, lists “Feedback Surveys” among utility objectives, for collecting feedback on previous orders, transactions or engagements. The condition is specificity: the survey must refer to the order or interaction. One official example says the customer chatted with the company about an order and asks “How was your experience?”.
The other side is on the same page. A generic survey is not approved as utility. A survey with promotional content is mixed content, and mixed content is marketing. So is unclear content. In short, Meta tends to treat a survey tied to a named order or interaction as utility, and a loose survey or one with an offer as marketing. Our guide to template categories has the rest of the rules.
The category can change after approval. When it decides a utility template is marketing, Meta updates the category with one day's notice, or instantly for those already warned for abuse, and gives 60 days to appeal. Becoming marketing changes the price and brings the per-user marketing limit, which shows up as error 131049. Then some customers never get the survey.
Permission comes first. The documentation reminds you to message only people who opted in, and WhatsApp's policy, updated on September 23, 2026, requires honoring every request to stop and recommends explaining how to leave each category. Our opt-in guide shows how to record that. In the US, 47 CFR 64.1200 defines telemarketing as a call or message meant to encourage a purchase, so a coupon moves a survey toward that line; ask counsel how it applies to you.
One useful operational detail. The template documentation says a quick reply button, when tapped, sends the button's text to the business, and the pricing documentation says the window opens with each user message. In practice, the tap opens the window, and the open question that follows can go as a service message. Meta does not describe the case in those terms, so test it on your number before scaling.
Buttons, list or Flow: the format limits your survey scale
This trap did not appear in any of the guides read for this article: WhatsApp limits the formats, and the format sets the scale. An interactive reply-button message allows up to 3 buttons, with titles of up to 20 characters. “Poor”, “OK” and “Great” fit. A 1 to 5 scale does not.
A list message allows up to 10 rows in total, with titles of up to 24 characters. A labeled 1 to 5 scale fits there, at the cost of one more tap, since the customer has to open the list before choosing. NPS from 0 to 10 has 11 options and does not fit even there. For that, use a Flow or ask for a typed number and handle answers outside the pattern.
In a template, the documentation allows up to 10 quick reply buttons, each with up to 25 characters. But templates with 4 or more buttons cannot be viewed on WhatsApp desktop clients, and the user is prompted to view the message on a phone. The same goes for mixing quick replies with another button type. If much of your base uses a computer, three buttons avoid that detour.
WhatsApp Flows come in when there is more than one question, such as rating, reason and comment, on screens inside the conversation. The Flows API has a SURVEY category, and Meta recommends tasks of up to 5 minutes and at most 10 options per screen. To send, the business must be verified and keep high message quality. For a single question, a Flow is overkill.
Once you pick a format, do not mix series. A three-button score does not compare with a five-point one, and an “OK” out of three is not the same as a 3 out of five. If WhatsApp uses three buttons and email uses five, report them apart. And decide up front what counts as positive on the short scale: if only “Great” counts, the number drops with nothing having gotten worse.
Customer satisfaction survey templates: four ready-to-use examples
The templates below are starting points, with variables in braces. All refer to the interaction, carry no offer and ask for no personal data. None asks for a national ID, Social Security number, password, code or card. WhatsApp's policy bans asking for full card numbers, financial account numbers and personal ID card numbers, and GDPR Article 5(1)(c) limits data to what is necessary. To identify the case, use the order number you sent yourself.
E-commerce, after delivery. “Your order {{1}} was delivered on {{2}}. How was this purchase?” Buttons: Poor, OK, Great. If the rating is low: “We're sorry. What went wrong with order {{1}}?” Ask about support in a separate survey, tied to that conversation, so you do not mix delivery and service.
Clinic, after the visit. “How was our front desk service on your visit on {{1}}?” Buttons: Poor, OK, Great. Second question: “Did we keep to your scheduled time?” Yes or No. Do not name a specialty, test, symptom or treatment. The policy bars requesting health information where regulations prohibit sending it to systems without heightened requirements, GDPR Article 9 treats it as a special category, and US clinics should check HIPAA with their compliance lead.
SaaS, after a ticket. “You spoke to support about ticket {{1}}. Was your issue resolved?” Buttons: Yes, Partly, No. If Yes: “From 1 to 5, how was the service?”, in a list. That order gets you customer-reported FCR before the rating. An invitation to a bigger plan or a product announcement turns the template into marketing.
Logistics, after delivery. “Delivery {{1}} was recorded on {{2}}. Did everything go well?” Buttons: Yes, I had a problem, Not received. Here the answer matters more as an alert than as a score: “Not received” opens a case right away. Meta gives a similar example as utility, an order delivered with an invitation to say if there was any issue.
The open question works for all four: “Would you like to tell us what we could have done better?” Keep it optional and say who will read it. Three mistakes to avoid: a coupon for answering, text that suggests the rating, such as “give us 5 stars”, and two questions in one, such as “service and delivery time”. Each of them changes what the score means.
Survey response rate: how to measure it without made-up numbers
Response rate is (responses ÷ surveys delivered) × 100. Use delivered, because a failed send is not a customer's refusal. Made-up example: 900 delivered and 180 responses give 20%. WhatsApp's statuses let you break the funnel into sent, delivered, read and answered. At CCX Messages, the dashboard shows sent, delivered, read and failed, and warns when failures pass 1%.
This article gives no average WhatsApp response rate because we did not find a primary source, with an open method, for that number. The figures in circulation mix channel, industry and timing. Measure your own and compare it with yourself, by contact reason and survey type.
What to test: a single question, one tap, sending right after resolution, text that says which interaction it refers to, and no survey for anyone with another open case. Change one thing at a time, with comparable groups. If a format raises responses and lowers the score, that may be good news, since the sample may be closer to your real base.
Control the frequency. Set a minimum gap between surveys for the same customer and at most one reminder. WhatsApp's policy links unsolicited messages to the risk of being blocked, and a survey is also a message that adds to the bill: since October 1, 2026, Meta has charged for service messages above a monthly allowance per number.
How to act on a low score: close the loop and reply on time
Closing the loop means telling the customer their feedback was heard and taking the case inside the company. In a 2012 article, Markey and Reichheld, of Bain, cite Charles Schwab and Apple's retail division among those aiming to respond to negative ratings within 24 hours. Your deadline is your decision, as long as it exists and is met.
A simple process has five steps. A rating of 1 or 2 triggers an alert. The case gets an owner, ideally the supervisor of whoever handled it. The owner reads the conversation before talking to the customer. The reply goes out on time. And the reason goes on a short list: delay, product, wrong information, slow response, attitude.
On WhatsApp, the customer's answer reopens the window, so the reply can go as a service message within the next 24 hours. After that, only with a template, subject to the category rules. So the internal deadline for low scores should be shorter than the window, and the queue should show the clock on those cases.
A reply works when it is short and concrete: “Hi {{name}}, this is {{supervisor}}. I read your conversation about {{subject}} and saw that {{problem}}. I've already {{action}}. Does that solve it for you?” No long justification, no request for a new rating and no automatic offer. Compensation is a case-by-case decision. If the score triggers it, customers learn to give low scores.
The reply solves one person, and the list of reasons solves the cause. Once a month, take the heaviest reasons to the people who can change them: logistics, product, finance. Record what changed and see whether the score for that reason moves in the following months.
Be careful with high scores. Sending only the 5s to review you on Google is known as review gating. The Google Maps content policy bars selectively soliciting positive reviews, discouraging negative ones and offering incentives for reviews. The FTC's guide says “Don't ask for reviews only from people you think will leave positive ones”, and its rule in force since October 21, 2024 allows incentives only without a required sentiment. If you want public reviews, ask everyone.
How to track CSAT by agent and channel without turning it into punishment
With few responses, an individual score is noise. Using the normal approximation, the margin of error of a proportion is 1.96 × √(p × (1 − p) ÷ n). With 80% CSAT, that comes to about 17.5 points with 20 responses, 7.8 with 100 and 3.9 with 400. And that math assumes a random sample, which a voluntary survey is not. The NIST statistics handbook warns it can be inaccurate in small samples.
So an agent at 85% and another at 75%, with 20 responses each, may be tied. Do not rank weekly and do not post a public scoreboard. Use a longer period, put the number of responses next to the score and look at the trend. Bain itself writes that the primary goal of this loop “is not to rank employees”.
Separate what the person controls. A low score over a carrier delay or a refund policy speaks to the process, not to whoever answered. Tag the reason before assigning the score, and decide who gets the score on a transferred conversation. Spain's law asks for this separation: the system must identify whether dissatisfaction comes from the delivery of the service or from customer care.
Use the score to coach. Read three conversations with the agent: a good one, a bad one and a surprising one. Avoid bonuses tied to an individual score. In Net Promoter 3.0, the authors say that linking scores to frontline bonuses made staff care more about the score than the customer. If the company wants to reward, use team goals and combine CSAT, FCR and reopening.
By channel, the comparison only works with the same scale and timing, and the split by reason comes before the split by channel. When AI answers first, separate conversations resolved by AI, transferred ones and those with only people. Every agent should introduce itself as AI at first contact, so the score does not measure a misunderstanding.
At CCX Messages, the inbox brings channels into one queue and, on numbers with the AI agent turned on, a resolved conversation gets a one-tap satisfaction survey. The dashboard covers the operations side: SLA at risk, median response time, the queue with no owner, a filter by agent and XLSX export. The Flows tab in Contact 360 shows form answers, and the support team page shows how this fits together.