Free GA4 tool

GA4 Comparison Window Calculator: Free, Runs in Your Browser

Day 14First honest Last 7 days vs previous period
Day 56First honest Last 28 days vs previous period
Day 393Earliest clean Last 28 days year over year
+300%Fake growth when 7 of 28 baseline days were tracked

Private: nothing is uploaded. The dates and any export you add are processed locally in your browser.

Fixed your GA4 tracking a few weeks ago and now every arrow is green? The arrows are probably measuring the fix. Before you trust the GA4 compare date range option again, enter the day the change went live. This calculator gives you, for each comparison you report, the first day it’s honest again, how contaminated today’s comparison is, and roughly how much fake growth that contamination creates.

The reasoning behind it, with a real store’s dashboard, is in why GA4 comparisons show fake growth after a tracking fix. This page is the calculator for that rule.

Work out when your GA4 comparisons are honest again

Enter the day a tracking change went live, tick the comparisons you report, and run it. Dates use your device’s local calendar, so enter them as your GA4 property shows them.

The day the tag, banner, fix or filter was published.

Partway means day 0 is the next day, because the first day mixes both setups.

Used for the GA4 annotation title (60 characters at most).

Goes into the change log row.

0 means the metric wasn’t recorded at all before. 50 means half. Above 100 means the old setup counted more.

Comparisons you report
Custom: last N days vs previous period

Defaults to today. Change it to see any other day.

GA4 can take 24 to 48 hours to finish processing a day.

GA4 comparison option
Optional: add a daily export to find the step and see what your report shows

Upload or paste a daily CSV from GA4, Search Console or Looker Studio. It needs a Date (or Nth day) column and at least one number column. It stays in your browser.

Nothing is uploaded. Everything is worked out in your browser.

Quick answer

This free calculator takes the day a tracking change went live in GA4 and tells you, for each comparison you report, the first day both windows sit after the change: Last 7, 28 and 90 days, last full month, and year over year. It also says whether today’s comparison is clean or contaminated, what share of the baseline was measured the old way, and roughly how much fake growth that creates on a flat business. It’s for anyone who reads GA4 or Looker Studio arrows after a tag fix, consent banner, migration or filter change.

How to Use the GA4 Comparison Window Calculator

Six steps. Most take a minute, and only the first needs any digging.

1
Find the day the change went live

Check your release notes, the Versions list in Google Tag Manager, and GA4’s property change history (Admin, then Property change history, which Google says covers the last 2 years). If the change shipped during the day, pick Partway through the day and the tool makes the next day day 0.

2
Pick what changed and check the old setup share

Each change type fills in how much the old setup counted compared with the new one. 0 means the metric wasn’t recorded at all before, which is the case for a fixed purchase event or a newly marked key event. Type your own figure if you know it.

3
Tick the comparisons you actually report

Tick the match day of week box if you use GA4’s Previous period (match day of week) option, one of the three listed on Google’s date range help page. Leave the buffer at 2 days, because Google says GA4 processing can take 24 to 48 hours.

4
Add a daily export if you have one

In GA4, open a report with a daily line chart, click Share this report, then Download File, then Download CSV (Google’s export steps). In Search Console, open the Performance report and use its export button; the Dates table is the one you want. Paste it or upload it. The tool finds the biggest step and shows what your own comparison reports today.

5
Run the check and read each row

Each comparison gets a status for the reading date, the share of its comparison window that falls before the change, a fake change estimate and the date it becomes honest. The timeline shows the same dates on one axis.

6
Copy the annotation and the change log row

Paste the title and description into a GA4 annotation on day 0, and paste the change log row into your team’s sheet. Then put the safe to read date in your calendar.

One thing to know about the date picker. GA4 applies your date range and comparison to every report you open, but Google notes that other users won’t see the changes. So a colleague can switch on Previous period, see a huge green number and have no idea the tracking changed. That’s what the annotation is for.

How to Read the Results

Each row is one comparison as it looks on the reading date. The current window is the one the report shows, and the comparison window is the one it divides by. The second one is where the trouble sits, because it’s always older.

