Data Accuracy · Comparison · 2026

BooleanMaths vs GA4: which one can you trust with your numbers?

GA4 measures what happens in a shopper's browser. BooleanMaths measures what your business actually sold, delivered and earned, and which marketing caused it. Both show you a dashboard. The difference is in the data underneath it, and in Indian D2C that difference is big enough to change where you put your budget.

Full disclosure: the BooleanMaths team wrote this page. GA4 is free and a perfectly good place to start. The accuracy numbers here come from our own studies across Indian D2C brands, so the gap at your brand will vary.

The short answer

→ 4-10% of journeys are lost at the third-party checkout handover, when the cart token Shopify passes to the checkout partner gets dropped.

→ 3-18% of orders are later cancelled or returned to origin, but GA4 still counts them as conversions.

→ 20-25% of discovery sessions go missing in long, multi-browser journeys, where an Instagram in-app visit and a later Chrome visit look like two different people.

→ Put together, 27-53% of user journeys end up with missing sessions and broken attribution.

Where GA4 falls short

These gaps show up in three places that matter for every growth decision you make.

Revenue

GA4 counts browser purchase events. It misses orders where the tag was blocked or the checkout handover broke, and it never finds out which orders were cancelled or came back as RTO.

Attribution

An Instagram in-app visit and a later Chrome or Safari visit on the same phone look like two different people. The Meta touch that started the journey disappears, and search or direct takes the credit.

Profitability

There's no COGS, shipping, RTO cost or non-Google ad spend in GA4. So there's no contribution margin, and no way to tell a profitable campaign from one that only looks good on ROAS.

BooleanMaths closes these gaps at the data layer. It merges a server-side event stream with order and checkout webhooks, stitches journeys across browsers with an identity graph, and calibrates channel credit against what customers say made them buy.

How each system collects data

GA4 depends on a JavaScript tag firing in the shopper's browser. BooleanMaths merges a server-side event stream, plugged into the Shopify data layer, with order and checkout webhooks. Every event and every order lands in one reconciled record.

Layer
GA4
BooleanMaths
Web events

gtag or GTM in the browser, sent to Google's domains

Server-side stream from the Shopify data layer: every page view, add to cart and checkout start

Orders

Purchase event fired on the thank-you page

Order webhooks from Shopify or your backend, the system of record

Checkout

Breaks when the cart token is dropped during the handover to a third-party checkout

Checkout webhooks plus a custom merge algorithm per partner: GoKwik, Shopflo, Shiprocket, Shop Pay, PayPal and others

Post-purchase status

Not collected

Logistics and shipping partner feeds: delivered, RTO, cancelled

Ad platforms

Google Ads natively. Others only through UTMs and manual cost uploads

Direct integrations with Meta, Google Ads, Amazon, ChatGPT Ads and WhatsApp

Customer-stated source

Not collected

Post-purchase survey responses joined to each order

Signal back to ad platforms

Google Ads only

Server-side CAPI to Meta and other platforms, built from reconciled orders

Which revenue number is the real one?

BooleanMaths revenue ties to your order ledger by design. GA4 revenue is a separate, lossy copy that you have to reconcile back to it. It goes wrong in three ways.

→ Under-counting. Orders placed while the tag was blocked, or where the thank-you page didn't load, never reach GA4. Third-party checkouts add to this: depending on the partner, 4-10% of sessions can be lost when the cart token is dropped during the handover.

→ Over-counting. Page reloads and duplicate purchase events inflate orders unless every transaction ID is deduplicated perfectly.

→ Booked, not realised. Typically 3-18% of Indian D2C orders are later cancelled or returned to origin, depending on category and COD share. GA4 keeps them as sales unless someone pushes refunds back manually.

BooleanMaths reads each order from webhooks and keeps updating it with logistics status. So every channel metric can be reported on delivered revenue, and Meta and Google get delivery-aware conversion signals instead of false positives.

Where GA4 loses data

GA4 loses or changes data at several points between the shopper's browser and your report. None of these are setup mistakes. They're how the product works, so better tagging won't fix them.

1. Ad blockers and privacy browsers. Ad blockers, Brave and Safari block requests to Google Analytics, so sessions and purchases go missing without any warning. BooleanMaths captures 100% of on-domain events server-side, so blockers and iOS restrictions don't touch them.

2. Cross-browser journeys. An Instagram in-app visit and a later Chrome or Safari visit on the same phone count as two users, and the Meta touch vanishes. Without enrichment you see under 10% of the real overlap between Meta and Google. Our identity graph links sessions only at 95%+ confidence and identifies about 65% of real cross-channel journeys.

3. Third-party checkout handover. When the cart token is dropped between Shopify and the checkout, the journey breaks. GA4 merges these sessions with about 90-96% accuracy. Checkout webhooks and a separate merge algorithm per partner get BooleanMaths to 99.3%.

4. Safari ITP and cookie limits. Cookies set by scripts expire after a few days, so returning iOS shoppers look new. New users get inflated and credit shifts to the last visit. The identity graph plus Shopify login tracking re-identifies them.

