Skill detail
explore-data
Profiles and explores a dataset to understand shape, quality, and patterns: row/column structure, null rates, distributions, cardinality, and data quality flags. Directly serves the data understanding and preparation facets.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
--- name: explore-data description: Profile and explore a dataset to understand its shape, quality, and patterns. Use when encountering a new table or file, checking null rates and column distributions, spotting data quality issues like duplicates or suspicious values, or deciding which dimensions and metrics to analyze. argument-hint: "<table or file>" --- # /explore-data - Profile and Explore a Dataset > If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md). Generate a comprehensive data profile for a table or uploaded file. Understand its shape, quality, and patterns before diving into analysis. ## Usage ``` /explore-data <table_name or file> ``` ## Workflow ### 1. Access the Data **If a data warehouse MCP server is connected:** 1. Resolve the table name (handle schema prefixes, suggest matches if ambiguous) 2. Query table metadata: column names, types, descriptions if available 3. Run profiling queries against the live data **If a file is provided (CSV, Excel, Parquet, JSON):** 1. Read the file and load into a working dataset 2. Infer column types from the data **If neither:** 1. Ask the user to provide a table name (with their warehouse connected) or upload a file 2. If they describe a table schema, provide guidance on what profiling queries to run ### 2. Understand Structure Before analyzing any data, understand its structure: **Table-level questions:** - How many rows and columns? - What is the grain (one row per what)? - What is the primary key? Is it unique? - When was the data last updated? - How far back does the data go? **Column classification** — categorize each column as one of: - **Identifier**: Unique keys, foreign keys, entity IDs - **Dimension**: Categorical attributes for grouping/filtering (status, type, region, category) - **Metric**: Quantitative values for measurement (revenue, count, duration, score) - **Temporal**: Dates and timestamps (created_at, updated_at, event_date) - **Text**: Free-form text fields (description, notes, name) - **Boolean**: True/false flags - **Structural**: JSON, arrays, nested structures ### 3. Generate Data Profile Run the following profiling checks: **Table-level metrics:** - Total row count - Column count and types breakdown - Approximate table size (if available from metadata) - Date range coverage (min/max of date columns) **All columns:** - Null count and null rate - Distinct count and cardinality ratio (distinct / total) - Most common values (top 5-10 with frequencies) - Least common values (bottom 5 to spot anomalies) **Numeric columns (metrics):** ``` min, max, mean, median (p50) standard deviation percentiles: p1, p5, p25, p75, p95, p99 zero count negative count (if unexpected) ``` **String columns (dimensions, text):** ``` min length, max length, avg length empty string count pattern analysis (do values follow a format?) case consistency (all upper, all lower, mixed?) leading/trailing whitespace count ``` **Date/timestamp columns:** ``` min date, max date null dates future dates (if unexpected) distribution by month/week gaps in time series ``` **Boolean columns:** ``` true count, false count, null count true rate ``` **Present the profile as a clean summary table**, grouped by column type (dimensions, metrics, dates, IDs). ### 4. Identify Data Quality Issues Apply the quality assessment framework below. Flag potential problems: - **High null rates**: Columns with >5% nulls (warn), >20% nulls (alert) - **Low cardinality surprises**: Columns that should be high-cardinality but aren't (e.g., a "user_id" with only 50 distinct values) - **High cardinality surprises**: Columns that should be categorical but have too many distinct values - **Suspicious values**: Negative amounts where only positive expected, future dates in historical data, obviously placeholder values (e.g., "N/A", "TBD", "test", "999999") - **Duplicate detection**: Check if there's a natural key and whether itRead the full source on GitHub (opens external page)