Metacenta

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.