Back to Blog
Business IntelligenceData QualityreportingSmall Business Analyticsspreadsheets

Why Your Data Studio Report Shows Old Data

Check saved edits, the Google Sheets connector Optional Range, report date filters, and the 15-minute query cache in order, then compare the report total, row count, and latest date against a sheet check block.

When a Data Studio report connected to Google Sheets shows old data, start with four checks. Confirm the sheet edit was saved and the connector’s Optional Range covers every row. Check the report’s date filters. Then click More options > Refresh data, because Sheets queries can be served from a cache for up to 15 minutes by default. New columns also need Refresh fields.

Data Studio was called Looker Studio from October 2022 until April 2026, so you will see both names (Welcome to Data Studio). I prefer Google Sheets because a spreadsheet should be shareable, whether you use it to collaborate or to communicate, and connecting it needs no additional BI subscription in an existing Google workflow. I have seen numbers fall out of sync across connected tools plenty of times. Checking the sheet, the filters, and the cache in that order helps separate a range or filter problem from a cache delay.

The Example Sheet

Here is a made-up April 2026 invoice ledger on a tab named Sheet_Transactions. Five invoices worth $8,900.00 were entered through April 29, and two more worth $3,700.00 were added at month-end close on April 30: $12,600.00 across seven rows. Columns A to E are the raw data you connect, and column F is a row check. The Row column is a row-number guide.

Enter C2:C8 as real dates, such as =DATE(2026,4,6) in C2, formatted yyyy-mm-dd. Enter the seven amounts in E2:E8 as plain numbers (1900, not “$1,900”), formatted as currency. Confirm =COUNT(C2:C8) and =COUNT(E2:E8) both return 7.

Row invoice_id (A) customer_name (B) invoice_date (C) channel (D) invoice_amount (E) Row_Check (F)
2 INV-6001 Northstar Manufacturing 2026-04-06 Direct $1,900.00 OK
3 INV-6002 Ridgeway Supply Co 2026-04-12 Partner $1,650.00 OK
4 INV-6003 Harbor Logistics Group 2026-04-18 Direct $2,200.00 OK
5 INV-6004 Summit Dental Clinic 2026-04-24 Online $1,350.00 OK
6 INV-6005 Oakwood Property Services 2026-04-29 Partner $1,800.00 OK
7 INV-6006 Pelican Bay Hardware 2026-04-30 Direct $2,100.00 OK
8 INV-6007 Beacon Industrial Parts 2026-04-30 Online $1,600.00 OK

The F values are what this formula returns, not values to type. Enter it in F2 and fill it down to F100:

=IF(COUNTA(A2:E2)=0, "", IF(OR(TRIM(A2)="", TRIM(B2)="", NOT(ISNUMBER(C2)), TRIM(D2)="", NOT(ISNUMBER(E2))), "CHECK INPUTS", IF(OR(C2<DATE(2000,1,1), INT(C2)<>C2, E2<0, SUMPRODUCT(--($A$2:$A$100=A2))>1), "CHECK INPUTS", "OK")))

F2 stays blank on an empty row and returns "OK" for a valid one. It returns "CHECK INPUTS" for a missing field, a non-numeric or negative amount, a text or time-stamped date, or a repeated invoice ID. The ID check compares plain text, ignoring case, so *, ?, and ~ in an ID are not read as wildcards.

Checks 1 and 2: The Sheet and the Optional Range

  1. Unsaved edits. A value typed into E8 is not saved until you press Enter or Tab. Until then, Data Studio reads the old value.
  2. A clipped Optional Range. Open Resource > Manage added data sources, click Edit, then Edit connection (Google Sheets connector). If Optional Range reads A1:E7, the report stops at row 7. It shows $11,000.00 across six rows: INV-6006 ($2,100.00, April 30) is in, but INV-6007 ($1,600.00) and every later row is cut off. Refresh data cannot fix this.

Set Optional Range to A1:E100. That connects only the raw columns and keeps column F and the check block in H1:J9 out of the report. It is a bounded range, so it covers new rows only through row 100. Before your data reaches row 101, extend the connector range, the column F fill, and the $2:$100 ranges in F2 and I2:I4. Google’s connector guide shows bounded ranges, so this check avoids open-ended ones such as A1:E.

Data Studio Google Sheets connector with Sheet_Transactions selected and Use first row as headers, Include hidden and filtered cells, and Include specific range A1:E100 checked.
The Google Sheets connector set to Sheet_Transactions, first row as headers, and the bounded range A1:E100 so column F and H1:J9 stay out of the report. Open full-size image.

Check 3: Report Date Filters

If the report shows $8,900.00, five rows, and a latest date of April 29, the April 30 rows are missing. A date control or chart date range that ends on April 29 produces exactly the same numbers as a stale cache. Refreshing will not bring them back, so check the page date control and each chart’s Default date range first.

