Why Meta Reports Sales but Your Bank Account Doesn't: Fixing ROAS with Multi-Touch Attribution
Why does Meta report sales my bank account does not show?
Reported conversions rest on attribution rules that credit the platform generously, include modelled estimates, and count pre-refund order values. The gap between that figure and deposited revenue is structural rather than a bug, which is why reconciliation is an ongoing task rather than a fix.
Meta Ads Manager shows strong sales numbers. Your bank account tells a different story. This is the common complaint we hear from D2C founders, and it is structural, not bad luck. Meta’s attribution model credits itself for sales that other channels actually drove. The fix is multi-touch attribution that tracks every touchpoint in the buyer’s journey.
For the surrounding account decisions, compare Catalog Ads Not Delivering: A Feed-Health Checklist and use How to Optimize Meta Ads ROAS with AI (Without Scaling Bleeders) as the next diagnostic.
Why Meta Inflates Your ROAS
Meta uses last-click or last-touch attribution. The last ad clicked before purchase gets the credit. Email, WhatsApp, organic search, returning customer behavior, all invisible. The problems compound:
- Over-crediting Meta. Sales influenced by other channels still get logged as Meta wins
- Ignoring assists. Email, WhatsApp, organic, and direct touches are erased
- Vanity metrics. Clicks and impressions dominate the dashboard, profit doesn’t
- Inflated ROAS. The number on the screen is not the number in your P&L
Picture a customer who sees a Meta ad on Monday, opens your retention email Wednesday, then completes the purchase Friday after a Google search. Meta claims the entire sale. Email and search get nothing. You scale Meta on the back of that data and wonder why margin is shrinking.
What Multi-Touch Attribution Actually Does
Multi-touch attribution credits every interaction in the path to purchase. The benefits are tactical, not theoretical:
- Fair credit. Each channel gets its proportional share
- Sharper budgets. Spend tracks real influence, not last-click luck
- Honest ROI. You see which ads make profit, not just which ad got the click
- Holistic view. Channels stop being judged in isolation
Without this, you cut budget on channels that assist conversions but never get the last click, and you over-spend on channels that look good only because they happen to close.
What closes the measurement gap?
Closing the gap takes four capabilities, whichever tools provide them:
- Cross-channel tracking. Follows the customer from Meta to email to WhatsApp to organic
- Data-driven credit assignment. Models contribution based on actual lift, not position
- Profit-focused analytics. Reports margin, not vanity revenue
- Actionable insights. Surfaces which ads, audiences, and creatives generate real profit
Together they show what’s working, what’s coasting on credit it didn’t earn, and what to do about it. Bach.ai covers part of this: it audits your connected Meta account, estimates the revenue impact of what it finds and proposes fixes. It applies a change only after you approve it. It is not a cross-channel attribution tool.
Illustrative Example — How the Math Works
The scenario below is hypothetical, included only to show how the measurement shift plays out. It is not a measured customer result; your own numbers only ever come from your connected account.
Suppose a mid-sized D2C company is spending heavily on Meta on the strength of a high reported ROAS, yet profit is flat. Reconciling every channel might reveal:
- Email and WhatsApp showing up as significant contributors Meta’s last-click view hid
- Meta’s actual incremental contribution running well below its reported figure
- Room to rebalance budget toward email retention and WhatsApp follow-up
The point is that profit improves without changing topline ad spend — the shift is in measurement, not tooling. You stop scaling on Meta’s last-click ROAS and start scaling on incremental profit.
What to Do Next
If you rely on Meta’s reports alone, you are making decisions on incomplete data. Three moves to fix that:
- Adopt a marketing platform that supports multi-touch attribution
- Track customers across every channel, not just paid
- Optimize for profit and LTV, not for clicks and reported ROAS
- Review attribution data weekly, adjust budgets monthly
Connect Meta and Shopify to app.wittelsbach.ai and you will see the true contribution of every channel inside a day, including the assists Meta has been hiding.
Documented thresholds
Meta publishes the figures below; they are reproduced here with the article they come from. Retrieved 2026-09-22 — Meta revises this documentation without notice, so verify anything load-bearing against the current version before you act on it.
- The default window. Meta documents 7-day click or 1-day view as the default for all new ad sets. The selectable alternatives are 1-day click, 7-day click, and 1-day click or 1-day view.
- A wider window reallocates credit, it does not create revenue. Take $5,000 of spend credited with 100 conversions on 1-day click — a reported $50 cost per result. If 7-day click credits the same spend with 140, reported cost falls to $35.71, an apparent 28.6% improvement with no additional sale.
- Why Commerce Manager disagrees. Its tagged-content reporting is fixed at 28-day click plus 1-day view and cannot be changed, and it reports by conversion date while Ads Manager reports by impression date. Both can be correct and still differ on the total and the day.
Source: Meta Business Help Centre — https://www.facebook.com/business/help/854500742637772, https://www.facebook.com/business/help/1997130013754737.
Method and sources
“Reported conversions rest on attribution rules that credit the platform generously, include modelled estimates, and count pre-refund order values.”
Source: Where this guide describes platform behaviour, it follows Meta’s published advertising and Marketing API documentation, which changes without notice — verify anything load-bearing against the current version before you act on it. Every threshold the guide asks you to supply is first-party, drawn from your own account exports and commerce ledger, because no external benchmark can stand in for your own margin structure.