Claude Code Plugins

Community-maintained marketplace

Feedback

kpi-dashboard-design

@aj-geddes/useful-ai-prompts
4
0

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

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name kpi-dashboard-design
description Design and build dashboards that track key performance indicators. Select relevant metrics, visualize data effectively, and communicate insights to stakeholders.

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