A dashboard tile that stops refreshing does not look broken — it just looks calm. The number is still there, still formatted correctly, and nothing visually signals that it has not moved in two weeks because the feed behind it silently failed. This recipe compares today's date against each metric's last-updated timestamp and flags anything older than your freshness threshold, so a stale number is caught before someone makes a decision based on it.
Updated 2 days ago is Fresh; updated 7 days ago, past the 3-day threshold, is Stale.
The example
Three dashboard metrics as of September 27, 2026, each with a different last-refresh date. The threshold here is 3 days.
| A | B | C | |
|---|---|---|---|
| 1 | Metric | Last updated | Status |
| 2 | Revenue Dashboard | 9/25/2026 | Fresh |
| 3 | Inventory Feed | 9/20/2026 | Stale |
| 4 | Marketing Spend | 9/26/2026 | Fresh |
The formula
Date subtraction gives a day count directly; IF applies the threshold:
How it works
Two pieces:
TODAY()-B2subtracts the last-updated date from today's date. Because Excel stores dates as serial numbers, subtracting two dates returns a plain number of days — no special date-math function needed.IF(...>3,"Stale","Fresh")compares that day count against the threshold. Anything more than 3 days old is flagged Stale; anything within the window is Fresh.- Because TODAY() recalculates automatically every time the workbook opens, the status updates itself daily with no manual refresh.
Use conditional formatting on the Status column (red fill for Stale) so a broken feed is visible in the corner of your eye, not just in a cell someone has to read.
Try it: interactive demo
Enter days since the metric last updated and the freshness threshold.
Variations
Different thresholds for different metric types
A metric refreshed hourly should flag stale much sooner than one that only updates weekly — look the threshold up per metric instead of using one flat number for the whole dashboard.
Show the exact age, not just a flag
Display the day count alongside (or instead of) the Fresh/Stale label so a dashboard viewer can see exactly how stale, not just that it crossed a line.
Pitfalls & errors
TODAY() uses the computer's system clock at the moment the workbook is opened or recalculated — if the workbook is opened on a machine with an incorrect system date, the freshness check will be wrong through no fault of the formula.
Last-updated dates pulled from an external data connection sometimes arrive as text, not real date values — TODAY()-B2 on a text-formatted date returns a #VALUE! error instead of a day count. Confirm the source column is a true date type.
Set the threshold to match how often the underlying source is SUPPOSED to update, with a little slack — a feed that refreshes nightly needs roughly a 1-2 day threshold, not 3, or a genuinely broken feed could sit unnoticed for days.
Practice workbook
Frequently asked questions
Why might this show a different result when I open the workbook later?
Can this flag a feed that updates too FREQUENTLY, not just one that has gone stale?
Stop fighting formulas. Learn them in a day.
This recipe is one of hundreds of real-world formulas we teach. Our Excel Formulas & Functions class covers lookups, logic, text, and dynamic arrays hands-on — live in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.
See the Formulas & Functions Class