Weekly Data Vintage Refresh Digest: A Monday List of Datasets Due for an Update
For Economist (Private Sector / Consulting)s ·
What This Builds
A model run on last quarter's vintage looks fine until a reviewer asks which vintage it used. This build keeps a small sheet of the datasets you maintain, each with its last refresh date and the number of days you want between refreshes. Every Monday you get an email naming the datasets that are due within your window, the ones already past due, and a count of datasets missing a date. The sheet works it all out. Zapier mails you the result.
Prerequisites
- A new Google spreadsheet named "Data Vintage Refresh", separate from your other trackers
- A Zapier account on a paid plan, because the Zap has three steps and the free plan allows two-step Zaps only. The plan is Professional ($29.99/month). That is the whole ongoing cost, as the Google account is one you already use.
- A Google account connected to Zapier for Sheets and Gmail
- A check of your firm's policy on dataset codes in an outside automation tool
The Concept
A lookup that finds nothing halts a Zap, and Zap History then shows the run as safely halted with no email sent. For a refresh reminder that is the worst possible behaviour, because a week with nothing due and a broken Zap look identical. So this build never searches the dataset list. The Summary tab holds one row, always present, whose Key cell says summary. Formulas fill that row. Zapier looks up the row, which is always found, and emails it. There is no AI step, no loop and no second lookup. The sheet does every count and date calculation.
Build It Step by Step
Part 1: Build the Datasets tab
| Column | Header | Content |
|---|---|---|
| A | Dataset code | Your short code, such as DS-01 |
| B | Last refreshed | A real date that you type |
| C | Refresh every (days) | A whole number you choose |
| D | Next refresh | Formula |
| E | Flag | Formula |
Fill D and E down to row 301. Format columns B and D as dates.
D2:
=IF(OR(A2="",B2="",C2=""),"",B2+C2)
E2:
=IF(A2="","",IF(OR(B2="",C2=""),"MISSING DATE",IF(D2<TODAY(),"OVERDUE",IF(D2-TODAY()<=Summary!$B$4,"DUE SOON",""))))
How the formulas treat each case:
- A blank row leaves D and E blank.
- A dataset with a code but no last-refreshed date or no interval gets a blank D and the flag MISSING DATE. The date comparisons never run on an empty value.
- A next-refresh date before today returns OVERDUE.
- A next-refresh date from today up to today plus Look ahead days returns DUE SOON. Today itself and the boundary day both count.
- A later date returns blank.
The refresh interval is your choice. Some people match it to how often the source publishes, and some use a fixed rhythm. This guide states nothing about any source's actual schedule. Look that up on the source's own page.
Part 2: Build the Summary tab
| Cell | Content |
|---|---|
| A1 to F1 | Key, Due Soon Count, Due Soon Datasets, Overdue Count, Overdue Datasets, Missing Count |
| A2 | The word summary, in lowercase |
| A4 | Look ahead (days) |
| B4 | 7 |
B2:
=COUNTIF(Datasets!E2:E301,"DUE SOON")
C2:
=IFERROR(TEXTJOIN(", ",TRUE,FILTER(Datasets!A2:A301&" ("&TEXT(Datasets!D2:D301,"yyyy-mm-dd")&")",Datasets!E2:E301="DUE SOON")),"none")
D2:
=COUNTIF(Datasets!E2:E301,"OVERDUE")
E2:
=IFERROR(TEXTJOIN(", ",TRUE,FILTER(Datasets!A2:A301&" ("&TEXT(Datasets!D2:D301,"yyyy-mm-dd")&")",Datasets!E2:E301="OVERDUE")),"none")
F2:
=COUNTIF(Datasets!E2:E301,"MISSING DATE")
Check the parentheses in each formula, and check that each FILTER uses ranges of the same height (rows 2 to 301). The counts match on exact flag words, so empty rows are never counted.
Keep Calculation Mode on Automatic (File, Settings, Calculation). Google's page for that setting lists Automatic and Manual and nothing scheduled. If a count looks stale on Monday, open the sheet and let it recalculate. The spreadsheet time zone (File, Settings, General) sets what today means.
Part 3: Load the test rows
These rows are invented. They assume a pretend TODAY() of Monday 2026-10-19 and B4 = 7.
| Dataset | Last refreshed | Every (days) | Next refresh | Days from today | Expected flag |
|---|---|---|---|---|---|
| DS-01 | 2026-09-21 | 30 | 2026-10-21 | 2 | DUE SOON |
| DS-02 | 2026-07-20 | 91 | 2026-10-19 | 0 | DUE SOON |
| DS-03 | 2026-10-01 | 30 | 2026-10-31 | 12 | blank |
| DS-04 | 2026-09-01 | 30 | 2026-10-01 | 18 behind | OVERDUE |
| DS-05 | 2026-10-12 | 14 | 2026-10-26 | 7 | DUE SOON (boundary) |
| DS-06 | no date | 30 | none | none | MISSING DATE |
On another day, type last-refreshed dates at the same offsets from your real today. The Summary row should read:
| Cell | Expected value |
|---|---|
| B2 | 3 |
| C2 | DS-01 (2026-10-21), DS-02 (2026-10-19), DS-05 (2026-10-26) |
| D2 | 1 |
| E2 | DS-04 (2026-10-01) |
| F2 | 1 |
Part 4: Create the Zap
- In Zapier, create a new Zap.
- Choose Schedule by Zapier and the Every Week event.
- Choose Monday and the hour you want.
- Add an action. Choose Google Sheets and the Lookup Spreadsheet Row event.
- Pick the spreadsheet Data Vintage Refresh and the worksheet Summary.
- For the lookup column choose Key (column A). Labels may differ slightly from these names.
- For the lookup value type summary.
- Leave the other optional settings of this step alone.
- Add a second action. Choose Gmail and the Send Email event.
- In To, type your own address and nobody else's.
- Give it a subject such as Data vintage refresh.
- Type the body below, replacing each bracketed name with the field of that name from the Google Sheets step.
Due soon [Due Soon Count]: [Due Soon Datasets]
Overdue [Overdue Count]: [Overdue Datasets]
Missing dates: [Missing Count]
- Test the Google Sheets step and confirm it returns the Summary row.
- Test the Gmail step and read the email.
- Turn the Zap on.
Part 5: Close the loop after each refresh
After you refresh a dataset, type the new Last refreshed date in column B. Column D then moves the next refresh forward on its own. Log the new vintage in your source log at the same time, since this sheet records dates and not vintages.
What leaves your sheet
Zapier receives the Summary row: dataset codes, dates and counts. Zap History stores the data each step received and returned, so those values stay in your Zapier account. Check Zapier's pages for how long. Gmail carries the same codes in the email.
Use codes such as DS-01. Do not put a client name, matter name, case caption, confidential figure or any content from a dataset into the sheet. Check whether your firm's policy and the engagement allow even a dataset code in an outside tool. If they do not, keep the sheet and skip the Zap.
Zapier bills only successful action steps as tasks. Triggers, a search that halts and failed actions are not counted.
Real Example: Monday 2026-10-19
Setup: The six invented rows from Part 3 and a look-ahead of 7 days. Input: On Monday the Zap fires and finds the summary row. Output:
Due soon 3: DS-01 (2026-10-21), DS-02 (2026-10-19), DS-05 (2026-10-26)
Overdue 1: DS-04 (2026-10-01)
Missing dates: 1
Check the dates by hand. DS-01: 2026-09-21 plus 30 days is 2026-10-21, 2 days out. DS-02: 2026-07-20 plus 91 days is 2026-10-19, which is today. DS-03: 2026-10-01 plus 30 days is 2026-10-31, 12 days out and outside the window. DS-04: 2026-09-01 plus 30 days is 2026-10-01, already past. DS-05: 2026-10-12 plus 14 days is 2026-10-26, exactly 7 days out. DS-06 has no last-refreshed date. What you do next: You schedule the three refreshes, look into DS-04 with your project lead and give DS-06 a date.
All of these datasets and dates are invented.
What to Do When It Breaks
- Monday passed with no email → The failure is silent. Check that the Zap is on. Open Zap History and look for Monday's run. Confirm A2 on Summary still says summary, because a renamed Key cell halts the lookup. Confirm the spreadsheet and the Summary tab keep their names. Reconnect Google if the connection has expired. Treat a missing Monday email as a fault.
- A dataset shows MISSING DATE → Either B or C is empty. Fill in both.
- Next refresh shows a five-digit number → Format column D as a date.
- A refreshed dataset still shows as due → You did not type the new date in column B.
- C2 or E2 shows an error → Check that the FILTER ranges all run from row 2 to row 301.
- Counts look stale → Open the sheet and keep Calculation Mode on Automatic.
Variations
- Simpler version: Drop the interval column and type the next refresh date yourself.
- Extended version: Build another spreadsheet and Zap for a second team's datasets. Do not add another Key row to this sheet.
What to Do Next
- This week: Run the test rows. Then enter your real datasets.
- This month: Revisit the intervals to see whether each still suits how you use the data.
- Advanced: Pair it with the Weekly Data Release Watch Digest and the Daily Deliverable and Review Deadline Digest, each in its own spreadsheet.
Advanced guide for economist professionals. This build needs a paid Zapier plan. Zapier and Google change their screens often, so if a label differs from this guide, look for the closest match and check the vendor's help pages.