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

InputWhy
Contact count by channel and weekVolume 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 wageFor 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

MetricPrimary questionBad question it cannot answer
ResolutionDid we finish the shopper’s issue?Did chat “feel smart”?
DeflectionDid this contact avoid a human agent?Did we prevent the need forever?
CSATWas the shopper satisfied with the experience we measured?Will they buy again?
CostWhat 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:

TermYour rule (example)
ResolvedShopper got the needed status, policy answer, or human decision; no open follow-up for the same issue within 48 hours
Not resolvedStill waiting on carrier, refund pending, shopper asked again, or you closed without an answer
DenominatorContacts 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

TrapWhy it misleads
Using all store sessions as the denominatorInflates “deflection” when most people never asked for help
Counting every bot reply as deflectedIgnores “bot failed → email still opened”
Hiding the human contact formFake 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

  1. Same trigger every week (after resolve, not only after happy macros).
  2. Report response rate next to CSAT (10 glowing scores out of 500 silent contacts is weak evidence).
  3. Segment by type: WISMO CSAT can look great while refund CSAT looks poor.
  4. 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

IncludeWhy
Agent wages (fully loaded if you can)Main cost for most Shopify teams
Helpdesk / chat / phone toolsSoftware is real spend
AI reply plan / creditsUsage rises with volume
Contractor or agency overflowEasy 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):

MetricThis weekPrior weekNotes
Contacts (total)By channel if useful
Resolution rateDenominator: closed contacts
Deflection rateDenominator: self-serve / chat entries
CSAT + response rateSegment refunds if volume allows
Cost per contactOr monthly if wages are monthly
Top 3 contact categoriesWISMO / policy / product / refund

Decision rules:

PatternLikely action
Deflection up, CSAT downBot or FAQ is closing threads too early; fix answers and escalation
Resolution down, volume flatMore pending refunds or carrier waits; do not blame chat alone
Cost per contact up, deflection upCheck repeat contacts from bad answers; measure resolved, not closed
Category tickets down without chatPDP/policy/tracking page wins (avoidance); keep investing in content

Step 7: Verify the numbers with a small audit

Each week, sample 20 contacts:

  1. Was the tag correct?
  2. Was “resolved” true 48 hours later?
  3. If marked deflected, did a human still reply in email the same day?
  4. 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

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.