Building dashboards
Arrange charts into a dashboard, lay it out, and keep it fast.
A dashboard is an arrangement of charts that share filters and a refresh cycle. Dashboards live inside projects, so access follows the project.
Create one
Open a project and click New → Dashboard
Name it for the question it answers — “Weekly dealer performance” beats “Dashboard 2”.
Add charts
Add existing charts from the project, or create new ones inline. A chart can appear on several dashboards; it is referenced, not copied, so editing it updates every dashboard using it.
Arrange the grid
Drag to move, drag an edge to resize. The grid is 12 columns wide and snaps as you drag.
Add filters
Filters apply to every chart bound to the same dataset — see Filters.
Publish
Draft dashboards are visible only to you. Publishing makes them visible to project members according to their role.
Layout
| Element | Purpose |
|---|---|
| Row | Horizontal band; charts within it share a height |
| Chart tile | 1–12 columns wide |
| Text tile | Markdown — headings, context, caveats |
| Metric tile | A single number with an optional comparison |
| Divider | A labelled section break |
Put the number first
Open with metric tiles answering the headline question, then the charts explaining it. Most readers never scroll past the first row.
Dashboards are responsive: on narrow screens tiles stack in reading order — left to right, top to bottom.
Refresh
A dashboard refreshes when its datasets do. The header shows the oldest data on the page, which is the only honest summary when tiles have different schedules.
| Mode | Behaviour |
|---|---|
| On load | Re-queries live-query datasets when opened |
| Scheduled | Follows each dataset’s own schedule |
| Manual | Only on Refresh |
| Auto (30s–15m) | Polls continuously — for wall displays |
Auto-refresh multiplies query load
A 30-second refresh on a dashboard with eight live-query tiles is 960 queries an hour against your database. Use scheduled datasets for anything on a wall screen.
Performance
Slow dashboards are almost always slow datasets.
One tile is slow
That chart’s dataset is on live query against a slow source. Switch it to scheduled, or narrow the dataset with a filtered view.
Everything is slow
Too many live-query tiles. The dashboard header shows per-tile query times under ⋮ → Timing.
Slow only for some people
They are seeing a different filter state — a wide date range re-queries far more rows. Set a sensible default range.
Slow after a source change
Check for schema drift. A dataset falling back to its last good sync can silently change the query plan.
Duplicating and templating
Duplicate copies the layout and filters while re-pointing every chart at new datasets you choose. This is how one dashboard becomes per-customer or per-region versions without rebuilding.
Duplicates diverge
A duplicate is independent from the moment it is created. Editing the original does not update it. For genuinely shared components, reuse the same chart across dashboards instead.