5. Attribution windows. Lookbacks are capped, and earlier sessions in another browser are lost. That matters when 33% of journeys take more than 7 days and 8% take more than 30. BooleanMaths keeps the journey history and links it across browsers.

6. Anonymous returning traffic. Visitors without a live cookie are written off, so early research sessions disappear. Using logins and session history going back two to three months, BooleanMaths identifies about 25% of anonymous traffic.

7. Sampling. Queries over 10 million events get sampled. For a large brand that can be less than a week of data, and numbers shift between runs. BooleanMaths always works on the full, unsampled dataset.

8. Retention limits. Standard GA4 keeps event data for 2 or 14 months, which limits cohort and year-on-year analysis. BooleanMaths retains the history you need for cohort and MMM work.

These accuracy numbers come from our own studies. Ask every vendor how they measure theirs, including us.

One shopper, one phone, two browsers

The biggest hidden gap in GA4 isn't cross-device. It's cross-browser. A Meta ad opens inside Instagram's in-app browser. A Google ad opens in Chrome or Safari. The same shopper on the same phone reaches your store in two unrelated sessions, and GA4 treats them as two people. It credits the last visit and the Meta touch that started the journey disappears.

GA4

Instagram in-app browser

Meta ad click · cookie A

┆ no link between sessions

Chrome / Safari

Google ad, later · cookie B

↓

2 users, Google credited

Meta touch lost

BOOLEANMATHS

Instagram in-app browser

Meta ad click

Chrome / Safari

Google ad, later

↓ Identity graph

Fingerprint, email, phone, IP, device ID, browsing behaviour. Merged only at 95%+ confidence

1 journey, both credited

Meta and Google touches kept

Same shopper, same phone, two browsers. GA4 credits the last visit. BooleanMaths keeps the Meta touch that started the journey.

→ How it works. The identity graph combines deterministic identifiers like fingerprint, email and phone with probabilistic signals like device ID, IP, location and browsing behaviour. A session joins a journey only when the match is at 95%+ confidence.

→ What it changes. Without enrichment, brands see under 10% of the real overlap between Meta and Google. BooleanMaths identifies about 65% of real cross-channel journeys, and holds back the rest instead of adding noise.

→ Returning visitors. Shopify login tracking and long session history re-identify visitors from two to three months back, recovering about 25% of anonymous traffic.

→ Cross-device. Journeys across devices are stitched with deterministic identifiers like email, phone or login. The probabilistic graph only works on the same device, across browsers and in-app webviews.

How each one assigns credit

GA4 gives you last click or a black-box data-driven model. BooleanMaths gives you models where every rule is visible and adjustable, built on reconciled orders and cross-browser journeys.

GA4

Google retired first-click, linear, time-decay and position-based models in 2023, so you're left with data-driven and last click. The data-driven model can't be audited or tuned, lookbacks are capped, and journeys split across browsers are already broken before any model runs. The result is systematic over-credit to search, direct and branded traffic.

BooleanMaths

You set the lookback window, how touchpoints are weighted and which touchpoints count. You can exclude search and retention touches like WhatsApp, email and SMS to see the real impact of top and middle-of-funnel campaigns, instead of letting bottom-funnel channels soak up their credit.

Three things matter here for a growing brand:

1. Transparent. The model logic and correction factors are documented and you can inspect them.

2. Independent. Credit isn't assigned by an ad platform grading its own inventory.

3. Comparable. Platform-reported, click-based and survey-calibrated views sit side by side, so you can see how much each platform over-attributes.

SURVEY-CALIBRATED ATTRIBUTION

Click data shows what shoppers did. Surveys show why they bought.

Any click-based model, however well built, can only credit the touches it saw. An Instagram view, a creator's reel, a friend's recommendation or a YouTube pre-roll leaves no click. So its influence either goes missing or gets handed to whichever search or direct visit came last.

BooleanMaths matches each order's post-purchase survey response to its click journey. Where customers keep naming a channel that click data under-credits, a channel-level correction factor (κb) lifts its share. Where click data over-credits a channel, the factor pulls it back. The click framework stays intact. It just gets extended to what customers actually intended.

Click journey + survey response = survey-calibrated true ROAS for each channel, plus a blended true ROAS across all of them.

Cost and margin: the other half of ROAS

Accurate ROAS needs accurate cost as well as accurate revenue. GA4 has neither the full spend picture nor any unit economics.

→ Ad spend. GA4 imports Google Ads cost natively. Meta, Amazon and every other platform's spend has to be uploaded by hand. BooleanMaths pulls spend directly from every connected platform.

→ Unit economics. GA4 has no COGS, shipping, payment gateway or RTO cost. BooleanMaths computes contribution margin at the SKU level: CM1 after product and fulfilment cost, CM2 after marketing.

→ Why it matters. A campaign can show strong ROAS in GA4 and still lose money once RTO, discounts and shipping are counted.

