OrderSurvey
All articles

Attribution

Marketing Attribution Survey: Calculate Channel ROI From the Data

Most stores collect a "how did you hear about us?" answer and then do nothing with it. The response sits in a dashboard, somebody screenshots a pie chart for a Monday meeting, and the actual question (which channels are worth the money?) never gets answered.

A marketing attribution survey is only useful if you connect it back to dollars. A response that says "Instagram" from a customer who spent $38 is not the same as one from a customer who spent $420. If you treat them the same, you will overweight the channels that drive cheap impulse buys and starve the ones that bring in your best customers.

This guide walks through how to go from raw survey answers to a channel ROI number you can actually act on. There is a worked example with real numbers further down.

Why count-based attribution misleads you

The default way to read survey attribution is to count responses. You get 1,000 answers, 30% say "TikTok," so TikTok gets 30% of the credit. Simple, and usually wrong.

Counting treats every customer as identical. But your channels do not bring in identical customers. A few patterns show up again and again:

  • Paid social often skews toward first-time, low-AOV buyers chasing a discount.
  • Podcast and newsletter sponsorships tend to bring fewer people but higher intent and bigger carts.
  • Word of mouth usually has the best repeat behavior, which counting alone never sees.

So the first rule of turning survey data into ROI: weight by revenue, not by response count. A channel's real share is the revenue from customers who named it, divided by total revenue across all answered surveys.

Step 1: Attach every response to an order

Revenue weighting only works if each survey answer is tied to the order that produced it. This is where a lot of attribution setups fall apart, because the survey tool and the order data live in separate systems.

OrderSurvey runs its surveys directly on Shopify's native checkout, order status, and POS surfaces, so a response is captured against the order at the moment it happens. When you ask the attribution question on the thank-you page (right after checkout) or the order status page, the answer is already bound to that specific order id. No fuzzy matching by email or timestamp later.

If you are setting up the question itself, the how-did-you-hear-about-us playbook covers wording and answer options. The short version: keep the options to a tight list (6 to 8), because free-text answers are hard to aggregate by revenue.

Step 2: Export responses and join to order revenue

Once responses are attached to orders, you need the revenue figure next to each answer. OrderSurvey gives you a CSV export of all responses. The order data lives in Shopify. You join the two.

Your join key is the order. The workflow looks like this:

  1. Export survey responses to CSV from OrderSurvey.
  2. Export or pull your Shopify orders for the same date range (order id and total).
  3. Join the two on order id (a VLOOKUP, a spreadsheet merge, or a JOIN if you load both into a database).
  4. Group by the attribution answer and sum the order totals.

You now have two numbers per channel: how many people named it, and how much revenue those people brought in. That second number is the one that matters.

A few cleanup notes before you trust the totals:

  • Use the same revenue definition Shopify uses, or strip shipping and tax consistently. Pick one and stick with it.
  • Decide how to handle refunds. For a first pass, net revenue (after refunds) is the honest choice.
  • Drop the "unsure / don't remember" bucket from ROI math, but keep an eye on its size. If it is over 25%, your answer options probably need work.

Step 3: Compare survey share to platform-reported share

Here is where survey attribution earns its keep. Every ad platform claims credit for conversions, and the claims overlap. Add up what Meta, Google, and TikTok each report and you will often "explain" 130% or more of your actual orders. Since iOS 14, the platform numbers got noisier, not cleaner (more on that in attribution after iOS 14).

A marketing attribution survey gives you an independent read. It is self-reported, so it is fuzzy in its own way, but it is not gamed by the platforms competing for credit. The useful move is to put the two side by side.

Channel Survey revenue share Platform-reported share Gap
Meta ads 22% 41% Platform over-claims
Google 18% 24% Roughly aligned
TikTok 9% 19% Platform over-claims
Podcast 16% 3% Under-credited
Word of mouth 21% 0% Invisible to platforms
Email 14% 9% Under-credited

The gaps tell the story. When a platform reports far more share than the survey does, it is claiming credit for purchases it influenced lightly or not at all. When a channel like podcast or word of mouth shows strong survey share but near-zero platform share, you are almost certainly underinvesting in it because your dashboards cannot see it.

A worked example

Say you ran your attribution survey for 30 days and got 800 answered responses against $96,000 in attributed revenue. Here is the count view versus the revenue view.

Channel Responses Response share Revenue Revenue share Avg order
Meta ads 280 35% $21,120 22% $75
Podcast 96 12% $15,360 16% $160
Word of mouth 152 19% $20,160 21% $133
Email 120 15% $13,440 14% $112
TikTok 88 11% $8,640 9% $98
Google 64 8% $17,280 18% $270

Read the count column and Meta looks like your biggest channel by a mile (35%). Read the revenue column and it drops to 22%, because its average order ($75) is the lowest on the board. Meanwhile Google looks small by count (8%) but pulls the highest average order ($270) and lands at 18% of revenue.

Now bring in spend to get ROI. Say you spent $9,000 on Meta and $2,500 on Google last month:

  • Meta: $21,120 revenue / $9,000 spend = 2.3x
  • Google: $17,280 revenue / $2,500 spend = 6.9x

The count-based pie chart would have pushed you to pour more into Meta. The revenue-weighted survey, joined to spend, says Google is the efficient channel and podcast and word of mouth are doing heavy lifting your ad dashboards never reported. That is a completely different budget conversation.

For channels with no media cost (word of mouth, organic), you are not computing ROI in the spend sense. You are sizing them so you know what you would lose if a referral program or community effort went away.

Step 4: Track the shift over time

A single month is a snapshot. The real value comes from watching channel share move as you change spend.

Run the same export and join every month and keep the revenue-share numbers in a running sheet. What you are looking for:

  • Diminishing returns. You doubled TikTok spend but its survey revenue share barely moved. That is saturation the platform's own ROAS number will hide.
  • Lag. Podcast and influencer mentions often show up in survey share weeks after the spend. Counting a single month misses this.
  • Mix drift. If word of mouth share is climbing, your product and retention are working. If it is falling, something upstream is slipping.

Keep the survey question and answer options stable across months so the numbers stay comparable. Changing the wording mid-quarter resets your baseline. If you do need to revise options, note the date so you know where the discontinuity is.

Tightening the inputs

Your ROI math is only as good as your response volume and quality. Two levers:

  • Volume. Thin sample sizes make monthly comparisons jumpy. If a channel has 12 responses, its revenue share will swing wildly. More responses smooth this out, so it is worth pushing your response rates up.
  • Placement. Where you ask changes who answers. The thank-you page catches people while attention is high; the order status page catches them on a return visit. The tradeoffs are covered in the thank-you page vs order status guide.

One nice property of this whole approach: it runs on data you already own, captured at checkout, with no pixels and no extra tracking. OrderSurvey is built on Shopify's native extensions, so it does not request broad data-access scopes to do any of this.

If you want the broader context on running these surveys well, start with the complete guide to post-purchase surveys for Shopify. It covers placement, question design, and how the attribution survey fits alongside NPS and CSAT. From there, the CSV export plus a monthly join is the entire pipeline you need to turn survey answers into a real channel ROI number.

Run your first post-purchase survey free

OrderSurvey adds NPS, attribution, and CSAT surveys to your Shopify thank-you page, order status page, and POS. No code, and no extra data scopes.

Install OrderSurvey