From thinking-frameworks-skills
Maps data questions to chart types and generates narrated insight reports with action recommendations. Use for dashboard building, KPI monitoring, or data analysis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/thinking-frameworks-skills:visualization-choice-reportingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Copy this checklist and track your progress:
Copy this checklist and track your progress:
Visualization Choice & Reporting Progress:
- [ ] Step 1: Clarify question and profile data
- [ ] Step 2: Select visualization type
- [ ] Step 3: Design effective chart
- [ ] Step 4: Narrate insights and actions
- [ ] Step 5: Validate and deliver
Step 1: Clarify question and profile data
Define the question you're answering (What's the trend? How do X and Y compare? What's the distribution? What drives Z? What's the composition?). Profile your data: type (categorical, numerical, temporal, geospatial), granularity (daily, user-level, aggregated), size (10 rows, 10K, 10M), dimensions (1D, 2D, multivariate). See Question-Data Profiling.
Step 2: Select visualization type
Match question type to chart family using Chart Selection Guide. Consider data size (small → tables, medium → standard charts, large → heatmaps/binned), number of series (1-3 → standard, 4-10 → small multiples, 10+ → interactive/aggregated), and audience expertise (executives → simple with insights, analysts → detailed exploration).
Step 3: Design effective chart
For simple cases → Apply Design Checklist (clear title, labeled axes, legend if needed, annotations, accessible colors). For complex cases (multivariate, dashboards, interactive) → Study resources/methodology.md for advanced techniques (small multiples, layered charts, dashboard layout, interaction patterns).
Step 4: Narrate insights and actions
Lead with insight headline ("Revenue up 30% YoY driven by Enterprise segment"), annotate key patterns (arrows, labels, shading), provide context (vs benchmark, target, previous), interpret meaning ("Suggests product-market fit in Enterprise"), recommend actions ("Double down on Enterprise sales hiring"). See Narrative Framework.
Step 5: Validate and deliver
Self-assess using resources/evaluators/rubric_visualization_choice_reporting.json. Check: Does chart answer the question clearly? Are insights obvious at a glance? Are next actions clear? Create visualization-choice-reporting.md with question, data summary, visualization spec, narrative, and actions. See Delivery Format.
Question Types → Chart Families
| Question Type | Example | Primary Chart Families |
|---|---|---|
| Trend | How has X changed over time? | Line, area, sparkline, horizon |
| Comparison | How do categories compare? | Bar (horizontal for names), column, dot plot, slope chart |
| Distribution | What's the spread/frequency? | Histogram, box plot, violin, density plot |
| Relationship | How do X and Y relate? | Scatter, bubble, connected scatter, hexbin |
| Composition | What are the parts? | Treemap, pie/donut, stacked bar, waterfall, sankey |
| Geographic | Where is it happening? | Choropleth, bubble map, flow map, dot map |
| Hierarchical | What's the structure? | Tree, dendrogram, sunburst, circle packing |
| Multivariate | How do many variables interact? | Small multiples, parallel coordinates, heatmap, SPLOM |
Data Type → Encoding Considerations
| Question Type | Chart Types | When to Use |
|---|---|---|
| Comparison | Bar (horizontal), Column, Grouped bar, Dot plot, Slope chart | Categorical → Numerical. Horizontal bar for long names/ranking. Grouped for 2-3 metrics. Slope for before/after. |
| Trend | Line, Area, Sparkline, Step, Candlestick | Time → Numerical. Line for continuous trends. Area for cumulative/part-to-whole. Sparkline for inline. Step for discrete changes. |
| Distribution | Histogram, Box plot, Violin, Density plot | Numerical → Frequency. Histogram for shape/outliers. Box for quartiles across groups. Violin for full density. |
| Relationship | Scatter, Bubble, Hexbin, Connected scatter | Numerical X → Numerical Y. Scatter for correlation. Bubble for 3rd/4th variable (size/color). Hexbin for dense data. |
| Composition | Treemap, Pie/Donut, Stacked bar (100%), Waterfall, Sankey | Parts of whole. Treemap for hierarchy. Pie for 2-5 categories (part-to-whole key). Waterfall for cumulative. Sankey for flow. |
| Geographic | Choropleth, Bubble map, Flow map | Spatial patterns. Choropleth for regions. Bubble for precise locations. Flow for origin-destination. |
| Multivariate | Small multiples, Heatmap, Parallel coordinates | Many variables. Small multiples for consistent comparison. Heatmap for matrix (time×day). Parallel for dimensions. |
Essential Elements
Perceptual Best Practices
Declutter
Accessibility
Structure: Headline → Pattern → Context → Meaning → Action
1. Headline (one sentence, insight-first):
2. Pattern (what do you see?):
3. Context (compared to what?):
4. Meaning (why does it matter?):
5. Action (what should we do?):
Example Full Narrative:
Headline: Enterprise revenue up 120% YoY while SMB declined 10%, resulting in overall 30% growth.
Pattern: Revenue grew from $2M/month (Q1) to $2.6M (Q4). Enterprise segment contributed $1.5M in Q4 (up from $680K in Q1), while SMB dropped from $1.3M to $1.1M.
Context: Total revenue 15% above plan. Enterprise growth (120%) far exceeds industry average (25%). SMB churn rate doubled from 5% to 10% in Q3-Q4.
Meaning: Strong product-market fit in Enterprise; SMB pricing or feature set may be misaligned. Enterprise is now 58% of revenue vs 34% in Q1, reducing diversification.
Actions:
- Prioritize: Hire 2 Enterprise AEs for Q1, double down on Enterprise playbook
- Fix: Launch SMB annual plans (Q1) to reduce churn; interview churned SMB customers to identify gaps
- Monitor: Enterprise win rate, SMB churn by plan type, revenue concentration risk
Create visualization-choice-reporting.md with these sections:
1. Question: The question you're answering with data (e.g., "How has revenue trended over the past year?")
2. Data Summary: Source, time period, granularity, dimensions, size (e.g., "Analytics DB, Jan-Dec 2024, monthly, revenue by segment, 24 rows")
3. Visualization:
4. Narrative: (Headline → Pattern → Context → Meaning → Action structure from above)
5. Validation: Self-check with rubric (Clarity ✓, Accuracy ✓, Insight ✓, Actionability ✓, Accessibility ✓)
6. Appendix (optional): Raw data, alternatives considered, statistical tests, assumptions
See resources/template.md for full template with examples.
Chart Selection Errors
❌ Pie chart for >5 categories: Hard to compare angles accurately ✓ Use horizontal bar chart: Position on common scale is more accurate
❌ Line chart for categorical data: Implies continuity that doesn't exist (e.g., revenue by product) ✓ Use bar chart: Discrete categories
❌ 3D charts: Perspective distorts values, adds no information ✓ Use 2D with color/size: Clearer, more accurate
Design Mistakes
❌ Y-axis doesn't start at zero (bar chart): Exaggerates differences ✓ Start at zero for bar/column: Accurate visual proportion
❌ Dual Y-axes with different scales: Misleading correlations ✓ Use small multiples or index to 100: Compare shapes, not scales
❌ Rainbow color scheme: Not colorblind-safe, no perceptual ordering ✓ Sequential (light→dark) or diverging (blue→white→red) palette
Narrative Failures
❌ Title: "Revenue by Month": Descriptive, not insightful ✓ "Revenue up 30% YoY, driven by Enterprise": Insight-first
❌ No context: "Revenue is $2.6M" (vs what?) ✓ Add benchmark: "Revenue $2.6M, 15% above $2.25M target"
❌ Pattern without meaning: "Revenue increased" (so what?) ✓ Interpret: "Revenue up 30%, suggests Enterprise product-market fit, informs 2025 hiring plan"
❌ No actions: Ends with "interesting pattern" ✓ Recommend: "Hire 2 Enterprise AEs, investigate SMB churn"
Further reading:
npx claudepluginhub lyndonkl/claude --plugin thinking-frameworks-skillsDesigns clear, accessible data visualizations with chart selection for comparisons/trends/distributions, styling principles, color palettes, responsiveness, and best practices.
Applies Edward Tufte's principles to design, critique, and improve data visualizations. Useful for reducing chartjunk, maximizing data-ink ratio, and ensuring graphical integrity.
Recommends the best chart type for your data and editorial goal, explains why it works, and flags misrepresentation risks.