DATA OPS

dbt Freshness Sentinel: Pause Dashboards on Stale Downstream Tables

On a schedule, checks the load timestamps of critical Snowflake marts and, when any model exceeds its freshness SLA, flips a dashboard kill-switch flag and posts an outage notice…

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerEvery 30 min during business hours
  • ActionQuery max load timestamp per watched martSnowflakeSnowflake
  • LogicCompare each table's age to its freshness SLA
  • ActionFlip is_paused flag in dashboard control tableSnowflakeSnowflake
  • OutputPost outage notice naming stale tables to SlackSlack

What it does

Runs a freshness audit against a curated list of downstream Snowflake marts (revenue, pipeline, exec KPIs). For each table it compares the latest `_loaded_at` against a per-table SLA you define. If any table is past its threshold, it marks those dashboards as paused by updating a control table and broadcasts a clear outage message to the data consumers' Slack channel.

When to use it

Use when business dashboards read directly from a handful of high-visibility marts and a silent upstream failure would put wrong numbers in front of leadership. This is the guardrail that turns "the dashboard is wrong" into "the dashboard says it's paused."

How it works

  1. 1A schedule fires every 30 minutes during business hours.
  2. 2A Snowflake query pulls the max load timestamp for each watched mart.
  3. 3A logic step compares each table's age against its SLA and collects the stale ones.
  4. 4If the stale set is non-empty, a Snowflake update flips an `is_paused` flag in the dashboard control table.
  5. 5A Slack message names the stale tables, their lag, and the affected dashboards, then links the runbook.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SnowflakeWarehouses, queries, shares.
  2. 2
    Connect SlackChannels, DMs, threads, mentions.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.