StatusWhat it meansWhat to do
CleanBoth windows sit wholly after day 0.Read the arrow normally. Keep the annotation, so the next person knows why the line steps.
Partly contaminatedSome comparison days were measured the old way. The table says how many.Report absolute numbers for this window. Use a shorter comparison that’s already clean, and read organic trend in Search Console.
Baseline fully before the changeThe whole comparison window ran on the old setup.Ignore the arrow. If the old setup counted nothing, GA4 or Looker Studio may show No data or a blank instead of a percentage.
Not affected yetThe change isn’t in either window, so you’re planning ahead.Annotate day 0, put the safe to read dates in the calendar, and warn whoever reads the dashboard.
The four statuses the calculator gives each comparison, for the reading date you choose.

The fake change number

Say the old setup counted nothing, and a fraction f of the comparison window was measured by the new setup. A business with flat demand then shows roughly (1/f minus 1) times 100% growth. Half the window tracked gives +100%. A quarter gives +300%. Three days out of 28 gives +833%.

It’s an approximation. Demand isn’t flat, weekdays differ, and the first tracked day is often partial. When the old setup counted some of it, the tool uses the share you entered, and the estimate shrinks. When the old setup counted more (a consent banner that holds tags, a duplicate tag you removed) the number goes negative, because the arrow goes red.

In the first weeks after day 0 the current window is mixed too, so the tool counts the tracked share of both windows. That’s why, when the old setup counted part of it, a comparison read on day 3 shows a smaller estimate than one read on day 30.

Your data shows

Add a daily export and the table gets one more column: the percentage your own data produces for each comparison on the reading date. If it’s close to the fake change estimate, the tracking change explains the arrow by itself. If it’s far off, something real moved as well, and the arrow can’t tell you how much. A blank baseline shows as No baseline, which is what Looker Studio shows as No data.

The table sorts by any column and downloads as a CSV. For the full list of changes that break comparisons (consent mode, data filters, key events, migrations) and which way each pushes the arrow, see the causes table in the paired guide on fake growth in GA4 comparisons.

Worked Example: The Acme Sample

Press Load sample data and the tool fills in a made up store, Acme Outdoor on example.com. Its purchase event was broken and recorded nothing. The fix went live late one evening, so day 0 is the next day. The sample reads the comparisons on day 40, with 200 days of fictional daily sessions and transactions in GA4’s export format.

  • Last 7 days vs previous period: clean. It’s been honest since day 14.
  • Last 28 days vs previous period: partly contaminated. 16 of the 28 comparison days fall before the change, so only 12 were tracked. A flat business would show about +133.3%, and the sample’s own data shows +126.7%. Honest on day 56, safe to read on day 58.
  • Last 90 days vs previous period: the whole comparison window is before the change. With the old setup at 0%, there’s no baseline, so the report would show No data. Honest on day 180.
  • Last 28 days vs same days last year: fully before the change too. Honest on day 393 at the earliest.
  • Last full month vs previous month: depends on where the month boundaries fall, so the tool works it out from real dates.

The step finder spots the jump in transactions on day 0, and sessions stay flat, which is exactly the pattern a tracking fix leaves. If your own export shows a step in sessions as well, look for a second tag or a consent change.

If the change you’re checking was a cart or purchase fix, confirm the events fire in the right order before you trust any of this. The GA4 funnel checker does that from an export, and the Shopify GA4 funnel audit explains why the order matters.

Make It a Habit: Annotate Day 0 and Keep a Change Log

GA4 has annotations. Per Google’s annotations help page, you right click a data point on a line chart and choose Add annotation. The title holds 60 characters and the description 150. You need the Analyst role or above to create one, Viewers can see them, and each property holds up to 1,000. GA4 also adds system-generated annotations of its own, which can’t be edited.

That’s why the calculator writes the title and description to fit those limits. Use a single date on day 0, not a range. Google suggests single dates when ranges would overlap, and a range across the whole contamination period hides everything else on the chart.

Looker Studio is separate. Google’s Looker Studio date range help says only report editors can set the comparison date range, and the annotation in GA4 won’t appear there. Put a one line text box next to the scorecards with the safe to read date.

