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.
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
- A dashboard answers questions instead of showing data
- Roles and their questions
- Metrics and comparison: what to compare a number with
- Choosing a form: KPI, line, bars, table
- Layout and adaptation: hierarchy, filters, period
- States: loading, no data, error
- Practice: 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?”
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
Name the role and the situation
Not “the user” but “sales manager, morning, before calls”. The situation defines frequency and dashboard type.
Collect questions
Ask what the person checks first and which numbers they currently assemble by hand from spreadsheets and reports.
Keep 3–5 questions per role
Sort them by frequency and the cost of a mistake. The rest goes to reports and filters.
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”
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
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.
- 01HeaderPeriod, channel and manager filters, last update time
- 02KPI row3–4 cards: number, comparison, period
- 03ChartsDaily leads line and bars by channel
- 04Action tableUnanswered leads, sorted by waiting time
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
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”
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.
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
Sources
- Nielsen Norman Group — Dashboards: Making Charts and Graphs Easier to Understand
- Nielsen Norman Group — Choosing Chart Types: Consider Context
- Nielsen Norman Group — Data Tables: Four Major User Tasks
- Material Design 3 — Breakpoints
- W3C WAI — Understanding SC 1.4.1: Use of Color
- W3C WAI — Complex Images Tutorial