Tile types
A dashboard is a grid of tiles. QRY has four tile types, each with a clear purpose. Mixing them well — especially KPIs at the top, a couple of trend charts beneath, and a detail table below — is what separates a dashboard people actually look at from one that gets created and forgotten.
Chart
ECharts-rendered. Supports bar, line, pie, scatter, area, combos (line over bar), and heatmap.
When to use
- Trends over time → line or area.
- Compare a few categories → horizontal bar.
- Show breakdown of a total → pie (only if you have ≤6 categories — otherwise a sorted bar).
- Two-axis correlation → scatter.
- Density across two dimensions (e.g. day-of-week × hour) → heatmap.
Configuring
A chart tile needs:
- Datasource + SQL query.
- X-axis column.
- Y-axis column (numeric).
- Optional series column for the colour group / stack.
ECharts options (legend, tooltips, colours, axis labels) are exposed in an Advanced panel. For most dashboards, defaults are fine.
Gotchas
- A line chart with too many series becomes spaghetti. Filter to the top N before plotting.
- Pie charts with >6 slices are unreadable. Group small categories into "Other".
- Heatmaps need both X and Y to be discrete (categorical or bucketed numeric). Continuous-on-continuous is a scatter, not a heatmap.
KPI
A single big number with optional comparison and sparkline. Great for the top row.
When to use
- A single metric the dashboard is "about" — Total revenue, Active customers, Orders this month.
- A metric that should pop — KPIs are the largest visual element on the dashboard.
Configuring
A KPI tile needs:
- Datasource + a SQL query that returns one row, one numeric column.
- Optional a comparison query (e.g. previous period) — QRY calculates the delta and shows it as
↑ +12%or↓ -3%. - Optional a sparkline query returning a time series the same metric — rendered as a small inline line below the number.
Gotchas
- The KPI query must return exactly one row, one column. Returning more rows surfaces only the first.
- The comparison's sign convention assumes "higher = good". If your metric is "errors" or "churn", flip it in SQL or in the Advanced panel.
- Sparklines reuse the main query's filter context — make sure the time range is on the X axis and the metric on the Y axis.
Table
Paginated rows, with sort and CSV export. Boring on purpose.
When to use
- Detail under a chart — "the chart shows the trend, the table shows the underlying rows".
- When the answer genuinely is a list — Top 20 customers by revenue.
- For ad-hoc data exploration without committing to a visual.
Configuring
A table tile needs:
- Datasource + SQL query.
- Optional column-level configuration: rename, format (number / percentage / currency), hide.
- Optional a row-click handler that opens another dashboard, a conversation, or a URL.
Gotchas
- Don't paginate-of-doom. If your query returns 100,000 rows the table will load them all (no server-side pagination yet). Bound the query:
LIMIT 1000or filter to a useful subset. - Sorting is client-side per page. For large data, sort in the SQL.
- Currency formatting only knows the format string you give it — QRY doesn't do FX conversion.
Text
Markdown rendered to HTML. Headers, lists, links, images.
When to use
- A title for a section of the dashboard.
- Notes between tiles ("In the chart below, active means at least one purchase in the last 90 days").
- A header with the dashboard owner's name and contact for ambiguity.
Configuring
Just a Markdown body. Supports the usual: # headers, **bold**, [links](https://...), lists, code blocks, tables, inline images via .
Gotchas
- Text tiles don't have access to query results — they're static Markdown. You can't insert a live KPI value into a text tile (use a KPI tile next to it instead).
- HTML embedded in Markdown is sanitised;
<script>etc. are stripped.
Putting it together
A common, well-functioning layout:
[ KPI: Total revenue ] [ KPI: Active customers ] [ KPI: Avg basket ]
[ Chart: Revenue by month, last 12 months ]
[ Chart: Revenue by region ] [ Chart: Top 5 categories ]
[ Table: Detail rows for click-through ]
[ Text: notes / definitions / contact ]
Top-down: at-a-glance numbers, then the trend, then the breakdown, then the detail, then the metadata.
See also
- Creating a dashboard — pre-requisite walkthrough.
- Global filters — make all tiles update from one filter input.
- Dashboards reference — full feature reference.