Prompt
Why are my freshness checks always late?
Latest observation
If your freshness checks are “always late,” it usually means the checks are tied to a schedule or trigger that can’t keep up with reality. Common causes:
-
They run on a fixed interval
If you check every 15 minutes, anything that changes just after a check can appear stale until the next one. -
Clock or timezone mismatch
Your source system, scheduler, and monitoring system may not agree on time. Even a small drift can make checks look late. -
Queue or job backlog
The freshness task may be waiting behind other jobs, so it starts later than planned. -
Slow data arrival upstream
The check may be correct, but the data itself is landing later than expected. -
Window too tight
If the freshness threshold is shorter than the real-world latency of the pipeline, alerts will fire “late” or constantly. -
Dependency issues
If freshness is measured only after downstream steps finish, any upstream delay pushes the check back. -
Sensing the wrong timestamp
Sometimes checks use load time, event time, or partition time incorrectly, which makes the freshness age calculation misleading.
What to do:
- Compare scheduled run time vs actual run time.
- Check source timestamp, ingestion time, and alert evaluation time.
- Look for scheduler delays/backlogs.
- Increase the freshness threshold if the pipeline naturally lags.
- Ensure all systems use the same timezone and synchronized clocks.
If you want, I can help you diagnose it for your specific setup—e.g. dbt freshness, Airflow, SQL checks, or a custom monitor.