Then keep a change log. A shared sheet with one row per change is enough: day 0, what changed, which metrics, which way the arrow should move, the honest dates and how you checked it. The copy button gives you that row, tab separated, ready to paste. GA4’s property change history records admin changes, but it won’t show a code release or a Tag Manager publish, so the log fills the gap.

If you build the dashboard yourself, the Looker Studio SEO dashboard guide covers where those notes go, and Search Console makes a good second line because it doesn’t depend on your tags.

Limits of This Calculator

Read these before you quote a number from it.

  • It works in whole local dates. GA4 days follow your property’s time zone, so enter dates as your reports show them. Hours aren’t modelled.
  • It assumes the change landed on one day. A staged rollout, a cached theme or an app update that users install over weeks smears day 0, so use the last day of the rollout.
  • The fake change figure assumes flat demand. Seasonality, a sale or a campaign in either window moves the real number, and a partial first day pushes it further.
  • With the match day of week box ticked, it assumes GA4 shifts the previous period back by whole weeks (91 days for a 90 day window) and year over year by 364 days. Untick it for calendar dates.
  • Calendar month comparisons count only completed months, which is how most monthly reports read them.
  • The step finder looks for the single biggest shift in one metric. It can’t tell a tracking change from a promotion, and it needs at least 14 days of daily rows. Use a count such as sessions or transactions. Rates like CTR don’t add up across rows.
  • It handles one change at a time. If a second change touched the same metrics, run it again with the later date, because day 0 resets.
  • It doesn’t connect to GA4, so it can’t see thresholding, sampling or consent mode modelling in your property.

GA4 Comparison Window FAQ

When can I compare GA4 data after a tracking change?

When both the current and the comparison window sit after day 0, the first full day the new setup ran. For a window of W days that’s day 0 plus 2W: day 14 for Last 7 days, day 56 for Last 28 days and day 180 for Last 90 days. Add a day or two, because Google says GA4 processing can take 24 to 48 hours.

How do I compare date ranges in GA4?

Open a report, click the date picker, turn on Compare, pick the comparison and click Apply. Google lists three options: Previous period (match day of week), Previous period and Previous year. Your choice is personal, so other users won’t see it.

How do comparison date ranges work in Looker Studio?

A chart can compare against the previous period, the previous year or fixed dates, and shows the difference as a delta with an up or down indicator. Google’s Looker Studio help says only report editors can set the comparison date range, so viewers can’t switch it off.

How long until year over year works after a GA4 migration or tracking change?

A year plus one window. For Last 28 days against the same days last year, that’s about day 393, because last year’s 28 days also have to sit after the change. Until then, compare windows that both fall after day 0.

Why is the fake growth bigger than 100%?

Because part of the baseline is empty, which shrinks it far more than a dip in sales would. If the old setup counted nothing and only a fraction f of the comparison window was tracked, a flat business shows roughly 1/f minus 1 as growth. Seven tracked days out of 28 gives +300%.

What if the change went live in the afternoon?

Then that day is half one setup and half the other, so day 0 is the next day. Pick Partway through the day and the calculator counts from the following morning.

Does a tracking change affect Search Console?

No. Search Console counts clicks and impressions from Google Search itself, so a GA4 tag fix, a consent banner or a duplicate tag doesn’t move it. That makes it the cleanest organic trend line while your GA4 comparisons recover.

Is my data uploaded anywhere?

No. The date maths and any export you paste or upload are processed in your browser. Nothing is sent to a server, and the page doesn’t store what you enter.

Just changed your tracking and the arrows look too good?

I fix GA4 ecommerce tracking, work out which comparisons are valid and from when, and set up reporting your team can read without falling for a tracking change.

GA4 Conversion TrackingGA4 Funnel Checker
RS

Built by Ram Kr Shukla

SEO and growth consultant with 20+ years in SEO and growth across 50+ brands. Google Analytics and Google Ads certified. Works daily in GA4, Search Console and Looker Studio, and checks the tracking before trusting any comparison.