data-dashboard-intelligence

Installation
SKILL.md

Data Dashboard Intelligence

This skill teaches you how to turn normalized event data into dashboards that look and feel premium — not generic template outputs. It works on field semantics (what the data looks like), not platform names (where it came from). By the time you use this skill, platform skills have already normalized fields into universal types like status, duration_ms, cost, and timestamp. The core idea is simple: every field in a dataset has a shape (numeric, categorical, temporal, textual) and a semantic (it measures time, money, status, identity, etc.). The shape tells you which component to use. The semantic tells you how to aggregate it and what to call it. Together, they produce a dashboard that tells a story instead of just displaying numbers.

1. Field-to-Component Mapping

When you see a field from getEventSamples or analyzeSchema, pick the right component based on what the field is, not what it's named.

Field Shape How to Detect Component Why This Works
ID (unique, high cardinality) uniqueValues / totalRows > 0.9 MetricCard (count) IDs exist to be counted — "Total Executions"
Status (categorical, 2–8 values) String, uniqueValues 2–8 PieChart / DonutChart People intuitively read status distributions as pie slices
Binary (exactly 2 values) uniqueValues === 2, one is positive MetricCard (percentage) Success/fail is best shown as "94% Success Rate"
Timestamp (datetime) Parseable as date, sequential TimeseriesChart Trends over time need a time axis
Duration (numeric, positive) Name contains duration, time, elapsed, ms MetricCard (average) Average duration is more useful than total
Money (numeric, currency-like) Name contains cost, amount, price, spend MetricCard (sum) + trend You sum money — "Total Spend: $4,200"
Rate (numeric, 0–100 or 0–1) Name contains rate, ratio, percent, score MetricCard (average) Rates are averaged or shown as latest
Label (medium cardinality, 3–50 values) String, uniqueValues 3–50 BarChart Bar charts handle medium-cardinality breakdowns well
High-cardinality text (>50 values) String, uniqueValues > 50 DataTable column Too many values for any chart — show in table
Long text (avg length > 100 chars) String, avg(length) > 100 DataTable column (truncated) Transcripts, error messages — table only
Override rules (these exist because edge cases produce ugly charts):
  • Timestamp with < 5 distinct dates → MetricCard fallback (sparse timeseries look broken)
Related skills

More from gracebotly/flowetic-app

Installs
3
First Seen
Feb 28, 2026