More than session analytics: one unified data layer

BooleanMaths isn't just session-level analytics. It builds one data layer that joins every marketing dataset on the same order and journey keys.

Ads and campaigns

Creatives

Products and SKUs

Discounts

Shipping and RTO

Geographies

Landing pages

Audience segments

That layer is exposed to AI agents through the BooleanMaths MCP, so you can run deep dives in Claude, ChatGPT or Gemini on accurate, reconciled data. Ask why a campaign is underperforming and the agent traces the answer through its landing pages, creatives, products, discounts, geographies, RTOs and cancellations in one analysis.

GA4 can't answer that question, because most of those datasets never enter it.

Side by side

Dimension
GA4
BooleanMaths
Data capture

Browser tag

Server-side stream merged with order and checkout webhooks

Revenue source

Browser purchase events

Store and backend order ledger

Realised vs booked revenue

Booked only

Delivered revenue, after RTO, cancellations and refunds

Ad blockers, ITP and privacy browsers

Events lost

100% of on-domain events captured

Third-party checkout session merge

About 90-96%

99.3%

Cross-browser journeys (in-app to Chrome or Safari)

Separate users

Stitched at 95%+ confidence

Anonymous returning visitors

Written off

About 25% identified

Sampling

Sampled above 10M events

Full, unsampled dataset

Attribution models

Last click or black-box data-driven

Transparent and customisable, with touchpoint exclusions

Customer intent

Not captured

Survey-calibrated attribution

Ad spend coverage

Google native, others manual

All connected platforms, automatically

Profit metrics

None

SKU-level CM1 and CM2

Data model

Session-level web analytics

Unified data layer across ads, creatives, SKUs, shipping and landing pages

How to check your own GA4 gap

1. Put last month's GA4 purchases next to your Shopify orders, split by checkout partner. The difference is what you're losing to checkout handovers and blockers.

2. Pull ten orders that were later RTO'd or cancelled. Check whether GA4 still counts them as revenue, and whether they went to Meta as purchases.

3. Look at how much revenue GA4 credits to direct and branded search. If that share keeps rising as your Meta spend rises, the cross-browser gap is likely at work.

4. Open the date ranges you report on most and check for a sampling notice.

5. Ask whether you can see contribution margin by campaign anywhere in GA4. If not, your ROAS decisions are being made without cost.

Want to see the gap on your own store?

We'll put your GA4 numbers next to your order ledger, delivery data and survey responses, and show you where the differences come from.

FAQ

Is GA4 accurate for Indian D2C brands?

It's accurate about what it can see in the browser. But it misses orders at third-party checkouts, can't see RTOs or cancellations, and splits journeys across browsers. Together these can leave 27-53% of journeys misread.

Do I need to remove GA4 if I use BooleanMaths?

No. Plenty of brands keep GA4 for site behaviour and content analytics, and use BooleanMaths for revenue, attribution and profitability decisions.

Why does GA4 show less Meta revenue than Meta Ads Manager?

Mostly because of the cross-browser gap. A Meta click opens in Instagram's in-app browser, and the purchase often happens later in Chrome or Safari, so GA4 credits search or direct. Meta, on the other hand, grades its own inventory. BooleanMaths shows both next to a survey-calibrated view so you can see where the truth sits.

Can GA4 track RTOs and cancellations?

Not on its own. Someone has to push refunds back into GA4 manually. BooleanMaths pulls delivery status from your logistics partners automatically, so revenue and ad signals reflect delivered orders.

How accurate is BooleanMaths with third-party checkouts?

We see 99.3% session-merge accuracy across partners like GoKwik, Shopflo, Shiprocket, Shop Pay and PayPal, against about 90-96% in GA4. These numbers come from our own studies, so ask any vendor how they measure theirs, including us.

Can I analyse BooleanMaths data in ChatGPT or Claude?

Yes. The BooleanMaths MCP connects your reconciled data to Claude, ChatGPT or Gemini, so you can run cross-functional deep dives in plain English.

MCP Labs

AI Workflows & Agents for your Marketing Data

Interactive tools & pre built workflows that you can build using the BooleanMaths MCP. Just run the prompt in Claude, ChatGPT or Gemini.

ROAS Decomposition

Attribution

Run →

Creative Library Diagnostic

Creatives

Run →

Festive Demand Planning

Products

Run →

MCP Labs

Put your marketing data to work

Interactive tools and pre-built AI workflows that run on your BooleanMaths data. Explore a lab or fire a prompt into Claude, ChatGPT or Gemini.

ROAS Decomposition

Attribution

Run →

Creative Library Diagnostic

Creatives

Run →

Festive Demand Planning

Products

Run →

MCP Labs

Put your marketing data to work

Interactive tools and pre-built AI workflows that run on your BooleanMaths data. Explore a lab or fire a prompt into Claude, ChatGPT or Gemini.

ROAS Decomposition

Attribution

Run →

Creative Library Diagnostic

Creatives

Run →

Festive Demand Planning

Products

Run →