An exposure declares a downstream use of your dbt models outside the dbt project: a dashboard, an ML feature table consumer, a reverse-ETL sync, or an executive report.
Example
exposures:
- name: executive_revenue_dashboard
type: dashboard
maturity: high
url: https://bi.example.com/dashboards/revenue
description: Daily revenue by region for leadership.
depends_on:
- ref('fct_orders')
- ref('dim_regions')
owner:
name: Analytics
email: analytics@example.comWhy exposures matter
fct_orders ──▶ exposure: executive_revenue_dashboarddim_regions ──▶
- Lineage reaches real consumers, not only other SQL models
- Impact analysis: "changing
fct_ordersbreaks this Looker dashboard" - Ownership and URLs live next to the data product
- Selection:
dbt build --select +exposure:executive_revenue_dashboard
Mental model
Models are producers. Exposures are named dependents that dbt does not build, but must not break silently.
Interview tip: "Exposures close the gap between warehouse models and business-facing artifacts so lineage and ownership are explicit."