How to buildOctober 11, 202611 min read
UX/UI design: from research to a design systemStep 9 of 9

Designing a dashboard: from user questions to the screen

In short

A dashboard is designed from a role’s questions, not from the available data: first find out who looks at the screen and what decisions they make, then pick a metric with a comparison and a form for each question — a KPI card, a line, bars or a table. Nielsen Norman Group recommends that answers be readable at a glance, so the screen keeps only what helps people act, and loading, empty and error states are designed for every widget.

TutorialLevel: IntermediateUX PatternsPractice: ~1.5–3 h

After this you will be able to

  • Derive a dashboard’s contents from 3–5 questions of a specific role and drop metrics that answer nothing
  • Choose a form for each metric — KPI card, line, bars or table — and justify the choice
  • Describe loading, empty, error and stale-data states for every widget
  • Lay out the dashboard across breakpoints: what stays on a phone and what is revealed on a large screen
Contents
  1. 01A dashboard answers questions instead of showing data
  2. 02Roles and their questions
  3. 03Metrics and comparison: what to compare a number with
  4. 04Choosing a form: KPI, line, bars, table
  5. 05Layout and adaptation: hierarchy, filters, period
  6. 06States: loading, no data, error
  7. 07Practice: a leads dashboard from questions to wireframe

A dashboard answers questions instead of showing data

The typical failure looks like this: the admin panel collects every chart the database allows — twelve cards, three pie charts and a thousand-row table. A manager opens the screen, can’t find the answer to their question and asks for an Excel export. There is plenty of data, yet no decision can be made from it.

Nielsen Norman Group describes a dashboard as a single-page collection of visualizations for at-a-glance understanding: people glance at the screen and immediately see answers to key questions, with minimal interaction or cognitive effort. NN/g stresses that a dashboard’s job is to communicate critical information, not to facilitate open-ended exploration. Exploration belongs in reports and analytics tools.

Operational

Purpose
Time-sensitive action; data often updates continuously
Sample question
“Which leads are waiting for a reply right now?”

Analytical

Purpose
Later analysis and decisions, less time pressure
Sample question
“Which channel brought more contracts this quarter?”
Two types of dashboards according to NN/g. Both need an at-a-glance, single-screen view.

Roles and their questions

A dashboard “for everyone” usually answers no one. An executive thinks in weeks and channels, a sales manager in specific leads today. So the work starts with roles. Take a teaching example: a company that receives leads from its website and tracks them in a CRM. The questions below are a starting point; in a real project you collect them through interviews and observation, as described in the UX research lesson.

Executive

Question
How many leads came in this week — more or fewer than usual?
Decision it drives
Whether to look into ads and the website
How often they look
Weekly

Executive

Question
Which channels bring leads that turn into contracts?
Decision it drives
Where to reallocate the budget
How often they look
Monthly

Sales manager

Question
Which new leads are still unanswered, and how long have they waited?
Decision it drives
Whom to call first
How often they look
Several times a day

Sales manager

Question
How many of my leads are at each stage?
Decision it drives
What to close today and what to postpone
How often they look
Every morning

Coordinator

Question
Are there leads not assigned to a manager?
Decision it drives
Assign an owner
How often they look
Constantly; the screen is open all day
Write the question in the user’s words and the decision as a verb. Without a decision, a question is curiosity, not a requirement.
  1. Name the role and the situation

    Not “the user” but “sales manager, morning, before calls”. The situation defines frequency and dashboard type.

  2. Collect questions

    Ask what the person checks first and which numbers they currently assemble by hand from spreadsheets and reports.

  3. Keep 3–5 questions per role

    Sort them by frequency and the cost of a mistake. The rest goes to reports and filters.

  4. Write down a decision for each

    If no decision can be stated, park the question: a widget for it would be decoration.

Metrics and comparison: what to compare a number with

“47 leads” — is that a lot or a little? A number without context answers none of the questions above. Every metric needs a point of comparison, chosen from the decision: an executive deciding whether to look into advertising needs the deviation from the usual level, not the absolute figure.

Previous period

