
Data Analysis
- 1 installs
- 3 repo stars
- Updated August 5, 2026
- fabioc-aloha/alex_skill_mall
Runs an exploratory data analysis pipeline (profiling, distributions, correlations, segmentation, anomaly detection) and translates statistics into business-language insights.
About
Covers the full EDA pipeline from profiling and distributions to correlations, anomaly detection, and narrative insight extraction. Analysts use it to turn raw datasets into business-language findings tagged for downstream visualization.
- Full EDA workflow with anomaly detection
- Translates statistics into tagged narrative insights
Data Analysis by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,803 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/fabioc-aloha/alex_skill_mall --skill data-analysisAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 3 |
| Last updated | August 5, 2026 |
| Repository | fabioc-aloha/alex_skill_mall ↗ |
What it does
Runs an exploratory data analysis pipeline (profiling, distributions, correlations, segmentation, anomaly detection) and translates statistics into business-language insights.
Files
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 cleaningModule 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
1. Compare mean to median (>10% gap = non-normal) 2. Check skewness (|skew| > 1 = non-normal) 3. 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
1. Detect and flag -- never auto-remove 2. Investigate: is it a data error, a real outlier, or a different population? 3. 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 impactModule 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 |
{
"name": "data-analysis",
"version": "1.0.0",
"description": "Exploratory data analysis patterns -- profiling, distributions, correlations, segmentation, anomaly detection, and translating statistics into narrative insights",
"author": {
"name": "ACT Plugin Mall"
},
"keywords": [
"data",
"analysis",
"exploratory",
"patterns",
"profiling",
"distributions",
"correlations",
"segmentation"
],
"engines": [
"copilot"
],
"shape": ".S..",
"category": "data-analytics",
"tier": "standard",
"token_cost": 3024,
"requires_edition": ">=1.0.0",
"requires_plugins": [],
"artifacts": {
"skill": "SKILL.md"
},
"install_paths": {
"skill": ".github/skills/local/data-analysis/SKILL.md"
}
}
data-analysis
Exploratory data analysis patterns -- profiling, distributions, correlations, segmentation, anomaly detection, and translating statistics into narrative insights
Quick Facts
| Field | Value |
|---|---|
| Category | data-analytics |
| Shape | .S.. |
| Tier | standard |
| Token cost | ~3024 tokens |
| Engines | copilot |
| Requires Edition | >=1.0.0 |
| Keywords | data, analysis, exploratory, patterns, profiling, distributions, correlations, segmentation |
Installation
From ACT Edition:
/mall install data-analysisOr manually copy the plugin contents to .github/skills/local/data-analysis/.
Artifacts
- skill:
SKILL.md
Shape: .S..
Skill only -- domain knowledge loaded when pattern matches.