> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dqlabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# dbt Overview

> Connect Prizm to dbt Cloud or dbt Core to ingest transformation metadata, build end-to-end lineage, monitor job health, and surface data quality signals from dbt test results.

<script type="application/ld+json">
  {`{
            "@context": "https://schema.org",
            "@type": "TechArticle",
            "headline": "dbt Overview",
            "description": "Connect Prizm to dbt Cloud or dbt Core to ingest transformation metadata, build end-to-end lineage, monitor job health, and surface data quality signals from dbt test results.",
            "url": "https://docs.dqlabs.ai/sources/dbt/overview",
            "publisher": {
              "@type": "Organization",
              "name": "DQLabs Inc",
              "logo": "https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"
            }
            }`}
</script>

The dbt integration enables Prizm to connect to your dbt transformation layer as a pipeline integration. Unlike database connectors (Snowflake, Databricks), dbt is a **transformation pipeline integration** — Prizm ingests dbt artifacts to build lineage through your transformation layer, catalog dbt models alongside warehouse assets, monitor job execution health, and use dbt test outcomes as native data quality signals.

Prizm supports two deployment models:

| Mode          | How It Works                                                                                                                               |
| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------- |
| **dbt Cloud** | Prizm connects via the dbt Cloud API. Metadata is ingested automatically via webhook on each job run, or on a scheduled pull.              |
| **dbt Core**  | Prizm ingests artifacts pushed by the `prizm-dbt` CLI plugin, which you invoke as a step in your existing CI/CD or orchestration pipeline. |

Both modes produce the same catalog, lineage, and observability output in Prizm.

## Supported dbt Objects

Prizm ingests the following object types from dbt:

| Object       | What Prizm Captures                                                                                |
| :----------- | :------------------------------------------------------------------------------------------------- |
| **Model**    | Name, database, schema, materialization type, dependencies, tags, owner, description, compiled SQL |
| **Source**   | Name, database, schema, table, freshness threshold, loaded-at field, tags, owner, description      |
| **Test**     | Name, test type (generic / singular), severity, attached model/column, tags, description           |
| **Exposure** | Name, type (dashboard / application / notebook / ML), depends-on models, owner, maturity           |
| **Run**      | Run ID, job ID, environment, status, started/finished timestamps, duration, trigger type           |

<Note>
  dbt Metrics and Semantic Models (`semantic_manifest.json`) are ingested as enrichment data when present, but full metric observability is not yet available in the Prizm UI. This will be available in a future release.
</Note>

## Metric Support

dbt is a transformation pipeline connector — metrics apply to **dbt models**, **dbt tests**, and **dbt jobs** rather than raw warehouse tables.

<Tabs>
  <Tab title="Operational">
    Operational metrics track **whether dbt models and jobs are running on time and producing expected data volumes**. These are the primary signals for pipeline SLA monitoring and freshness alerting.

    | Metric                | Level | Category     | Description                                                                                                                                                                                                                                                                                                  |   |
    | :-------------------- | :---- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
    | **Job Duration**      | Job   | Availability | This metric measures the time taken to complete the entire pipeline job, capturing the job duration from start to finish                                                                                                                                                                                     |   |
    | **Job Run Freshness** | Job   | Availability | This metric measures how often a pipeline job runs, indicating the job's execution frequency and timeliness. It is applied at the job level, specifically monitoring a JOB asset type. The metric is evaluated periodically by tracking the intervals between job runs to assess freshness and availability. |   |
    | **Freshness**         | Model | Freshness    | How recently the model last ran successfully. Default metric for all dbt models. Alerts when a model has not executed within its expected window.                                                                                                                                                            |   |
    | **Rows Affected**     | Model | Volume       | This metric shows the number of rows inserted, updated, or deleted by a database operation. It is managed via the database adapter response, though values vary based on how a model is built. This value will be tracked from dbt's run\_results.json artifact.                                             |   |
    | Execution Time        | Model | Usage        | This metric measures the total time taken to run a model within a data pipeline, indicating its execution duration                                                                                                                                                                                           |   |

    <Note>
      **Execution Status** and **Job Run Freshness** apply at the job level and are visible on the dbt Job Metric tab. **Freshness** is enabled by default for all dbt models. **Rows Affected** is configurable per model.
    </Note>
  </Tab>

  <Tab title="Performance">
    Performance metrics track **execution efficiency** across dbt models, tests, and jobs. They are surfaced as insights by default — anomaly detection and alerting must be configured per asset.

    | Metric                  | Level | Category | Description                                                                                                                                               |
    | :---------------------- | :---- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Job Duration**        | Job   | Usage    | Total elapsed time for a dbt job run from start to finish. Monitors whether batch jobs complete within their SLA windows (e.g. alert if > 15 minutes).    |
    | **Execution Time**      | Model | Activity | Total wall-clock time taken to run a dbt model. Rising trends often precede outright failures. Configurable alert threshold (e.g. alert if > 10 minutes). |
    | **Test Execution Time** | Test  | Activity | Time taken to run each individual dbt test. Tracks whether test suite runtime grows as model and test counts increase.                                    |

    <Info>
      Performance metrics are surfaced as **insights** on the model, test, and job pages. To enable automated anomaly detection or threshold-based alerts, configure them in the connector settings or on the individual asset page.
    </Info>
  </Tab>

  <Tab title="Business">
    Business metrics for dbt capture **test quality signals** — deterministic outcomes from dbt test execution that indicate known data quality problems, not probabilistic anomalies.

    | Metric                | Level | Category   | Description                                                                                                                                                                                          |
    | :-------------------- | :---- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Job Success Rate**  | Job   | Queries    | Percentage of job runs that completed successfully over a rolling window. Surfaced on the dbt Job Metric tab. Configurable alert threshold (e.g. alert if failure rate > 10% over the last 30 days). |
    | **Test Success Rate** | Test  | Validation | Percentage of dbt tests that passed over a rolling window. Surfaced on the model's Test tab.                                                                                                         |

    **How dbt test results map to Prizm quality signals:**

    | dbt Test Severity | Run Result  | Prizm Action                                                      |
    | :---------------- | :---------- | :---------------------------------------------------------------- |
    | `error`           | Test fails  | Deterministic alert or issue created on the model                 |
    | `warn`            | Test warns  | Quality observation surfaced — contributes to model quality score |
    | `pass`            | Test passes | Positive quality signal — contributes to model quality score      |

    <Tip>
      Unlike probabilistic metrics that detect anomalies statistically, dbt test outcomes are **deterministic** — if a `not_null` or `unique` test fails, there is a confirmed data quality problem. Configure **Dependent DQ Runs** in the connector settings to automatically open Prizm issues for failing tests.
    </Tip>
  </Tab>
