Data Analysis
When to use this skill
- The user has a dataset, export, report extract, query result, or shaped event / telemetry table and wants evidence-backed conclusions.
- The task is to understand what changed, compare segments, summarize performance, or explain anomalies in business terms.
- The request mentions CSV, JSON, SQL tables, retention, cohorts, funnels, conversion, spend, telemetry, event exports, or KPIs.
- The work needs data-quality checks before conclusions.
- The user needs a concise analysis narrative, not just raw code snippets.
Do not use this skill as the main workflow when:
- The main goal is repeated anomaly or code-pattern scanning across code/data assets → use
pattern-detection.
- The main goal is building or tuning a specific BI dashboard / Looker Studio + BigQuery workflow → use
looker-studio-bigquery.
- The task is repository navigation or call-site tracing rather than dataset reasoning → use
codebase-search.
- The problem is raw log triage / incident reconstruction rather than dataset analysis → use
log-analysis.
Core idea
Data analysis is a staged reasoning workflow:
- clarify the decision question
- profile the data and trust level
- choose the cheapest analysis lane that can answer it
- separate observation from interpretation
- finish with evidence, caveats, and next actions
Do not jump straight into charts or code. The goal is decision-quality analysis.
Instructions
Step 1: Frame the analysis question
Before touching the data, define:
- Decision to support — what action or judgment depends on this analysis?
- Primary metric(s) — conversion, retention, revenue, latency, churn, balance, spend efficiency, etc.
- Dimensions / segments — time, channel, cohort, region, plan, device, feature flag, player segment
- Comparison mode — before/after, control/treatment, top vs bottom segments, expected vs actual
- Time window — day/week/month/release/experiment period
If the request is vague, restate it as:
"We need to explain [metric/outcome] for [audience] over [time window] and identify the strongest drivers or caveats."
Step 2: Run a trust check before analysis
Always start with data-quality triage.
Minimum trust checklist
- row count / extract size
- schema and types
- missing values / null-heavy columns
- duplicates or repeated IDs
- time range coverage and timezone assumptions
- segment completeness (channels, countries, devices, builds, player groups)
- obvious join / aggregation errors
- outliers or impossible values
Default check pattern:
import pandas as pd
# df = pd.read_csv(...)
print(df.shape)
print(df.dtypes)
print(df.head())
print(df.isna().sum().sort_values(ascending=False).head(15))
print(df.duplicated().sum())
If trust is low, stop promising conclusions and explicitly switch the output to:
- what is trustworthy
- what is suspect
- what additional cleanup or data is needed
Step 3: Choose the analysis lane
| Lane |
Use when |
Typical tools |
What success looks like |
| Spreadsheet-scale triage |
Small extracts, PM/ops handoff, quick KPI sanity checks |
Sheets / Excel / quick table review |
Fast overview, obvious errors and top movements surfaced |
| SQL slicing |
Data already lives in a DB / warehouse or needs grouped filters fast |
SQL / DuckDB / warehouse query |
Clean aggregates, cohorts, funnels, comparisons |
| Notebook / statistical analysis |
Multiple metrics, cohort logic, experiment reasoning, telemetry or richer transformations |
pandas / notebooks / scripts |
Reproducible calculations and richer interpretation |
| Stakeholder-ready summary |
The answer is mostly known and needs explanation, not more slicing |
markdown memo / report / dashboard handoff |
Clear findings, caveats, actions, and open questions |
Pick the cheapest lane that can answer the question. Escalate only when needed.
Step 4: Use the right analysis pattern
Pattern A — Change explanation
Use for: experiments, release effects, KPI jumps/drops, spend shifts, gameplay balance changes.
Checklist:
- define baseline and comparison window
- confirm denominator / assignment integrity when this is an experiment or rollout comparison
- compute absolute + relative deltas
- break the change by top segments or drivers
- test whether the change is broad or concentrated
- call out confounders (seasonality, launch, tracking changes, sample size, significance/confidence limits)
Pattern B — Segment comparison
Use for: channel quality, user tiers, device classes, regions, player cohorts.
Checklist:
- rank segments by the primary metric
- include sample size / denominator
- compare both rate and volume
- watch for Simpson's-paradox-style aggregation traps
- explain what likely differentiates top vs bottom groups
Pattern C — Funnel / retention analysis
Use for: signup, purchase, onboarding, feature adoption, live-ops progression.
Checklist:
- define each stage/event clearly
- compute stage counts and conversion/drop-off rates
- segment by acquisition source, cohort, platform, build, or player type
- identify the highest-leverage drop-off point
- distinguish instrumentation gaps from genuine behavior problems
Pattern D — Telemetry / event analysis
Use for: gameplay telemetry, product event streams, operational exports.
Checklist:
- map raw events to derived metrics
- group by session/build/feature/segment/time
- identify spikes, sinkholes, and suspicious clusters
- separate normal variation from suspicious outliers
- route sustained anomaly-hunting work to
pattern-detection if the task becomes detection-first
Step 5: Keep observations separate from interpretation
Structure findings in three layers:
- Observation — what the data literally shows
- Interpretation — likely meaning or driver
- Caveat / confidence — what could weaken the conclusion
Good example:
- Observation: conversion dropped 6.2% week-over-week, concentrated in mobile Safari traffic.
- Interpretation: the decline is likely connected to the recent checkout UI change on smaller screens.
- Caveat: tracking for one payment method was also modified that week, so attribution is medium confidence.
Step 6: Return a decision-ready output
Default output shape:
## Analysis brief
- Goal: [decision question]
- Data source: [files / tables / export scope]
- Trust level: high | medium | low
- Lane used: spreadsheet triage | SQL slicing | notebook/statistical | summary-only
## Key findings
1. [finding]
2. [finding]
3. [finding]
## Supporting evidence
- [metric / segment / comparison]
- [metric / segment / comparison]
## Caveats
- [missing data / sample bias / instrumentation / seasonality]
## Recommended next actions
- [decision / follow-up slice / dashboard handoff / instrumentation fix]
If the user asked for recommendations, tie each recommendation to a specific finding.
If the user only asked for analysis, stop at evidence + caveats.
Step 7: Route out when analysis stops being the bottleneck
Hand off when the next step is a different job:
- Repeated anomaly hunting or rule-based scanning →
pattern-detection
- Dashboard construction / BigQuery-connected reporting →
looker-studio-bigquery
- Raw log triage before dataset shaping →
log-analysis
- Repo/code investigation to find instrumentation or metric definitions →
codebase-search
Examples
Example 1: Experiment analysis
Prompt:
Analyze this CSV export and tell me what changed after the pricing experiment.
Good response shape:
- define baseline vs experiment window
- check data coverage and segment completeness
- report overall delta plus segment breakdown
- identify strongest likely drivers and caveats
Example 2: Marketing + product analysis
Prompt:
We have app event logs and marketing spend by channel; find the main retention and CAC patterns.
Good response shape:
- separate acquisition and retention metrics
- compare rate and volume by channel/cohort
- note trust limits if joins or attribution windows are unclear
- summarize high-leverage channel differences
Example 3: Game telemetry analysis
Prompt:
Review this gameplay telemetry extract and summarize balance issues and suspicious outliers.
Good response shape:
- map events to gameplay metrics
- compare player/build/weapon/level segments
- separate broad balance patterns from suspicious outliers
- route repeated anomaly detection to
pattern-detection if needed
Example 4: PM / ops export triage
Prompt:
I exported a dashboard to CSV; help me explain the KPI drop for leadership.
Good response shape:
- start with trust checks on the export
- identify the metric, time window, and comparison baseline
- produce a concise leadership-ready memo with evidence and caveats
Best practices
- Start from the decision question, not the chart type.
- Run data-quality checks before interpretation.
- Always include sample size / denominator context when comparing segments.
- Prefer the cheapest sufficient lane instead of defaulting to heavy notebooks.
- Separate observation, interpretation, and caveat so the analysis stays honest.
- Route dashboard-building and anomaly-detection work to adjacent specialist skills when they become the real task.
References
Output format
Use a brief, findings-first summary with trust level, key evidence, caveats, and explicit next actions or handoffs.
1---2name: data-analysis3description: Guide through a structured data analysis workflow: define the question, validate data quality, select the appropriate analytical method, and produce decision-ready findings with caveats.4---567891011# Data Analysis1213## When to use this skill14- The user has a **dataset, export, report extract, query result, or shaped event / telemetry table** and wants evidence-backed conclusions.15- The task is to **understand what changed**, compare segments, summarize performance, or explain anomalies in business terms.16- The request mentions **CSV, JSON, SQL tables, retention, cohorts, funnels, conversion, spend, telemetry, event exports, or KPIs**.17- The work needs **data-quality checks before conclusions**.18- The user needs a **concise analysis narrative**, not just raw code snippets.1920Do **not** use this skill as the main workflow when:21- The main goal is repeated anomaly or code-pattern scanning across code/data assets → use `pattern-detection`.22- The main goal is building or tuning a specific BI dashboard / Looker Studio + BigQuery workflow → use `looker-studio-bigquery`.23- The task is repository navigation or call-site tracing rather than dataset reasoning → use `codebase-search`.24- The problem is raw log triage / incident reconstruction rather than dataset analysis → use `log-analysis`.2526## Core idea27Data analysis is a staged reasoning workflow:281. clarify the decision question292. profile the data and trust level303. choose the cheapest analysis lane that can answer it314. separate observation from interpretation325. finish with evidence, caveats, and next actions3334Do **not** jump straight into charts or code. The goal is decision-quality analysis.3536## Instructions3738### Step 1: Frame the analysis question39Before touching the data, define:40- **Decision to support** — what action or judgment depends on this analysis?41- **Primary metric(s)** — conversion, retention, revenue, latency, churn, balance, spend efficiency, etc.42- **Dimensions / segments** — time, channel, cohort, region, plan, device, feature flag, player segment43- **Comparison mode** — before/after, control/treatment, top vs bottom segments, expected vs actual44- **Time window** — day/week/month/release/experiment period4546If the request is vague, restate it as:47> "We need to explain [metric/outcome] for [audience] over [time window] and identify the strongest drivers or caveats."4849### Step 2: Run a trust check before analysis50Always start with data-quality triage.5152#### Minimum trust checklist53- row count / extract size54- schema and types55- missing values / null-heavy columns56- duplicates or repeated IDs57- time range coverage and timezone assumptions58- segment completeness (channels, countries, devices, builds, player groups)59- obvious join / aggregation errors60- outliers or impossible values6162Default check pattern:63```python64import pandas as pd6566# df = pd.read_csv(...)67print(df.shape)68print(df.dtypes)69print(df.head())70print(df.isna().sum().sort_values(ascending=False).head(15))71print(df.duplicated().sum())72```7374If trust is low, stop promising conclusions and explicitly switch the output to:75- what is trustworthy76- what is suspect77- what additional cleanup or data is needed7879### Step 3: Choose the analysis lane8081| Lane | Use when | Typical tools | What success looks like |82|---|---|---|---|83| Spreadsheet-scale triage | Small extracts, PM/ops handoff, quick KPI sanity checks | Sheets / Excel / quick table review | Fast overview, obvious errors and top movements surfaced |84| SQL slicing | Data already lives in a DB / warehouse or needs grouped filters fast | SQL / DuckDB / warehouse query | Clean aggregates, cohorts, funnels, comparisons |85| Notebook / statistical analysis | Multiple metrics, cohort logic, experiment reasoning, telemetry or richer transformations | pandas / notebooks / scripts | Reproducible calculations and richer interpretation |86| Stakeholder-ready summary | The answer is mostly known and needs explanation, not more slicing | markdown memo / report / dashboard handoff | Clear findings, caveats, actions, and open questions |8788Pick the cheapest lane that can answer the question. Escalate only when needed.8990### Step 4: Use the right analysis pattern9192#### Pattern A — Change explanation93Use for: experiments, release effects, KPI jumps/drops, spend shifts, gameplay balance changes.9495Checklist:961. define baseline and comparison window972. confirm denominator / assignment integrity when this is an experiment or rollout comparison983. compute absolute + relative deltas994. break the change by top segments or drivers1005. test whether the change is broad or concentrated1016. call out confounders (seasonality, launch, tracking changes, sample size, significance/confidence limits)102103#### Pattern B — Segment comparison104Use for: channel quality, user tiers, device classes, regions, player cohorts.105106Checklist:1071. rank segments by the primary metric1082. include sample size / denominator1093. compare both rate and volume1104. watch for Simpson's-paradox-style aggregation traps1115. explain what likely differentiates top vs bottom groups112113#### Pattern C — Funnel / retention analysis114Use for: signup, purchase, onboarding, feature adoption, live-ops progression.115116Checklist:1171. define each stage/event clearly1182. compute stage counts and conversion/drop-off rates1193. segment by acquisition source, cohort, platform, build, or player type1204. identify the highest-leverage drop-off point1215. distinguish instrumentation gaps from genuine behavior problems122123#### Pattern D — Telemetry / event analysis124Use for: gameplay telemetry, product event streams, operational exports.125126Checklist:1271. map raw events to derived metrics1282. group by session/build/feature/segment/time1293. identify spikes, sinkholes, and suspicious clusters1304. separate normal variation from suspicious outliers1315. route sustained anomaly-hunting work to `pattern-detection` if the task becomes detection-first132133### Step 5: Keep observations separate from interpretation134Structure findings in three layers:1351361. **Observation** — what the data literally shows1372. **Interpretation** — likely meaning or driver1383. **Caveat / confidence** — what could weaken the conclusion139140Good example:141- Observation: conversion dropped 6.2% week-over-week, concentrated in mobile Safari traffic.142- Interpretation: the decline is likely connected to the recent checkout UI change on smaller screens.143- Caveat: tracking for one payment method was also modified that week, so attribution is medium confidence.144145### Step 6: Return a decision-ready output146Default output shape:147148```markdown149## Analysis brief150- Goal: [decision question]151- Data source: [files / tables / export scope]152- Trust level: high | medium | low153- Lane used: spreadsheet triage | SQL slicing | notebook/statistical | summary-only154155## Key findings1561. [finding]1572. [finding]1583. [finding]159160## Supporting evidence161- [metric / segment / comparison]162- [metric / segment / comparison]163164## Caveats165- [missing data / sample bias / instrumentation / seasonality]166167## Recommended next actions168- [decision / follow-up slice / dashboard handoff / instrumentation fix]169```170171If the user asked for recommendations, tie each recommendation to a specific finding.172If the user only asked for analysis, stop at evidence + caveats.173174### Step 7: Route out when analysis stops being the bottleneck175Hand off when the next step is a different job:176- **Repeated anomaly hunting or rule-based scanning** → `pattern-detection`177- **Dashboard construction / BigQuery-connected reporting** → `looker-studio-bigquery`178- **Raw log triage before dataset shaping** → `log-analysis`179- **Repo/code investigation to find instrumentation or metric definitions** → `codebase-search`180181## Examples182183### Example 1: Experiment analysis184**Prompt:**185> Analyze this CSV export and tell me what changed after the pricing experiment.186187**Good response shape:**188- define baseline vs experiment window189- check data coverage and segment completeness190- report overall delta plus segment breakdown191- identify strongest likely drivers and caveats192193### Example 2: Marketing + product analysis194**Prompt:**195> We have app event logs and marketing spend by channel; find the main retention and CAC patterns.196197**Good response shape:**198- separate acquisition and retention metrics199- compare rate and volume by channel/cohort200- note trust limits if joins or attribution windows are unclear201- summarize high-leverage channel differences202203### Example 3: Game telemetry analysis204**Prompt:**205> Review this gameplay telemetry extract and summarize balance issues and suspicious outliers.206207**Good response shape:**208- map events to gameplay metrics209- compare player/build/weapon/level segments210- separate broad balance patterns from suspicious outliers211- route repeated anomaly detection to `pattern-detection` if needed212213### Example 4: PM / ops export triage214**Prompt:**215> I exported a dashboard to CSV; help me explain the KPI drop for leadership.216217**Good response shape:**218- start with trust checks on the export219- identify the metric, time window, and comparison baseline220- produce a concise leadership-ready memo with evidence and caveats221222## Best practices2231. Start from the **decision question**, not the chart type.2242. Run **data-quality checks before interpretation**.2253. Always include **sample size / denominator context** when comparing segments.2264. Prefer the **cheapest sufficient lane** instead of defaulting to heavy notebooks.2275. Separate **observation, interpretation, and caveat** so the analysis stays honest.2286. Route dashboard-building and anomaly-detection work to adjacent specialist skills when they become the real task.229230## References231- [Project Jupyter](https://jupyter.org/)232- [Pandas getting started tutorials](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html)233- [DuckDB Jupyter guide](https://duckdb.org/docs/stable/guides/python/jupyter)234- [GA4 share & export reports](https://support.google.com/analytics/answer/9317657?hl=en)235236## Output format237Use a brief, findings-first summary with trust level, key evidence, caveats, and explicit next actions or handoffs.