Shopify Support Metrics: Resolution, Deflection, CSAT, and Cost
Define Shopify support metrics with clear denominators: resolution, deflection, CSAT, and cost per contact. Measure what you can defend, not vanity chat stats.
You will measure Shopify support with four numbers that have clear denominators: resolution, deflection, CSAT, and cost. You will know what each metric proves, what it does not prove, and which one to trust when tools disagree.
A metric without a denominator is marketing. “We deflected 80%” means nothing until you say 80% of what. For the ticket-reduction sequence these metrics should track, see How to Reduce Customer Support Tickets on Shopify.
When this applies
Use this guide if:
- You run Shopify support by email, helpdesk, chat, or social DMs
- You are adding self-service or AI chat and need before/after proof
- You want a weekly scoreboard your team can explain in one sentence each
Pause heavy metric work if:
- Contacts are not tagged by type yet (start with categories first)
- You have fewer than a few dozen contacts per month (use a longer window)
- Leadership wants “AI ROI” with no access to ticket or time data
What you need first
| Input | Why |
|---|---|
| Contact count by channel and week | Volume baseline |
| Tags or categories (WISMO, policy, product, refund…) | So rates are comparable |
| Who closed the contact (human, self-serve, chat) | For deflection math |
| Survey replies or thumbs (if any) | For CSAT |
| Labor hours or fully loaded wage | For cost |
You do not need a perfect helpdesk. A spreadsheet with honest tags beats a dashboard with fuzzy labels.
Step 1: Pick one primary question per metric
| Metric | Primary question | Bad question it cannot answer |
|---|---|---|
| Resolution | Did we finish the shopper’s issue? | Did chat “feel smart”? |
| Deflection | Did this contact avoid a human agent? | Did we prevent the need forever? |
| CSAT | Was the shopper satisfied with the experience we measured? | Will they buy again? |
| Cost | What did support cost per contact (or per resolved contact)? | What is marketing ROI? |
Write the four questions on your scoreboard. If a vendor report cannot map to one of them, treat it as a vanity chart.
Step 2: Define resolution (and its denominator)
Resolution rate answers: of the contacts we took ownership of, how many ended with the issue done (from the shopper’s point of view), not just “we sent a reply.”
Formula
Resolution rate = Resolved contacts ÷ Contacts closed in the period
Decide in writing:
| Term | Your rule (example) |
|---|---|
| Resolved | Shopper got the needed status, policy answer, or human decision; no open follow-up for the same issue within 48 hours |
| Not resolved | Still waiting on carrier, refund pending, shopper asked again, or you closed without an answer |
| Denominator | Contacts you closed this week (or tickets marked Done), not “all chat sessions started” |
Shopify-support notes
- Looking up tracking and sending the link can be resolved for routine WISMO.
- “I escalated to finance” is not resolved until the refund decision lands, unless you explicitly track “handed off” as a different status.
- AI chat that ends the thread with a wrong answer is not resolved even if the widget shows “conversation closed.”
Expected result: You stop calling “first reply sent” the same thing as “issue resolved.”
Step 3: Define deflection (and do not confuse it with avoidance)
Deflection rate answers: of contacts that reached a self-serve or bot path, how many did not need a human agent for that issue.
Formula (common ops definition)
Deflection rate = Contacts handled without a human agent ÷ Contacts that entered the self-serve / chat path
Example: 200 shoppers opened chat. 120 got a complete answer with no human. Deflection = 120 ÷ 200 = 60%.
Denominator traps
| Trap | Why it misleads |
|---|---|
| Using all store sessions as the denominator | Inflates “deflection” when most people never asked for help |
| Counting every bot reply as deflected | Ignores “bot failed → email still opened” |
| Hiding the human contact form | Fake deflection; CSAT and chargebacks usually suffer |
Ticket avoidance (shopper never opens a ticket because the PDP or tracking page already answered) is related but not the same metric. Measure it with ticket volume by category over time, not with chat-close rates. Track category ticket volume beside deflection so you do not mix the two. Full split: Support Deflection vs Ticket Avoidance: What Should You Measure?.
Expected result: Deflection is a share of help-seeking contacts, not a share of all traffic.
Step 4: Define CSAT (and its sample bias)
CSAT answers: of people who rated the experience, what share was positive.
Formula
CSAT = Positive ratings ÷ Ratings received
Common ecommerce pattern: 4-5 on a 5-point scale = positive, or “yes” on a yes/no survey after the contact.
Rules that keep CSAT honest
- Same trigger every week (after resolve, not only after happy macros).
- Report response rate next to CSAT (10 glowing scores out of 500 silent contacts is weak evidence).
- Segment by type: WISMO CSAT can look great while refund CSAT looks poor.
- Do not let the bot ask for a rating before the shopper got a real answer.
CSAT is not the same as repeat purchase rate. Do not stretch it into revenue proof.
Step 5: Define cost (all-in, not sticker price)
Cost per contact answers: what support cost to handle one contact in this period.
Formula
Cost per contact = All-in support cost in period ÷ Contacts handled in period
Optional twin metric:
Cost per resolved contact = All-in support cost ÷ Resolved contacts
What “all-in” should include
| Include | Why |
|---|---|
| Agent wages (fully loaded if you can) | Main cost for most Shopify teams |
| Helpdesk / chat / phone tools | Software is real spend |
| AI reply plan / credits | Usage rises with volume |
| Contractor or agency overflow | Easy to forget in peak weeks |
Optional: value of owner time if the founder still answers tickets.
For AI shopping-assistant ROI that blends time saved with cautious sales scenarios, see AI Shopping Assistant ROI: A Measurement Framework.
Expected result: A cheaper tool that creates repeat wrong-answer tickets can raise cost per resolved contact even when the subscription looks low.
Step 6: Build a one-page weekly scoreboard
Track the same week every time (for example Monday-Sunday):
| Metric | This week | Prior week | Notes |
|---|---|---|---|
| Contacts (total) | By channel if useful | ||
| Resolution rate | Denominator: closed contacts | ||
| Deflection rate | Denominator: self-serve / chat entries | ||
| CSAT + response rate | Segment refunds if volume allows | ||
| Cost per contact | Or monthly if wages are monthly | ||
| Top 3 contact categories | WISMO / policy / product / refund |
Decision rules:
| Pattern | Likely action |
|---|---|
| Deflection up, CSAT down | Bot or FAQ is closing threads too early; fix answers and escalation |
| Resolution down, volume flat | More pending refunds or carrier waits; do not blame chat alone |
| Cost per contact up, deflection up | Check repeat contacts from bad answers; measure resolved, not closed |
| Category tickets down without chat | PDP/policy/tracking page wins (avoidance); keep investing in content |
Step 7: Verify the numbers with a small audit
Each week, sample 20 contacts:
- Was the tag correct?
- Was “resolved” true 48 hours later?
- If marked deflected, did a human still reply in email the same day?
- If CSAT was collected, did the rating match the outcome?
If more than a few samples fail, fix definitions before you change tools.
Common measurement mistakes
- Reporting deflection without a denominator
- Treating chat sessions started as tickets resolved
- Mixing pre-purchase product Q&A with post-purchase refund CSAT
- Ignoring tool and credit costs
- Celebrating fewer tickets while Instagram DMs absorb the same questions
- Using a one-week AI install window as “proof”
How this relates to Appifire
This article owns metric definitions, not an Appifire analytics product. Appifire AI Chat can reduce repetitive product, policy, and routine order-status contacts when grounding is solid, which may improve deflection and cost. Appifire does not provide a full helpdesk CSAT suite or built-in “official” deflection dashboard for every channel. Use your helpdesk, spreadsheet, and chat logs with the formulas above. For the support automation split these metrics should reflect, see Shopify Customer Support Automation: What to Automate and Keep Human. For live order-status behavior in Appifire, see How Order Status and Tracking Work in Appifire Chat.
Related reading
- How to Reduce Customer Support Tickets on Shopify
- Shopify Customer Support Automation: What to Automate and Keep Human
- AI Shopping Assistant ROI: A Measurement Framework
- When Should an AI Chatbot Escalate to a Human Agent?
FAQ
What are the core Shopify support metrics?
Start with resolution, deflection, CSAT, and cost per contact. Each needs a written denominator.
How do you calculate support deflection?
Divide contacts handled without a human by contacts that entered the self-serve or chat path. Do not use all store traffic as the denominator.
What is a good CSAT for ecommerce support?
There is no universal “good” number across stores. Track your own baseline, response rate, and segments (WISMO vs refunds) week over week.
Should I optimize deflection or resolution first?
If wrong answers create repeats, fix resolution and knowledge first. High deflection with falling CSAT is a warning, not a win.
How is cost per contact different from tool price?
Tool price is one line. Cost per contact includes labor, tools, AI usage, and overflow help for the contacts you actually handled.
Want help applying this to your store?
Request a free store support audit. We'll review your Shopify setup and show you where shoppers might be slipping through the cracks.