</Tabs>

## How Prizm Uses dbt Data

**Data Catalog** — Every dbt model appears as an asset in the Prizm catalog alongside its upstream sources and downstream exposures. Model descriptions, tags, owners, and materialization type are synced automatically from manifest json configuration.

**End-to-End Lineage** — Prizm stitches the dbt DAG (from `manifest.json`) with warehouse-side lineage from Snowflake or Databricks to produce a complete lineage graph from raw sources through transformation models to downstream BI reports. dbt models appear as transformation edges between warehouse tables.

**Execution Observability** — Prizm tracks job health per dbt job: failure rate, average and P95 run duration, and run trend over time. The dbt Jobs page in Prizm is the operational control center for your transformation pipeline.

**Data Quality from Tests** — dbt test results (`run_results.json`) are first-class quality signals in Prizm. Failing dbt tests trigger deterministic alerts, contribute to model quality scores, and can create linked issues for investigation.

## dbt Jobs UI in Prizm

Each dbt connector creates a **dbt Jobs** view accessible from the Source detail page. The Jobs page includes:

| Tab               | Description                                                                               |
| :---------------- | :---------------------------------------------------------------------------------------- |
| **Overview**      | Job health cards (failure rate, avg duration, P95 duration, runs in 7d/30d)               |
| **Metric**        | Observability metrics for the job — execution status, `Job Run Rreshness`, `Job Duration` |
| **Run**           | Full run history with date/status/trigger filters and run detail drawer                   |
| **Model**         | All models the job touches — materialization, last runs, avg duration, failure count      |
| **Test**          | All tests in scope — pass rate, last runs, associated model, last run timestamp           |
| **Documentation** | Synced dbt docs and Prizm annotations                                                     |
| **Audit**         | Change history for the connector configuration                                            |

## dbt Model Page

Each dbt model gets its own asset page in Prizm with:

| Tab               | Description                                                                                                  |
| :---------------- | :----------------------------------------------------------------------------------------------------------- |
| **Overview**      | Volume, schema, freshness, quality metrics, total runs, failure rate — inherited from the materialized table |
| **Attribute**     | Column-level metadata with column names and data types                                                       |
| **Metric**        | Quality and observability metrics for this model                                                             |
| **Lineage**       | Directed lineage graph; toggle between mixed view (models as edges) and dbt-only view (models as nodes)      |
| **Run**           | Run history table with status, duration, trigger, and error per run                                          |
| **Test**          | All configured tests with last run statuses and 30-day pass rate                                             |
| **Compiled Code** | Final compiled SQL with AI Explain and AI Improve actions.<br />Also shows Recent PRs if connected to github |

## Supported Features

| Feature                                                   | Supported     |
| :-------------------------------------------------------- | :------------ |
| dbt Cloud                                                 | ✅             |
| dbt Core                                                  | ✅             |
| Webhook-driven ingestion (dbt Cloud)                      | ✅ Recommended |
| Scheduled pull ingestion (dbt Cloud)                      | ✅             |
| CLI plugin push (dbt Core)                                | ✅ Recommended |
| Central storage ingestion (S3/GCS/ADLS)                   | ✅             |
| Model catalog & lineage                                   | ✅             |
| Test results as quality signals                           | ✅             |
| Job run history & observability                           | ✅             |
| AI risk signals (duration regression, recurring failures) | ✅             |
| Compiled SQL viewer with AI actions                       | ✅             |
| Column-level lineage                                      | ✅             |
| Exposure tracking                                         | ✅             |

## Next Steps

<CardGroup cols={2}>
  <Card title="Setup" icon="plug" href="/sources/dbt/setup">
    Connect Prizm to dbt Cloud or configure the dbt Core CLI plugin.
  </Card>

  <Card title="What We Collect" icon="database" href="/sources/dbt/what-prizm-collects">
    Full breakdown of every artifact, object, and field Prizm ingests from dbt.
  </Card>

  <Card title="FAQ" icon="circle-question" href="/sources/dbt/faq">
    Common questions about authentication, artifacts, lineage, and test results.
  </Card>

  <Card title="Glossary" icon="book" href="/help/glossary">
    Definitions for Prizm terms used throughout this guide.
  </Card>
</CardGroup>
