Dashboard Skill
How this skill behaves (read first)
This is a generative skill, and dashboards have a signature over-design trap: cramming every available metric onto one screen. As the lessons put it — "when everything is important, nothing is." The default instinct is to show all the data; a good dashboard shows the few things that answer the user's question. So this skill gates:
- Establish who's looking and what decision they're making — that determines what belongs on the screen.
- Apply the always-true core — organization, hierarchy, and chart-fit principles that hold for any dashboard.
- Decide density, detail, and chart types deliberately — surface the context-dependent choices instead of defaulting to "show it all."
Then hand off to the audits — especially aesthetics (clutter/hierarchy is the make-or-break here).
Step 0 — Establish context before designing
- Audience & the decision they make — when and why they look at this, and what action the data should drive. (User research is the real answer; ask if unknown.) This is the filter for what belongs.
- Dashboard type:
- Operational — real-time, monitoring, needs an immediate response (patient vitals, flight traffic). Comprehensive at a glance, frequent updates.
- Analytical — for investigation and thoughtful decisions (a sales dashboard); not time-sensitive, supports drill-down.
- Roles — one audience or many? Multiple roles → customization matters.
- Platform — screen size shapes how many widgets fit and the responsive layout.
State assumptions if proceeding without answers.
The always-apply core (true for any dashboard)
- Start from the user's question, not the data you have. For each widget ask: "what decision does this support?" If nothing, cut it. Let goals + user needs + data nature pick the widgets.
- Don't overwhelm. Relevant few over comprehensive many. Density without hierarchy is a mess.
- Prioritize for scanning. People scan, not read. Put the most important metric where the eye lands first; arrange by importance.
- Group related content. Use containers, dividers, and white space so related metrics read as a group (common-region principle); section labels/titles act as visual anchors — make them distinct.
- Use white space to segment and highlight — it improves legibility in data-dense screens and gives key numbers breathing room.
- Keep structure consistent — shared alignment, title sizes, and margins across containers; this also makes responsive layouts scale.
- Keep comparison data visible together. Don't bury things users need to compare behind tabs/pop-ups; never hide always-needed info. Use tabs only for content that isn't compared side by side.
- Match the chart to the data (see reference below) — the single highest-leverage correctness decision.
The context-dependent decisions (surface, don't auto-apply)
| Decision |
Apply when |
Avoid / adapt when |
Default recommendation |
| Operational vs. analytical framing |
Real-time monitoring needs glanceable, comprehensive layout |
Analytical use wants drill-down, less time pressure |
Match layout/refresh to the type from Step 0 |
| Which metrics/widgets to show |
The metric supports a real decision |
"Because we have the data" / vanity metrics |
Ruthlessly cut to what answers the user's question |
| Level of detail / drill-down |
Analytical dashboards benefit from overview → detail |
Operational dashboards needing everything visible at once |
Overview first, progressive drill-down; don't tab-hide comparisons |
| Chart type per metric |
Pick by data intent (trend/compare/part-of-whole/correlation) |
Decorative chart choices; pie charts for many categories |
Match to data (reference below) |
| Customization by role |
Multi-role systems (sales mgr vs. analyst) |
Single, well-known audience (adds needless complexity) |
Offer when roles genuinely differ |
| Real-time updates |
Operational monitoring |
Analytical review (constant refresh is noise) |
Refresh cadence matched to decision speed |
Chart selection & honesty (quick reference)
Match the chart to the data intent:
- Bar — compare discrete categories. Line — trends over time. Area — trend + volume over time. Pie/Donut — parts of a whole (few slices only). Scatter — correlation between two variables. Bubble — three dimensions. Radar — compare multiple variables (few). Candlestick — financial price ranges.
Chart honesty & clarity (non-negotiable — these mislead or exclude users):
- Start axes at zero. A truncated baseline exaggerates differences and is misleading. (Deliberately misleading viz → flag with the dark-patterns audit.)
- No 3D chart styling — it distorts perceived values.
- Don't encode meaning with color alone — pair with icons/labels/shapes (→ accessibility).
- Horizontal labels, readable annotations, consistent color/markers, appropriate intervals (don't crowd a year into daily ticks), standard sharp-cornered bars, focus/unfocus states for multi-line charts.
Validate the result (orchestration)
Hand-offs name each lens by its installable skill name. Invoke one only if that skill is installed; if it isn't, this skill's own core already carries these rules — proceed without it rather than blocking.
After generating or revising, hand the result to the audit lenses rather than declaring it done. These are candidate lenses — posture is set by docs/orchestration-policy.md, or route the whole thing through ux-design-review. Here, heuristics, dark-patterns, and microcopy are Tier A (auto-run); accessibility and aesthetics are Tier B (offered) — under an existing design system aesthetics is suppressed and accessibility narrows to usage. If the user invoked this skill for one specific thing, respect that scope.
ux-aesthetics-audit (Tier B — offer; suppress under a design system) — the dashboard make-or-break: clutter, visual hierarchy, white space, container grouping, "is one thing clearly most important?"
ux-heuristics-audit (Tier A) — recognition, visibility of status (esp. operational), user control (customization), keeping comparisons visible.
ux-accessibility-audit (Tier B — offer; narrow under a design system) — chart color not the sole encoding, contrast, labelled sections, keyboard access to interactive widgets.
ux-dark-patterns-audit (Tier A) — misleading visualization: truncated axes, 3D distortion, cherry-picked intervals.
ux-microcopy-audit (Tier A) — section titles, labels, and annotations are clear and consistent.
If aesthetics flags overload, return to the gate: cut widgets back to the ones that answer the user's question.
Common do/don't patterns
| ❌ Don't |
✅ Do |
| Show every metric you have |
Show the few that support a decision |
| Equal visual weight for everything |
Prioritize; most important where the eye lands first |
| Loose widgets floating on one plane |
Group with containers, dividers, white space, labelled sections |
| Hide comparison data behind tabs |
Keep side-by-side comparisons visible together |
| Decorative chart choice / pie with 12 slices |
Match chart to data intent |
| Truncated y-axis / 3D bars |
Zero baseline, flat charts — don't mislead |
| Color-only series legend |
Color + icon/label/shape |
| Vertical/diagonal axis labels |
Horizontal, readable labels |
| Ship without checking |
Hand off to aesthetics + heuristics + accessibility |
Source lessons (Uxcel)
1---2name: ux-dashboard3description: Design or critique an analytics or data dashboard — which metrics earn a place, how to organize and prioritize them, and which chart fits each one. Trigger when designing a dashboard, building an analytics or reporting screen, choosing chart types, or reviewing a dashboard for clarity and information overload.4license: MIT5---67# Dashboard Skill8910## How this skill behaves (read first)1112This is a **generative** skill, and dashboards have a signature **over-design** trap: cramming every available metric onto one screen. As the lessons put it — *"when everything is important, nothing is."* The default instinct is to show all the data; a good dashboard shows the *few* things that answer the user's question. So this skill gates:13141. **Establish who's looking and what decision they're making** — that determines what belongs on the screen.152. **Apply the always-true core** — organization, hierarchy, and chart-fit principles that hold for any dashboard.163. **Decide density, detail, and chart types deliberately** — surface the context-dependent choices instead of defaulting to "show it all."1718Then **hand off to the audits** — especially `aesthetics` (clutter/hierarchy is the make-or-break here).1920---2122## Step 0 — Establish context before designing2324- **Audience & the decision they make** — when and why they look at this, and what action the data should drive. (User research is the real answer; ask if unknown.) This is the filter for what belongs.25- **Dashboard type:**26 - **Operational** — real-time, monitoring, needs an immediate response (patient vitals, flight traffic). Comprehensive at a glance, frequent updates.27 - **Analytical** — for investigation and thoughtful decisions (a sales dashboard); not time-sensitive, supports drill-down.28- **Roles** — one audience or many? Multiple roles → customization matters.29- **Platform** — screen size shapes how many widgets fit and the responsive layout.3031State assumptions if proceeding without answers.3233---3435## The always-apply core (true for any dashboard)3637- **Start from the user's question, not the data you have.** For each widget ask: "what decision does this support?" If nothing, cut it. Let goals + user needs + data nature pick the widgets.38- **Don't overwhelm.** Relevant few over comprehensive many. Density without hierarchy is a mess.39- **Prioritize for scanning.** People scan, not read. Put the most important metric where the eye lands first; arrange by importance.40- **Group related content.** Use containers, dividers, and white space so related metrics read as a group (common-region principle); section **labels/titles** act as visual anchors — make them distinct.41- **Use white space to segment and highlight** — it improves legibility in data-dense screens and gives key numbers breathing room.42- **Keep structure consistent** — shared alignment, title sizes, and margins across containers; this also makes responsive layouts scale.43- **Keep comparison data visible together.** Don't bury things users need to compare behind tabs/pop-ups; never hide always-needed info. Use tabs only for content that isn't compared side by side.44- **Match the chart to the data** (see reference below) — the single highest-leverage correctness decision.4546---4748## The context-dependent decisions (surface, don't auto-apply)4950| Decision | Apply when | Avoid / adapt when | Default recommendation |51|---|---|---|---|52| **Operational vs. analytical framing** | Real-time monitoring needs glanceable, comprehensive layout | Analytical use wants drill-down, less time pressure | Match layout/refresh to the type from Step 0 |53| **Which metrics/widgets to show** | The metric supports a real decision | "Because we have the data" / vanity metrics | Ruthlessly cut to what answers the user's question |54| **Level of detail / drill-down** | Analytical dashboards benefit from overview → detail | Operational dashboards needing everything visible at once | Overview first, progressive drill-down; don't tab-hide comparisons |55| **Chart type per metric** | Pick by data intent (trend/compare/part-of-whole/correlation) | Decorative chart choices; pie charts for many categories | Match to data (reference below) |56| **Customization by role** | Multi-role systems (sales mgr vs. analyst) | Single, well-known audience (adds needless complexity) | Offer when roles genuinely differ |57| **Real-time updates** | Operational monitoring | Analytical review (constant refresh is noise) | Refresh cadence matched to decision speed |5859---6061## Chart selection & honesty (quick reference)6263**Match the chart to the data intent:**6465- **Bar** — compare discrete categories. **Line** — trends over time. **Area** — trend + volume over time. **Pie/Donut** — parts of a whole (few slices only). **Scatter** — correlation between two variables. **Bubble** — three dimensions. **Radar** — compare multiple variables (few). **Candlestick** — financial price ranges.6667**Chart honesty & clarity (non-negotiable — these mislead or exclude users):**6869- **Start axes at zero.** A truncated baseline exaggerates differences and is misleading. (Deliberately misleading viz → flag with the dark-patterns audit.)70- **No 3D chart styling** — it distorts perceived values.71- **Don't encode meaning with color alone** — pair with icons/labels/shapes (→ accessibility).72- **Horizontal labels**, readable annotations, consistent color/markers, appropriate intervals (don't crowd a year into daily ticks), standard sharp-cornered bars, focus/unfocus states for multi-line charts.7374---7576## Validate the result (orchestration)7778> Hand-offs name each lens by its installable skill `name`. Invoke one only if that skill is installed; if it isn't, this skill's own core already carries these rules — proceed without it rather than blocking.7980After generating or revising, hand the result to the audit lenses rather than declaring it done. These are **candidate** lenses — posture is set by `docs/orchestration-policy.md`, or route the whole thing through `ux-design-review`. Here, **`heuristics`, `dark-patterns`, and `microcopy` are Tier A (auto-run); `accessibility` and `aesthetics` are Tier B (offered)** — under an existing design system `aesthetics` is suppressed and `accessibility` narrows to usage. If the user invoked this skill for one specific thing, respect that scope.8182- **`ux-aesthetics-audit`** *(Tier B — offer; suppress under a design system)* — the dashboard make-or-break: clutter, visual hierarchy, white space, container grouping, "is one thing clearly most important?"83- **`ux-heuristics-audit`** *(Tier A)* — recognition, visibility of status (esp. operational), user control (customization), keeping comparisons visible.84- **`ux-accessibility-audit`** *(Tier B — offer; narrow under a design system)* — chart color not the sole encoding, contrast, labelled sections, keyboard access to interactive widgets.85- **`ux-dark-patterns-audit`** *(Tier A)* — misleading visualization: truncated axes, 3D distortion, cherry-picked intervals.86- **`ux-microcopy-audit`** *(Tier A)* — section titles, labels, and annotations are clear and consistent.8788If aesthetics flags overload, return to the gate: cut widgets back to the ones that answer the user's question.8990---9192## Common do/don't patterns9394| ❌ Don't | ✅ Do |95|---|---|96| Show every metric you have | Show the few that support a decision |97| Equal visual weight for everything | Prioritize; most important where the eye lands first |98| Loose widgets floating on one plane | Group with containers, dividers, white space, labelled sections |99| Hide comparison data behind tabs | Keep side-by-side comparisons visible together |100| Decorative chart choice / pie with 12 slices | Match chart to data intent |101| Truncated y-axis / 3D bars | Zero baseline, flat charts — don't mislead |102| Color-only series legend | Color + icon/label/shape |103| Vertical/diagonal axis labels | Horizontal, readable labels |104| Ship without checking | Hand off to aesthetics + heuristics + accessibility |105106---107108## Source lessons (Uxcel)109110- [How to Design Dashboards for Better Analytics](https://uxcel.com/lessons/dashboard-best-practices-876)111- [Types of Charts & When to Use Them](https://uxcel.com/lessons/charts-790)112- [Best Practices for Designing Charts](https://uxcel.com/lessons/charts-best-practices-201)