Phi Assef
Founder of Bily, writing about advertising measurement and the decisions it supports.
Date
Read time
Read time

Suppose Ads Manager reports 251 purchases. Shopify has 296 paid orders for the same seven-day review. The 45-order gap is not a verdict on tracking or campaign quality. Before changing budget, split the difference into three sets: the paid orders Shopify recognizes, the unique Purchase events Meta received, and the purchases Meta credited under the selected view. Each set can justify a different action.
If paid orders and contribution margin are stable, the mismatch alone does not justify a budget change. It justifies a reconciliation.
Limitation first: totals cannot explain a gap
Two dashboard totals can show that a difference exists. They cannot show where it entered.
A useful investigation needs one mature period, explicit time zones, the exact report and attribution settings, a declared Shopify order rule, and stable order or event identifiers where the account and privacy rules permit them. If Meta credit is available only as an aggregate, keep that layer aggregate. Do not invent row-level certainty.
Without those inputs, the correct result is UNRESOLVED, not a preferred explanation.
Separate the three purchase sets
The word "purchase" hides three operationally different sets.
Set | Question | Metric job |
|---|---|---|
Shopify commercial set | Which orders meet the business's declared paid-order rule? | Anchors the budget and customer-economics decision |
Meta receipt set | Which unique Purchase events reached Meta for that commercial period? | Diagnoses event delivery and duplication |
Meta credit set | Which purchases received credit under the selected Meta reporting view? | Describes platform attribution under the account's settings |
Shopify itself contains several possible starting totals. Its marketing reports say that canceled, pending, and unpaid orders can be included in order metrics, while test and deleted orders are excluded. Its sales-discrepancy guidance also distinguishes sales reports from order exports and explains how refunds, returns, grouping, and date range can change the result.
Choose the commercial set before comparing it with Meta. For a budget review, that might be:
Orders with paid financial status, excluding tests and cancellations, with refunds shown separately, created from 1 to 7 July in the store time zone.
That definition is not universal. It is useful because the operator can reproduce it and connect it to cash, customer acquisition, and margin.
Build a purchase discrepancy bridge
Start with the Shopify commercial set. Then add or subtract every material difference until the bridge reaches the selected Meta-attributed total.
The bridge is a reconciliation object, not a new KPI. Its value comes from the reason assigned to each line.
Use reason codes that change the action
Code | What it means | What it can justify |
|---|---|---|
| A Shopify row does not meet the declared order, channel, status, currency, or period rule | Correct the commercial set |
| A Meta event or credited result falls outside the Shopify anchor | Correct the Meta scope |
| An order, event, refund, or report update falls into a different period or is not mature | Wait, then rerun the bridge |
| An eligible paid order has no comparable unique Purchase event in Meta receipt evidence | Repair the affected signal path and mark the period's Meta measurement as incomplete |
| More than one received Purchase event maps to one eligible commercial outcome | Correct deduplication before using the affected total |
| The comparable receipt and selected credit sets still differ after known scope and timing adjustments | Inspect matching and attribution settings; preserve aggregate-only uncertainty and do not infer lost orders |
| A documented platform definition changed inside the comparison | Split the baseline and compare like definitions |
| Shopify cannot show complete conversion details for the order | Preserve the missing journey instead of choosing a source |
| Paid orders, first-time customers, or contribution margin changed under a stable comparison | Investigate media, offer, inventory, checkout, and customer mix |
| The available evidence cannot distinguish the remaining causes | Keep the residual visible and avoid a permanent action from it |
Assign one primary code to each discrepancy row or aggregate residual. Add a secondary note when several mechanisms remain possible. Do not use one row twice to make the bridge close.
A worked example: 45 is not one problem
The following numbers are illustrative, not a benchmark for an acceptable gap.
Bridge line | Count | Primary code | Decision effect |
|---|---|---|---|
Eligible paid Shopify orders | 296 | Commercial anchor | Starting set |
Eligible orders with no comparable Meta receipt | -6 |
| Investigate event delivery |
Meta events outside the Shopify anchor | +3 |
| Correct the reporting scope |
Mature-period adjustment | -2 |
| Rerun after the declared reporting point |
Selected-view credit residual | -40 |
| Inspect attribution; do not call these lost orders |
Meta-attributed purchases | 251 | Credit set | Platform result under the selected view |
The dashboards differ by 45 purchases. The bridge identifies six orders for a delivery investigation, three scope exceptions, two timing differences, and a 40-purchase attribution residual that is not row-resolvable from the available evidence.
That composition changes the decision. Repairing six missing events may be justified. Cutting budget because Meta credited 40 fewer purchases is not justified while paid orders and margin remain stable.
Mark reporting changes inside the bridge
Meta announced on 3 March 2026 that, for affected website and in-store conversion campaigns, click-through attribution would be limited to link clicks while other eligible social interactions moved to engage-through attribution. Meta described a variable account rollout beginning later that month.
If the rollout reached the account inside the comparison, assign DEFINITION_CHANGE and start a new click-through baseline. Keep engage-through results visible. A lower click-through count after a definition change is not evidence that Shopify lost orders.
This adjustment belongs in the bridge only after the affected account and date are verified. A press announcement does not prove when a specific account changed.
Respect the reporting clocks
Shopify says its marketing metrics can take up to 24 hours to update. It also says order conversion-summary details can take up to 48 hours to appear, and that some orders have limited or no journey detail because of browser, storefront, channel, or order-origin conditions.
Record the export time for both systems. If the declared review point has not arrived, use TIMING. If the journey remains unavailable after maturity, use JOURNEY_LIMITED. Waiting for a stated reporting clock is different from ignoring a persistent discrepancy.
Map the bridge to the budget decision
Dominant bridge result | Next action | Budget implication |
|---|---|---|
Scope, timing, or definition change | Correct the comparison and establish a like-for-like baseline | No budget change from the mismatch alone |
Missing or duplicate event delivery | Repair the affected path and mark the period as incomplete for Meta reporting | Do not use the affected Meta return metric as the sole budget input |
Credit or limited-journey residual | Inspect settings and preserve the aggregate boundary | No commercial-growth or decline conclusion from the residual alone |
Paid orders or contribution margin down with stable scope and receipt | Investigate the store, offer, customer mix, and campaign conditions | A bounded, reversible change may be justified |
Material unresolved residual | Record what evidence is missing and define the next test | Avoid a permanent change until the decision has enough support |
The bridge does not delay every action. It makes the action answer the observed problem.
Reconciliation is not incrementality
Even a bridge with no residual only shows that the selected records reconcile under the declared rules. It does not show how many customers would have bought without the ads.
Gordon et al. compared observational estimates with 15 randomized Facebook experiments and found that the observational methods often failed to reproduce the randomized lift estimates in that study population. Lewis and Rao showed that large advertising experiments can still leave return estimates imprecise.
The boundary is practical: use reconciliation to locate reporting and delivery problems. Use a credible causal design when the decision requires a claim about purchases caused by the intervention. For the fuller attribution argument, see Probabilistic attribution beyond last click.
Evidence Card
Field | Finding |
|---|---|
Decision affected | Whether a Meta and Shopify purchase discrepancy justifies changing campaign budget |
Evidence type | Official platform definitions plus peer-reviewed randomized field evidence for the causal boundary |
Main limitation | Dashboard totals cannot locate the gap; row-level comparison may be unavailable or restricted |
Result and uncertainty | Scope, timing, delivery, attribution, commercial change, and unresolved evidence can all contribute. No universal acceptable gap is established. |
Operator method | Build a commercial-to-receipt-to-credit bridge and assign one primary reason code to every material difference |
What not to do | Choose the more favorable dashboard, turn an aggregate residual into row-level fact, or treat attributed purchases as incremental |
What would change the conclusion | A new platform definition, an account-specific row-level result, a change in paid orders or margin under stable measurement, or a credible causal test for the exact intervention |
The bridge is complete when the action has a reason code
You do not need Meta and Shopify to display the same number. You need every material difference to be classified or explicitly unresolved, and the proposed action must name the class it responds to.
Six missing events can justify a repair. A timing difference can justify waiting. A credit residual can justify a reporting review. A fall in paid orders and contribution margin can justify a commercial investigation.
One top-line gap cannot justify all four.
Update policy
Review this article when Meta or Shopify changes a relevant reporting definition, attribution control, order-report rule, documented delay, or journey limitation; when the bridge reason codes fail on a real account; or when stronger research changes the causal boundary. Record material corrections rather than silently rewriting them.
Last reviewed by the research record: 14 July 2026. Rewritten after a complete Bily article-history review on 20 July 2026; named source review remains required before publication.
About the author
Phi Assef is the founder of Bily. For more than a decade, he has designed and engineered software, with a focus on data measurement.
Related Bily reading
Sources
Meta: Simplifying Ad Measurement for a Social-First World, 3 March 2026
Gordon et al.: A Comparison of Approaches to Advertising Measurement
Lewis and Rao: The Unfavorable Economics of Measuring the Returns to Advertising
On 20 July 2026, the Shopify source wording above was reopened in automated web retrieval. Meta's announcement was throttled and the Conversions API page redirected to a login or temporary-block surface. A named research editor must reopen every primary source in a normal browser, verify the affected-account scope, and approve claims BLY-201 through BLY-203 before publication.
Read also



