dbt Charts ships a fixed set of chart types, and many more shapes compose from
them. This page lists both, then covers what to do when the shape you want is
not there.
A composed chart is a shape you ask for by name that has no type: of its own.
Each is built from the types above plus layers, overlays and styling, and each
stays a plain, typed board file. The
composed chart shapes
example in the Playground shows these side by side:
Shape
Built from
Lollipop
A thin bar with a point layered on its end
Bullet
A bar measure over banded target bars
Slope
A line with two ordered categories on the x axis
Bump
A line of ranks over time
Dot plot
A scatter with a category on one axis
Streamgraph
An area with style.stack: center, a shared centered baseline
Composed Chart ShapesRegion ARegion BRegion CRegion DRegion ERegion FRegion GRegion H020406080100Lollipoptype: bar thinned to a stem with a scatter layer on the samemeasure.Unit AUnit BUnit CUnit DUnit E050100ActualGoalGoodSatisfactoryPoorBandBulletstacked qualitative bands, a narrow value bar layer, and astep-band goal marker. Vertical only: the canonical horizontal b…BeforeAfter406080Slopetype: line with a two-category x and color: on theentity.Region ARegion CRegion FRegion ERegion DRegion B20192020202120222023654321Bumptype: line on a rank measure with a descendingaxis_y.scale.continuous.domain.Region CRegion FRegion DRegion BRegion ARegion E020406080Region ERegion BRegion HRegion ARegion FRegion DRegion CRegion G201920242029SeriesDot Plottype: scatter over long-format rows with color: on the series, nolayers, so the measure axis stays the measure axis when the ch…Jan2024FebMarAprMayJun0 20 40 60 80 KStreamgraphtype: area with style.stack: center, so the bandsshare a centered baseline instead of the axis.ToolsAccessoriesElectronicsData as of 13:34 UTC on 14 Sep 2026made withdbt Charts
The building blocks are documented on their own pages:
layered charts for stacking marks on one chart,
small multiples for repeating one chart across a
dimension, and interactions for the controls around them.
There is no custom chart type today. An earlier inline chart type was
withdrawn, and a replacement is planned; until then these are the options,
roughly in the order to try them.
Compose it. Most editorial shapes are a known type plus a layer or a
style. Start from the closest built-in type and read
layered charts before assuming you need something new.
Draw it in a text block. A text: block is Markdown, so it can carry an
image, including an SVG you rendered elsewhere:
text:|
Turn on raw HTML. On boards you host yourself, html_policy: trusted-raw
at the board root lets a text: block carry raw HTML through a tag allowlist.
The allowlist covers structure, headings, inline text, lists, tables and
images. <svg>, <canvas>, <script> and <style> are dropped. dbt Charts
Cloud caps the policy below this tier, so raw HTML does not render there. See
HTML policy.
Render it somewhere else.dct render exports a board to SVG, PNG, PDF or
HTML, so a board can be one piece of a larger page. See
Output formats.
Ask for the type. If a shape keeps coming up, open an issue at
dbt-labs/dbt-charts with a
sketch of it. The list above grows from those requests.
Arbitrary Vega-Lite (spec, mark, encoding, transform, and the
composition operators) is rejected on the authored surface on purpose: every
board stays a typed, reviewable file that renders the same everywhere. That is
the constraint a custom type has to respect, and why the replacement is taking
its time.