GA4’s 14-Month Wall: Why BigQuery Export Is Your Only Year-Over-Year
GA4 deletes event-level data after 14 months at most, and the default is just 2 months, so year-over-year comparisons in Explorations quietly break. The limit hits Exploration and funnel reports, not standard aggregated reports. Because GA4’s BigQuery export does not backfill any history, the only durable fix is to enable export before you need the data, so events flow into BigQuery and persist with no retention limit. For most small WooCommerce stores the cost runs under 5 dollars a month, making BigQuery the practical home for long-term analysis.
The 14-month wall most stores don’t see coming
GA4’s retention ceiling is lower than almost anyone assumes, and the default is lower still.
Here’s the number that surprises people. In GA4, event-level data retention for standard properties maxes out at 14 months, and the default is just 2 months. Plenty of stores that migrated from Universal Analytics never touched the setting, which means their raw data has been evaporating on a two-month rolling window this whole time.
That raw, event-level data is what powers Explorations and funnel reports, the exact tools you reach for when you want to compare this July against last July. When the data behind them expires, the comparison doesn’t error out. It just quietly returns nothing for the older period.
GA4 caps event-level data retention at 14 months for standard properties, and the default setting is just 2 months, so raw data expires long before most annual reviews.
It’s worth remembering how permanent Google is willing to be with analytics data. Universal Analytics stopped processing hits on July 1, 2023, and by July 1, 2024 all historical UA data was permanently deleted. The 14-month wall is the same philosophy applied continuously: old raw data is a cost Google would rather not carry for you.
Why the gap stays hidden until it hurts
Your standard reports keep looking fine, which is exactly what makes the problem sneaky.
This is the part that catches teams off guard. The retention setting doesn’t affect standard aggregated reports. Open your default reports and last year’s revenue is still sitting there, so nothing looks wrong. The data loss only shows up where you do your sharpest thinking: custom Explorations.
| Report type | Affected by 14-month limit? | Use case |
|---|---|---|
| Standard aggregated reports | No — data persists | Headline traffic and revenue trends |
| Explorations | Yes — event data expires | Custom, cohort, and drill-down analysis |
| Funnel reports | Yes — event data expires | Checkout and conversion path analysis |
So the way most merchants discover the wall is brutally specific. They build a year-over-year comparison in Explorations and find last year’s event-level data no longer exists. Usually that happens the week before a board meeting or an annual planning session, which is the worst possible moment to learn your history is gone.
You may be interested in: 912 Million Ad Blockers Are Hiding a Third of Your Traffic
The backfill myth that makes waiting fatal
The most dangerous assumption is that you can turn export on later and catch up. You can’t.
Let’s kill a common misconception directly. GA4’s BigQuery export does not backfill historical data. When you link a property to BigQuery, a full export starts from that moment and runs forward. Everything that happened before the link is never captured, ever.
Translation: there’s no “catch-up” button. If you enable export today, your BigQuery history begins today. The 13 months of raw data still sitting in GA4 won’t flow backward into your warehouse, and once it crosses the retention window it’s gone from both places.
GA4’s BigQuery export performs no historical backfill, so data flows only from the link date forward and anything predating the link is never captured.
That single fact reframes the whole decision. The value of BigQuery export isn’t what it does next year; it’s what it protects starting the day you switch it on. Every day you wait is a day of raw data you’re choosing not to keep. For a store doing serious year-over-year work, that’s the difference between analysis and archaeology.
Why BigQuery export is the durable fix
Once events land in your own warehouse, retention stops being Google’s decision.
The mechanics are reassuringly boring, which is what you want from infrastructure. Once GA4 events stream into BigQuery, they persist as long as the table exists, with no retention limit. Your data becomes yours, on your terms, queryable for as many years back as you care to keep it.
Cost is rarely the blocker people fear. Streaming export bills at roughly 0.05 dollars per gigabyte, and for most small e-commerce stores the total is under 5 dollars a month, often under one. The daily batch export caps at a million events, while streaming has no event ceiling, so even busy stores are covered.
There’s a bigger idea here, too. The most durable analytics don’t depend on a single vendor’s retention policy. A server-side event pipeline that writes directly to BigQuery, alongside GA4, means your source of truth lives in a warehouse you control, not a reporting UI that expires your history on a schedule you didn’t set.
That’s the architecture Transmute Engine is built around for WooCommerce: server-side events sent to GA4 and streamed into your own BigQuery in parallel. Your year-over-year history stops being hostage to a 14-month clock.
Key Takeaways
- The ceiling is 14 months, default 2: GA4 expires raw event data fast, and most migrated stores never changed the setting.
- The loss hides in Explorations: standard aggregated reports still show old numbers, so the gap only appears in custom year-over-year analysis.
- There’s no backfill: BigQuery export captures data only from the link date forward, so waiting permanently loses history.
- BigQuery persists indefinitely: once events stream in they stay as long as the table exists, usually for under 5 dollars a month.
- Own your source of truth: a server-side pipeline writing to your own warehouse frees your history from a vendor’s retention clock.
For standard properties, event-level data is kept for a maximum of 14 months, and the default is only 2 months until you change it. That raw data powers Explorations and funnel reports. Standard aggregated reports aren’t affected by the setting and persist longer, which is why the limit is easy to miss.
Because the retention limit applies only to event-level data used in Explorations and funnels. Standard aggregated reports draw on pre-aggregated tables that survive the window. The trap is that any custom, drill-down, or year-over-year analysis you build in Explorations silently loses the older data.
No. Once event-level data passes the retention window it’s gone, and changing the setting doesn’t bring it back. The same is true for BigQuery export: it doesn’t backfill history. That’s exactly why you enable export before you need the data, not after you notice it’s missing.
Usually not. Streaming export bills at roughly 0.05 dollars per gigabyte, and BigQuery offers a free sandbox. For most small e-commerce stores the total lands under 5 dollars a month, and often under one. The cost of the missing year of data is almost always higher.
References
- Google Analytics Help — Data retention (2026). support.google.com/analytics/answer/7667196
- Google Analytics Help — BigQuery Export (2026). support.google.com/analytics/answer/9358801
- Google Analytics Help — BigQuery Export pricing and limits (2026). support.google.com/analytics/answer/9823238
- Google Analytics Help — Universal Analytics data deletion (2024). support.google.com/analytics/answer/11583528
- WeltPixel — GA4 Data Retention 14-Month Limit (2025). weltpixel.com
- Analyzify StatsUp — Google Analytics 4 statistics (2025). analyzify.com
If you haven’t linked GA4 to BigQuery yet, today is the cheapest day it will ever be — because tomorrow’s data is the earliest you can still keep.