Skip to main content
A freshness monitor alerts you when a table has not been updated for longer than usual. There are two ways to monitor freshness:
  • The Delay and Change delay metrics of the table stats monitor read the last update time from your data warehouse metadata. They cost almost nothing to run and can be placed on many tables at once with deployment rules. Use them for most tables.
  • A custom freshness monitor reads a timestamp column in the table itself. Use it when the metadata does not tell you what you need, for example on a view.
title
To get freshness on all your sources, create a deployment rule with the table stats Delay metric and filter it by type (dbt sources, Coalesce sources or SQLMesh external models).

Data that skips some days of the week

By default, the Delay and Change delay metrics expect data to arrive at the same cadence every day. If your pipeline skips some days on purpose, for example weekends, turn on Use a weekly delay pattern on the deployment rule or the table stats monitor. The monitor then learns the expected arrival time for each day of the week, so a quiet Saturday is not reported as a delay. It needs about two weeks of history before it has a pattern to compare against. In YAML, set delay_model: WEEKLY_PATTERN on the table stats monitor or the deployment rule. See Defining monitors in code. This option is in beta. If you do not see it, ask support to enable it for your workspace.

Setting up a custom freshness monitor

  1. Navigate to the table or transformation model where you want to set up the monitor and click Add Monitor.
  2. Select Freshness.
  3. Under Freshness column, select the timestamp column that shows when a row was added or updated, for example updated_at.
  4. Choose the schedule, the detection mode, the sensitivity and the severity, and confirm.
The monitor appears under the table and on the . A custom freshness monitor queries your table, so it adds to your data warehouse costs. To define the same monitor in YAML, see Defining monitors in code, where it is type: freshness with the column in expression.
The monitor learns the usual update pattern of your data. Expect about 10 days before it knows the seasonality of your data well enough to detect anomalies reliably.