Two marketing reports can disagree without either one being broken. They may count different units, use different clocks, apply different filters, credit different interactions, finish processing at different times, or display only part of the underlying data. Before choosing a winner, prove that the reports are answering the same question.
Start with the decision you need to make. If one report shows ad clicks and another shows website sessions, the numbers are related but not interchangeable. If one shows form submissions and another shows new contacts, deduplication and contact rules can create a legitimate gap. Use the lead-quality scorecard when the business question is whether inquiries became qualified opportunities. Use this guide when two reports appear to describe the same result and you need to explain the difference.
Freeze the comparison before investigating
Export or capture both reports at the same time. Record the visible total, report name, source account, filters, date range, time zone, refresh time, and export method. Do not keep refreshing one side while diagnosing the other. A moving comparison can create a new difference while you are explaining the old one.
Name the two reports neutrally, such as Source A and Source B. Calling one the truth before the review encourages the team to force every adjustment toward a preferred answer.
Write the comparison as one sentence:
For [exact scope], Source A reports [metric and unit] for [date range and time zone], while Source B reports [metric and unit] for the same stated scope.
Then calculate the visible gap without calling it an error rate:
Raw difference = Source A total - Source B total Relative difference = absolute raw difference / chosen reference total
State which report is the reference. Changing the denominator changes the percentage.
Complete the source-alignment worksheet
Fill one row for each report. If you cannot answer a field, mark it unknown rather than assuming the settings match.
| Field | Source A | Source B | Aligned? | Evidence |
|---|---|---|---|---|
| Business question | ||||
| Metric name and plain-English definition | ||||
| Unit counted | ||||
| Account, property, workspace, or view ID | ||||
| Date range and inclusion boundaries | ||||
| Time zone | ||||
| Currency and tax treatment | ||||
| Filters, statuses, and exclusions | ||||
| Test, internal, spam, and bot handling | ||||
| Identity and deduplication rule | ||||
| Attribution model and eligible channels | ||||
| Click, view, or conversion window | ||||
| Data refresh or extraction time | ||||
| Thresholding, modeling, sampling, or row limits | ||||
| Export, API, dashboard, or saved-report method | ||||
| Last relevant configuration change |
This is not busywork. Current Google documentation says Analytics and Google Ads can report differently when conversion-credit channels, reporting columns, or account time zones differ. Google also documents that Analytics can withhold some report data to protect privacy. Search Console documents differences caused by aggregation, anonymized queries, deduplication, processing lag, time zones, JavaScript, and a 1,000-row table limit.
Platform settings can change what appears even when collection is intact. LinkedIn states that its ad reports use UTC, and its conversion windows determine whether a view or click can receive credit. That is why a settings snapshot belongs beside the numbers.
Reconcile in an order that avoids false fixes
Work from the outside of the report inward. This sequence catches simple scope problems before anyone edits tracking code.
- Confirm identity and scope. Match the exact account, property, workspace, website, app, campaign set, location, currency, and environment. A production property and a staging property can have similar names.
- Align the clock. Use the same start and end boundaries, time zone, and data-through time. Compare completed periods when possible. A daily report in UTC will not divide activity the same way as one in local time.
- Align the unit and definition. Decide whether the unit is a click, session, event, submission, unique person, new contact, qualified lead, order, invoice, or collected payment. Similar labels do not prove identical definitions.
- Align filters and statuses. Check campaign status, channel, geography, device, internal traffic, consent state, spam rules, test records, refunds, canceled orders, and deleted or merged records.
- Align identity and deduplication. Record the key used to identify a person or event, the deduplication window, and whether repeat actions are counted once or many times.
- Align attribution. Match the attribution model, eligible channels, click and view windows, event-time or conversion-time reporting, and whether modeled results are included.
- Check processing and display limits. Compare refresh times, late arrivals, connector schedules, thresholding, sampling, row limits, API pagination, and calculated fields. A dashboard total can include rows that its visible table or export omits.
- Trace the handoff. For integrated systems, compare source events, accepted transmissions, rejected records, created destination records, and later merges or status changes. Preserve timestamps and stable IDs.
Do not change several settings at once. Record each discovered difference and recalculate the expected adjustment. Otherwise a matching total can hide two errors that happen to cancel each other.
Build a difference bridge
A difference bridge converts the raw gap into named, evidenced adjustments. Use positive and negative signs consistently.
Explained difference = sum of documented adjustments Unresolved difference = raw difference - explained difference
Consider a hypothetical service business. Its form-event report shows 240 submissions for a completed month. Its CRM shows 222 new lead records. The raw difference is 18, or 7.5% of the form total because 18 divided by 240 equals 0.075.
The team checks stable event and contact IDs rather than comparing only the totals:
| Bridge item | Records | Evidence |
|---|---|---|
| Form submission events | 240 | Frozen event export |
| Test or spam submissions excluded by the CRM rule | -8 | Matching event IDs and exclusion status |
| Repeat submissions merged into existing contacts | -6 | Contact merge and source-event IDs |
| Records rejected or still pending at the integration | -4 | Delivery log and destination lookup |
| New CRM lead records | 222 | Frozen CRM export |
The bridge reconciles because 240 - 8 - 6 - 4 = 222. The original 7.5% gap was not one problem. Four pending or rejected records may require repair, while the fourteen excluded or merged submissions may be expected under the CRM definition.
This example does not establish a normal discrepancy percentage. Your acceptable tolerance should depend on the decision and the failure type. A small unexplained gap can matter when it represents lost high-value inquiries. A larger documented gap can be acceptable when one report intentionally counts events and the other counts unique people.
Classify the result before taking action
| Finding | What it means | Next action |
|---|---|---|
| Expected difference | The reports count different units or apply documented rules | Label the distinction and stop forcing the totals to match |
| Configuration difference | Scope, time zone, filter, definition, or attribution settings do not match | Choose the intended rule, document it, and rerun a completed period |
| Data-delivery failure | Eligible records were not collected, transmitted, accepted, or stored correctly | Repair the failing handoff and verify with stable IDs |
| Presentation limit | The data exists but the report, table, export, or connector shows a limited view | Use the appropriate complete export or state the limitation |
| Unresolved difference | The remaining gap lacks evidence | Do not use the disputed number for an irreversible decision |
If the reports describe different business stages, do not reconcile them into one total. Use the pipeline-to-collected-revenue ladder to keep inquiries, opportunities, signed work, invoices, cash, refunds, and contribution separate. If campaign names are preventing a reliable join, repair the naming process with the UTM guide and builder.
Keep a small reconciliation register
Save one row each time the issue is reviewed:
- Comparison date and owner
- Frozen report names and file locations
- Source identifiers and settings snapshots
- Raw difference and chosen denominator
- Each documented adjustment with evidence
- Unresolved difference
- Decision affected
- Fix, owner, and verification date
- Whether the difference is expected, repaired, accepted, or still open
The register prevents the same discrepancy from being rediscovered every month. It also shows when a previously stable relationship changed after a new filter, conversion rule, connector, or attribution setting. If the source system may be replaced, include these definitions and exports in the marketing-tool exit packet.
A report is ready for a business decision when its question, unit, scope, clock, processing state, and remaining limitations are explicit. Matching totals are helpful, but explainable totals are the real goal. If your team needs a governed reporting plan across advertising, analytics, and CRM systems, review Ocean Media's strategy and reporting service.
Your next step
Run your numbersSources checked
- Google Analytics Help: Creating and managing conversionsChecked 2026-10-05
- Google Analytics Help: About data thresholdsChecked 2026-10-05
- Google Search Console Help: Troubleshooting data discrepanciesChecked 2026-10-05
- LinkedIn Marketing Solutions Help: Time zones for ads reportingChecked 2026-10-05
- LinkedIn Marketing Solutions Help: Conversion windowChecked 2026-10-05
About this resource
Created with AI assistance for Ocean Media Marketing. Examples are illustrative unless explicitly identified otherwise. Platform claims are checked against the listed sources. We do not claim that a quality score proves accuracy or guarantees results.
Original contribution: An original source-alignment worksheet, ordered reconciliation method, signed difference-bridge formulas, independently checked 240-to-222 example, result classification, and reusable reconciliation register.
Suggest a correction