Data Visualization and Dashboard Design Questions
Designing visuals and dashboards that communicate clearly. Covers chart-type selection, encoding choices, dashboard layout and hierarchy, avoiding misleading visuals, and designing for the intended audience and decision. Emphasizes effectiveness over decoration.
When should you use stacked bars versus grouped bars versus 100% stacked bars for categorical comparisons over time? Provide examples of business questions that each chart answers best and explain readability issues with each choice.
Sample Answer
Direct answer
Use a grouped (clustered) bar chart when you need to compare individual category values precisely across a few time periods or groups; use a stacked bar when the TOTAL and the composition both matter; and use a 100%-stacked bar specifically when only the relative MIX (not the absolute total) matters, since 100%-stacking deliberately discards the total.
Structured elaboration
- Grouped/clustered bars: place each category's bars side by side per period; best for a business question like "how did revenue for each of our 3 product lines compare quarter to quarter", where the audience needs to read off each product line's precise value in each quarter, not just the combined total; readability degrades past roughly 3-4 categories per group, since the bars become thin and hard to compare.
- Stacked bars: stack categories within one bar per period, showing both the total (bar height) and each category's absolute contribution; best for a business question like "how has total support ticket volume changed, and how much of that total comes from each priority level", where both the overall trend and the composition matter together. Comparing a MIDDLE segment's size across bars is genuinely hard, since middle segments don't share a common baseline.
- 100%-stacked bars: normalize every bar to the same height, showing only the proportional mix; best for a business question purely about composition shift over time (e.g. "is our channel mix shifting toward paid?"), but actively hides whether the total itself grew or shrank, which can mislead if the audience assumes the totals are also comparable.
- Readability with many categories/groups: past a handful of categories, any of the three becomes cluttered; consider limiting to the top categories plus "other," or switching to small multiples (one chart per category, all with a shared axis) instead.
Worked example
A channel-mix analysis: a 100%-stacked bar clearly shows that paid channels grew from 20% to 35% of total revenue over four quarters, but without a companion note or a paired stacked (non-normalized) bar, a viewer might wrongly assume total revenue grew too, when in fact total revenue was flat and only the MIX shifted.
Trade-offs and pitfalls
Always pair a 100%-stacked bar with the absolute total displayed somewhere (a companion KPI or a second small chart), since presenting mix-shift alone risks the audience conflating a proportional change with an absolute one.
Create a checklist and testing strategy to validate a dashboard before it goes live: data correctness (aggregations, joins), visual correctness (axis ranges, legends, colors), accessibility, performance (load times), and stakeholder acceptance. Mention tooling or scripts you would use to automate what you can.
Sample Answer
Direct answer
Before a dashboard ships to stakeholders, validate it across five dimensions: data correctness (do the numbers reconcile to source, including both aggregation logic and join logic), visual correctness (are axes, legends, and colors accurate and non-misleading), accessibility, performance (load times), and stakeholder acceptance (does it actually answer the questions it was built for), automating what you reasonably can.
Structured elaboration
- Data correctness: reconcile a sample of the dashboard's key numbers against an independent query of the source data, checking both aggregation logic (are sums/averages/rates computed correctly) and join logic (does a one-to-many join silently multiply rows and inflate a count or sum, a common and easy-to-miss dashboard bug); automate this as a scheduled test where possible, e.g. a scripted comparison of the dashboard's daily total against a raw SQL query, plus a row-count sanity check before and after each join in the underlying query.
- Visual correctness: check that axis ranges aren't accidentally truncated, legends map correctly to the right series, and color coding matches the intended semantics (e.g. red genuinely means "bad," not an arbitrary palette choice).
- Accessibility: verify contrast ratios and keyboard navigation, ideally with an automated checker plus a quick manual pass.
- Performance: measure load time under realistic filter combinations, not just the default view, since a dashboard that's fast on its default filters can be very slow on a less common but still valid combination.
- Stakeholder acceptance: walk the intended audience through the dashboard and confirm it actually answers the questions it was commissioned to answer, before wide release.
- Tooling: scripted data-reconciliation checks (including join row-count checks), automated accessibility scanners, and synthetic load-time monitoring can all run without manual effort each release; visual correctness and stakeholder acceptance still need a human review.
Worked example
A sales-funnel dashboard's pre-launch checklist includes: an automated nightly script comparing the dashboard's daily conversion total to a raw warehouse query (including a row-count check across the funnel-to-user join to catch fan-out duplication), a manual color/legend review, an automated contrast-ratio scan, a load-time test under three different filter combinations, and a 30-minute walkthrough with the requesting sales-ops stakeholder before general release. Running that reconciliation script for real on this dashboard caught exactly the kind of bug it exists to catch: the dashboard's daily conversion total showed 3,412 for a given day, while the raw warehouse query for that same day returned 1,150, a roughly 3x inflation. The row-count check across the funnel-to-user join traced the discrepancy to a one-to-many join against the events table, where each conversion row was being joined against every event row for that user instead of just the conversion event itself, fanning a single real conversion out into multiple counted rows. Re-keying the join to the specific conversion event, rather than the user, brought the dashboard's total back down to match the warehouse query.
Trade-offs and pitfalls
Automating data-correctness checks (including join row-count checks) is high-value and reusable across dashboards; automating stakeholder-acceptance validation is not realistic, and skipping that human step to save time is how dashboards ship that are technically correct but don't actually answer the question the stakeholder needed.
You need to visualize model explainability (feature contributions) for individual predictions in a dashboard for business users. Propose a compact visualization pattern that communicates which features drove the prediction and the confidence, avoiding technical jargon.
Sample Answer
Direct answer
Communicate a model's explainability to business users through a compact, per-prediction visualization (a small waterfall or bar showing the top few features pushing the prediction up or down) paired with the model's confidence, using plain-language feature names instead of raw technical variable names, and reserving the full technical detail (global feature importance, dependence plots) for a secondary, opt-in view for more technical stakeholders.
Structured elaboration
- Per-prediction (local) explanation: a compact waterfall chart or a small horizontal bar chart showing the 3-5 features that most influenced this specific prediction, each labeled in business language ("recent decline in engagement" rather than "feature_47_7d_avg"), with the sign (pushing the prediction up or down) shown by color or direction.
- Confidence display: alongside the top-driver visualization, show the model's confidence or probability for the prediction in plain terms (e.g. "high confidence" or a simple percentage), so the business user knows how much weight to give the explanation.
- Avoiding technical jargon: translate technical feature names into business-meaningful labels before they ever reach the visualization; a business user should never see a raw column name or an unexplained coefficient.
- Global vs. local, and audience layering: a global feature-importance chart (which features matter most across all predictions, e.g. a SHAP summary plot) and dependence plots belong in a secondary, more technical view for analysts or data scientists exploring model behavior broadly, not the default business-user-facing screen, which should stay focused on individual, actionable explanations.
- Cohort exploration: allow filtering the local-explanation view by segment (e.g. by risk tier) so an analyst can see whether the same features drive predictions consistently within a segment or vary widely, which signals model behavior worth investigating further.
Worked example
A churn-risk prediction for a specific customer shows a compact chart: "Reduced login frequency (+18% risk), Missed last renewal reminder (+9% risk), Long tenure (-12% risk), Net: 62% churn risk, high confidence," letting a customer-success rep act on the explanation without needing to understand the underlying model.
Trade-offs and pitfalls
Showing too many contributing features (say, all 40 a model actually uses) overwhelms a business user and defeats the purpose of a compact explanation; limiting to the top 3-5 features risks oversimplifying genuinely complex interactions, so pair the compact view with a clearly-labeled link to the fuller technical explanation for anyone who needs it.
List five common visualization mistakes in BI dashboards, such as pie charts with many slices or misleading dual axes. For each mistake, explain why it is harmful and provide a concrete alternative visualization or layout change that fixes the problem.
Sample Answer
Direct answer
Five of the most common and damaging visualization mistakes are: pie charts with too many slices, dual y-axes with mismatched scales, bar charts with a non-zero (truncated) baseline, 3D or decorative chart effects that distort area/volume perception, and inconsistent or rainbow color palettes used for ordered/quantitative data.
Structured elaboration
- Pie chart with many slices: humans are poor at comparing angles/areas past 4-5 slices; the alternative is a sorted horizontal bar chart, which supports precise ranking.
- Dual y-axes with mismatched scales: makes two unrelated series look correlated or anti-correlated purely because of arbitrary scaling. Alternative: two stacked panels sharing an x-axis, or index both series to a common baseline (100 = start date).
- Truncated bar-chart baseline: starting a bar axis above zero exaggerates the visual size of a difference. Alternative: keep bars at a zero baseline; if the meaningful variation is small, use a line chart instead, where a non-zero baseline is far less misleading.
- 3D/decorative effects: 3D pie or bar charts distort the true proportions due to perspective. Alternative: flat 2D charts only.
- Rainbow/arbitrary color for ordered data: a rainbow palette implies no order and creates false visual boundaries in continuous data. Alternative: a single-hue sequential palette for one direction of magnitude, a diverging palette only when there's a meaningful midpoint (e.g. zero, or a target).
Worked example
A "budget breakdown" pie chart with 14 categories is unreadable; replaced with a sorted bar chart plus a "top 5 + other" grouping, a reader can immediately rank the top cost drivers.
Trade-offs and pitfalls
Each of these five "fixes" has a real cost: bar charts take more vertical space than a pie, and index-to-100 normalization can obscure absolute magnitude, so state the absolute starting values in a footnote when you normalize.
When building a trend chart, how do you decide the aggregation granularity (daily, weekly, monthly) and the trailing baseline window (for example 7, 14, 28, or 90 days) for a percent-change comparison? Describe the factors involved (seasonality, data sparsity, responsiveness versus stability) for different metric types.
Sample Answer
Direct answer
Choose aggregation granularity (daily vs. weekly vs. monthly) and the trailing-baseline comparison window (7/14/28/90 days) based on the metric's natural seasonality, how sparse the data is, and how quickly the audience needs to react, trading responsiveness (finer granularity, shorter baseline) against stability (coarser granularity, longer baseline).
Structured elaboration
- Seasonality: a metric with strong day-of-week seasonality (e.g. e-commerce orders) needs either a granularity coarse enough to smooth over that pattern (weekly) or a same-weekday baseline comparison rather than a naive day-over-day one.
- Data sparsity: a metric with low daily volume (e.g. enterprise sales) is too noisy to trend meaningfully at daily granularity and benefits from weekly or monthly aggregation to get a stable enough sample per period.
- Reporting cadence and stakeholder questions: an operations team needing same-day action wants daily granularity even if noisier; an executive reviewing overall business health monthly doesn't need (and would be distracted by) daily noise.
- Baseline window trade-off: a short baseline (7-day) reacts quickly to genuine recent shifts but is more sensitive to noise; a long baseline (90-day) is stable and less prone to false alarms but slow to reflect a real, sustained change; 14/28-day baselines sit in between and are common defaults for metrics with weekly seasonality (28 days = exactly 4 weeks, keeping the same-weekday comparison consistent).
- Choosing per metric type: a volatile, fast-moving operational metric (e.g. same-day checkout errors) wants a short window for responsiveness; a stable, strategic metric (e.g. monthly recurring revenue) is better served by a longer window that resists reacting to single-period noise.
Worked example
A daily-orders metric with strong weekly seasonality uses a 28-day trailing baseline (exactly 4 full weeks) computed per weekday, giving responsiveness to real shifts within about a month while staying stable against ordinary week-to-week noise; a strategic revenue metric instead uses monthly aggregation with a trailing-90-day (roughly one quarter) baseline, since reacting to single-month noise would be actively misleading for a metric meant to inform quarterly-cadence decisions.
Trade-offs and pitfalls
Picking a baseline window shorter than the metric's own seasonality cycle (e.g. a 7-day baseline on a metric with a 4-week promotional cycle) will misread the normal cyclical pattern as a real anomaly; align the window to at least one full cycle of any known seasonality.
Unlock Full Question Bank
Get access to all Data Visualization and Dashboard Design interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.