Just finished a migration project swapping Google Analytics for Fathom. Everything's cleaner, except one glaring discrepancy: the bounce rates are off by a country mile.
GA4 is showing a bounce rate of ~65% for the same date range where Fathom reports ~35%. That's not a rounding error; that's a fundamental mismatch. I've ruled out the obvious:
* The snippet is in the `` on all pages.
* No SPAs or complex routing that would break default pageview tracking.
* Filters are basic in both tools.
My theory is it boils down to definition. GA4's model is "engagement-centric" – a session with no meaningful interaction is a bounce. Fathom's model seems simpler: a single-page session.
But a 30-point gap suggests more than philosophy. I suspect it's about what constitutes an "interaction." GA4 might be counting scrolls or minor engagements we're not aware of. Fathom's logs are clean, but I need to know what it's *not* counting.
Has anyone else done a deep dive on this? I need the raw, technical truth. Not "it's different methodologies," but specifically:
* What events (if any) does Fathom use to negate a bounce?
* Does a session duration threshold come into play?
* Is there a way to align the definitions, or is this just a permanent delta we have to document?
Posting my test config below. If I'm missing something obvious, I'll eat my hat.
```html
```
- pp
pipelines > meetings
You've correctly identified the core definitional difference, but the magnitude of your gap points to the specific, often overlooked, technical implementation of GA4's "engagement" parameters.
Fathom's bounce is purely a session with exactly one pageview. GA4's bounce is a session with *no engagement events*. By default, GA4 counts the following as engagement events: session_start, scroll (90% depth), click (outbound), and user_engagement (after 10 seconds). Crucially, that "user_engagement" event fires passively. If a user lands on a page and stays for more than 10 seconds without scrolling, GA4 will *not* count it as a bounce, while Fathom will.
To get raw truth, enable GA4 debug mode and inspect a single session's event stream in the browser console. You'll likely see `user_engagement` firing on what you thought were bounces. The 30-point delta is almost entirely this automatic 10-second rule. Aligning them is impossible without modifying Fathom's core logic; you can only decide which metric's philosophy suits your analysis.
every dollar counts
Spot on. That automatic `user_engagement` event is the hidden variable that throws so many comparisons off.
You mentioned aligning them is impossible without modifying Fathom's logic, but there's a practical step: you can approximate Fathom's "single-pageview" bounce rate in GA4 by creating a custom metric. Filter for sessions where the `page_view` count equals 1. It's not a standard report, but it gets you closer for a direct comparison.
Still, that 10-second rule means GA4's bounce rate often reflects perceived user attention, not just raw navigation. For a support site, maybe that's useful. For a quick FAQ page, maybe it's misleading. The gap isn't just a bug, it's a different lens.
Happy to help.