GA4’s free tier caps event-level data retention at 14 months — and the default is just 2 months. Once deleted, the data is gone permanently. BigQuery stores the same events indefinitely at $0.02/GB per month for active data and $0.01/GB after 90 days. A WooCommerce store doing $1M in annual revenue typically generates under 5 GB of event data per year, making indefinite retention a few dollars per month. Every year-over-year comparison, cohort analysis, and LTV calculation your dashboard attempts is bounded by what the warehouse underneath still holds.
- GA4’s Retention Default Is a Silent Data Killer
- What GA4 Actually Deletes After 14 Months
- BigQuery Storage Economics for WooCommerce Events
- The Year-Over-Year Comparison That Stops Working
- Your AI Dashboard’s Ceiling Is Your Retention Policy
- Server-Side Capture Removes the Dependency Entirely
- Key Takeaways
- FAQ
GA4’s Retention Default Is a Silent Data Killer
Most WooCommerce stores are running on a 2-month or 14-month data retention window they never consciously chose — and the deletion is permanent.
GA4 ships with a 2-month default retention period for both user-level and event-level data. That means every page view, add-to-cart event, purchase, and session your WooCommerce store records through GA4 is scheduled for deletion 60 days after collection unless you manually change the setting. The maximum on the free tier is 14 months. There is no “do not automatically expire” option — that disappeared with Universal Analytics.
The setting lives buried in GA4’s admin panel under Property Settings → Data Collection and Modification → Data Retention. Most WooCommerce store owners have never touched it, which means they’re running on the 2-month default right now. The data that expired last month is already gone. It is not recoverable.
Even stores that did change the retention to 14 months face a hard wall. At month 15, GA4 silently deletes the oldest event data. No warning, no notification, no confirmation. The deletion happens in a monthly background process, and the first sign most operators notice is a blank date range when they try to pull a year-over-year comparison that reaches one month too far back.
GA4’s free tier defaults to 2-month event data retention, with a maximum of 14 months — after which event-level data is permanently and silently deleted.
You can extend the retention to 14 months right now if you haven’t already — but that change is not retroactive for data already deleted. If your property has been running on the 2-month default for the past year, you’ve already lost 10 months of granular event data. Setting it to 14 months today only protects data collected going forward.
You may be interested in: What Does a Good WooCommerce Data Stack Look Like in 2026?
What GA4 Actually Deletes After 14 Months
Standard reports survive the cutoff. Everything useful for deep analysis does not.
GA4 makes a distinction that catches operators off-guard. Standard reports — the pre-built dashboards under the Reports tab — use aggregated data that is not subject to retention limits. Those reports continue showing historical trends indefinitely, or at least as long as the property has been collecting data.
But Explorations, funnel reports, path analysis, segment comparisons, and any custom analysis that requires user-level or event-level granularity are bounded by the retention window. Once the underlying events are deleted, the exploration returns empty for that date range — even though the standard report still shows an aggregated number for the same period.
This creates a confusing split. The standard report says revenue was $48,000 in March 2025. You try to dig into which products drove it, which campaigns sourced it, which user segments converted — and the exploration returns nothing. The summary survived. The details didn’t.
GA4 also applies stricter limits to specific data types regardless of your retention setting. Age, gender, and interest data is capped at 2 months no matter what. Google Signals data maxes out at 26 months. Properties classified as “Large” or “XL” by Google — 25 billion or more events — are forced back to 2-month retention regardless of what you’ve configured.
GA4 360 extends event retention to 26, 38, or 50 months — but starts at approximately $50,000 per year. For most WooCommerce stores, that’s not a data retention solution. It’s an enterprise analytics platform that happens to include longer retention.
BigQuery Storage Economics for WooCommerce Events
Indefinite storage costs less per year than a single month of any analytics tool subscription.
BigQuery charges $0.02 per GB per month for active storage — any table or partition modified within the last 90 days. After 90 consecutive days without modification, the price drops automatically to $0.01 per GB per month. No manual intervention. No configuration change. The discount applies at the partition level, so in a date-partitioned event table, yesterday’s partition costs $0.02/GB while last year’s partitions have already dropped to $0.01/GB.
BigQuery long-term storage costs $0.01 per GB per month after 90 days of inactivity, making indefinite WooCommerce event retention a single-digit monthly expense for most stores.
Here’s what that looks like for a real WooCommerce store. A store processing $1M in annual revenue with moderate traffic — say 500 to 1,000 orders per month across 50,000 to 100,000 sessions — generates roughly 3 to 5 GB of event data per year when capturing page views, add-to-cart events, checkout steps, purchases, and associated parameters. That’s $0.03 to $0.05 per month in long-term BigQuery storage for an entire year of event history. Three years of data? Under $0.15 per month.
BigQuery also offers a free tier: 10 GB of storage and 1 TB of queries per month at no cost. A WooCommerce store with a few years of event history may fit entirely within the free storage allocation while rarely exceeding the free query tier for standard analytical workloads.
| Factor | GA4 Free Tier | GA4 360 | BigQuery (Direct) |
|---|---|---|---|
| Maximum event retention | 14 months | 50 months | Unlimited |
| Default retention | 2 months | 2 months | No expiry |
| Annual cost for retention | $0 | ~$50,000+/yr | ~$0.60–$1.00/yr per year of data |
| Deletion behaviour | Silent, permanent | Silent, permanent | Only if you configure it |
| Year-over-year analysis | Limited to 14 months | Up to 50 months | Unlimited |
| Data ownership | Google’s platform | Google’s platform | Your GCP project |
The Year-Over-Year Comparison That Stops Working
The dashboard that worked in January stops working in March — not because anything broke, but because the data underneath expired.
Year-over-year comparison is the baseline analytical operation for any store with seasonal patterns. Black Friday 2025 versus Black Friday 2024. Q1 this year versus Q1 last year. Summer traffic patterns compared across three years. Every one of these comparisons requires the underlying event data to exist in both time periods at the granularity the comparison demands.
On GA4’s 14-month retention, a store that built a year-over-year dashboard in January 2026 — comparing January 2026 to January 2025 — would see the dashboard work perfectly. By March 2026, the January 2025 data has aged past 14 months. The dashboard now shows a blank for the comparison period. Same dashboard, same configuration, same query. The data simply isn’t there anymore.
This is the silent failure mode that frustrates WooCommerce operators the most: the dashboard didn’t break — the warehouse underneath forgot.
In BigQuery, the same comparison works in March 2028 looking back at January 2025. It works in 2030 looking back at 2024. The data sits in long-term storage at $0.01/GB per month, costing less to retain for a decade than a single cup of coffee. There is no expiration countdown running in the background.
Cohort analysis compounds the problem. Customer Lifetime Value requires tracking the same user’s behaviour across their entire relationship with the store — first visit to most recent purchase. If the first visit happened 16 months ago and you’re on GA4 free, the event that started the cohort no longer exists. The LTV calculation is missing its foundation.
Your AI Dashboard’s Ceiling Is Your Retention Policy
Claude Desktop Live Artifacts and BigQuery AI Functions are only as useful as the data they can reach.
Claude Desktop Live Artifacts connect to BigQuery through the BigQuery MCP connector. BigQuery AI Functions — AI.GENERATE_TEXT, AI.GENERATE_TABLE, AI.FORECAST — run inside SQL queries against the data in the warehouse. Together, they create a two-tier natural-language interface: ask a question in plain English, get an answer grounded in your actual event data.
The question “why did revenue drop compared to last year” requires last year’s data to still exist. The question “which cohort has the highest three-year LTV” requires three years of data. The question “forecast next quarter based on the last eight quarters” requires two years of history. None of these work if the warehouse underneath caps out at 14 months.
Translation: your AI dashboard’s analytical depth is literally bounded by your data retention policy. A smarter model doesn’t compensate for missing data. A more sophisticated prompt doesn’t conjure deleted events. The retention setting on the warehouse is the ceiling, and nothing built on top of it can reach higher.
Stores that configured BigQuery export from GA4 on day one have a partial safety net — the export captures events as they flow through GA4 and writes them to a BigQuery dataset the store owns. But the export must be configured proactively. It is not retroactive. If you turn it on today, you get today’s events forward. Everything GA4 already deleted is gone.
You may be interested in: What Happens When Your WooCommerce Store Hits 1 Million GA4 Events in BigQuery
Server-Side Capture Removes the Dependency Entirely
When events write directly to BigQuery at the WooCommerce hook level, GA4 retention becomes irrelevant to your analytical capability.
The cleanest architecture doesn’t rely on GA4 as the intermediary at all. Server-side event capture hooks into WooCommerce’s action lifecycle — woocommerce_add_to_cart, woocommerce_checkout_order_processed, woocommerce_order_status_changed — and writes events directly to BigQuery at the moment they happen. The event never passes through a browser tag, never depends on GA4’s processing pipeline, and never falls under GA4’s retention policy.
The store owns the data from the moment it’s captured. Retention is a sovereignty decision — your BigQuery dataset, your GCP project, your table expiration settings (which default to “never expire”).
This also solves the accuracy gap that compounds the retention problem. GA4’s event data is already lossy before retention even enters the picture — ad blockers suppress the tag, ITP limits cookie life, consent rejection prevents collection, and Google’s modelling layer fills gaps with estimates. The events GA4 retains for 14 months were already incomplete when they arrived. Server-side capture bypasses every one of those loss vectors and writes the authoritative event to BigQuery, where it stays until you decide otherwise.
Transmute Engine™ captures WooCommerce events server-side at the PHP hook level and streams them to BigQuery with consistent event names, full parameter payloads, and hour-precise timestamps. The data the store owns is the same data the dashboard reads — no intermediary retention policy, no silent deletion, no aggregation-versus-exploration split.
The compounding effect is real: every month of server-side capture adds another month of queryable history that will never expire. A store that starts server-side capture in May 2026 has 12 months of complete event history by May 2027, 24 months by May 2028, and every month compounds the analytical surface available to AI-powered dashboards. Stopping data erosion is what lets the natural compounding work.
Key Takeaways
- Check your GA4 retention setting today: If it’s still on the 2-month default, you’ve been losing event data every 60 days since setup. Change it to 14 months immediately — but know that already-deleted data is gone.
- 14 months is a ceiling, not a solution: Any year-over-year comparison extending beyond 14 months will return blank results in Explorations and custom reports, even though standard aggregated reports still show historical numbers.
- BigQuery stores events indefinitely for pennies: At $0.01 per GB per month for long-term storage, a WooCommerce store’s entire multi-year event history typically costs less than $1 per month to retain.
- AI dashboards are bounded by retention: Claude Desktop Live Artifacts and BigQuery AI Functions can only answer questions about data the warehouse still holds. Retention policy is the ceiling on every AI-powered analytical capability.
- Server-side capture removes the dependency: Events written directly to BigQuery at the WooCommerce hook level never depend on GA4’s retention window, never pass through a lossy browser tag, and never expire unless you configure them to.
GA4’s free tier retains event-level data for a maximum of 14 months, but the default setting is only 2 months. After the retention period expires, GA4 permanently deletes the data with no recovery option. Standard aggregated reports survive the cutoff, but Explorations, funnel reports, and any custom analysis requiring user-level granularity lose access to events beyond the retention window.
BigQuery charges $0.02 per GB per month for active storage and automatically drops to $0.01 per GB per month for data untouched for 90 days. A mid-sized WooCommerce store generating $1M in annual revenue typically produces 3 to 5 GB of event data per year, putting the annual storage cost at roughly $0.60 to $1.00 per year once the data ages past 90 days. The first 10 GB of storage each month is free.
Standard reports in GA4 use aggregated data that is not subject to the retention setting — those reports remain available regardless of your retention configuration. However, Explorations, funnel analysis, path analysis, and any report requiring user-level or event-level granularity are bounded by the retention period. Custom reports created by duplicating standard reports also fall under the retention limit.
Yes, GA4 offers a BigQuery export feature, but it requires proactive setup before the data expires. The export is not retroactive — once GA4 deletes event data past the retention window, it cannot be recovered or exported. The recommended approach is to configure the BigQuery export as soon as you create the GA4 property, or to capture events server-side directly into BigQuery so the data never depends on GA4 retention settings at all.
References
Google Analytics Help — Data Retention. support.google.com/analytics/answer/7667196 Google Cloud — BigQuery Pricing. cloud.google.com/bigquery/pricing Revefi — Google BigQuery Cost Optimization 2026. revefi.com/blog/google-bigquery-cost-optimization TrySight — Cost of Google Analytics: Free vs Paid Tiers Guide. trysight.ai/blog/cost-of-google-analytics MRS Digital — Data Retention: Why Do I Only See 2 Months of GA4 Data? mrs.digital Analytics Mates — What Should You Know About GA4 Data Retention? analyticsmates.com CheckThat.ai — BigQuery Pricing 2026. checkthat.ai/brands/bigquery/pricingYour dashboard remembers only what your warehouse remembers. Talk to Seresa about making sure your WooCommerce events compound instead of expire.



