Data analysis
Skill fabioc-aloha/Alex_Skill_Mall/plugins/data-analytics/data-analysis
284 curated plugins for AI assistants across 16 categories: security, Azure, documentation, code quality, cloud infrastructure, and more. Works with GitHub Copilot. Drop into .github/skills/local/ and go.
npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill data-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Exploratory data analysis patterns -- profiling, distributions, correlations, segmentation, anomaly detection, and translating statistics into narrative insights
SKILL.md
11.0 KB, as published. Nobody here has run it
Data Analysis
| Property | Value |
|---|---|
| Domain | Data Analytics |
| Category | Analysis & Insight Extraction |
| Components | SKILL.md + data-analysis.instructions.md + analyze.prompt.md |
| Depends | data-visualization (chart output), data-ingest.cjs (ingestion) |
Overview
Turn raw data into actionable insight statements. This skill covers the full EDA pipeline: profiling the dataset, exploring distributions, finding correlations, detecting anomalies, and -- critically -- translating statistical findings into business-language narratives tagged with story intents for downstream visualization.
The cardinal rule: statistics are not insights. "Mean revenue is $4.2M" is a statistic. "Revenue grew 34% YoY but growth is decelerating -- Q3 peak was 8% vs. 22% last year" is an insight.
Module 1: Data Profiling
First pass on any dataset. Compute before exploring.
| Metric | What It Tells You | Red Flag |
|---|---|---|
| Row count | Dataset scale | <100 rows limits statistical power |
| Column count | Dimensionality | >50 columns suggests feature bloat |
| Null percentage | Data completeness | >20% nulls in key column = unreliable |
| Unique count | Cardinality | Unique count = row count → likely ID |
| Type inference | String/number/date/boolean | Mixed types in same column = dirty |
| Memory estimate | Processing feasibility | >500MB warns for browser context |
| Duplicate rows | Data quality | >1% duplicates needs dedup decision |
Profiling Output Template
Dataset: {name} ({rowCount} rows x {colCount} columns)
Source: {source} | Format: {format} | Encoding: {encoding}
Column Summary:
{name}: {type} | {nullPct}% null | {uniqueCount} unique | min={min} max={max} mean={mean}
...
Quality Score: {score}/100
- Completeness: {completeness}% (columns with <5% nulls)
- Consistency: {consistency}% (columns with single type)
- Uniqueness: {uniqueness}% (no unexpected duplicates)
Warnings:
- Column "X" has 23% nulls -- consider imputation or exclusion
- Column "Y" has mixed types (78% number, 22% string) -- needs cleaning
Module 2: Descriptive Statistics
What to compute first for every numeric column.
| Statistic | When It Matters |
|---|---|
| Mean vs. Median | If mean >> median, right-skewed (outliers pull up) |
| Standard Dev | Spread -- is the data tight or dispersed? |
| Min / Max | Range -- any impossible values? |
| Percentiles | P25, P50, P75 -- where does the bulk sit? |
| Skewness | >1 or <-1 suggests non-normal distribution |
| Kurtosis | >3 = heavy tails (more outliers than expected) |
Rule of Thumb: Mean vs. Median
- If
|mean - median| / median > 0.1(10%), report median as the "typical" value - Always report both -- the gap itself is an insight
Module 3: Distribution Analysis
| Shape | What It Suggests | Story Intent |
|---|---|---|
| Normal | Stable process, predictable | Distribution |
| Right-skewed | Many small values, few large (income) | Deviation |
| Left-skewed | Most values high, some low (test scores) | Deviation |
| Bimodal | Two populations mixed together | Compare (groups) |
| Uniform | No pattern -- random or categorical codes | None (check) |
| Power law | Few items dominate (Pareto, web traffic) | Part-to-Whole |
Normality Quick Check
- Compare mean to median (>10% gap = non-normal)
- Check skewness (|skew| > 1 = non-normal)
- If important: Shapiro-Wilk test (n < 5000) or Anderson-Darling
Module 4: Correlation & Relationship
| Strength | |r| Range | Interpretation |
| -------- | ----------- | --------------------------- |
| Strong | 0.7 -- 1.0 | Likely meaningful |
| Moderate | 0.4 -- 0.7 | Worth investigating |
| Weak | 0.1 -- 0.4 | Unlikely actionable alone |
| None | < 0.1 | No linear relationship |
Simpson's Paradox Awareness
Always check: does the correlation reverse when you split by a categorical variable?
Overall: Ad spend positively correlates with sales (+0.6)
By region: In 3 of 4 regions, correlation is NEGATIVE
Cause: High-spend region has higher baseline sales (confound)
Rule: If a strong correlation exists, segment by the top 2-3 categorical variables and re-check.
Module 5: Segmentation
Group-by patterns for discovering sub-populations.
| Technique | When to Use | Output |
|---|---|---|
| Group-by aggregate | Categorical × numeric | Segment averages |
| Percentile buckets | Continuous variable, create tiers | Low/Mid/High |
| RFM analysis | Customer behavior (recency, freq, $) | Customer segments |
| Cohort analysis | Time-based grouping (signup month) | Retention curves |
| Cross-tabulation | Two categorical variables | Contingency table |
"So What?" for Segments
For each segment found, answer: "If I could only act on ONE segment, which one and why?"
Module 6: Time-Series Decomposition
| Component | What It Is | Detection |
|---|---|---|
| Trend | Long-term direction | Rolling average (window = period) |
| Seasonality | Repeating pattern at fixed intervals | Autocorrelation at lag = period |
| Residual | What's left (noise + anomalies) | Original - trend - seasonality |
Rolling Average Windows
| Data Frequency | Window |
|---|---|
| Daily | 7 or 30 |
| Weekly | 4 or 13 |
| Monthly | 3 or 12 |
| Quarterly | 4 |
Module 7: Anomaly Detection
| Method | Best For | Threshold |
|---|---|---|
| Z-score | Normal-ish distributions | |
| IQR fence | Skewed distributions | < Q1-1.5×IQR or > Q3+1.5×IQR |
| Isolation | Multivariate outliers | Score > 0.7 (heuristic) |
| Visual | Any -- always plot first | Inspect scatter/box |
Anomaly Protocol
- Detect and flag -- never auto-remove
- Investigate: is it a data error, a real outlier, or a different population?
- Document the decision: kept (real), removed (error), or separated (sub-population)
Module 8: "So What?" Translation (DIKW)
The most important module. Convert statistics into business language.
| Level | Example (Bad) | Example (Good) |
|---|---|---|
| Data | "Column revenue has 5000 values" | (Don't report raw data) |
| Information | "Mean revenue is $4.2M" | "Average quarterly revenue is $4.2M across 8 quarters" |
| Knowledge | "Revenue has a positive trend" | "Revenue grew 34% YoY but growth rate decelerated from 22% to 8%" |
| Wisdom | (Requires domain context) | "Growth is decelerating -- if Q3 seasonal effect weakens, plan for flat" |
Insight Statement Template
[WHAT]: {metric} is {value/behavior}
[SO WHAT]: This means {business implication}
[NOW WHAT]: Consider {action or follow-up question}
[STORY INTENT]: {compare|trend|deviation|distribution|relationship|part-to-whole|flow|hierarchy|spatial}
[CHART]: {recommended chart type} because {rationale}
Example Insight Statements
[WHAT]: California's population (39M) is 5x the median state (7.5M)
[SO WHAT]: Resource allocation models using state averages will dramatically under-serve CA
[NOW WHAT]: Segment by population tier, not just state count
[STORY INTENT]: Compare
[CHART]: Horizontal bar (sorted descending) because ranking 50 items with long labels
[WHAT]: Support ticket resolution time has a bimodal distribution (peaks at 2h and 48h)
[SO WHAT]: Two distinct processes exist -- quick fixes and escalated investigations
[NOW WHAT]: Separate the two populations before setting SLA targets
[STORY INTENT]: Distribution
[CHART]: Histogram with two highlighted peaks, or violin plot for visual impact
Module 9: Hypothesis Framework
Structured approach to moving from observation to testable claim.
| Step | Action |
|---|---|
| Observe | Note a pattern in the data |
| Hypothesize | State a testable claim ("X causes Y because Z") |
| Test | Check against data (filter, segment, correlate) |
| Conclude | Supported, refuted, or inconclusive |
| Narrate | Write the finding as an insight statement |
Anti-Patterns
| Anti-Pattern | Problem | Fix |
|---|---|---|
| Reporting stats only | No business meaning | Always add "so what?" |
| Correlation = causation | Misleading conclusions | Check for confounders, state "correlates" |
| Ignoring base rates | Percentages without context | Always report denominator |
| Survivorship bias | Only analyzing what's visible | Ask "what's missing from this data?" |
| Over-aggregation | Hiding variation with averages | Show distribution, not just mean |
| Premature optimization | Jumping to solutions before understanding | Complete the EDA before recommending action |
Gives 0 of the 12 instructions most data analysis skills give
Counted across 286 of the 286 authors here whose files we hold, read 2026-08-06
- use excel formulas instead of hardcoded calculated valuesin 35 of 286, across 7 files
- match existing template conventions when modifying filesin 35 of 286, across 7 files
- document sources for all hardcoded valuesin 35 of 286, across 7 files
- write minimal concise python codein 35 of 286, across 7 files
- place all assumptions in separate assumption cellsin 32 of 286, across 5 files
- apply industry-standard color coding to financial modelsin 31 of 286, across 5 files
- format years as text stringsin 30 of 286, across 3 files
- recalculate formulas using recalc.py after modificationsin 30 of 286, across 3 files
- format negative numbers using parenthesesin 30 of 286, across 3 files
- fix all identified formula errors before finishingin 27 of 286, across 1 file
- use colorblind-safe palettesin 19 of 286, across 12 files
- Name tests after the prevented bugin 13 of 286, across 8 files
Said here and by no other author read
- compute dataset profile metrics before exploring
- report median as typical value if mean diverges
- check correlation strength against categorical segments
- flag anomalies without auto-removing them
- translate statistics into business-language narratives
- use provided insight statement template for outputs
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.