Why Dashboard Development matters for BI Developers
As a BI Developer, dashboard development is how your data models and queries become decisions. Great dashboards translate metrics into clear stories, let users explore safely, and run fast at scale. Mastering this skill lets you ship executive scorecards, operational monitoring, and self-serve analytics with confidence.
- Turn KPIs into understandable visuals and narrative.
- Enable interactive exploration with filters, slicers, and drillthrough.
- Design multi-page reports for different audiences without duplicating work.
- Use templates and themes for brand consistency and speed.
- Publish securely with the right access and performance settings.
Who this is for
- BI Developers and Analysts building dashboards in tools like Power BI, Tableau, and Looker.
- Analytics Engineers who need to validate models through end-user reporting.
- Data-savvy product or operations folks creating reliable internal reports.
Prerequisites
- Comfort with basic SQL (SELECT, WHERE, GROUP BY, JOIN).
- Understanding of core BI concepts: measures vs. dimensions, grain, and star schemas.
- Familiarity with your BI tool’s data model (e.g., relationships, calculated fields/measures).
Quick readiness check (open)
- You can query a fact table joined to 2+ dimensions.
- You can write a calculated field/measure for a ratio (e.g., conversion rate).
- You know the difference between page-level and report-level filters in your BI tool.
Learning path (practical roadmap)
- Define outcomes: Identify primary KPIs, audience, and refresh cadence. Draft one-paragraph "dashboard purpose" and a mockup.
- Build KPI cards: Create 3–5 core measures (e.g., Total Sales, % to Target, YoY%). Validate numbers against a known reference.
- Add interactivity: Configure slicers/filters, cross-filtering, and highlight interactions. Protect key metrics from unintended filters.
- Drilldown & drillthrough: Add hierarchies (e.g., Region → Country → City) and detail pages with context.
- Multi-page layout: Split content by audience or task (Exec, Ops, Detail). Ensure consistency across pages.
- Templates & themes: Standardize colors, typography, spacing, and reusable layouts/components.
- Tooltips & details-on-demand: Add hover tooltips and dedicated detail panes to reduce clutter.
- Publish & govern: Set refresh, access roles, and performance settings. Document usage notes on the landing page.
Worked examples
Example 1: KPI Card with YoY trend and status
Goal: Show current month Sales, YoY %, and a status color vs. target.
SQL (source aggregation):
-- Monthly sales by month_end
SELECT DATE_TRUNC('month', order_date) AS month_end,
SUM(sales_amount) AS sales
FROM f_orders
GROUP BY 1;DAX (measures):
-- Total Sales
[Total Sales] = SUM(f_orders[sales_amount])
-- Sales MTD
[Sales MTD] = TOTALMTD([Total Sales], 'd_calendar'[date])
-- Sales MTD LY
[Sales MTD LY] = CALCULATE([Sales MTD], DATEADD('d_calendar'[date], -1, YEAR))
-- YoY %
[YoY %] = DIVIDE([Sales MTD] - [Sales MTD LY], [Sales MTD LY])
-- % to Target (monthly target table related by month)
[% to Target] = DIVIDE([Sales MTD], SUM(f_targets[target_amount]))
-- Status (1=good,0=warn,-1=bad)
[Status] =
VAR pct = [% to Target]
RETURN IF(pct >= 1, 1, IF(pct >= 0.9, 0, -1))Tips: Use conditional formatting on the card background or data bar using [Status]. Validate YoY against a finance export.
Example 2: Protecting KPI from slicer changes
Scenario: A slicer filters Product Category. You want a KPI to always show overall benchmark unaffected by Category, while another visual is filtered.
-- Overall benchmark, ignoring Category (Power BI DAX)
[Overall Conversion %] =
DIVIDE(
CALCULATE(COUNTROWS(f_orders), ALL(d_product[category])),
CALCULATE(COUNTROWS(f_sessions), ALL(d_product[category]))
)In visual interactions, set the KPI visual to None for the Category slicer so it doesn't cross-filter. This keeps users aware of the global benchmark while segment-level charts update.
Example 3: Drillthrough to Customer Details
- Create a new page named "Customer Details".
- Add "Customer ID" to the page’s Drillthrough filters.
- Design a layout with Orders, Returns, and Lifetime Value visuals filtered by Customer ID.
- On the main dashboard, ensure Customer ID exists in a table or visual. Right-click → Drillthrough → Customer Details.
Optional measure to summarize last 90 days:
[Orders Last 90d] =
CALCULATE(
DISTINCTCOUNT(f_orders[order_id]),
DATESINPERIOD('d_calendar'[date], MAX('d_calendar'[date]), -90, DAY)
)Example 4: Tooltip with details-on-demand
- Create a dedicated page sized as Tooltip.
- Add fields like Product, Sales, Margin, and a small trend line.
- Enable "Tooltip" and assign the page as the tooltip for your Sales by Product visual.
Tip: Keep tooltip charts minimal. Use a single sparkline and 3–5 core metrics. For heavy detail, link a drillthrough instead.
Example 5: Multi-page design pattern
- Page 1: Executive Summary (KPI cards, trend, segmentation).
- Page 2: Operations (detailed tables, filters for daily use).
- Page 3: Deep Dive (drillthrough landing pages for Customer/Product).
Keep consistent header (title, date range), consistent slicer location, and shared theme across pages.
Drills and exercises
- Create 3 KPI cards: Total, YoY %, and % to Target for a single metric.
- Add two slicers (Date, Region). Configure cross-filter interactions intentionally: one affects all visuals, the other only charts.
- Build a drillthrough page for a single entity (e.g., Customer). Add at least 3 visuals fed by the drillthrough filter.
- Create a tooltip page with a sparkline and three numeric fields. Attach it to a bar chart.
- Duplicate your layout as a template with a header, footer, and grid for consistent spacing.
- Publish a test dashboard and assign read-only access to a colleague role group. Verify RLS with a test user.
Common mistakes and debugging tips
Too many visuals or data points slow the report
Limit visuals per page (aim ≤ 8 complex visuals). Aggregate high-cardinality charts (e.g., top N + Other). Use smaller date ranges by default.
Measures return wrong totals when filtered
Use ALL/REMOVEFILTERS for denominators. For share-of-total: [Share] = DIVIDE([Sales], CALCULATE([Sales], ALL(d_product))). Validate totals at each filter state.
Confusing interactions
Set intentional interactions: critical KPIs may ignore slicers; exploratory visuals should respond. Use visual-level filters to pin states when needed.
Cluttered design
Use a grid (8–12 columns), consistent spacing, and a clear visual hierarchy. Group related filters. Avoid double legends and extra labels.
Access or RLS misconfigurations
Publish to the correct workspace, verify role assignments, and test as user. Store sensitive columns only if needed; mask or aggregate where possible.
Performance essentials
- Prefer measures over calculated columns for dynamic aggregations.
- Reduce cardinality (e.g., round timestamps to hour; pre-aggregate where possible).
- Disable unnecessary interactions and background queries (query reduction features where available).
- Optimize relationships (star schema, single direction when possible).
- Use Top N filters and data limiting (e.g., show Top 20 with an "Others" bucket).
Mini project: Executive Revenue Dashboard
- Define KPIs: Revenue, Gross Margin %, % to Target, YoY %.
- Page 1 (Summary): KPI cards, monthly trend, Revenue by Region bar chart, a date range slicer.
- Page 2 (Operations): Table with Product → Revenue, Margin, and a Top N selector. Add a Region and Product slicer.
- Drillthrough: Customer Details page with Orders, LTV, and returns rate.
- Tooltip: Attach to bar chart to show Margin % and 3-month sparkline.
- Template: Extract layout as a template for future teams with theme colors and typography.
- Publish: Assign Viewer role to business users. Test RLS with a regional role. Document how to use filters on page 1.
Acceptance checklist
- All KPIs match a trusted reference for the same time period.
- Filters work predictably; key KPIs are protected from unintended slicers.
- Pages load quickly (under a few seconds on first open, faster on interactions).
- Users can reach Customer Details in two clicks via drillthrough.
- Consistent header, colors, and spacing across pages.
Subskills
- Building Interactive Dashboards — Assemble pages, visuals, and interactions into a cohesive experience.
- KPI Cards And Scorecards — Communicate health and targets with compact, comparable metrics.
- Filters Slicers And Cross Filtering — Control and fine-tune how visuals affect each other.
- Drilldown Drillthrough Navigation — Move from summary to context-rich details in one click.
- Designing Multi Page Reports — Organize content by audience and task with consistent layout.
- Creating Reusable Templates — Speed up builds with themes, grids, and reusable components.
- Handling Tooltips And Details On Demand — Show extra info only when needed to reduce clutter.
- Publishing Sharing And Access Management — Securely distribute content and manage roles/RLS.
Next steps
- Finish the drills and mini project, then refactor using a template.
- Have a stakeholder review session: gather feedback, prioritize one improvement.
- Take the Skill Exam below. Anyone can take it; logged-in users have progress saved.