Skip to content
kpi-dashboard-design logo

KPI Dashboard Design

kpi-dashboard-design

Design and build dashboards that track key performance indicators. Select relevant metrics, visualize data effectively, and communicate insights to stakeholders.

NeverSight/skills_feed0installs215stars

SKILL.md

Full skill instructions

KPI Dashboard Design

Overview

Effective KPI dashboards make performance visible, enable data-driven decisions, and help teams align around shared goals.

When to Use

  • Creating performance measurement systems
  • Leadership reporting and visibility
  • Operational monitoring
  • Project progress tracking
  • Team performance management
  • Customer health monitoring
  • Financial reporting

Instructions

1. KPI Selection Framework

# Select relevant, measurable KPIs

class KPISelection:
    KPI_CRITERIA = {
        'Relevant': 'Directly aligned with business strategy',
        'Measurable': 'Can be quantified and tracked',
        'Actionable': 'Team can influence the metric',
        'Timely': 'Measured frequently (daily/​weekly)',
        'Bounded': 'Has clear target/​threshold',
        'Simple': 'Easy to understand'
    }

    def identify_business_goals(self):
        """Map goals to KPIs"""
        return {
            'Revenue Growth': [
                'Monthly Recurring Revenue (MRR)',
                'Annual Recurring Revenue (ARR)',
                'Customer Lifetime Value (CLV)',
                'Average Revenue Per User (ARPU)'
            ],
            'Customer Acquisition': [
                'Customer Acquisition Cost (CAC)',
                'Conversion Rate',
                'Traffic to Lead Rate',
                'Sales Pipeline Value'
            ],
            'Customer Retention': [
                'Churn Rate',
                'Net Promoter Score (NPS)',
                'Customer Satisfaction (CSAT)',
                'Retention Rate'
            ],
            'Operational Efficiency': [
                'Cost per Customer',
                'Time to Value',
                'System Uptime',
                'Support Response Time'
            ],
            'Product Quality': [
                'Defect Rate',
                'Feature Adoption',
                'User Engagement',
                'Performance Score'
            ]
        }

    def validate_kpi(self, kpi):
        """Check KPI against criteria"""
        validation = {}

        for criterion, definition in self.KPI_CRITERIA.items():
            validation[criterion] = {
                'definition': definition,
                'assessment': self.assess_criterion(kpi, criterion),
                'rating': 'Pass' if self.assess_criterion(kpi, criterion) else 'Fail'
            }

        is_valid = all(v['rating'] == 'Pass' for v in validation.values())

        return {
            'kpi': kpi.name,
            'validation': validation,
            'is_valid': is_valid,
            'recommendation': 'Include in dashboard' if is_valid else 'Refine or exclude'
        }

    def define_kpi_target(self, kpi):
        """Set measurable targets"""
        return {
            'kpi': kpi.name,
            'current_value': kpi.current,
            'target_value': kpi.target,
            'time_period': 'Q1 2025',
            'improvement': f"{(kpi.target - kpi.current) / kpi.current * 100:.1f}%",
            'owner': kpi.owner,
            'review_frequency': 'Weekly',
            'threshold_green': kpi.target,
            'threshold_yellow': kpi.target * 0.9,
            'threshold_red': kpi.target * 0.7
        }

2. Dashboard Design

Dashboard Design Template:

Name: Sales Performance Dashboard
Audience: Sales Team, Management
Update Frequency: Daily
Users: 15 sales reps, 3 managers

---

## Dashboard Structure

### Top Section: Executive Summary (30% height)
  - Total Revenue (YTD): $2.5M (vs $2.2M target)
  - Pipeline Value: $8.7M (vs $7.5M target)
  - Win Rate: 28% (vs 25% target) - GREEN
  - Average Deal Size: $125K (vs $120K target)

### Left Column: Sales Performance (35% width)

  Sales by Rep (Ranked)
    - John Smith: $850K
    - Jane Doe: $720K
    - Bob Johnson: $630K
    - ...visualization: Horizontal bar chart

  Sales Trend (YTD)
    - Chart type: Line chart
    - X-axis: Months
    - Y-axis: Revenue
    - Target line overlaid
    - Goal: Show trend vs plan

### Right Column: Pipeline Analysis (35% width)

  Pipeline by Stage
    - Prospecting: $1.2M (12 deals)
    - Qualification: $2.1M (18 deals)
    - Proposal: $3.2M (15 deals)
    - Negotiation: $2.2M (8 deals)
    - Visualization: Funnel chart

  Deal Velocity
    - Avg days in stage by stage
    - Bottlenecks identification
    - Conversion rates