When it fits
Weekly and monthly monitoring
How to show it
“47 · 9 more than last week”

Same period last year

When it fits
Seasonal businesses
How to show it
“47 · last October there were 38”

Target or plan

When it fits
There is an agreed target
How to show it
“47 of 60 for the monthly plan” plus a progress bar

Norm

When it fits
Operational metrics with an acceptable threshold
How to show it
“Average reply time 2 h · norm under 1 h”
Comparison options. Pick one main comparison per metric so the card doesn’t turn into a report.

The second trap is ambiguous definitions. Is a “lead” any submitted form, or only one with a phone number? Do duplicates and spam count? Does the week start on Monday, and in which time zone? Until this is written down, the executive and the manager will see different “47s”, and people will stop using the dashboard.

  • Metric name in the user’s words
  • Formula: what is counted and what is excluded (duplicates, test and spam leads)
  • Data source and refresh frequency
  • Period boundaries and time zone
  • Point of comparison: previous period, last year, target or norm
  • Direction: is growth good or bad (longer reply time is bad)
  • Who owns the metric and whom to ask if a figure looks odd

Choosing a form: KPI, line, bars, table

The form follows the question. NN/g relies on preattentive attributes — what the eye notices before conscious reading. For quantitative comparison, length and 2D position work best: people compare lengths well, while area and angle are noticeable but hard to judge in terms of how much bigger one is. Color doesn’t convey order, so it shouldn’t encode magnitude — it suits categories, and only as a secondary cue.

How much right now, and is it normal?

Form
KPI card: number, comparison, period
Why
The answer reads instantly; the comparison adds context

How has it changed over time?

Form
Line chart with data-point markers
Why
For trends over time a line works better than bars

Which category is largest?

Form
Bar chart; horizontal for long labels
Why
Lengths are easy to compare; horizontal bars avoid abbreviating labels

How are two values related?

Form
Scatterplot
Why
2D position without connecting lines

Which records need action?

Form
Table with sorting and filters
Why
People need to find records, compare them and act right away
Question → form. Chart guidance comes from NN/g’s articles on dashboards and choosing chart types.

Avoid on a dashboard

  • Pie and donut charts — except for overwhelming disparities
  • Radial gauges: they take a lot of space and read worse than linear charts
  • 3D charts: they distort area and make bar tops hard to read
  • Stacked bars — NN/g calls them very hard to understand
  • Treemaps — leave them for leisurely exploration

Use

  • Plain bars and lines — start with basic charts
  • A bullet chart instead of a gauge for “actual vs target”
  • Flat charts with value labels
  • A series of separate bar charts instead of one stacked chart
  • A table when users look for records and take action

A table is a full-fledged dashboard form, not an admission of defeat. NN/g identifies four tasks people use tables for: finding records that fit criteria, comparing data, viewing or editing a single record, and taking action on one or several records. For a list of unanswered leads, that is exactly what a sales manager needs. Freeze the headers of large tables, make filters discoverable and show active filters clearly.

Layout and adaptation: hierarchy, filters, period

The order on screen follows the order of questions: the most frequent and urgent at the top left, where scanning starts, details further down. Visual hierarchy and grids are covered in a separate lesson; dashboards add two rules. First, the period and filters are global: they sit above all widgets and apply to all of them; if a widget uses its own period, that is labeled on the widget itself. Second, every number shows which period it covers and when it was updated.

  1. 01HeaderPeriod, channel and manager filters, last update time
  2. 02KPI row3–4 cards: number, comparison, period
  3. 03ChartsDaily leads line and bars by channel
  4. 04Action tableUnanswered leads, sorted by waiting time
Dashboard wireframe from top to bottom: from the overall answer to the records that need work.

Adaptation is easy to plan with Material Design 3 breakpoints: compact is under 600 dp (a phone in portrait), medium is 600–839, expanded 840–1199, large 1200–1599 and extra-large 1600 and up. Material advises designing for breakpoints rather than specific devices, and deciding what to reveal, divide, resize, reposition or swap when moving between them. One pane is recommended for compact and medium sizes, two for expanded and large.

Period and filters

