You are viewing v1 of 1. Go to the current version · All versions

Exploratory analysis plan for a new dataset

Turn a dataset description into a step-by-step exploration plan with checks, hypotheses and the first charts to make.

Change note: Initial version

Prompt

I'm about to explore a dataset and want a plan before I open any tools.

Dataset description:
{{dataset_description}}

The business question or goal: {{goal}}
Tools I'll use: {{tool}}
My experience level: {{experience}}

Create an exploratory analysis plan with these sections:
1. Assumptions: what you are assuming about the data, stated explicitly. If something critical is missing (grain of a row, time range, how it was collected), list it under "Questions to answer first" instead of guessing.
2. Data health checks: 6-8 specific checks in the order I should run them (row grain, duplicates, missing values, impossible values, date coverage, join keys, units), each with what a problem would look like.
3. Univariate and bivariate exploration: which columns to profile first and which pairs of columns to compare, tied to the goal.
4. Hypotheses: 4-5 testable hypotheses related to the goal, each with the cut of data that would confirm or refute it.
5. First five charts: chart type, axes, and what a surprising result would tell me.
6. Pitfalls: biases or traps specific to this kind of data (survivorship, seasonality, selection effects, etc.).
7. Stopping point: how I will know the exploration is done and what to hand over.

Where useful, include a short {{tool}} snippet or command. Keep the whole plan under 700 words and use plain language suited to a {{experience}} analyst.

Variables

  • {{dataset_description}}Dataset descriptionlong

    Default: An e-commerce orders table with about 400k rows from Jan 2023 to Jun 2024. Columns: order_id, customer_id, order_date, country, product_category, quantity, unit_price, discount_pct, shipping_days, returned (yes/no).

    Columns, row count, date range, source. Rough is fine.

  • {{goal}}Goal or questiontext

    Default: Understand why return rates rose in the last two quarters

  • {{tool}}Toolselect

    Options: Python (pandas), R, Excel, Google Sheets, SQL, Tableau or Power BI

    Default: Python (pandas)

  • {{experience}}Experience levelselect

    Options: beginner, intermediate, advanced

    Default: intermediate

Example output

**1. Assumptions**
- One row = one order line, not one order. Return status is recorded at return time.
- All prices are in one currency.
**Questions to answer first**: Does order_id repeat? Is the return window fixed? Were categories added or dropped in the period?

**2. Data health checks (in order)**
1. Row grain: df.order_id.is_unique. If False, decide whether to aggregate to orders.
2. Duplicates: df.duplicated().sum(). Exact duplicates inflate revenue and returns.
3. Missing values: df.isna().mean().sort_values(). Flag columns above 5%.
4. Impossible values: quantity <= 0, unit_price <= 0, discount_pct > 100, shipping_days < 0.
5. Date coverage: orders per week from Jan 2023 to Jun 2024. Gaps or spikes suggest a logging change.
6. Return consistency: returned = yes with no shipping_days is suspicious.
7. Join keys: customer_id nulls or formats that will break a later join.

**3. Exploration**: profile returned, product_category, discount_pct, shipping_days first. Compare returned against each of them, then country and customer_id (repeat returners).

**4. Hypotheses**
- One category drives the rise (return rate by category by quarter).
- Heavy discounting attracts low-intent buyers (rate by discount band).
- Slow shipping drives returns (rate by shipping_days bucket).
- Country mix shifted, behaviour did not (rate and share by country over time).

**5. First five charts**
1. Line: weekly return rate. A step points to a process change, a slope to mix.
2. Stacked bar: orders by category per quarter.
3. Heatmap: return rate by category x quarter.
4. Bar: return rate by discount band.
5. Box plot: shipping_days, returned vs not.

**6. Pitfalls**: recent orders have not had time to be returned (right-censoring), which can hide or fake a trend. Watch seasonality, since Q4 and January returns are always higher.

**7. Stopping point**: one or two segments explain at least 70% of the rise. Hand over a one-page summary with the charts and open questions.

Notes

It forces assumptions and health checks before analysis, and every hypothesis is tied to a specific cut of data. Add a sample of the first 5 rows to the description for more precise checks.