Why Marketing Reports Disagree: A Reconciliation Guide
Before changing the campaign, check whether the two reports are answering the same question.

Before changing the campaign, check whether the two reports are answering the same question.
Two reports can disagree without either one being broken. They can also disagree because something really is broken. The expensive mistake is picking an explanation before checking.
A marketing report discrepancy is a difference between numbers that appear comparable but may represent different actions or reporting rules. Start by matching the actual metric and date basis. Then test the path being measured. Don't use a generic explanation about attribution to wave away a gap you haven't investigated.
This guide is for a business comparing an advertising report with its website analytics or order system. It's a reconciliation workflow, not a demand that every platform produce one identical total.
Start with the decision the discrepancy could change
Before troubleshooting, write down why the mismatch matters. Are you about to cut a campaign because the website shows fewer arrivals than the ad platform shows clicks? Are you trying to verify that a purchase event fires once? Those require different investigations.
If we don't name the decision, we can spend hours making reports look consistent while leaving the actual uncertainty untouched.
Keep the original exports. Note when each was pulled and preserve the filters. A screenshot with a large number and no visible date range is a pretty weak starting point for a budget conversation.
Give one person responsibility for the reconciliation. That person should be able to ask for configuration evidence, not just another summary slide.
Match the action before matching the number
A click on an ad isn't the same measurement as a website session. Google explicitly distinguishes the two. Multiple ad clicks can relate to one session, and somebody can leave before the site's analytics loads. A missing or incorrectly configured tag can also create a genuine measurement problem. Google's clicks and sessions troubleshooting guide explains these differences.
That gives us possible causes. It doesn't tell us which cause explains your account.
Copy the full metric name into your working document. Avoid renaming everything traffic. If a platform offers several click columns, document the specific one you used. If the site reports an event, record what makes that event fire.
| Reported number | Question to resolve |
|---|---|
| Ad clicks | Which interaction does this exact column count? |
| Website sessions | Which landing pages and traffic sources are included? |
| Form events | Does the event fire on a button click or a confirmed successful submission? |
| Orders | Are canceled or test orders in the export? |
This is also where I would stop combining unlike numbers into a single total. Making a chart easier to read doesn't make those measurements interchangeable.
Align dates without mixing two different questions
The date printed on a report isn't always the date of the action you think you're comparing. Google's primary conversion columns generally assign a conversion to the date of the ad interaction. It also offers columns based on the time the conversion occurred. Google describes the conversion time columns here.
For a clearly hypothetical example, somebody clicks an ad on Sunday and buys on Tuesday. A report organized around the interaction and an order export organized around the purchase can put the same purchase into different weeks.
Choose the date basis that fits the question. For reconciling Tuesday's orders, conversion time may be useful. For evaluating the eventual outcome of Sunday's spend, an interaction-based view has a different purpose. Switching columns solely because one looks better would hide that difference.
Record the account time zones and whether the ending date includes an incomplete day. Also separate delayed processing from customer delay. A conversion can happen later, and a conversion that has already happened can take time to appear in a report. Google's data freshness documentation describes processing and later adjustments. There isn't one universal waiting period that settles every report.
Check which conversions made it into each report
Even reports labeled conversions may include different sets of actions. Google Ads distinguishes its Conversions and All conversions columns. Imported actions can also use different counting settings. Google's Analytics import documentation describes those differences.
List the actions included in each export before comparing totals. If one includes purchases and another includes purchases plus newsletter signups, the gap isn't a mysterious attribution problem. We assembled different totals.
Then review how the same action enters the system. A successful form might be tracked by more than one implementation. That is something to inspect, not a reason to assume every large number is duplicated.
Don't change conversion settings merely to make last month's report line up. A settings change can affect future reporting and campaign decisions. Document the reason and preserve the comparison first.
Walk through the actual path
Use the specific ad destination involved in the discrepancy. Follow any redirect and confirm that the final page is the intended one. Check the analytics implementation with the business's approved testing method. If the action hands off to another provider, inspect that handoff too.
A useful test record includes the starting URL, final URL and the event you expected. Capture what actually appeared in the debugging tools. Keep test submissions clearly labeled and coordinate them so nobody follows up with a fake prospect.
For forms, test a failed submission as well as a successful one. If a required field is empty and the event still fires, the report may be measuring an attempt rather than a completed inquiry. If a success event appears twice, investigate the trigger before calling it two leads.
A clean test today doesn't reconstruct every historical visit. It can establish whether the current path behaves as expected and narrow the list of possible explanations.
Close the investigation with an explanation, not a forced match
Keep a short reconciliation record:
- The exact reports and filters compared.
- The definitions or settings that explained part of the difference.
- The path tests performed and what remains unresolved.
- The next decision and who owns it.
If the cause is still unknown, say that. A plausible explanation isn't a finding. A large gap shouldn't become acceptable simply because somebody says tracking is messy. A small gap shouldn't automatically be treated as a technical failure either.
Once the immediate issue is understood, label the report so it doesn't need the same explanation every month. Put the metric definition beside the chart. Keep the pull date visible. Separate confirmed business outcomes from the signals used to investigate them.
For the wider reporting structure, use our marketing dashboard guide. For a handoff to a booking provider, use the more specific cross-domain attribution guide. TMG's analytics work can help connect the investigation to a report the business can actually use.