Phone (compact)
One “Filters” button with the active count; period in the header
Tablet (medium)
A scrollable row of chips
Desktop (expanded and up)
All filters in one row

KPI

Phone (compact)
Two key cards; the rest scroll horizontally or move down
Tablet (medium)
A 2×2 grid
Desktop (expanded and up)
A row of 3–4 cards

Charts

Phone (compact)
One chart at a time, switched with tabs
Tablet (medium)
Charts stacked vertically
Desktop (expanded and up)
Charts side by side in two columns

Table

Phone (compact)
A list of cards: name, channel, waiting time, “Call” button
Tablet (medium)
A table with the key columns
Desktop (expanded and up)
The full table with a frozen header
How dashboard zones change across breakpoints. The decisions are our recommendation for the leads example.

States: loading, no data, error

A dashboard pulls from several sources, and each can be delayed or fail on its own. That is why states are designed per widget, not for the whole page. General rules — skeletons, error messages, empty screens — are covered in the interface states lesson; below is what is specific to dashboards.

Loading

What to show
A skeleton shaped like the widget; neighbouring widgets show their data as soon as it arrives
Example
Gray blocks where the number and the chart line will be

Zero

What to show
This is data, not emptiness: show 0 and the comparison
Example
“0 unanswered leads · great, all handled”

No data

What to show
Explain the reason and offer a path to action
Example
“Website leads aren’t connected yet” plus a “Connect form” button

Error

What to show
An error inside the widget while the rest of the screen works; a retry button
Example
“Couldn’t load channels. Retry”

Stale data

What to show
Last update time and a warning if it is older than the norm
Example
“Updated at 09:40 — data may be incomplete”
Widget states. The copy is an example for the leads dashboard.

According to NN/g, an empty state should communicate system status, provide learning cues and offer direct pathways to the steps that fill the screen. A completely empty widget makes people guess whether something broke or there really is no data. That is why “zero” and “no data” are different states: the first is an answer, the second is a prompt to act.

Chart accessibility is part of the states too. WCAG success criterion 1.4.1 forbids using color as the only visual means of conveying information: duplicate growth and decline in KPIs with a sign and a word, and lines on a chart with labels. For charts, W3C WAI recommends a two-part text alternative: a short description of what is shown and a full description as text or a data table next to the chart.

  • Every widget has loading, zero, no data, error and stale-data states
  • A failure of one source doesn’t take down the whole screen
  • KPI changes are shown with a sign and a word, not only color
  • Every chart has a short caption and a full description or data table
  • The last update time is visible

Practice: a leads dashboard from questions to wireframe

Let’s put everything into one table — the main artifact of this lesson. You can place it at the start of the mockup: the designer sees why each widget exists, the developer sees where data comes from, and the client sees which questions the screen answers.

RoleQuestionsMetric and comparisonFormScreen
ResearchDesign
The workflow: each step builds on the previous one, not on a list of available data.

How many leads this week — more or fewer than usual?

Metric
Lead count without duplicates and spam
Comparison
Previous week
Form and position
KPI card, first in the row

Which leads are waiting for a reply, and for how long?

Metric
Leads with status “new”, time since arrival
Comparison
Reply-time norm
Form and position
Action table sorted by waiting time

How fast do we reply?

Metric
Median time to first reply
Comparison
Norm
Form and position
KPI card with a threshold

How has lead flow changed?

Metric
Leads per day over 8 weeks
Comparison
Week over week
Form and position
Line chart

Which channels lead to contracts?

Metric
Share of leads with a contract per channel
Comparison
Previous month
Form and position
Horizontal bars
Question → metric → form for the executive and sales manager in our example.
Tell us about your task — we'll review your request and get back to you

Got a project?
We'll scope and estimate it — for free.

Tell us about the product or the problem. After reviewing the task we'll come back with an architecture, a timeline and a price for the first version.

  • Scope and risks estimated before we start
  • NDA — yours or ours
  • Work starts within a week

Please do not send passwords, access keys or source code through this form — we will agree a safe way to share access separately.

By clicking the button you agree to the processing of your personal data.