Dashboard Design Templates
20+ production-ready dashboard layouts for Tableau, Looker, and Power BI. Each template includes wireframe specifications, metric placement guidelines, color palettes, and implementation code. Designed for executive, operational, and self-service analytics use cases.
Key Features
- 20+ Dashboard Layouts — executive summary, operational, departmental, self-service explorer
- Multi-Platform Support — implementation guides for Tableau, Looker, and Power BI
- Layout Specifications — wireframes with grid systems and spacing rules
- Color Palette System — accessible, brand-adaptable palettes (sequential, diverging, categorical)
- Chart Selection Guide — decision tree for choosing the right visualization
- Mobile-Responsive Patterns — layouts that work on tablet and phone
- Interactivity Patterns — filter, drill-down, and cross-highlight implementation
- Performance Guidelines — query optimization tips for sub-5-second load times
Quick Start
- Browse
templates/to find a layout matching your use case - Review the wireframe spec in
docs/wireframes/ - Copy the implementation code for your BI platform
- Customize metrics, colors, and filters for your data
Power BI: Executive KPI Card
Revenue Current Period =
VAR _CurrentPeriod = [Total Revenue]
VAR _PreviousPeriod =
CALCULATE(
[Total Revenue],
DATEADD('Calendar'[Date], -1, MONTH)
)
RETURN
_CurrentPeriod
Revenue MoM Change =
VAR _Current = [Revenue Current Period]
VAR _Previous =
CALCULATE([Total Revenue], DATEADD('Calendar'[Date], -1, MONTH))
RETURN
DIVIDE(_Current - _Previous, _Previous, 0)
Usage Examples
Tableau: Dynamic Period Comparison
// Tableau calculated field
IF [Date Selector] = "MTD" THEN
IF [Order Date] >= DATE(YEAR(TODAY()), MONTH(TODAY()), 1)
AND [Order Date] <= TODAY()
THEN "Current"
ELSEIF [Order Date] >=
DATEADD('month', -1, DATE(YEAR(TODAY()), MONTH(TODAY()), 1))
AND [Order Date] <= DATEADD('month', -1, TODAY())
THEN "Previous"
END
END
Looker: Self-Service Explorer View
view: dashboard_explorer {
derived_table: {
sql:
SELECT
d.date_key,
d.fiscal_quarter,
p.product_category,
r.region_name,
f.revenue,
f.units_sold,
f.discount_amount
FROM fact_sales f
JOIN dim_date d ON f.date_key = d.date_key
JOIN dim_product p ON f.product_key = p.product_key
JOIN dim_region r ON f.region_key = r.region_key
;;
}
dimension: product_category {
type: string
sql: ${TABLE}.product_category ;;
}
measure: total_revenue {
type: sum
sql: ${TABLE}.revenue ;;
value_format_name: usd_0
}
measure: avg_discount_pct {
type: average
sql: ${TABLE}.discount_amount / NULLIF(${TABLE}.revenue, 0) ;;
value_format_name: percent_1
}
}
Color Palette Specification
palettes:
sequential_blue:
- "#E8F0FE" # Lightest — low values
- "#A8C7FA"
- "#4285F4"
- "#1A56DB"
- "#0B3D91" # Darkest — high values
diverging_red_blue:
- "#D93025" # Below target
- "#F28B82"
- "#F5F5F5" # Neutral
- "#A8C7FA"
- "#1A56DB" # Above target
status:
on_track: "#34A853"
at_risk: "#FBBC04"
off_track: "#EA4335"
Dashboard Templates Index
| # | Template | Best For | Key Metrics |
|---|---|---|---|
| 1 | Executive Summary | C-suite | Revenue, churn, NPS, pipeline |
| 2 | Sales Performance | Sales leadership | Pipeline, win rate, quota |
| 3 | Marketing Funnel | Demand gen | Traffic, MQLs, SQLs, CAC |
| 4 | Product Usage | Product team | DAU/MAU, adoption, retention |
| 5 | Customer Health | CS team | Health score, NPS, tickets |
| 6 | Financial Overview | Finance | P&L, cash flow, burn rate |
| 7 | Engineering Velocity | Eng leadership | Cycle time, throughput |
| 8 | HR People Analytics | People ops | Headcount, attrition, DEI |
Best Practices
- Start with the question, not the chart — every element must answer a specific business question
- Above the fold matters — place 3-5 most important KPIs at the top left
- Limit to 7±2 visual elements — cognitive overload kills comprehension
- Use consistent date ranges — all charts should share the same time context
- Design for the 5-second test — viewers should grasp the main message immediately
- Progressive disclosure — summary on top, details via drill-down or tabs
Troubleshooting
| Issue | Cause | Fix |
|---|---|---|
| Dashboard loads >10s | Too many queries or large extracts | Pre-aggregate data; use extracts over live connections |
| Colors hard to distinguish | Too many categories | Limit to 5 categories; use provided palettes |
| Users ignore the dashboard | Not answering their questions | Interview 3 stakeholders before designing |
| Mobile layout broken | Desktop-first design | Use grid templates from templates/responsive/
|
This is 1 of 11 resources in the Data Analyst Toolkit toolkit. Get the complete [Dashboard Design Templates] with all files, templates, and documentation for $39.
Or grab the entire Data Analyst Toolkit bundle (11 products) for $129 — save 30%.
Top comments (0)