DEV Community

Thesius Code
Thesius Code

Posted on • Originally published at datanest-stores.pages.dev

Dashboard Design Templates

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

  1. Browse templates/ to find a layout matching your use case
  2. Review the wireframe spec in docs/wireframes/
  3. Copy the implementation code for your BI platform
  4. 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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
  }
}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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

  1. Start with the question, not the chart — every element must answer a specific business question
  2. Above the fold matters — place 3-5 most important KPIs at the top left
  3. Limit to 7±2 visual elements — cognitive overload kills comprehension
  4. Use consistent date ranges — all charts should share the same time context
  5. Design for the 5-second test — viewers should grasp the main message immediately
  6. 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.

Get the Full Kit →

Or grab the entire Data Analyst Toolkit bundle (11 products) for $129 — save 30%.

Get the Complete Bundle →


Related Articles

Top comments (0)