Skip to content

dbt charts Overview

dbt charts makes it easy to build any Interface for your Database. You — or an AI assistant — write straightforward YAML declaring what you want to see, and dbt charts renders it as an interactive dashboard, in a variety of formats.

Built on top of dbt, it turns a text file and a SQL query into a live, shareable dashboard — no JavaScript, no drag-and-drop BI tool, no proprietary format.

What is it for?

dbt charts is a visualization and dashboarding layer for data teams. It's good at two things:

Reporting & dashboards

Build polished, interactive dashboards and share them in multiple formats. Rich layouts, filters, and styling — all declared in YAML that lives in Git alongside your dbt models.

Data exploration

Go from a query to a chart instantly. A fast, iterative loop for exploring data and finding insights without the overhead of building a full report.

How It Works

  1. You write a YAML file describing what data to show and how to visualize it
  2. dbt charts compiles it into an interactive board
  3. The board queries your database (via SQL) or your dbt Semantic Layer (MetricFlow) to fetch data
  4. Users interact with filters, click through charts, and explore the data

Quick Start Example

Here's a compact dashboard that runs the moment you install dbt charts—no database required. Each query embeds its rows inline with type: values, and the charts map query columns to visual encodings. cols places the two charts side by side.

title: "Document activity"

queries:
  by_status:
    type: values
    columns: [status, document_count]
    values:
      - [Signed, 412]
      - [Sent, 168]
      - [Draft, 97]
      - [Voided, 24]

  monthly:
    type: values
    columns: [month, documents]
    values:
      - [Jan, 120]
      - [Feb, 145]
      - [Mar, 138]
      - [Apr, 171]
      - [May, 189]
      - [Jun, 203]

charts:
  status_chart:
    query: by_status
    type: bar
    title: "Documents by status"
    x: status
    y: document_count

  trend_chart:
    query: monthly
    type: line
    title: "New documents per month"
    x: month
    y: documents

rows:
  - cols:
      - status_chart
      - trend_chart
Document Activity 0100200300400SignedSentDraftVoidedDocuments by StatusJanFebMarAprMayJun150200New Documents per Month Data as of 14:52 UTC on 21 Aug 2026 made with dbt charts

That's it: inline data, two charts, a side-by-side layout, and a live board. When you're ready for real data, swap type: values for SQL against your warehouse or dbt Semantic Layer—the charts stay the same (see the Quick Guide).

Why dbt charts

  • YAML is the source of truth — Dashboards are text files. Version-controlled, diffable, reviewable in a pull request.
  • SQL or dbt — Start with raw SQL for speed; move to dbt metrics for governed, reusable definitions. dbt charts speaks both.
  • Dashboards that track your models — Dashboards live alongside your dbt models in Git. When your models change on a branch, the dashboards on that branch change with them — no dangling references to fix after a migration.
  • AI-friendly by design — YAML is far easier for an AI assistant to write correctly than JavaScript, a proprietary BI config, or hand-drawn SQL. "Show me sales by region" becomes a valid dashboard an agent can generate, review, and refine.
  • Open source — The engine, CLI, and YAML language are free and open source; everything on this site describes them unless marked otherwise. dbt charts Cloud is the optional hosted product that adds team features — access control and scheduled refresh — on top of the same YAML.

What You Need to Know

To use dbt charts effectively, it helps to be comfortable with:

  • SQL or dbt — a basic grasp of your data models (metrics and dimensions)
  • YAML — basic syntax; it's simple
  • Git — basic version control

You don't need JavaScript, a frontend framework, or web-deployment know-how — dbt charts handles rendering and query generation.

Get Started

Once you're building, the Charts, Variables, Styling, and YAML Reference sections cover everything the language can do.