← All skills
data-quality-auditor
Use when checking data quality, profiling a dataset, hunting outliers or missing values, or validating data before analysis or model training.
About this skill
Use when checking data quality, profiling a dataset, hunting outliers or missing values, or validating data before analysis or model training.
SKILL.md
data-quality-auditor.SKILL.mdPlace it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review the contents and run it in a controlled environment first.
--- name: data-quality-auditor description: Use when checking data quality, profiling a dataset, hunting outliers or missing values, or validating data before analysis or model training. category: Engineering version: 1.0.0 tools: [] --- # Data Quality Auditor Systematically assess dataset health, surface hidden issues that corrupt downstream analysis, and prescribe prioritized fixes. Move fast, think in impact, and never let "good enough" data quietly poison a model or dashboard. **Use when:** checking data quality, profiling a dataset, hunting outliers or missing values, or validating data before analysis or model training. ## Entry points **Full audit (new dataset):** profile shape, types, completeness, and distributions; classify missingness patterns (MCAR / MAR / MNAR); flag anomalies with IQR and Z-score methods; inspect referential integrity, duplicate rows, and logical constraints across columns; assign a Data Quality Score and produce the remediation plan. **Targeted scan (specific concern):** ask what broke, when it started, and what changed upstream; focus analysis on the suspect columns only; compare distributions against a known-good baseline if one exists; trace the issue to root cause (source system, ETL transform, ingestion lag). **Ongoing monitoring setup:** identify the 5–8 critical columns driving key metrics; define thresholds (acceptable null %, outlier rate, value domain); produce a monitoring checklist and alerting logic; schedule checks at ingestion cadence. ## What a profile computes A full profile reports, per column: null %, unique count, top values, min/max/mean/std; flags constant columns, high-cardinality text fields, and mixed types; and rolls all of it into the Data Quality Score below. Missingness analysis adds: a null co-occurrence pattern across columns, classification into random / systematic / correlated, an imputation-strategy recommendation per column (drop / mean / median / mode / forward-fill / flag), and an estimate of downstream impact if the missingness is ignored. Outlier detection uses three methods — IQR (robust, non-parametric), Z-score (assumes normal distribution), and Modified Z-score (Iglewicz-Hoaglin, robust to skew) — reporting per-column outlier count, %, and boundary values, and flagging whether outliers look like data errors versus legitimate extremes. ## Data Quality Score (DQS) A 0–100 composite across five weighted dimensions — report it at the top of every audit: | Dimension | Weight | Measures | |---|---|---| | Completeness | 30% | Null/missing rate across critical columns | | Consistency | 25% | Type conformance, format uniformity, no mixed types | | Validity | 20% | Values within expected domain (ranges, categories, regexes) | | Uniqueness | 15% | Duplicate rows, duplicate keys, redundant columns | | Timeliness | 10% | Timestamp freshness, lag from source system | Thresholds: 85–100 production-ready; 65–84 usable with documented caveats; 0–64 remediation required before use. ## Proactive risk triggers Surface unprompted whenever spotted: silent nulls (encoded as `0`, `""`, `"N/A"`, `"null"` strings — these break completeness metrics until caught); leaky timestamps (future dates, pre-launch dates, timezone mismatches corrupting time-series joins); cardinality explosions (free-text fields with thousands of unique values masquerading as categorical, breaking one-hot encoding silently); duplicate keys (non-unique PKs invalidate joins/aggregations); distribution shift (current distribution diverges >2σ on mean/std from baseline — signals an upstream pipeline change); correlated missingness (nulls concentrated in a time range, segment, or region — evidence of MNAR, not random dropout). ## Remediation playbook **Missing values** by null %: <1% → drop rows or impute median/mode; 1–10% → impute and add a binary `col_was_null` indicator; 10–30% → impute cautiously, investigate root cause, document the assumption; >30% → flag for domain review, don't impute blindly, consider dropping the column. **Outliers:** likely data error (physically impossible value) → cap, correct, or drop; legitimate extreme (valid but rare) → keep, document, consider a log transform for modeling; unknown → flag, never silently remove. **Duplicates:** confirm the uniqueness key with the data owner before deduplicating; prefer `keep='last'` for event data (most recent state wins); prefer `keep='first'` for slowly-changing-dimension tables. ## Confidence tagging Tag every finding: Verified (confirmed by inspection or domain owner), Likely (strong signal, not fully confirmed), Assumed (inferred from patterns, needs domain validation). Never auto-remediate an Assumed finding without human confirmation. ## Reporting standard Structure every audit as: **Bottom line** (DQS score + one-sentence verdict, e.g. "DQS: 61/100 — remediation required before production use"), **What** (issues ranked by severity × breadth), **Why it matters** (business/analytical impact), **How to act** (specific, ordered remediation steps). **When NOT to use this skill:** designing or optimizing the database schema itself, building the ETL pipeline, or validating a financial model's output — those need a schema-design, engineering, or financial-analysis skill respectively.
Install
Syntic App
- 1Create a dedicated folder for this skill in your local skills library.
- 2Place SKILL.md into that folder.
- 3Restart Syntic and invoke this skill on matching tasks.
Syntic Code (CLI)
- 1Save SKILL.md in your local Syntic Code skills directory.
- 2Keep related files in the same skill folder.
- 3Run in a safe environment and validate outputs.