data-profilinglisted
Install: claude install-skill Methasit-Pun/data_engineer_claude_skills
# Data Profiling & Mapping
You cannot model data you don't understand. Profiling is the **one-time investigation** that turns "here's a CSV/table" into "here's exactly what's in it and how it should be shaped." Do this before drawing a single ER box.
## Where this sits (boundaries)
- **vs. [[data-reliability]] (data-quality):** profiling is exploratory, run once to *understand* the data. Data-quality is recurring, run every load to *guard* it. Same checks, different lifecycle stage.
- **vs. [[data-modeling]] (schema-design):** profiling *discovers the actual data*; schema-design *chooses the model* (star/SCD/grain) using what you found here.
- **Reuse the code:** `utils/quality.py` and `utils/keys.py` already implement most of these checks — call them, don't re-implement.
## The profiling checklist — run all of it
### Structure
- [ ] Row count and column count
- [ ] Column names and declared vs. actual data types (strings hiding numbers/dates?)
- [ ] Encoding, delimiter, header presence for files
### Completeness
- [ ] Null / empty-string / sentinel (`-1`, `9999`, `"N/A"`, `"unknown"`) rate per column
- [ ] Columns that are entirely null or entirely constant (drop candidates)
### Cardinality & keys
- [ ] Distinct count per column
- [ ] Candidate unique key — single column, or composite (`utils/keys.find_unique_key`)
- [ ] Duplicate rows on the candidate key (`utils/keys.get_duplicate_rows`)
### Distributions & ranges
- [ ] Min / max / typical range for numerics and da