Measures & dimensions
Define certified measures and dimensions: aggregation types, filters, ratios, time intelligence, formatting and the rules that keep numbers consistent.
Measures and dimensions are the words your team uses to talk about data. Define them once, carefully, and every chart, alert and Ask Kimo answer will agree. This page covers the syntax and the patterns we see most often.
Measures
A measure is an aggregation over a column, optionally filtered. Measures can reference other measures to build ratios, and can be marked certified by an editor, which adds a badge everywhere they appear.
| Type | SQL equivalent | Example |
|---|---|---|
sum | SUM(x) | revenue |
count | COUNT(*) | orders |
count_distinct | COUNT(DISTINCT x) | active_customers |
avg / median / p90 | AVG(x), PERCENTILE_CONT | avg_order_value |
ratio | measure_a / measure_b | conversion_rate |
running_total | SUM() OVER (ORDER BY t) | cumulative_signups |
measures: revenue: type: sum sql: amount filters: [status = 'paid'] format: currency certified: true orders: type: count avg_order_value: type: ratio numerator: revenue denominator: orders conversion_rate: type: ratio numerator: orders denominator: web_sessions.sessions format: percentDimensions
Dimensions are the columns you group and filter by. Besides plain columns, you can define computed dimensions with SQL, bucket numbers into bins, or map raw values to friendly labels.
dimensions: plan: sql: plan_name channel: sql: coalesce(utm_source, 'direct') labels: { google: 'Organic search', meta: 'Paid social' } order_size: sql: amount bins: [0, 50, 200, 1000] created: sql: created_at type: time grains: [day, week, month, quarter]Time intelligence
Any measure on a model with a time dimension gets comparisons for free: revenue.previous_period, revenue.yoy, revenue.delta_pct. Week starts follow the workspace setting (Monday by default) and fiscal years can be offset by month under Settings → Calendar.
Formatting
format: currencyuses the source currency, orcurrency: EURto force one.format: percentmultiplies by 100 and adds%; setdecimalsto control precision.format: durationrenders seconds as2m 14s.compact: trueabbreviates large numbers on KPI tiles (1.2M).
Naming conventions
Use snake_case nouns for measures (active_customers, not count_customers_active) and add a one-line description. Descriptions show up in tooltips and help Ask Kimo choose the right measure, so a good description directly improves answer quality.
Certification and ownership
Anyone with the Editor role can create a measure, but only certified measures carry the blue badge and are preferred by Ask Kimo. Certification is a lightweight review: a second editor checks the definition, the filters and the description, then approves. Certified measures cannot be edited directly; changes go through a draft so that dashboards relying on them do not shift overnight. Kimo keeps a full history of each definition, with who changed what and why.
- Use certification for numbers that appear in board decks or are tied to compensation.
- Leave exploratory measures uncertified; they are still usable but clearly marked.
- Retire a measure with Deprecate: it keeps working for 30 days with a warning, then disappears from pickers.
