Costs

Dashboards: methods, tools and useful context

This page gives a decision sequence for dashboards. It identifies the reader, first action, evidence gate, exception, stop rule, and next review so advice remains.

A dashboard is a product with users, and most of them fail the way bad products fail: nobody opens them, or people open them and cannot tell what to do. The charts are usually fine. The problem is that nobody decided who the dashboard was for.

This page is about designing dashboards people actually use, and retiring the ones they do not.

Three dashboards, three different jobs

Almost every request for "a dashboard" is really one of three things, and they have incompatible designs. Building one artifact that tries to be all three is the most common way to end up with something nobody reads.

The monitoring dashboard answers "is anything wrong right now?" Its reader is on shift or checking in daily. It wants few numbers, clear thresholds, and a strong visual signal when something is off-pattern. Everything that is not an early warning is noise. This is the one people leave open on a second screen.

The exploratory dashboard answers "why did that happen?" Its reader is investigating. It wants filters, breakdowns, the ability to change the grain, and enough detail to follow a hunch. It is denser than a monitoring view and that is correct: its user arrived with a question, not a glance.

The reporting dashboard answers "how did the period go?" Its reader is reviewing a fixed window on a fixed cadence. It wants stable definitions, comparisons to plan or prior period, and no surprises in layout from month to month. If the numbers can move retroactively, this one needs a snapshot, not a live query.

Name which of the three you are building, out loud, before you place a single chart. Half the arguments in a dashboard review are two people arguing about different products.

Design from the top left corner outward

Readers scan a dashboard the way they scan a page: the top-left carries the most weight, and attention falls away fast. So the layout is a claim about priority.

  • Put the one number the reader came for in the top left, large, with its comparison. If you cannot name that number, you are not ready to build.
  • Put the two or three numbers that explain it directly underneath or beside it.
  • Put everything diagnostic below the fold. People who need it will scroll; people who do not will not be distracted by it.
  • Do not open with a chart of everything. A twelve-series line chart is a decorative object, not information.

Every number should carry the context that makes it interpretable: compared to what, over what period, and is this good. A bare figure forces the reader to supply a baseline from memory, and they will supply the wrong one.

Make the definitions visible without cluttering the page

The fastest way to lose trust in a dashboard is for two tiles to disagree, or for a tile to disagree with a number someone has in a spreadsheet. Before that happens, make it easy to check what a tile means.

Element What to show on the tile What to keep one click away
The metric Plain-language name, not the column name The exact definition: numerator, denominator, filters
The population Which segment or entity is counted The exclusion rules: test accounts, internal users, refunds
The period The window and the timezone Whether recent periods are still filling in
Freshness When the underlying data last updated The pipeline or source it came from
Owner A name or team Where to report something that looks wrong

Freshness deserves its own callout. A dashboard that silently serves yesterday's data because a job failed is worse than one that shows an error, because it looks fine. Put a last-updated timestamp on every page and make it turn obviously wrong when the data is stale.

Thresholds beat trends for anything operational

If the reader's job is to notice problems, a line chart is a weak instrument. It asks them to compare today's shape to their memory of last week's shape. Give them the comparison instead:

  • Show the current value against an explicit expected range, agreed in advance.
  • Draw the band on the chart rather than describing it in a caption.
  • Where the expected range is seasonal, compare to the same weekday or the same week last year, not to yesterday.

And accept the corollary: if a number genuinely needs watching every day, a dashboard is the wrong delivery mechanism. Nobody reliably checks anything daily. Send an alert when it leaves the band, and let the dashboard be where people go after the alert fires.

The maintenance tax nobody budgets for

Every dashboard you publish is a standing commitment. A column gets renamed upstream and a tile breaks. A definition changes and the chart silently starts measuring something else. A filter that made sense at launch quietly excludes a product line that now matters.

Practical ways to keep the cost down:

  • Build on shared definitions, not per-dashboard logic. If the same metric is recomputed in six dashboards, it will eventually mean six things. Centralize the calculation upstream and have every view read the same one.
  • Cap the number of published dashboards. Treat the count as a budget. Adding one should mean retiring one, or making a deliberate decision that it is worth the extra surface.
  • Test the data, not the chart. Assertions on the underlying tables (row counts within expected bounds, no unexpected nulls in key columns, no duplicate keys), catch far more breakage than looking at the rendered page.
  • Version the layout changes. When you move or redefine a tile, say so on the page. Readers who noticed the number change deserve to know it was you.

Kill dashboards on purpose

Usage data on your own BI tool is the most underused dataset in most data teams. Look at it quarterly and be ruthless.

  • If nobody opened it in a quarter, archive it. Announce the archive; the one person who cared will speak up, and now you know who they are.
  • If one person opens it constantly, it may be a report they need emailed instead.
  • If a dashboard gets heavy traffic right before a recurring meeting, it is really a reporting artifact: build it as one and stop pretending it is exploratory.
  • If people export it to a spreadsheet every time, find out what they do in the spreadsheet. That step is the actual requirement, and it is missing from your build.

Archiving is not failure. A data team that never retires anything is one that will spend all of next year maintaining last year's questions.

A short review before publishing

Run through this with someone who was not involved in building it:

  1. Hand them the dashboard with no explanation. Ask what they think it is for.
  2. Ask them what they would do if the main number turned red.
  3. Ask them where the number comes from and when it last updated.
  4. Ask them which chart they would delete.

If they cannot answer the first two, the design is not finished. If they cannot answer the third, the metadata is not finished. Their answer to the fourth is nearly always right.

Related reading on this site

The tiles are only as trustworthy as the metric definitions behind them: analytics foundations metrics covers how to write a definition that survives being reused. For the periodic, fixed-window artifacts that dashboards are often mistaken for, see reporting.

Common questions

How many charts should a dashboard have?

However many the reader can hold in their head at once, which is fewer than you want. If you cannot explain the whole page in ninety seconds, split it into a summary view and a diagnostic view and link them.

Should every team get its own dashboard?

Teams should get their own view of shared metrics, not their own metrics. The moment each team maintains its own calculation of the same concept, cross-team meetings turn into reconciliation sessions.

Real-time or daily refresh?

Match the refresh to the decision cadence. If nobody can act on a change within an hour, hourly data buys nothing and costs pipeline complexity and compute. Real time is worth paying for when someone is genuinely on the hook to respond in real time.

What about self-service: should users build their own?

Self-service works when the underlying model is curated and the definitions are shared, and turns into chaos when it means handing everyone raw tables. Invest in the modeled layer first; the dashboard-building part is the easy half.

Filed underdashboards 2027