Source monitoring · rule source-freshness-no-timestamp
dbt freshness checks with no loaded_at_field
A Metacenta review checks this under the rule Configured freshness checks can actually run. Everything below applies whether or not you ever commission one.
What this rule checks
Among dbt sources with a freshness threshold, this rule flags those with no loaded_at_field and no loaded_at_query. Without one, dbt has no column to measure the newest row by.
Why it matters
The check then either falls back to warehouse metadata or does not run at all. The monitoring can be there on paper and absent in practice.
How to fix it
Make the configured freshness checks runnable. Set loaded_at_field to the column that records when each row landed, or confirm that the adapter in use supports the warehouse-metadata path.
Before:
sources:
- name: shop
freshness:
error_after: {count: 24, period: hour}
After:
sources:
- name: shop
loaded_at_field: _loaded_at
freshness:
error_after: {count: 24, period: hour}
When it is fine to leave
From dbt 1.9, some adapters can read freshness from warehouse metadata without a column. If yours can, and dbt source freshness returns results for these sources, the gap is closed.
What we need to check it
manifest.json alone. We report this at medium confidence, because the manifest cannot tell us whether your adapter supports the metadata fallback.