### Bottom Section: Detailed Metrics (20% height)

  Key Metrics Row:
    - Deals Closed This Month: 6
    - Average Sales Cycle: 45 days
    - Win Rate vs. Competitors: 28% vs 22%
    - Customer Satisfaction: 4.3/​5

---

## Visual Design Principles

Color Coding:
  Green (On Target):  #4CAF50
  Yellow (At Risk):   #FFC107
  Red (Off Track):    #F44336
  Gray (No Data):     #9E9E9E

Data Visualization:
  - Sales Performance: Line or Column chart
  - Pipeline Stage: Funnel or Waterfall chart
  - Geographic: Map with heat zones
  - Trend: Area or Line chart
  - Distribution: Bar or Pie chart
  - Comparison: Grouped bar chart

Interactivity:
  - Click to drill down to details
  - Filter by rep, region, product
  - Time period selector
  - Export to PDF/​Excel
  - Alerts for threshold violations

---

## Refresh Strategy

Real-Time (every 5 minutes):
  - Active sales calls
  - Deal status changes

Hourly:
  - Revenue totals
  - Pipeline updates

Daily (overnight):
  - Historical trends
  - Aggregated reports

Manual:
  - Target adjustments
  - Threshold changes

3. Dashboard Implementation

// Build dashboard with data integration

class KPIDashboard {
  constructor(config) {
    this.config = config;
    this.widgets = [];
    this.data = {};
    this.alerts = [];
  }

  createWidget(kpi) {
    return {
      id: `widget-${kpi.id}`,
      title: kpi.name,
      metric_value: kpi.current_value,
      target_value: kpi.target_value,
      threshold: this.calculateThreshold(kpi),
      visualization: {
        type: kpi.chart_type, // 'gauge', 'number', 'chart'
        config: this.getVisualizationConfig(kpi)
      },
      drill_down: true,
      refresh_frequency: kpi.refresh_rate || 'hourly'
    };
  }

  calculateThreshold(kpi) {
    const range = kpi.target_value - kpi.minimum_value;

    return {
      green: kpi.target_value,
      yellow: kpi.target_value - (range * 0.2),
      red: kpi.target_value - (range * 0.5),
      status: this.getStatus(kpi),
      trend: this.calculateTrend(kpi)
    };
  }

  getStatus(kpi) {
    const percentOfTarget = kpi.current_value / kpi.target_value;

    if (percentOfTarget >= 1) return 'Green';
    if (percentOfTarget >= 0.8) return 'Yellow';
    return 'Red';
  }

  calculateTrend(kpi) {
    const change = kpi.current_value - kpi.previous_period_value;
    const changePercent = (change / kpi.previous_period_value) * 100;

    return {
      direction: change > 0 ? 'Up' : 'Down',
      value: Math.abs(changePercent).toFixed(1),
      momentum: this.assessMomentum(change, kpi)
    };
  }

  generateAlerts() {
    return this.widgets
      .filter(w => w.threshold.status !== 'Green')
      .map(w => ({
        severity: w.threshold.status,
        message: `${w.title} is ${w.threshold.status} (${w.metric_value} vs ${w.target_value} target)`,
        action: 'Review and investigate',
        timestamp: new Date()
      }));
  }

  exportReport() {
    return {
      format: ['PDF', 'Excel', 'CSV'],
      include: ['Metrics', 'Charts', 'Trends', 'Commentary'],
      schedule: 'Weekly, every Monday morning'
    };
  }
}

4. KPI Monitoring & Governance

KPI Governance Framework:

Quarterly KPI Review:
  - Review progress against targets
  - Adjust targets if needed
  - Celebrate achievements
  - Identify improvement areas
  - Update documentation

Annual KPI Assessment:
  - Reassess KPI relevance
  - Align with strategy changes
  - Remove obsolete metrics
  - Add new metrics as needed
  - Update dashboard design

---

KPI Health Check:

Ask these questions monthly:

1. Is this KPI still relevant?
   If No: Mark for retirement

2. Do we have accurate data?
   If No: Fix data source

3. Is it actionable?
   If No: Drill down to driver metrics

4. Is target realistic?
   If No: Adjust based on new data

5. Are we taking action on insights?
   If No: Improve governance/​communication

---

Common KPI Mistakes to Avoid:

1. Too Many KPIs (limit to 5-7)
2. Lagging metrics only (include leading too)
3. No ownership assigned
4. Targets not aligned with strategy
5. Dashboard not updated regularly
6. No drill-down capability
7. Metrics not actionable by team
8. Ignoring data quality issues
9. No connection to compensation/​goals
10. Dashboard unused by stakeholders

Best Practices

✅ DO

  • Start with business goals, not data
  • Limit dashboards to 5-7 core metrics
  • Include both leading and lagging indicators
  • Assign clear metric ownership
  • Update dashboards regularly
  • Make drill-down available
  • Use visual hierarchy effectively
  • Test with actual users
  • Include context and benchmarks
  • Document metric definitions

❌ DON'T

  • Create dashboards without clear purpose
  • Include too many metrics (analysis paralysis)
  • Forget about data quality
  • Build without stakeholder input
  • Use confusing visualizations
  • Leave dashboards stale
  • Ignore mobile viewing experience
  • Skip training on dashboard usage
  • Create metrics no one can influence
  • Change metrics frequently

KPI Dashboard Tips

  • Use traffic light colors (green/​yellow/​red)
  • Include month-to-date and year-to-date views
  • Show trend arrows for quick scanning
  • Add comparison to previous period
  • Enable drill-down to supporting data

More skills from NeverSight

devops-deployer logo
NeverSight/skills_feed

devops-deployer

Comprehensive DevOps and deployment workflow that orchestrates infrastructure automation, CI/CD pipelines, container orchestration, and cloud deployment. Handles everything from infrastructure as code and pipeline setup to monitoring, scaling, and disaster recovery.

215 1
View
avnu logo
NeverSight/skills_feed

avnu

Integrate avnu SDK for Starknet DeFi: token swaps with best-price routing, DCA recurring buys, native staking, gasless transactions via paymaster, and market data. Use when building Starknet trading, DEX aggregation, or DeFi automation features.

215 0
View
post-to-x logo
NeverSight/skills_feed

post-to-x

发布内容和文章到 X (Twitter)。支持带图片的普通推文和 X Articles(长文)。使用真实的 Chrome 和 CDP 来绕过自动化检测。

215 0
View
ralph-prompt-builder logo
NeverSight/skills_feed

ralph-prompt-builder

Master orchestrator for generating Ralph Wiggum-compatible prompts. Analyzes task requirements and routes to appropriate generator (single-task, multi-task, project, or research). Use when you need to create any Ralph loop prompt and want automatic selection of the right generator.

215 0
View
branch-comparison logo
NeverSight/skills_feed

branch-comparison

Use when the user asks to compare branches, analyze git diffs, review changes between branches, update specifications based on code changes, or analyze what changed. Triggers on keywords like "compare branches", "git diff", "what changed", "branch comparison", "code changes", "spec update".

215 0
View
fastapi-development logo
NeverSight/skills_feed

fastapi-development

Build high-performance FastAPI applications with async routes, validation, dependency injection, security, and automatic API documentation. Use when developing modern Python APIs with async support, automatic OpenAPI documentation, and high performance requirements.

215 0
View
zendesk-chat logo
NeverSight/skills_feed

zendesk-chat

Enables Claude to manage Zendesk Chat conversations, support tickets, and customer service operations

215 0
View
forge logo
NeverSight/skills_feed

forge

Mine transcripts for knowledge - decisions, learnings, failures, patterns. Triggers: "forge insights", "mine transcripts", "extract knowledge".

215 0
View
mixpanel logo
NeverSight/skills_feed

mixpanel

Track product analytics and user behavior with Mixpanel's event-based platform.

215 0
View
ocpp logo
NeverSight/skills_feed

ocpp

OCPP protocol reference for EV charging infrastructure development. Covers OCPP 2.0.1 and OCPP 1.6J. Use when working with OCPP messages, charging station code, CSMS/Central System backends, smart charging, transaction handling, or EV charging protocols. Activates on keywords: OCPP, charging stat...

215 0
View
bee-collect logo
NeverSight/skills_feed

bee-collect

Gather scattered ideas into organized GitHub issues. The bee collects pollen from every flower, checks if the hive already has it, and carefully deposits new work in the comb for later. Never edits code—only organizes the work ahead. Use when creating issues from TODOs or planning work.

215 0
View
vercel-react-native-skills logo
NeverSight/skills_feed

vercel-react-native-skills

Comprehensive best practices for React Native and Expo applications. Contains rules across multiple categories covering performance, animations, UI patterns, and platform-specific optimizations.

215 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View