All skills
wshobson avatar

/kpi-dashboard-design

@be57c0b
by Seth Hobsonwshobson/agents40k stars
4,281

Design effective KPI dashboards with metrics selection, visualization best practices, and real-time monitoring patterns. Use this skill when building an executive SaaS metrics dashboard tracking MRR, churn, and LTV/CAC ratios; designing an operations center with live service health and request throughput; creating a cohort retention analysis view for a product team; or debugging a dashboard where metrics contradict each other due to inconsistent calculation methodology.

Use this Skill: https://skilld.dev/gh/wshobson/agents/kpi-dashboard-design

This session only. Nothing lands on disk.

SKILL.md

β‰ˆ124 tokens always: the name and description. β‰ˆ1.2k when used: this file. β‰ˆ3.7k more on demand in 1 file.

KPI Dashboard Design

Comprehensive patterns for designing effective Key Performance Indicator (KPI) dashboards that drive business decisions.

When to Use This Skill

  • Designing executive dashboards
  • Selecting meaningful KPIs
  • Building real-time monitoring displays
  • Creating department-specific metrics views
  • Improving existing dashboard layouts
  • Establishing metric governance

Core Concepts

1. KPI Framework

Level Focus Update Frequency Audience
Strategic Long-term goals Monthly/Quarterly Executives
Tactical Department goals Weekly/Monthly Managers
Operational Day-to-day Real-time/Daily Teams

2. SMART KPIs

Specific: Clear definition
Measurable: Quantifiable
Achievable: Realistic targets
Relevant: Aligned to goals
Time-bound: Defined period

3. Dashboard Hierarchy

β”œβ”€β”€ Executive Summary (1 page)
β”‚   β”œβ”€β”€ 4-6 headline KPIs
β”‚   β”œβ”€β”€ Trend indicators
β”‚   └── Key alerts
β”œβ”€β”€ Department Views
β”‚   β”œβ”€β”€ Sales Dashboard
β”‚   β”œβ”€β”€ Marketing Dashboard
β”‚   β”œβ”€β”€ Operations Dashboard
β”‚   └── Finance Dashboard
└── Detailed Drilldowns
    β”œβ”€β”€ Individual metrics
    └── Root cause analysis

Detailed worked examples and patterns

Detailed sections (starting with ## Common KPIs by Department) live in references/details.md. Read that file when the navigation summary above is insufficient.

Best Practices

Do's

  • Limit to 5-7 KPIs - Focus on what matters
  • Show context - Comparisons, trends, targets
  • Use consistent colors - Red=bad, green=good
  • Enable drilldown - From summary to detail
  • Update appropriately - Match metric frequency

Don'ts

  • Don't show vanity metrics - Focus on actionable data
  • Don't overcrowd - White space aids comprehension
  • Don't use 3D charts - They distort perception
  • Don't hide methodology - Document calculations
  • Don't ignore mobile - Ensure responsive design

Troubleshooting

MRR shown on dashboard contradicts finance's number

The most common cause is inconsistent treatment of annual plans. Finance may prorate to a daily rate while the dashboard normalizes to monthly. Align on a single formula and document it directly on the dashboard card:

-- Explicit formula shown in tooltip / data dictionary
-- Annual plans: divide total contract value by 12
-- Quarterly plans: divide by 3
-- Monthly plans: use as-is
CASE subscription_interval
    WHEN 'monthly'   THEN amount
    WHEN 'quarterly' THEN amount / 3.0
    WHEN 'yearly'    THEN amount / 12.0
END AS normalized_mrr

Dashboard shows green but product team reports users complaining

The dashboard likely tracks system uptime (a lagging indicator) but not user-facing quality metrics. Add customer-perceived metrics alongside infrastructure metrics:

Infrastructure (green) User-perceived (add these)
API uptime 99.9% P95 page load time
Error rate 0.1% Task completion rate
Queue depth normal Support ticket volume

Retention cohort looks flat β€” no variation between cohorts

Check whether the cohort query is partitioning by signup month correctly. A common bug is using created_at::date instead of DATE_TRUNC('month', created_at), which groups by day and produces cohorts too small to show trends:

-- Wrong: too granular, cohorts are too small
DATE_TRUNC('day', created_at) AS cohort_date

-- Correct: monthly cohorts
DATE_TRUNC('month', created_at) AS cohort_month

Real-time dashboard hammers the database

A live dashboard refreshing every 10 seconds with complex cohort SQL will degrade production query performance. Separate OLAP workloads from OLTP by writing pre-aggregated metrics to a summary table via a scheduled job, and have the dashboard read from that:

# Scheduled every 5 minutes via cron/Celery
def refresh_mrr_summary():
    conn.execute("""
        INSERT INTO kpi_snapshot (metric, value, snapshot_at)
        SELECT 'mrr', SUM(...), NOW()
        FROM subscriptions WHERE status = 'active'
        ON CONFLICT (metric) DO UPDATE SET value = EXCLUDED.value
    """)

Alert thresholds fire constantly, team ignores them

Static thresholds set once and never reviewed cause alert fatigue. Use dynamic thresholds based on rolling averages so alerts fire only when the metric deviates significantly from its own baseline:

# Alert if current value is > 2 standard deviations from 30-day rolling mean
def is_anomalous(current: float, history: list[float]) -> bool:
    mean = statistics.mean(history)
    stdev = statistics.stdev(history)
    return abs(current - mean) > 2 * stdev

Related Skills

  • data-storytelling - Turn dashboard findings into narratives that drive executive decisions

Source: SKILL.md on GitHub

No alerts16d5 checks Β· Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides comprehensive documentation and code examples for designing KPI dashboards. No security issues were detected.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW Β· No issues

  • Runlayer6mo

    1/1 file flagged

  • ZeroLeaks5mo

    Score: 93/100 Β· 2 sections analyzed

Signed by skilld at be57c0b. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 days ago.

Activeupdated 4 months ago
  • kpi
  • dashboard
  • metrics
  • executive-dashboards
  • monitoring
  • business-intelligence
  • saas
  • analytics
  • real-time
  • data-visualization

README badge

README badge for wshobson/agents/kpi-dashboard-design

Provides patterns for designing KPI dashboards including metrics selection (SMART framework), hierarchy from executive to operational views, and real-time monitoring practices. Covers executive SaaS dashboards tracking MRR and churn, operations centers with service health metrics, and troubleshooting common issues like inconsistent metric calculations and alert fatigue.

Generated from the current SKILL.md.

Does this skill cover specific visualization tools like Tableau or Grafana?
No. The skill teaches KPI framework and dashboard design patterns (metric selection, hierarchy, layout) but does not provide tool-specific implementation for Tableau, Grafana, or other platforms.
What metric categories does this skill address?
The skill covers strategic, tactical, and operational KPIs across departments including sales, marketing, operations, and finance. It includes examples like MRR, churn, LTV/CAC ratios, retention cohorts, and service health metrics.
How does this skill handle real-time dashboard performance?
The skill includes a pattern for separating OLAP workloads from OLTP by writing pre-aggregated metrics to a summary table via scheduled jobs, preventing production database hammering from live dashboard queries.
Does this skill explain how to handle metric calculation discrepancies?
Yes. It includes a worked example of resolving MRR contradictions between dashboard and finance (e.g., how to treat annual plans consistently) and recommends documenting calculation methodology directly on dashboard cards.
What should I do if alerts are firing constantly and being ignored?
The skill recommends replacing static thresholds with dynamic thresholds based on rolling averages and standard deviation, so alerts only trigger when metrics deviate significantly from their own baseline.

Generated from the current SKILL.md. These answers refresh after source changes.