# Dataset Profiler

> Dataset Profiler is an Agent Skill for documents published in the oxbshw/LLM-Agents-Ecosystem-Handbook repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Use when first encountering a new dataset — produces a structured profile (schema, missingness, distributions, outliers, gotchas) before any analysis.

- Skill name: `dataset-profiler`
- Category: [Documents](https://www.openparable.com/skill/documents/1)
- Source: https://github.com/oxbshw/LLM-Agents-Ecosystem-Handbook/blob/HEAD/skills/catalog/dataset-profiler/SKILL.md
- Repository: oxbshw/LLM-Agents-Ecosystem-Handbook (533 GitHub stars when collected)

## SKILL.md

# Dataset Profiler

## When to use
- A new dataset arrives and you need to understand it before using it
- Before reproducing an analysis that referenced a dataset
- When data quality is suspect ("the chart looked wrong")

## When NOT to use
- Streaming / online data (this is point-in-time)
- Sensitive PII without an explicit allow-list

## Inputs
| Name | Type | Required | Notes |
|---|---|---|---|
| `path` | path | yes | CSV / Parquet / JSONL |
| `target` | string | no | column of interest (gets extra distribution detail) |

## Outputs
`profile.md` with: Source, Schema, Missingness, Distributions, Outliers, Joins / keys, Gotchas, Open questions.

## Workflow
1. Load with the right reader (extension-detected); record row count, file size
2. Schema: column → dtype → nullable → example value
3. Missingness: % per column, top columns by missingness
4. Distributions: numeric (min, p50, p95, max, std), categorical (top-k, cardinality)
5. Outliers: flag rows beyond p99 + 3·IQR for numerics
6. Identify potential keys (unique columns) and join candidates
7. **Gotchas**: timezone columns, mixed encodings, suspicious all-zero rows, magic values (`-1`, `9999-12-31`)
8. **Open questions**: ambiguous columns / values that need owner input

## References
- [`references/profile-template.md`](references/profile-template.md)

## Success criteria
- Every column appears in Schema + Missingness
- Outliers section includes example rows
- Gotchas section is non-empty (real datasets always have some)

## Failure modes
- File too large to read in memory → switch to streaming + sampled stats; flag prominently
- Encoding fails → try common alternatives; if all fail, surface and stop

---

Source: https://www.openparable.com/skill/documents/dataset-profiler (OpenParable). Cite the canonical URL above.
