How Bach AI Recomputes Real-Time ROAS as Conversions Land
- info wittelsbach
- 4 days ago
- 5 min read
Meta’s ROAS lags. The number you see in Ads Manager at 9 AM is reliably stale by 24-72 hours, depending on attribution window settings, CAPI deployment state, and how Meta’s modeled attribution catches up. Decisions made on stale ROAS are good decisions made too late.
Bach AI fuses CAPI events and Shopify webhooks to recompute ROAS in near real-time. Conversions that landed an hour ago show up in the ROAS gauge an hour ago. The brand can pause bleeders before the day ends and double down on winners while the audience is still fresh.
The Invisible Problem
The 24-72 hour ROAS lag has a specific cost pattern. On a winning day, the brand sees yesterday’s good numbers and feels confident — but they cannot see today’s numbers, which may already be slipping. By the time the slippage shows up tomorrow, two days of spend has been lost.
On a losing day, the same lag means the brand spends a full day on a campaign that is bleeding before the data catches up. For high-spend accounts, a single day of unchecked bleeding can be ₹40,000-1.5L of margin gone.
Why Meta’s ROAS Lags
Three structural reasons for Meta’s lag:
Attribution windows — Meta’s default 7-day-click + 1-day-view window includes conversions that happen up to 7 days after the click. Today’s clicks may convert tomorrow, the day after, etc.
Modeled attribution catch-up — Meta back-fills iOS conversions through its modelled attribution layer with a delay of 1-2 days.
Pixel + CAPI dedup processing — Meta processes event deduplication batches, which can take 24-48 hours to finalise.
How Bach AI Recomputes Near Real-Time
Bach AI’s real-time ROAS engine fuses four data streams:
Meta Ads spend data pulled via API every 30 minutes.
CAPI Purchase events received server-side as they fire.
Shopify order webhooks received directly from the store.
UTM-based attribution for orders that arrived through a Meta-attributable channel.
The fused stream produces a rolling ROAS that updates every 30-60 minutes. The gauge shows both the real-time number and the Meta-reported number for transparency, with the gap explained inline.
Where Real-Time ROAS Changes Decisions
Three decision points where real-time ROAS produces a different outcome than waiting for Meta to catch up:
Intra-day budget pacing — if a campaign is bleeding at 1 PM, real-time ROAS catches it; Meta’s view will not until tomorrow.
Sale-window optimisation — Diwali, EOSS, BFCM windows where every hour matters; real-time ROAS keeps decisions tight.
Creative launch evaluation — new creatives can be judged at 4-8 hours instead of 24-48 hours, allowing same-day kills or scaling.
Read more on [the top revenue leaks in Meta ad accounts](https://www.wittelsbach.ai/post/top-10-revenue-leaks-in-meta-ad-accounts-and-their-cost) for the broader bleeders pattern.
The Reconciliation View
Real-time ROAS is one number; reconciled true ROAS is another. Bach AI shows both, transparently:
Real-time ROAS — based on conversions landed so far today, attributed via CAPI + Shopify + UTM.
Reconciled ROAS — Meta’s number after attribution catches up, typically available within 48-72 hours.
Gap explanation — the typical 8-14% gap between the two, with the components broken out.
The Hourly Granularity
Beyond daily real-time, Bach AI offers hourly ROAS curves. For Indian D2C, this surfaces patterns invisible at the daily level:
Dayparting opportunities — hours when ROAS is consistently 30%+ higher.
Bleeding hours — hours when ROAS drops below break-even.
Audience timing — when specific audience segments are most active and converting.
Creative timing — which creatives carry the high-ROAS hours.
The UI — What You See
Inside Wittelsbach AI, the Overview dashboard surfaces a large real-time ROAS gauge with a live timestamp. The gauge breathes — recalculating every 30-60 minutes — so the operator can see the day building up. Hover any time window for the comparison to Meta’s reported number. Drill in for the hourly curve.
Hourly Action Triggers
When the real-time ROAS engine catches a meaningful intra-day shift, Bach AI surfaces an action card:
Intra-day pause recommendation — if a campaign’s real-time ROAS is significantly below target by mid-afternoon.
Intra-day scale-up recommendation — if a campaign is significantly above target by mid-afternoon and audience health is strong.
Dayparting suggestion — if the hourly curve consistently shows a bleeding window.
Bid strategy review — if intra-day ROAS volatility is high enough to suggest a bid cap might stabilise outcomes.
The ₹ Impact
Across Indian D2C accounts on Wittelsbach AI in Q1 2026:
Average margin protected through intra-day pause actions: ₹45,000-1.3L/month on a ₹15L spend account.
Sale-window ROAS uplift (Diwali, EOSS) on accounts using real-time pacing: +18-26%.
Dayparting opportunities surfaced: average of 3-5 actionable windows per account.
Speed of new-creative kill decisions: 6 hours vs 36 hours manually.
Setup
Real-time ROAS requires CAPI + Shopify webhook integration. Connect both at [app.wittelsbach.ai](https://app.wittelsbach.ai). Bach AI’s setup wizard walks through the Meta CAPI installation if not already deployed. Real-time data flows within 1-2 hours of full integration.
How Wittelsbach AI Operationalises Real-Time ROAS
Real-time ROAS is the difference between reacting to yesterday and acting on today. Coupled with one-click actions, the operator can pause bleeders before lunch and scale winners before dinner. Run a free Meta Ads audit at [app.wittelsbach.ai](https://app.wittelsbach.ai).
Frequently Asked Questions
How real-time is ‘near real-time’?
Bach AI’s real-time ROAS gauge updates every 30-60 minutes. The lag from a Shopify order being placed to the order appearing in the ROAS calculation is typically under 5 minutes for accounts on the webhook integration. Meta’s spend data is pulled on a 30-minute cadence. The net experience is essentially live for operational decision-making.
Can real-time ROAS be trusted for major decisions?
For intra-day operational decisions — pause this campaign, scale that one, kill a losing creative — yes. For end-of-period reporting and reconciled board numbers, the system uses the reconciled ROAS (which catches up Meta’s lagged attribution). Both numbers are visible to the operator, who can choose the right one for the decision context.
What if my store is on WooCommerce instead of Shopify?
Bach AI supports WooCommerce webhooks alongside Shopify. The same real-time ROAS architecture works on either stack. For custom e-commerce platforms, the integration uses the order API with polling at a 5-15 minute cadence. The decision quality is similar; the freshness drops slightly on polling-based integrations.
How does real-time ROAS handle view-through conversions?
View-through is excluded by default from the real-time ROAS gauge because the attribution is harder to confirm in real time. Operators can toggle view-through inclusion if they want a closer match to Meta’s default number. Most prefer the click-attributed real-time as the operational signal and use the Meta-reported number for reconciliation.
What is the smallest spend account that benefits from real-time ROAS?
Accounts above ₹3L/month of Meta spend typically see meaningful margin captured through real-time pacing. Below that, daily granularity is usually sufficient because conversion volumes are low enough that hourly noise dominates. The real-time engine is still active for smaller accounts but the action cards trigger less frequently.




Comments