Data Studio report with a date range control set to Apr 1, 2026 - Apr 29, 2026, showing Record Count 5, invoice_amount $8,900.00, and latest invoice_date Apr 29, 2026.
With a date range ending on April 29, the report shows $8,900.00, five rows, and a latest date of Apr 29, 2026 even after clicking Refresh data. Open full-size image.

Check 4: The Cache and Refresh Data

Per Manage data freshness, the Google Sheets connector’s default Data freshness setting is 15 minutes. Editors can change it to 1, 4, or 12 hours under Resource > Manage added data sources > Edit > Data freshness.

  • A query the report already ran may be answered from the cache within that window, though Google does not guarantee the full 15 minutes.
  • A new query, such as one from changing a filter, goes to the sheet.
  • Reloading the browser tab (F5 or Ctrl+R) does not bypass the cache, though it can show fresh data if the window has passed or nothing was cached.
  • On an ordinary standalone report without automatic refresh, an open tab does not redraw by itself.
  • More options > Refresh data in the editor toolbar refreshes every data source on the report. Every manual refresh method has a one-minute cooldown.
  • Refresh data picks up changed values and new rows inside the connected range. If you add or rename a header in row 1, open the data source and click Refresh fields. Neither button expands a clipped Optional Range.
Data Studio Data freshness dialog for the Google Sheets connector showing Every 15 minutes (Default), Every hour, Every 4 hours, and Every 12 hours.
The Google Sheets connector Data freshness dialog defaults to Every 15 minutes, with options for Every hour, Every 4 hours, and Every 12 hours. Open full-size image.
Data Studio report editor showing Record Count 7, invoice_amount $12,600.00, a descending invoice_date table starting at Apr 30, 2026, and the open More options menu with Refresh data.
Click More options > Refresh data in the report editor toolbar to refresh every connected data source on the report, subject to the one-minute cooldown. Open full-size image.

Compare the Report to the Sheet

Build this check block in Sheet_Transactions!H1:J9, outside the connected range. Column I calculates what the report should show, column J holds what you read off it, and rows 6 to 9 compare them. The J values are expected readings for this made-up example; enter your own.

Row Check (H) Sheet_Benchmark (I) Report_Reading (J)
2 Total_USD $12,600.00 $12,600.00
3 Row_Count 7 7
4 Latest_Invoice_Date 2026-04-30 2026-04-30
5 Reading_Stamp Sheet_Transactions!A1:E100 @ 2026-04-30 17:05
6 Total_Gap_USD $0.00
7 Row_Count_Diff 0
8 Latest_Date_Diff_Days 0
9 Status MATCHES SHEET ($12,600.00, 7 ROWS)

Each label before = names the destination cell; paste only the formula. Format I4 as yyyy-mm-dd.

I2: =IF(OR(COUNTIF($F$2:$F$100, "OK")=0, COUNTIF($F$2:$F$100, "CHECK INPUTS")>0), "CHECK INPUTS", ROUND(SUM($E$2:$E$100), 2))
I3: =IF(ISNUMBER(I2), COUNTIF($F$2:$F$100, "OK"), "CHECK INPUTS")
I4: =IF(ISNUMBER(I2), MAX($C$2:$C$100), "CHECK INPUTS")
J6: =IF(AND(ISNUMBER(I2), ISNUMBER(J2)), ROUND(J2 - I2, 2), "CHECK INPUTS")
J7: =IF(AND(ISNUMBER(I3), ISNUMBER(J3)), IF(OR(J3<0, INT(J3)<>J3), "CHECK INPUTS", J3 - I3), "CHECK INPUTS")
J8: =IF(AND(ISNUMBER(I4), ISNUMBER(J4)), IF(OR(J4<DATE(2000,1,1), INT(J4)<>J4), "CHECK INPUTS", J4 - I4), "CHECK INPUTS")
J9: =IF(OR(NOT(ISNUMBER(J6)), NOT(ISNUMBER(J7)), NOT(ISNUMBER(J8)), TRIM(J5)=""), "CHECK INPUTS", IF(AND(J6=0, J7=0, J8=0), "MATCHES SHEET ($" & TEXT(J2, "#,##0.00") & ", " & J3 & " ROWS)", "STOP: REPORT GAP " & IF(J6<0, "-$", IF(J6>0, "+$", "$")) & TEXT(ABS(J6), "#,##0.00") & " (" & IF(J7>0, "+", "") & J7 & " ROWS, " & IF(J8>0, "+", "") & J8 & " DAYS)"))

Any "CHECK INPUTS" row in column F stops the whole block.

