Affiliate quality scoring: how to spot junk traffic in COD markets
Most affiliate apps tell you who sent the most orders. None tell you who sent the most orders that actually paid. This is the difference that decides whether a COD affiliate program is profitable.
TL;DR. Affiliate quality score is the per-affiliate ratio of Confirmed orders to total orders attributed over a rolling window. In Cash on Delivery markets, this is a single number that separates affiliates who make you money from affiliates who cost you money. A merchant running a 200-order/month program with one Pepito-grade affiliate (22% confirmed) loses ~$840 to ghost commissions and wasted shipping vs the same program with a Maria-grade affiliate (94% confirmed). Standard Shopify affiliate apps do not compute it because they do not track Confirmed vs Pending. This post explains how to compute it, what thresholds work in practice, and how to act on it.
The problem in one screen
Two affiliates send your COD store 100 orders each over 30 days:
| Metric | María | Pepito |
|---|---|---|
| Orders attributed | 100 | 100 |
| Orders delivered & paid | 94 | 22 |
| Orders cancelled / RTO’d | 6 | 78 |
| Revenue you collected | $3,760 | $880 |
| Outbound shipping spent | $600 | $600 |
| Return shipping spent (on RTO orders) | $36 | $468 |
| Standard affiliate app says you owe | $400 (10% of $4,000) | $400 (10% of $4,000) |
| COD-aware app says you owe | $376 (10% of $3,760) | $88 (10% of $880) |
| Net margin before COGS / ads | $2,748 | −$276 |
In Refersion, GoAffPro, Social Snowball, LeadDyno, ReferralCandy — and any other standard affiliate app — María and Pepito look identical. Both “earned” $400 of commission, both attributed 100 orders. You cannot see which one is bleeding you out.
A quality score makes the difference visible. In COD Affiliates, the dashboard shows the score next to each affiliate’s name, sorted by Confirmed revenue. Pepito jumps out instantly.
How to compute the score
The simple version that works in practice:
Quality score = Confirmed orders / Total orders attributed
Over a rolling 30-day window. (Lifetime numbers are too lagging; 7-day is too noisy.)
Optionally, weight by order value if you want to capture the “Pepito sends 100 cheap orders, María sends 50 big ones” case. The unweighted version is fine for most merchants.
Some operators add a third state — In Transit — and exclude it from the denominator until it resolves. This avoids penalizing affiliates whose orders are still in the delivery pipeline. The cleanest formula:
Quality score = Confirmed / (Confirmed + Cancelled + RTO)
Excluding still-pending In-Transit orders.
What thresholds work in practice
These are operator-reported, not academic — your store’s market and category will shift them.
| Score range | What it means | Action |
|---|---|---|
| Above 75% | Top-tier traffic. Affiliate sends qualified, motivated buyers. | Reward with higher commission tier, prioritize in recruitment, ask for referrals to similar creators |
| 50–75% | Average. Slightly above your store’s mean RTO rate. | Default tier. Coach on traffic quality if there are easy wins (e.g. they are pushing the wrong product) |
| 30–50% | Below average. Wasting shipping money. | Probation. Move to lowest commission tier and flag for review at 30/60 days. |
| Below 30% | Junk. Sending unqualified or fake traffic. | Pause. Investigate before re-enabling. Likely fraud-pattern: coupon-bait, fake-order traffic, or wrong demographic targeting. |
These thresholds should be adjusted to your store’s market average. If your overall COD confirmation rate is 65%, an affiliate at 55% is below your store average and should be flagged. If your overall rate is 35%, that same affiliate at 55% is well above and should be rewarded. Quality is relative to your store, not absolute.
How affiliates earn low quality scores (the pattern catalog)
The five patterns that explain 90% of low-score affiliates:
Pattern 1: Coupon-bait audiences
The affiliate’s audience is mostly discount hunters, not committed buyers. They place orders to get the discount, never intending to actually pay COD at the door. Common in influencer-led programs where the creator’s audience is broad (Pepito on TikTok has 500k followers but most are passive viewers, not motivated buyers).
Sign: high CTR on discount code links, low completion rate at delivery.
Fix: move the affiliate to a higher commission % with no discount (or smaller discount). Filters out coupon-only buyers.
Pattern 2: Wrong demographic
The affiliate’s audience is in a market that genuinely cannot pay (wrong currency, wrong income bracket, wrong country). Common with TikTok creators whose audience is geographically distributed when your store ships only to one country.
Sign: high cancellation specifically on delivery attempt (buyer never had cash).
Fix: pause or restrict geo if Shopify allows.
Pattern 3: Fake orders / fraud
The affiliate is placing orders themselves to inflate their commission, or paying others to do so. Common in markets where shipping verification is weak.
Sign: orders from a small cluster of phone numbers or addresses, often timed in clusters, often to “test” the system.
Fix: investigate manually. Suspend account. Do not pay.
Pattern 4: Misleading creative
The affiliate’s promotional content overpromises — wrong product attributes, wrong price, wrong delivery time. Buyers realize at delivery and refuse.
Sign: high cancellation rate at moment of delivery, sometimes paired with complaints in DMs.
Fix: review the affiliate’s content. Provide approved creative templates. Restrict if they keep going off-brief.
Pattern 5: Junk paid traffic
The affiliate is running cheap broad paid traffic (low-CPC display, retargeting bombs) that converts at high rates but to unqualified buyers. Common with media-buyer affiliates from blackhat communities.
Sign: very high order volume per day for an affiliate with no visible audience.
Fix: lower commission tier or remove. These accounts will rotate to a different program anyway.
What to actually do with the score
Dashboard
Surface the score next to every affiliate name. Sort by Confirmed revenue (not by total orders). Color-code: green above 70%, amber 40-70%, red below 40%.
Automated rules
In COD Affiliates, you can set:
- Auto-pause an affiliate whose 30-day score drops below 30%
- Auto-tier downgrade an affiliate whose 30-day score drops below 50%
- Auto-tier upgrade an affiliate whose 30-day score exceeds 75% for two consecutive 30-day windows
These rules run quietly without you having to babysit. The affiliate sees a notification in their portal and (in the case of pause) is told what they can do to re-qualify.
Recruitment
When you onboard a new affiliate, give them a 30-day probation window with no auto-pause rules but explicit communication that quality is measured. After day 30, the rules engage.
Communicating this upfront does three things:
- Filters out affiliates who plan to send junk (they self-select out)
- Sets expectations that prevent dispute when scoring engages later
- Signals that you run a serious program — which attracts better affiliates
Tier commission rates by score
A practical schedule:
| Tier | 30-day quality score | Commission rate |
|---|---|---|
| Top | ≥ 75% | 15% |
| Standard | 50-74% | 10% |
| Probation | 30-49% | 7% |
| Paused | < 30% | 0% — requires re-application |
The exact rates depend on your category and margins. The principle (more confirmed = more commission) is universal.
The affiliate side: why this is actually good for them too
Affiliates who are doing their job right (sending qualified traffic) end up making more money under quality-scored programs than under flat-rate programs. Because:
- The merchant can sustain higher rates for top tier (no longer bleeding on bottom tier)
- Top affiliates rise to the top of the leaderboard, which attracts agency / brand-deal opportunities
- The merchant is less likely to go out of business because the program is sustainable
The losers are affiliates who were quietly running junk traffic and getting paid for it. They will leave. Let them.
What if you have no scoring infrastructure?
If you are currently using Refersion / GoAffPro / UpPromote / Social Snowball, you cannot compute quality scores natively because you do not have a Confirmed vs Pending distinction. The workaround:
- Export Shopify orders by month, including fulfillment status and payment status
- Match to your affiliate app’s commission export
- Compute (paid orders / attributed orders) per affiliate in a spreadsheet
- Manually deduct cancellations from each affiliate’s payout
This is what most COD merchants on standard affiliate apps end up doing. It works for ~5 affiliates. It breaks at ~20.
The alternative is to use an affiliate app that computes quality natively. COD Affiliates is built around this exact requirement.
TL;DR — the action list
- Compute Confirmed / (Confirmed + Cancelled + RTO) per affiliate over rolling 30 days
- Set thresholds: 75%+ top tier, 50-75% standard, 30-50% probation, below 30% paused
- Tier commission rates by quality, not by total volume
- Communicate the scoring at onboarding, before it bites
- Auto-pause or auto-downgrade with rules so you do not have to babysit
The first three months feel like more work. Months four onward, your average affiliate quality rises 15-25 percentage points and your effective commission cost per delivered order falls 30-40%.