How to Calculate CSAT for Shopify Support: Counting Rules by Ticket Type
CSAT is the share of customers who rate a support conversation 4 or 5 out of 5. For a Shopify store, the math is the easy part. What makes the number useful is deciding which tickets get a survey, when it goes out compared with delivery, and which ratings count.
This guide is for merchants who answer support themselves or run a small team. It skips the theory and covers the rules that change your score: counting, timing by order status, and a separate score for each ticket type.
The formula in one line
CSAT = (4 and 5 ratings ÷ all ratings received) × 100. A 3 counts in the total but not as satisfied. If you don’t want to do it by hand, the free CSAT calculator runs in your browser and also shows your average rating.
For why CSAT should rate the ticket and not the brand, and how AI support changes what you survey, read Shopify AI support and CSAT surveys. The rest of this guide is about the part most stores get wrong: the counting rules.
Counting rules: what goes into the score
Two stores can use the same formula and get numbers that mean very different things. The difference comes from these rules. Write them down once and keep them every month, or your scores won’t compare.
| Situation | Count it? | Why |
|---|---|---|
| Customer rates a closed ticket | Yes | That’s the measurement |
| Customer rates 1 because the product broke, not the support | Yes, with a tag | Removing it hides a problem. The tag lets you split it out |
| Survey opened, no rating given | No | It isn’t an answer |
| Same customer rates three tickets about one issue | Once | Otherwise one angry customer weighs three times |
| Spam, wholesale or partner emails | No survey | They aren’t customer conversations |
| Ticket reopened after the rating | Keep the first rating | Track reopens as a separate number |
| Customer rates before the issue is actually fixed | Yes, but flag it | It tells you your survey went out too early |
Two habits keep the number honest:
- Always show the response count next to the score. “86% (14 responses)” reads very differently from “86% (400 responses)”. With few answers, read the comments before you trust the percentage.
- Look at the 1s and 2s, not only the percentage. That’s where refund requests, payment disputes and bad reviews start.
When to send the survey: match it to the order status
A survey sent too early measures hope, not help. On Shopify, the right moment depends on where the order is. The rule: send the survey once the customer has the outcome they asked for, not when you hit “close”.
| Ticket type | Send the survey when | Don’t send it when |
|---|---|---|
| Where is my order, order not shipped yet | The order is fulfilled and the customer has tracking | You’ve only said “it ships soon” |
| Where is my order, in transit or late | Tracking shows the parcel as delivered | The parcel is still moving or stuck |
| Delivered but not received | The case is settled: found, reshipped or refunded | You’re still waiting on the carrier |
| Return or exchange | The refund is issued or the replacement ships | The return label is sent but nothing is back yet |
| Order change (address, cancellation) | The change is confirmed in the order | The order already shipped and you’re still trying |
| Product question (size, material, fit) | Right after your final answer | Never wait here, the answer is the outcome |
| Damaged or faulty item | The replacement or refund is done | The customer is still sending photos |
Late orders are the trap. If you survey a “where is my order” ticket the minute you send tracking, a customer whose parcel then sits for a week rates you on a promise that didn’t hold. Wait for delivery, and the score reflects the full experience. Our guide to WISMO automation and its 5 triggers covers how to answer each of those order states before the customer asks twice.
A few more timing rules:
- One survey per ticket. Not one per reply.
- Not more than one survey per customer in a short window. People who get surveyed after every email stop answering.
- One question plus an optional comment. The comment tells you why the score moved.
Let Relay answer order status, returns and order changes from your live Shopify orders, following your rules.
Split the score by ticket type
A single CSAT for the whole store hides where the trouble is. Tag every ticket with its type, then calculate CSAT for each tag with the same counting rules. Here’s what a low score usually means for each type:
- Where is my order. The reply came late or gave no real tracking detail. Check if the low ratings cluster on delayed parcels: then the carrier is the cause, not the reply.
- Returns and exchanges. The policy is unclear or refunds take too long after the item arrives back.
- Order changes. Speed. The window closes when the order ships, so a slow reply turns into a “no”.
- Product questions. Missing information on the product page. The fix is often on the page, not in the inbox.
- Damaged or faulty items. These score lower than other types by nature. Compare them with their own past months, not with the rest of the inbox.
The split also tells you what to hand off first. A ticket type with lots of volume, a simple answer and a decent score is a good candidate for automation. A ticket type with low scores and messy decisions needs clearer rules before anyone, a person or software, can answer it well.
Turn a low score into a fix
Each low rating should lead somewhere. A weekly routine that takes little time:
- Pull every 1 and 2 from the week, by ticket type.
- Name the cause in one word: slow, wrong, policy, product or carrier.
- Fix the cause, not the ticket. “Slow” means first replies take too long. “Wrong” means saved replies or your knowledge base are out of date. “Policy” means the rule itself annoys customers. “Product” goes to whoever owns the product page. “Carrier” goes into your shipping choices.
- Check hand-offs. If low scores pile up on tickets that waited for someone to decide, the escalation rules are the problem. The ecommerce support escalation checklist helps you tighten them.
If “slow” keeps coming back because there’s more volume than people, put a number on it. The Shopify support cost calculator shows what your ticket load costs in hours and salary.
Where Relay fits
Relay is an AI support agent that understands your product, answers customer questions, takes action, and knows when to bring in your team. It finds the order in Shopify, applies your store’s rules and acts within the permissions you give it. When a ticket needs a person, it goes to your team.
Your Relay statistics show the resolution rate, the time saved and what you save on support staffing. Read them next to your CSAT by ticket type. You’ll see which tickets Relay should take next, and which ones need better rules first.
FAQ
When should I send a CSAT survey for a late order?
Wait until tracking shows the parcel as delivered, or until the case is settled with a reshipment or refund. A survey sent with the tracking link rates a promise, and the customer may change their mind a week later.
Should I exclude tickets about a broken product from CSAT?
No. Keep them in the score and tag them, so you can split out product problems from support problems without hiding either.
A customer wrote three times about the same order. How many ratings count?
Count one rating per customer per issue. Otherwise one unhappy customer counts three times and your score swings for no real reason.
Should tickets answered by AI and by my team share one CSAT?
Calculate one overall score, then split it by ticket type with the same counting rules. Comparing the same ticket type across both shows you where each one does better, which is more useful than comparing two overall numbers.

