From pmflow
Use this skill when the user asks to "analyze my data", "explore this dataset", "help me understand these numbers", "what does this data tell me", "find insights in this data", "investigate a metric drop", "help me with data analysis", "look at this CSV", "query my data", or needs help going from a data question to an actionable insight.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pmflow:data-insightsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide a PM through exploratory data analysis — from formulating the right question to loading data, running analyses, interpreting results, and verifying accuracy. Produces actionable insights, not just charts.
Guide a PM through exploratory data analysis — from formulating the right question to loading data, running analyses, interpreting results, and verifying accuracy. Produces actionable insights, not just charts.
Data analysis for PMs is not about writing perfect SQL or building dashboards — it's about asking the right questions and interpreting the answers correctly. The biggest mistake PMs make with data isn't technical — it's asking vague questions that produce vague answers. This skill prioritizes question quality over query complexity.
This skill works for PMs at different levels of data fluency. Detect the level from context and adapt:
PM who is new to data analysis: Needs more guidance on what kinds of questions data can answer, how to interpret results, and what the numbers actually mean. Explain metrics, suggest follow-up questions, and flag common misinterpretations. Don't assume they know what a cohort is or why correlation isn't causation.
PM who is comfortable with data: Needs less hand-holding, more structure and rigor. Focus on sharpening the question, suggesting non-obvious analyses, and challenging assumptions about what the data shows. Skip the basics.
When in doubt, start with a clarifying question about their experience rather than assuming either way.
Ask the PM:
Sharpen the question: Most PMs start with vague questions. Help them get specific:
The question should be specific enough that you'd know the answer if someone told you a number. If it's not, it's not specific enough.
Question hierarchy: If the PM has multiple questions, help them prioritize. Start with the question that most directly informs the decision. Other questions become follow-ups.
Help the PM figure out where the data lives and how to get it into the analysis.
Common data sources for PMs:
Loading approaches (from simplest to most powerful):
Upload a CSV or Excel file: The PM uploads the file directly. Simplest approach — works for most ad hoc analyses.
Paste data directly: For small datasets (< 100 rows), the PM can paste the data into the conversation. Quick and dirty but effective for small explorations.
Connect to a database via MCP: If available, connect directly to the data source. This enables real-time querying and avoids the export-upload cycle.
Before analyzing, understand the data:
If the PM can't answer these questions, help them explore: describe the dataset, count rows, check for nulls, look at value distributions. Understanding the data before analyzing it prevents garbage-in-garbage-out.
Before running the analysis, check the data quality. This step is often skipped and it's where most wrong conclusions come from.
Automated checks to run:
Report data quality to the PM: Before presenting any analysis, state what was found and cleaned. "I removed 47 duplicate rows and excluded 12 internal test accounts. The dataset covers Jan 1 - Mar 10 with no gaps."
If the data quality is poor (>20% missing values in key fields, significant duplicates, unclear definitions), flag this before proceeding. Bad data produces confident-looking charts that are wrong.
This is the core of the exploration. The approach depends on the question type.
For "what happened?" questions (metric changes, trends):
For "who are they?" questions (user segments, behavior patterns):
For "why is this happening?" questions (root cause, causation):
For "should we do X?" questions (decision support):
Visualization guidance:
Always label axes, include time ranges, and note sample sizes. A chart without context is decoration, not analysis.
Before presenting conclusions, verify the analysis. This step separates rigorous PMs from ones who share the first number they find.
Three levels of verification:
Sanity check: Do the numbers make sense? If the analysis says you have 10M users but you know the product has ~50K, something is wrong. Compare results against known benchmarks or existing dashboards.
Code review: If SQL or code was generated, review it. Common errors:
Alternative approach: For critical analyses, run the same question a different way. If two approaches give the same answer, confidence goes up. If they disagree, investigate why.
Ask the AI to explain its work: When code is generated, ask for a step-by-step explanation. This makes errors visible and helps the PM learn. "Can you walk me through what this query does, step by step?"
Raw numbers without interpretation are useless. This step turns data into insight.
For every finding, answer three questions:
Common interpretation traps to flag:
Great data analysis raises more questions than it answers. After the main analysis, suggest 2-3 follow-up explorations:
Connect follow-ups to the decision context from Step 1. Don't suggest analyses for curiosity's sake — suggest ones that would change the decision.
Produce the document in the user's chosen format (default: docx). If docx, use the docx skill. If pdf, use the pdf skill. If md, write as markdown. Use the following structure:
# Data Insights: [Question / Topic]
Date: [date]
Author: [PM name]
Data source: [where the data came from]
Data range: [time period covered]
## Question
[The specific question being investigated, sharpened from Step 1]
## Decision Context
[What decision this analysis informs]
## Data Quality Notes
- Records analyzed: [count]
- Data cleaning: [what was removed/fixed and why]
- Known limitations: [gaps, quality issues, caveats]
## Key Findings
### Finding 1: [headline — the insight, not the metric]
[Explanation with supporting data, visualizations, and context]
- So what: [why this matters]
- Compared to: [benchmark or historical context]
- Confidence: [high/medium/low — based on sample size, data quality, and methodology]
### Finding 2: [headline]
[...]
### Finding 3: [headline]
[...]
## Interpretation & Caveats
[What the data shows vs. what it doesn't. Causation vs. correlation flags. Alternative explanations. Survivorship bias risks. Small sample warnings.]
## Recommended Actions
1. [Action based on findings — connected to the decision context]
2. [Action]
3. [Action]
## Suggested Follow-Up Analyses
- [Follow-up question 1 — what it would clarify and why it matters]
- [Follow-up question 2]
- [Follow-up question 3]
Document tone: Findings should be written as insights, not as data descriptions. "Power users (>5 sessions/week) retain at 85% vs. 23% for casual users, suggesting that driving session frequency may be the highest-leverage retention strategy" — not "The retention rate for users with >5 sessions is 85% and for users with <5 sessions is 23%."
Starting with the data instead of the question: "I have this CSV, what can we learn?" produces unfocused analysis. Always start with "What decision are we trying to make?" and work backward to what data is needed.
Trusting the first number: The first analysis is usually wrong — or at least incomplete. Always verify, segment, and check for confounders before sharing findings.
Conflating correlation and causation: The most common and most dangerous mistake in PM data analysis. Always flag it. Always suggest experiments when causation matters.
Ignoring sample size: A 50% conversion rate based on 4 users is meaningless. Always report sample sizes alongside percentages.
Skipping data quality: Analyzing dirty data produces confident-looking wrong answers. Spend time understanding and cleaning the data before drawing conclusions.
Over-aggregating: Averages hide everything interesting. Segment by user type, time period, platform, geography — the interesting patterns are usually in the segments, not the aggregate.
Analysis without action: A beautiful chart that doesn't lead to a decision or next step was a waste of time. Every analysis should end with "therefore we should..."
Presenting data without context: "We had 10,000 signups last month" means nothing without context. Is that up or down? Compared to what? Is it good for this stage? Always provide a reference point.
Confirmation bias: Looking for data that supports a pre-existing belief and stopping when you find it. The most valuable analyses are the ones that surprise you. Actively look for data that contradicts the hypothesis.
Not documenting methodology: If someone asks "how did you get this number?" and you can't reproduce it, the analysis is unreliable. Always save the queries, note the filters, and document the approach.
Data doesn't speak for itself — it needs an interpreter. The PM's job is not to produce charts but to produce insights that drive decisions. A single well-interpreted finding that changes a product decision is worth more than a hundred dashboards that nobody reads.
npx claudepluginhub pe-menezes/pmflow --plugin pmflowTransforms CSV, spreadsheet, or database data into executive-ready reports with visualizations, metrics, and trend analysis for leadership.
Runs a structured product data analysis covering metric deep-dives, funnel analysis, or cohort studies. Answers what changed, why, impact, and recommended action.
Answers product questions via PostHog/Amplitude analytics — trends, funnels, retention, paths. Saves results to DATA.md for downstream PM challenges and PRDs.