Start from the CSV
This guide uses a handful of the sample's columns: order_date, region, product, segment, sales_rep, revenue, margin, deal_stage, status.
Template examples
Every widget reads a few of your CSV’s columns and turns them into one number, chart, or table. Here’s how the pieces fit - built using the real SaaS Sales Overview template as the example.
Five widget types cover almost every dashboard. Each one needs a specific shape of column.
revenue → Total Revenueorder_date + revenue → trendregion + segment + revenuesales_rep + revenue → top repsall 18 columns, sortable and filterableAdd widget → pick a type → fill in Title, Value column, Calculation, and Format → Review → Add widget. Three steps, and every field has a default to start from.
Type what you want in plain English. This is the faster path for anything the point-and-click form doesn't have a field for yet - like a second, smaller comparison number on a KPI.
This guide uses a handful of the sample's columns: order_date, region, product, segment, sales_rep, revenue, margin, deal_stage, status.
Add widget → KPI. Value column: revenue. Calculation: sum. Format: currency. Caption (optional): "Across 54 deals this year." Add widget - the card now reads "sum of revenue, shown as currency."
The wizard’s KPI form doesn’t have a field for a second, smaller number - and there’s no way to add one to an existing card afterward either. If you want a comparison stat, describe the whole card, headline and secondary together, in the Ask bar instead of building it in the wizard:
One instruction, one new card: Total Revenue as the big number, "Avg deal size" underneath as a smaller comparison line - exactly the card the SaaS Sales Overview template ships with.
Add widget → Ranking. Rank by: sales_rep. Value: revenue. Calculation: sum. Format: currency. Show top: 10. That’s "Top Sales Reps by Revenue" - this dataset only has 8 reps, so all 8 show.
Add widget → Matrix. Rows: region. Columns: segment. Value: revenue. Calculation: sum. Format: currency. That’s "Revenue: Region × Segment" - one grid, every combination.
Every row in the All Records table has a View button that opens the complete record - every column, right away, no setup required.
A richer version - a proper title and subtitle instead of "Record 1", a few summary numbers, and a section listing every other row sharing the same value in one column - happens automatically. While your dashboard is being designed, csv.design looks for a stable identifier column and wires the connection up on its own.
Here it matches on sales_rep.
See it built