Reconciling Affiliate Reports: Where to Look For Lost Leads
It’s rare to see a 100% lead count match between reporting platforms. What’s worse is that it’s never positive. You never get surprised by a few extra leads appearing downstream.
A tracker, affiliate network, advertiser, and advertising platform see different parts of the conversion path, process data independently, and apply their own attribution and validation rules. Small discrepancies are a given, and for a media buyer, determining whether they are within expected variance or a real attribution problem is a vital skill to have.
Experienced affiliate teams typically work backwards from the first point where reporting doesn’t match, so that’s where we are going to start as we run through the process.
First Point of Divergence
Let’s start with an example any affiliate might see when pulling campaign reports across all platforms involved:
| Platform | Conversions |
| Meta | 1,042 |
| Tracker | 1,018 |
| Network | 998 |
| Advertiser | 972 |
Looking at totals alone tells you very little. Instead, it makes sense looking at where the first major jump occurs.
If tracker clicks closely match ad platform clicks but conversions begin diverging at the network, the investigation should focus on advertiser validation rather than tracking. However, if you see the tracker itself is recording significantly fewer clicks than expected, it’s time to find out why traffic isn’t reaching the tracker.
It might seem obvious, but doing due diligence like this points you in the right direction immediately and gets the problem solved faster.
Separate Attribution From Validation
This is where the divergence-point work from the previous section starts paying off. If the discrepancy you found is between the network and the advertiser, you already know where to look: the attribution chain likely completed successfully, and the advertiser decided not to accept the conversion. Common reasons include:
- Duplicate submissions
- Compliance failures
- Lead quality requirements
- Fraud detection
- Delayed verification
- Manual reviews
Confirming this early can save a technical investigation you don’t need. Attributed conversions and approved business outcomes are related metrics, but they answer different operational questions, and knowing which one you’re actually looking at determines who you talk to next: your tracker, or your affiliate manager.
Reconciling Events
Attribution problems are often found in individual events. When investigating discrepancies, export representative samples instead of entire reporting periods.
Look for identifiers that should exist throughout the attribution chain:
- tracker click IDs
- affiliate network transaction IDs
- advertiser order IDs
- conversion timestamps
- SubIDs and custom parameters
The objective here is to determine whether the same conversion can be followed from click through approval. Working with individual events often reveals patterns that aggregate reporting won’t show you.
Looking for Patterns
Instead of asking why 42 conversions disappeared, ask what those 42 conversions have in common. For example:
- Same traffic source? It’s not network-wide. Likely a source-side tracking or macro-passing issue.
- Same landing page? The problem is in that page’s redirect or tracking script, not the offer itself.
- Single GEO? Often a compliance rule or GEO-specific integration setting.
- After a deployment? A recent change broke something.
- One advertiser or network? Isolates the issue to that specific integration instead of the whole stack.
- Same browser or device type? Can point to an ad blocker, privacy setting, or fingerprinting rejection on that segment.
Patterns narrow the investigation considerably. A discrepancy isolated to one offer suggests a very different problem than discrepancies affecting every campaign.
Distinguish Systematic Loss From Expected Variance
Every reporting stack contains some degree of measurement variance. Examples of systematic attribution loss include:
- every conversion after a routing change
- one landing page consistently under-reporting
- a single traffic source failing to populate click IDs
- one advertiser suddenly reporting fewer conversions after an integration update
These deserve immediate investigation because they suggest infrastructure changes rather than normal reporting behaviour.
Small differences distributed consistently across campaigns are often explained by processing delays, attribution windows, or platform-specific filtering. The investigation changes depending on whether the discrepancy is deterministic or random.
Typical Variance Ranges by Vertical
“Normal” is not a fixed number. It changes with the vertical, the length of the redirect chain, and the attribution method involved. A few reference points, worth treating as general orientation:
- General digital advertising discrepancy (impressions, clicks, conversions between an ad server and a demand partner): differences of roughly 1–5% are commonly treated as routine, while gaps above 10% are considered worth investigating. This 10% threshold is widely attributed to IAB guidance and repeated across ad-ops resources.
- CPA/redirect-heavy affiliate chains (traffic source → network → tracker → ad platform → landing page → advertiser): because each additional redirect is another place to lose data to timeouts or ad blockers, discrepancies up to roughly 20% are sometimes described as normal for these longer chains, notably higher than the general ad-tech benchmark above.
- Mobile app install attribution (MMP vs. ad platform vs. first-party data): roughly 10–15% variance is often treated as expected, given SKAdNetwork’s delayed, aggregated postbacks and probabilistic modeling on Android; discrepancies above ~20% are flagged as a likely tracking problem.
- Approval-rate variance by vertical: in iGaming, for example, approval rates in the roughly 32–58% range have been reported, driven largely by the compliance and AML screening those programs must apply before accepting a lead. A CPA lead-gen offer in a different vertical with lighter compliance overhead would be expected to sit meaningfully higher.
None of these figures are formal standards. They are recurring rules of thumb from ad-tech and affiliate practitioners, and they vary by network, offer, and GEO. Their main use is as a sanity check: a 4% gap between a tracker and a network is unremarkable almost anywhere, but a 4% gap between an MMP and a self-reporting ad platform in mobile UA, or a 40% gap in a redirect-heavy CPA chain, is a different conversation.
Verify Recent Infrastructure Changes First
Large reporting gaps frequently coincide with operational changes rather than campaign performance. Some of the main examples are:
- replacing tracking domains
- introducing another redirect
- modifying redirect logic
- updating landing pages
- changing affiliate network integrations
- migrating to another tracker
- changing postback endpoints
If discrepancies appear immediately after a deployment, that change deserves attention before looking into attribution models or traffic quality. Maintaining a deployment log alongside reporting history makes finding where leads got lost a lot easier.
Where the Matching Breaks: Click IDs, SubIDs, and Macros
Most “missing conversion” investigations eventually trace back to one of a handful of ID-passing failures. It’s worth checking the usual suspects before assuming the problem is more exotic than it is.
Macro name mismatches. Every tracker and network has its own token for the click identifier: clickid, subid, s1, cf_click_id, and so on. If your tracker sends the click ID as subid but the network is configured to read it back as clickid, the values never line up, and the conversion looks lost even though the click was recorded correctly on both sides. Mismatched macro syntax between platforms (for instance, one system’s {click_id} versus another’s #s1#) is frequently cited as the single most common cause of postback failures.
The click ID never reaches the advertiser. If the click ID isn’t appended to the outbound offer URL in the first place, there’s nothing for the advertiser to hand back later. The postback fires, but with an empty or missing identifier.
Encoding and formatting issues. Stray characters, unencoded ampersands, or an unexpected http vs https mismatch in the postback URL can break the request before it’s ever received.
Missing or reused transaction IDs. Without a unique transaction ID on each postback, a tracker may treat a second legitimate conversion from the same click as a duplicate and drop it, which looks identical to a lost conversion in the reporting, but is really a deduplication setting.
How to actually verify it: fire a test click with a distinctive, made-up SubID value, follow it through to the offer, then ask your affiliate manager to manually trigger a test postback for that value. If the tracker never records it, you’ve isolated the break to a specific step in the chain instead of guessing.
This is also where pixel-based tracking and server-to-server (S2S) postbacks differ. Pixels fire client-side and are vulnerable to ad blockers, slow page loads, and users bouncing before the pixel loads. S2S postbacks travel server-to-server and aren’t affected by the browser, but they depend entirely on the click ID surviving the full redirect chain intact, which is exactly where the failures above tend to occur.
Build a Reconciliation Process
On-the-spot investigations become more difficult as campaign volume increases. That’s where a consistent reconciliation workflow comes in handy. Here’s one you can use:
- Confirm the reporting period and time zone.
- Identify the first platform where numbers diverge.
- Determine whether you’re comparing attribution or validation.
- Compare individual identifiers rather than totals.
- Look for shared characteristics among missing conversions.
- Check whether the loss is systematic and within a normal range for the vertical.
- Review recent infrastructure or integration changes.
- Audit the affected section of the attribution chain.
Following the same process each time reduces unnecessary troubleshooting and makes recurring issues easier to recognize. Reports still won’t hit 100%, but it does mean fewer nights spent refreshing dashboards and waiting for an advertiser to get back to the sales manager so they can tell your affiliate manager to tell you to check your tracking again. In this line of work, that’s about as close to a happy ending as it gets.