To fill column J, read the report with the data source and filters your team uses. Add Scorecards for invoice_amount (Sum) and Record Count, and a Table of invoice_date sorted descending; its first row is the latest date. Give all three the same date range and filters. On the total, uncheck Compact numbers and set Decimal precision to 2, so you read $12,600.00, not 12.6K. Then enter:

  • J2: the total as a plain number (12600).
  • J3: the record count as a whole number (7).
  • J4: the latest date as a real date, such as =DATE(2026,4,30). A typed text label returns "CHECK INPUTS".
  • J5: your own connected range and reading time, not the example’s.

Row 9 shows "CHECK INPUTS" until all four are filled.

Google Sheets Sheet_Transactions tab showing seven April 2026 invoices in columns A to E, Row_Check OK in column F, and the H1:J9 check block reading MATCHES SHEET ($12,600.00, 7 ROWS).
The Sheet_Transactions tab with the seven-row invoice ledger, the F2:F100 row check, and the H1:J9 check block reconciled at $12,600.00 across 7 rows. Open full-size image.

What the Gap Pattern Tells You

Each mismatch leaves a different pattern in rows 6 to 8:

Report reading Status in J9 Where to look first
$8,900.00, 5 rows, April 29 STOP: REPORT GAP -$3,700.00 (-2 ROWS, -1 DAYS) The newest rows are missing: date filters (Check 3), then Refresh data (Check 4)
$11,000.00, 6 rows, April 30 STOP: REPORT GAP -$1,600.00 (-1 ROWS, 0 DAYS) The bottom row is missing but the latest date matches: Optional Range (Check 2)
$12,600.00 after E2 changed to 2000 STOP: REPORT GAP -$100.00 (0 ROWS, 0 DAYS) Same rows, changed value: an unsaved edit or a cached query (Checks 1 and 4)
$12,600.00 and 8 rows STOP: REPORT GAP $0.00 (+1 ROWS, 0 DAYS) The report counts a row the sheet does not: confirm the data source’s spreadsheet, tab, and range

These patterns show where to look first, not the cause. A range clipped higher up would also push the latest date back.

Run Three Tests, Then Reset

Run these on a copy. Start each test from the baseline: refresh at least a minute after the last refresh, re-enter all four readings in J2:J5, and confirm J9 reads MATCHES SHEET ($12,600.00, 7 ROWS).

  1. Edited value. Change E2 from 1900 to 2000. I2 becomes $12,700.00. If the report still reads $12,600.00, J9 shows STOP: REPORT GAP -$100.00 (0 ROWS, 0 DAYS). After Refresh data and new readings, J9 should read MATCHES SHEET ($12,700.00, 7 ROWS). If the report already showed $12,700.00, it returned the updated value and no stale result appeared. Set E2 back to 1900.
  2. New row. Enter all five fields in A9:E9: INV-6008, Crescent Field Services, =DATE(2026,4,30), Direct, and 1400. A blank field makes F9 and I2 return "CHECK INPUTS". With the baseline readings, J9 shows STOP: REPORT GAP -$1,400.00 (-1 ROWS, 0 DAYS). After a refresh, readings of $14,000.00 and 8 rows give MATCHES SHEET ($14,000.00, 8 ROWS). Clear A9:E9, keeping the F9 formula.
  3. Clipped range. Set Optional Range to A1:E7, reconnect, and refresh. Readings of $11,000.00, 6 rows, and April 30 give STOP: REPORT GAP -$1,600.00 (-1 ROWS, 0 DAYS). Set the range back to A1:E100.

After the last test, return to the baseline the same way.

Limits of This Check

A match means the total, row count, and latest date agree, not that every cell is current. Offsetting edits, such as +$90.00 on one invoice and -$90.00 on another, leave all three unchanged. The J5 stamp is your own note, and the sheet cannot verify it. Confirm the spreadsheet, tab, and range in the data source itself.

Frequently Asked Questions

Can viewers refresh the report, or do we need Data Studio Pro?

Viewers can refresh without Pro if an editor turns on Viewer data refresh. On a standalone report, a viewer can right-click a chart and click Refresh data (that chart only) or click a refresh button an editor added for selected charts, groups, or all sources. Viewers of an embedded report cannot refresh manually. Timed automatic refresh (Manage auto refresh) requires Data Studio Pro and edit access, and it does not override the source’s freshness setting.

Do scheduled emails and extracted data sources show live data?

No. Scheduled delivery emails a PDF snapshot from the time it was sent. An extracted data source stays fixed until it is re-extracted or its Auto update schedule runs. Check the extract’s last update before you check the sheet.

What to Do Next

One row per invoice makes the two row counts meaningfully comparable; see What Does One Row Represent in Your Sales Spreadsheet?. For broader discrepancies, read Why Your Business Numbers Don’t Match Across Systems, summarize rows with Build a Monthly Sales Pivot Table in Google Sheets, and track KPIs in How to Build a Monthly KPI Scorecard.