{"id":"7f23ec5c-3f6b-4536-9aab-50ec61b58bd6","shortId":"Pj36YJ","kind":"skill","title":"kpi-dashboard-design","tagline":"Comprehensive patterns for designing effective Key Performance Indicator (KPI) dashboards that drive business decisions.","description":"# KPI Dashboard Design\n\nComprehensive patterns for designing effective Key Performance Indicator (KPI) dashboards that drive business decisions.\n\n## Do not use this skill when\n\n- The task is unrelated to kpi dashboard design\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources/implementation-playbook.md`.\n\n## Use this skill when\n\n- Designing executive dashboards\n- Selecting meaningful KPIs\n- Building real-time monitoring displays\n- Creating department-specific metrics views\n- Improving existing dashboard layouts\n- Establishing metric governance\n\n## Core Concepts\n\n### 1. KPI Framework\n\n| Level           | Focus            | Update Frequency  | Audience   |\n| --------------- | ---------------- | ----------------- | ---------- |\n| **Strategic**   | Long-term goals  | Monthly/Quarterly | Executives |\n| **Tactical**    | Department goals | Weekly/Monthly    | Managers   |\n| **Operational** | Day-to-day       | Real-time/Daily   | Teams      |\n\n### 2. SMART KPIs\n\n```\nSpecific: Clear definition\nMeasurable: Quantifiable\nAchievable: Realistic targets\nRelevant: Aligned to goals\nTime-bound: Defined period\n```\n\n### 3. Dashboard Hierarchy\n\n```\n├── Executive Summary (1 page)\n│   ├── 4-6 headline KPIs\n│   ├── Trend indicators\n│   └── Key alerts\n├── Department Views\n│   ├── Sales Dashboard\n│   ├── Marketing Dashboard\n│   ├── Operations Dashboard\n│   └── Finance Dashboard\n└── Detailed Drilldowns\n    ├── Individual metrics\n    └── Root cause analysis\n```\n\n## Common KPIs by Department\n\n### Sales KPIs\n\n```yaml\nRevenue Metrics:\n  - Monthly Recurring Revenue (MRR)\n  - Annual Recurring Revenue (ARR)\n  - Average Revenue Per User (ARPU)\n  - Revenue Growth Rate\n\nPipeline Metrics:\n  - Sales Pipeline Value\n  - Win Rate\n  - Average Deal Size\n  - Sales Cycle Length\n\nActivity Metrics:\n  - Calls/Emails per Rep\n  - Demos Scheduled\n  - Proposals Sent\n  - Close Rate\n```\n\n### Marketing KPIs\n\n```yaml\nAcquisition:\n  - Cost Per Acquisition (CPA)\n  - Customer Acquisition Cost (CAC)\n  - Lead Volume\n  - Marketing Qualified Leads (MQL)\n\nEngagement:\n  - Website Traffic\n  - Conversion Rate\n  - Email Open/Click Rate\n  - Social Engagement\n\nROI:\n  - Marketing ROI\n  - Campaign Performance\n  - Channel Attribution\n  - CAC Payback Period\n```\n\n### Product KPIs\n\n```yaml\nUsage:\n  - Daily/Monthly Active Users (DAU/MAU)\n  - Session Duration\n  - Feature Adoption Rate\n  - Stickiness (DAU/MAU)\n\nQuality:\n  - Net Promoter Score (NPS)\n  - Customer Satisfaction (CSAT)\n  - Bug/Issue Count\n  - Time to Resolution\n\nGrowth:\n  - User Growth Rate\n  - Activation Rate\n  - Retention Rate\n  - Churn Rate\n```\n\n### Finance KPIs\n\n```yaml\nProfitability:\n  - Gross Margin\n  - Net Profit Margin\n  - EBITDA\n  - Operating Margin\n\nLiquidity:\n  - Current Ratio\n  - Quick Ratio\n  - Cash Flow\n  - Working Capital\n\nEfficiency:\n  - Revenue per Employee\n  - Operating Expense Ratio\n  - Days Sales Outstanding\n  - Inventory Turnover\n```\n\n## Dashboard Layout Patterns\n\n### Pattern 1: Executive Summary\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  EXECUTIVE DASHBOARD                        [Date Range ▼]  │\n├─────────────┬─────────────┬─────────────┬─────────────────┤\n│   REVENUE   │   PROFIT    │  CUSTOMERS  │    NPS SCORE    │\n│   $2.4M     │    $450K    │    12,450   │       72        │\n│   ▲ 12%     │    ▲ 8%     │    ▲ 15%    │     ▲ 5pts     │\n├─────────────┴─────────────┴─────────────┴─────────────────┤\n│                                                             │\n│  Revenue Trend                    │  Revenue by Product     │\n│  ┌───────────────────────┐       │  ┌──────────────────┐   │\n│  │    /\\    /\\          │       │  │ ████████ 45%     │   │\n│  │   /  \\  /  \\    /\\   │       │  │ ██████   32%     │   │\n│  │  /    \\/    \\  /  \\  │       │  │ ████     18%     │   │\n│  │ /            \\/    \\ │       │  │ ██        5%     │   │\n│  └───────────────────────┘       │  └──────────────────┘   │\n│                                                             │\n├─────────────────────────────────────────────────────────────┤\n│  🔴 Alert: Churn rate exceeded threshold (>5%)              │\n│  🟡 Warning: Support ticket volume 20% above average        │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### Pattern 2: SaaS Metrics Dashboard\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  SAAS METRICS                     Jan 2024  [Monthly ▼]     │\n├──────────────────────┬──────────────────────────────────────┤\n│  ┌────────────────┐  │  MRR GROWTH                          │\n│  │      MRR       │  │  ┌────────────────────────────────┐  │\n│  │    $125,000    │  │  │                          /──   │  │\n│  │     ▲ 8%       │  │  │                    /────/      │  │\n│  └────────────────┘  │  │              /────/            │  │\n│  ┌────────────────┐  │  │        /────/                  │  │\n│  │      ARR       │  │  │   /────/                       │  │\n│  │   $1,500,000   │  │  └────────────────────────────────┘  │\n│  │     ▲ 15%      │  │  J  F  M  A  M  J  J  A  S  O  N  D  │\n│  └────────────────┘  │                                      │\n├──────────────────────┼──────────────────────────────────────┤\n│  UNIT ECONOMICS      │  COHORT RETENTION                    │\n│                      │                                      │\n│  CAC:     $450       │  Month 1: ████████████████████ 100%  │\n│  LTV:     $2,700     │  Month 3: █████████████████    85%   │\n│  LTV/CAC: 6.0x       │  Month 6: ████████████████     80%   │\n│                      │  Month 12: ██████████████      72%   │\n│  Payback: 4 months   │                                      │\n├──────────────────────┴──────────────────────────────────────┤\n│  CHURN ANALYSIS                                             │\n│  ┌──────────┬──────────┬──────────┬──────────────────────┐ │\n│  │ Gross    │ Net      │ Logo     │ Expansion            │ │\n│  │ 4.2%     │ 1.8%     │ 3.1%     │ 2.4%                 │ │\n│  └──────────┴──────────┴──────────┴──────────────────────┘ │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### Pattern 3: Real-time Operations\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  OPERATIONS CENTER                    Live ● Last: 10:42:15 │\n├────────────────────────────┬────────────────────────────────┤\n│  SYSTEM HEALTH             │  SERVICE STATUS                │\n│  ┌──────────────────────┐  │                                │\n│  │   CPU    MEM    DISK │  │  ● API Gateway      Healthy    │\n│  │   45%    72%    58%  │  │  ● User Service     Healthy    │\n│  │   ███    ████   ███  │  │  ● Payment Service  Degraded   │\n│  │   ███    ████   ███  │  │  ● Database         Healthy    │\n│  │   ███    ████   ███  │  │  ● Cache            Healthy    │\n│  └──────────────────────┘  │                                │\n├────────────────────────────┼────────────────────────────────┤\n│  REQUEST THROUGHPUT        │  ERROR RATE                    │\n│  ┌──────────────────────┐  │  ┌──────────────────────────┐  │\n│  │ ▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅ │  │  │ ▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁  │  │\n│  └──────────────────────┘  │  └──────────────────────────┘  │\n│  Current: 12,450 req/s     │  Current: 0.02%                │\n│  Peak: 18,200 req/s        │  Threshold: 1.0%               │\n├────────────────────────────┴────────────────────────────────┤\n│  RECENT ALERTS                                              │\n│  10:40  🟡 High latency on payment-service (p99 > 500ms)    │\n│  10:35  🟢 Resolved: Database connection pool recovered     │\n│  10:22  🔴 Payment service circuit breaker tripped          │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## Implementation Patterns\n\n### SQL for KPI Calculations\n\n```sql\n-- Monthly Recurring Revenue (MRR)\nWITH mrr_calculation AS (\n    SELECT\n        DATE_TRUNC('month', billing_date) AS month,\n        SUM(\n            CASE subscription_interval\n                WHEN 'monthly' THEN amount\n                WHEN 'yearly' THEN amount / 12\n                WHEN 'quarterly' THEN amount / 3\n            END\n        ) AS mrr\n    FROM subscriptions\n    WHERE status = 'active'\n    GROUP BY DATE_TRUNC('month', billing_date)\n)\nSELECT\n    month,\n    mrr,\n    LAG(mrr) OVER (ORDER BY month) AS prev_mrr,\n    (mrr - LAG(mrr) OVER (ORDER BY month)) / LAG(mrr) OVER (ORDER BY month) * 100 AS growth_pct\nFROM mrr_calculation;\n\n-- Cohort Retention\nWITH cohorts AS (\n    SELECT\n        user_id,\n        DATE_TRUNC('month', created_at) AS cohort_month\n    FROM users\n),\nactivity AS (\n    SELECT\n        user_id,\n        DATE_TRUNC('month', event_date) AS activity_month\n    FROM user_events\n    WHERE event_type = 'active_session'\n)\nSELECT\n    c.cohort_month,\n    EXTRACT(MONTH FROM age(a.activity_month, c.cohort_month)) AS months_since_signup,\n    COUNT(DISTINCT a.user_id) AS active_users,\n    COUNT(DISTINCT a.user_id)::FLOAT / COUNT(DISTINCT c.user_id) * 100 AS retention_rate\nFROM cohorts c\nLEFT JOIN activity a ON c.user_id = a.user_id\n    AND a.activity_month >= c.cohort_month\nGROUP BY c.cohort_month, EXTRACT(MONTH FROM age(a.activity_month, c.cohort_month))\nORDER BY c.cohort_month, months_since_signup;\n\n-- Customer Acquisition Cost (CAC)\nSELECT\n    DATE_TRUNC('month', acquired_date) AS month,\n    SUM(marketing_spend) / NULLIF(COUNT(new_customers), 0) AS cac,\n    SUM(marketing_spend) AS total_spend,\n    COUNT(new_customers) AS customers_acquired\nFROM (\n    SELECT\n        DATE_TRUNC('month', u.created_at) AS acquired_date,\n        u.id AS new_customers,\n        m.spend AS marketing_spend\n    FROM users u\n    JOIN marketing_spend m ON DATE_TRUNC('month', u.created_at) = m.month\n    WHERE u.source = 'marketing'\n) acquisition\nGROUP BY DATE_TRUNC('month', acquired_date);\n```\n\n### Python Dashboard Code (Streamlit)\n\n```python\nimport streamlit as st\nimport pandas as pd\nimport plotly.express as px\nimport plotly.graph_objects as go\n\nst.set_page_config(page_title=\"KPI Dashboard\", layout=\"wide\")\n\n# Header with date filter\ncol1, col2 = st.columns([3, 1])\nwith col1:\n    st.title(\"Executive Dashboard\")\nwith col2:\n    date_range = st.selectbox(\n        \"Period\",\n        [\"Last 7 Days\", \"Last 30 Days\", \"Last Quarter\", \"YTD\"]\n    )\n\n# KPI Cards\ndef metric_card(label, value, delta, prefix=\"\", suffix=\"\"):\n    delta_color = \"green\" if delta >= 0 else \"red\"\n    delta_arrow = \"▲\" if delta >= 0 else \"▼\"\n    st.metric(\n        label=label,\n        value=f\"{prefix}{value:,.0f}{suffix}\",\n        delta=f\"{delta_arrow} {abs(delta):.1f}%\"\n    )\n\ncol1, col2, col3, col4 = st.columns(4)\nwith col1:\n    metric_card(\"Revenue\", 2400000, 12.5, prefix=\"$\")\nwith col2:\n    metric_card(\"Customers\", 12450, 15.2)\nwith col3:\n    metric_card(\"NPS Score\", 72, 5.0)\nwith col4:\n    metric_card(\"Churn Rate\", 4.2, -0.8, suffix=\"%\")\n\n# Charts\ncol1, col2 = st.columns(2)\n\nwith col1:\n    st.subheader(\"Revenue Trend\")\n    revenue_data = pd.DataFrame({\n        'Month': pd.date_range('2024-01-01', periods=12, freq='M'),\n        'Revenue': [180000, 195000, 210000, 225000, 240000, 255000,\n                    270000, 285000, 300000, 315000, 330000, 345000]\n    })\n    fig = px.line(revenue_data, x='Month', y='Revenue',\n                  line_shape='spline', markers=True)\n    fig.update_layout(height=300)\n    st.plotly_chart(fig, use_container_width=True)\n\nwith col2:\n    st.subheader(\"Revenue by Product\")\n    product_data = pd.DataFrame({\n        'Product': ['Enterprise', 'Professional', 'Starter', 'Other'],\n        'Revenue': [45, 32, 18, 5]\n    })\n    fig = px.pie(product_data, values='Revenue', names='Product',\n                 hole=0.4)\n    fig.update_layout(height=300)\n    st.plotly_chart(fig, use_container_width=True)\n\n# Cohort Heatmap\nst.subheader(\"Cohort Retention\")\ncohort_data = pd.DataFrame({\n    'Cohort': ['Jan', 'Feb', 'Mar', 'Apr', 'May'],\n    'M0': [100, 100, 100, 100, 100],\n    'M1': [85, 87, 84, 86, 88],\n    'M2': [78, 80, 76, 79, None],\n    'M3': [72, 74, 70, None, None],\n    'M4': [68, 70, None, None, None],\n})\nfig = go.Figure(data=go.Heatmap(\n    z=cohort_data.iloc[:, 1:].values,\n    x=['M0', 'M1', 'M2', 'M3', 'M4'],\n    y=cohort_data['Cohort'],\n    colorscale='Blues',\n    text=cohort_data.iloc[:, 1:].values,\n    texttemplate='%{text}%',\n    textfont={\"size\": 12},\n))\nfig.update_layout(height=250)\nst.plotly_chart(fig, use_container_width=True)\n\n# Alerts Section\nst.subheader(\"Alerts\")\nalerts = [\n    {\"level\": \"error\", \"message\": \"Churn rate exceeded threshold (>5%)\"},\n    {\"level\": \"warning\", \"message\": \"Support ticket volume 20% above average\"},\n]\nfor alert in alerts:\n    if alert[\"level\"] == \"error\":\n        st.error(f\"🔴 {alert['message']}\")\n    elif alert[\"level\"] == \"warning\":\n        st.warning(f\"🟡 {alert['message']}\")\n```\n\n## Best Practices\n\n### Do's\n\n- **Limit to 5-7 KPIs** - Focus on what matters\n- **Show context** - Comparisons, trends, targets\n- **Use consistent colors** - Red=bad, green=good\n- **Enable drilldown** - From summary to detail\n- **Update appropriately** - Match metric frequency\n\n### Don'ts\n\n- **Don't show vanity metrics** - Focus on actionable data\n- **Don't overcrowd** - White space aids comprehension\n- **Don't use 3D charts** - They distort perception\n- **Don't hide methodology** - Document calculations\n- **Don't ignore mobile** - Ensure responsive design\n\n## Resources\n\n- [Stephen Few's Dashboard Design](https://www.perceptualedge.com/articles/visual_business_intelligence/rules_for_using_color.pdf)\n- [Edward Tufte's Principles](https://www.edwardtufte.com/tufte/)\n- [Google Data Studio Gallery](https://datastudio.google.com/gallery)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["kpi","dashboard","design","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-kpi-dashboard-design","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/kpi-dashboard-design","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34726 github stars · SKILL.md body (14,071 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T12:51:08.117Z","embedding":null,"createdAt":"2026-04-18T21:39:35.895Z","updatedAt":"2026-04-23T12:51:08.117Z","lastSeenAt":"2026-04-23T12:51:08.117Z","tsv":"'-0.8':964 '-01':983,984 '-6':175 '-7':1199 '/articles/visual_business_intelligence/rules_for_using_color.pdf)':1275 '/daily':145 '/gallery)':1289 '/tufte/)':1282 '0':770,903,910 '0.02':520 '0.4':1054 '000':419,424 '0f':919 '1':117,172,361,422,445,867,1116,1132 '1.0':526 '1.8':472 '10':485,529,539,546 '100':446,634,711,1081,1082,1083,1084,1085 '12':376,379,460,516,588,986,1138 '12.5':940 '12450':947 '125':418 '15':381,425,487 '15.2':948 '18':390,522,1043 '180000':990 '195000':991 '1f':927 '2':147,406,448,970 '2.4':373,474 '20':402,1169 '200':523 '2024':413,982 '210000':992 '22':547 '225000':993 '240000':994 '2400000':939 '250':1142 '255000':995 '270000':996 '285000':997 '3':167,451,476,593,866 '3.1':473 '30':883 '300':1018,1058 '300000':998 '315000':999 '32':389,1042 '330000':1000 '345000':1001 '35':540 '3d':1249 '4':174,463,933 '4.2':471,963 '40':530 '42':486 '45':388,498,1041 '450':377,443,517 '450k':375 '5':391,397,1044,1162,1198 '5.0':956 '500':423 '500ms':538 '58':500 '5pts':382 '6':457 '6.0':454 '68':1105 '7':880 '70':1101,1106 '700':449 '72':378,461,499,955,1099 '74':1100 '76':1095 '78':1093 '79':1096 '8':380,420 '80':458,1094 '84':1089 '85':452,1087 '86':1090 '87':1088 '88':1091 'a.activity':687,728,740 'a.user':697,704,725 'ab':925 'achiev':155 'acquir':759,784,793,826 'acquisit':251,254,257,752,820 'action':75,1237 'activ':237,291,318,601,659,670,678,700,720 'adopt':297 'age':686,739 'aid':1244 'alert':181,392,528,1150,1153,1154,1173,1175,1177,1182,1185,1190 'align':159 'amount':583,587,592 'analysi':198,466 'annual':212 'api':495 'appli':67 'appropri':1224 'apr':1078 'arpu':220 'arr':215,421 'arrow':907,924 'ask':1323 'attribut':282 'audienc':124 'averag':216,231,404,1171 'bad':1214 'best':69,1192 'bill':572,607 'blue':1129 'bound':164 'boundari':1331 'breaker':551 'bug/issue':309 'build':96 'busi':17,34 'c':717 'c.cohort':681,689,730,734,742,746 'c.user':709,723 'cac':259,283,442,754,772 'cach':509 'calcul':558,566,640,1259 'calls/emails':239 'campaign':279 'capit':344 'card':889,892,937,945,952,960 'case':577 'cash':341 'caus':197 'center':482 'channel':281 'chart':966,1020,1060,1144,1250 'churn':322,393,465,961,1158 'circuit':550 'clarif':1325 'clarifi':61 'clear':151,1298 'close':246 'code':830 'cohort':440,641,644,655,716,1066,1069,1071,1074,1125,1127 'cohort_data.iloc':1115,1131 'col1':863,869,928,935,967,972 'col2':864,874,929,943,968,1027 'col3':930,950 'col4':931,958 'color':899,1212 'colorscal':1128 'common':199 'comparison':1207 'comprehens':5,22,1245 'concept':116 'config':852 'connect':543 'consist':1211 'constraint':63 'contain':1023,1063,1147 'context':1206 'convers':269 'core':115 'cost':252,258,753 'count':310,695,702,707,767,779 'cpa':255 'cpu':492 'creat':102,652 'criteria':1334 'csat':308 'current':337,515,519 'custom':256,306,370,751,769,781,783,798,946 'cycl':235 'd':437 'daily/monthly':290 'dashboard':3,14,20,31,48,92,110,168,185,187,189,191,357,365,409,829,856,872,1271 'data':977,1005,1033,1048,1072,1112,1126,1238,1284 'databas':507,542 'datastudio.google.com':1288 'datastudio.google.com/gallery)':1287 'date':366,569,573,604,608,649,664,668,756,760,787,794,811,823,827,861,875 'dau/mau':293,300 'day':139,141,352,881,884 'day-to-day':138 'deal':232 'decis':18,35 'def':890 'defin':165 'definit':152 'degrad':506 'delta':895,898,902,906,909,921,923,926 'demo':242 'depart':104,133,182,202 'department-specif':103 'describ':1302 'design':4,8,21,25,49,90,1266,1272 'detail':80,192,1222 'differ':53 'disk':494 'display':101 'distinct':696,703,708 'distort':1252 'document':1258 'domain':54 'drilldown':193,1218 'drive':16,33 'durat':295 'ebitda':333 'econom':439 'edward':1276 'effect':9,26 'effici':345 'elif':1184 'els':904,911 'email':271 'employe':348 'enabl':1217 'end':594 'engag':266,275 'ensur':1264 'enterpris':1036 'environ':1314 'environment-specif':1313 'error':513,1156,1179 'establish':112 'event':667,674,676 'exampl':81 'exceed':395,1160 'execut':91,131,170,362,364,871 'exist':109 'expans':470 'expens':350 'expert':1319 'extract':683,736 'f':427,916,922,1181,1189 'featur':296 'feb':1076 'fig':1002,1021,1045,1061,1110,1145 'fig.update':1015,1055,1139 'filter':862 'financ':190,324 'float':706 'flow':342 'focus':121,1201,1235 'framework':119 'freq':987 'frequenc':123,1227 'galleri':1286 'gateway':496 'go':849 'go.figure':1111 'go.heatmap':1113 'goal':62,129,134,161 'good':1216 'googl':1283 'govern':114 'green':900,1215 'gross':328,467 'group':602,732,821 'growth':222,314,316,416,636 'header':859 'headlin':176 'health':489 'healthi':497,503,508,510 'heatmap':1067 'height':1017,1057,1141 'hide':1256 'hierarchi':169 'high':531 'hole':1053 'id':648,663,698,705,710,724,726 'ignor':1262 'implement':553 'import':833,837,841,845 'improv':108 'indic':12,29,179 'individu':194 'input':66,1328 'instruct':60 'interv':579 'inventori':355 'j':426,431,432 'jan':412,1075 'join':719,806 'key':10,27,180 'kpi':2,13,19,30,47,118,557,855,888 'kpi-dashboard-design':1 'kpis':95,149,177,200,204,249,287,325,1200 'label':893,913,914 'lag':612,622,628 'last':484,879,882,885 'latenc':532 'layout':111,358,857,1016,1056,1140 'lead':260,264 'left':718 'length':236 'level':120,1155,1163,1178,1186 'limit':1196,1290 'line':1010 'liquid':336 'live':483 'logo':469 'long':127 'long-term':126 'ltv':447 'ltv/cac':453 'm':374,428,430,809,988 'm.month':816 'm.spend':799 'm0':1080,1119 'm1':1086,1120 'm2':1092,1121 'm3':1098,1122 'm4':1104,1123 'manag':136 'mar':1077 'margin':329,332,335 'marker':1013 'market':186,248,262,277,764,774,801,807,819 'match':1225,1299 'matter':1204 'may':1079 'meaning':94 'measur':153 'mem':493 'messag':1157,1165,1183,1191 'methodolog':1257 'metric':106,113,195,207,225,238,408,411,891,936,944,951,959,1226,1234 'miss':1336 'mobil':1263 'monitor':100 'month':208,414,444,450,456,459,464,560,571,575,581,606,610,617,627,633,651,656,666,671,682,684,688,690,692,729,731,735,737,741,743,747,748,758,762,789,813,825,979,1007 'monthly/quarterly':130 'mql':265 'mrr':211,415,417,563,565,596,611,613,620,621,623,629,639 'n':436 'name':1051 'need':51 'net':302,330,468 'new':768,780,797 'none':1097,1102,1103,1107,1108,1109 'nps':305,371,953 'nullif':766 'o':435 'object':847 'open':84 'open/click':272 'oper':137,188,334,349,480,481 'order':615,625,631,744 'outcom':73 'output':1308 'outsid':57 'outstand':354 'overcrowd':1241 'p99':537 'page':173,851,853 'panda':838 'pattern':6,23,359,360,405,475,554 'payback':284,462 'payment':504,535,548 'payment-servic':534 'pct':637 'pd':840 'pd.dataframe':978,1034,1073 'pd.date':980 'peak':521 'per':218,240,253,347 'percept':1253 'perform':11,28,280 'period':166,285,878,985 'permiss':1329 'pipelin':224,227 'plotly.express':842 'plotly.graph':846 'pool':544 'practic':70,1193 'prefix':896,917,941 'prev':619 'principl':1279 'product':286,387,1031,1032,1035,1047,1052 'profession':1037 'profit':327,331,369 'promot':303 'propos':244 'provid':74 'px':844 'px.line':1003 'px.pie':1046 'python':828,832 'qualifi':263 'qualiti':301 'quantifi':154 'quarter':590,886 'quick':339 'rang':367,876,981 'rate':223,230,247,270,273,298,317,319,321,323,394,514,714,962,1159 'ratio':338,340,351 'real':98,143,478 'real-tim':97,142,477 'realist':156 'recent':527 'recov':545 'recur':209,213,561 'red':905,1213 'relev':68,158 'rep':241 'req/s':518,524 'request':511 'requir':65,83,1327 'resolut':313 'resolv':541 'resourc':1267 'resources/implementation-playbook.md':85 'respons':1265 'retent':320,441,642,713,1070 'revenu':206,210,214,217,221,346,368,383,385,562,938,974,976,989,1004,1009,1029,1040,1050 'review':1320 'roi':276,278 'root':196 'saa':407,410 'safeti':1330 'sale':184,203,226,234,353 'satisfact':307 'schedul':243 'scope':59,1301 'score':304,372,954 'section':1151 'select':93,568,609,646,661,680,755,786 'sent':245 'servic':490,502,505,536,549 'session':294,679 'shape':1011 'show':1205,1232 'signup':694,750 'sinc':693,749 'size':233,1137 'skill':40,88,1293 'skill-kpi-dashboard-design' 'smart':148 'social':274 'source-sickn33' 'space':1243 'specif':105,150,1315 'spend':765,775,778,802,808 'spline':1012 'sql':555,559 'st':836 'st.columns':865,932,969 'st.error':1180 'st.metric':912 'st.plotly':1019,1059,1143 'st.selectbox':877 'st.set':850 'st.subheader':973,1028,1068,1152 'st.title':870 'st.warning':1188 'starter':1038 'status':491,600 'step':76 'stephen':1268 'sticki':299 'stop':1321 'strateg':125 'streamlit':831,834 'studio':1285 'subscript':578,598 'substitut':1311 'success':1333 'suffix':897,920,965 'sum':576,763,773 'summari':171,363,1220 'support':399,1166 'system':488 'tactic':132 'target':157,1209 'task':43,1297 'team':146 'term':128 'test':1317 'text':1130,1135 'textfont':1136 'texttempl':1134 'threshold':396,525,1161 'throughput':512 'ticket':400,1167 'time':99,144,163,311,479 'time-bound':162 'titl':854 'tool':56 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':777 'traffic':268 'treat':1306 'trend':178,384,975,1208 'trip':552 'true':1014,1025,1065,1149 'trunc':570,605,650,665,757,788,812,824 'ts':1229 'tuft':1277 'turnov':356 'type':677 'u':805 'u.created':790,814 'u.id':795 'u.source':818 'unit':438 'unrel':45 'updat':122,1223 'usag':289 'use':38,86,1022,1062,1146,1210,1248,1291 'user':219,292,315,501,647,658,662,673,701,804 'valid':72,1316 'valu':228,894,915,918,1049,1117,1133 'vaniti':1233 'verif':78 'view':107,183 'volum':261,401,1168 'warn':398,1164,1187 'websit':267 'weekly/monthly':135 'white':1242 'wide':858 'width':1024,1064,1148 'win':229 'work':343 'www.edwardtufte.com':1281 'www.edwardtufte.com/tufte/)':1280 'www.perceptualedge.com':1274 'www.perceptualedge.com/articles/visual_business_intelligence/rules_for_using_color.pdf)':1273 'x':455,1006,1118 'y':1008,1124 'yaml':205,250,288,326 'year':585 'ytd':887 'z':1114","prices":[{"id":"0ee823b7-2995-4c0d-8715-85f602fd5d53","listingId":"7f23ec5c-3f6b-4536-9aab-50ec61b58bd6","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:39:35.895Z"}],"sources":[{"listingId":"7f23ec5c-3f6b-4536-9aab-50ec61b58bd6","source":"github","sourceId":"sickn33/antigravity-awesome-skills/kpi-dashboard-design","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/kpi-dashboard-design","isPrimary":false,"firstSeenAt":"2026-04-18T21:39:35.895Z","lastSeenAt":"2026-04-23T12:51:08.117Z"}],"details":{"listingId":"7f23ec5c-3f6b-4536-9aab-50ec61b58bd6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"kpi-dashboard-design","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34726,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"486c5569dff7641ee7df3b2fe8e5e57b73bb3be6","skill_md_path":"skills/kpi-dashboard-design/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/kpi-dashboard-design"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"kpi-dashboard-design","description":"Comprehensive patterns for designing effective Key Performance Indicator (KPI) dashboards that drive business decisions."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/kpi-dashboard-design"},"updatedAt":"2026-04-23T12:51:08.117Z"}}