Messy Data Generator
Create realistic messy datasets with controllable data quality issues: nulls, duplicates, outliers, whitespace, type mismatches, and malformed values. Perfect for testing data pipelines and validation logic. This data is synthetic and not real.
Also known as: bad data · quality testing · data validation
seeded · synthetic data
Output
About this tool, tips & examples
What it does
The Messy Data Generator produces datasets that are dirty on purpose. Pick which quality issues to inject — nulls, duplicate rows, outliers, whitespace pollution, type mismatches, malformed values — and at what rate, across up to 10,000 rows. It’s a controlled laboratory for the problems real data throws at your pipeline uninvited.
Common use cases
- ETL hardening — verify that transforms survive nulls in key columns, duplicated rows, and numbers arriving as strings.
- Data-cleaning development — build and test dedupe, trim, and coercion logic against known quantities of mess.
- Validation QA — confirm every injected issue is caught, reported, and handled — a checklist you can actually score.
- Interview and training exercises — realistic cleaning tasks with a reproducible answer key (the seed).
Settings
- Rows — 1 to 10,000.
- Issues to inject — multi-select: nulls, duplicates, outliers, whitespace, type mismatches, malformed values — any combination.
- Issue rate — 0 to 1, how frequently issues appear; 0.1 is lightly dirty, 0.5 is a disaster you can bill for.
- Seed — identical seed + settings = identical mess, so cleaning code can be tested against a stable target.
Privacy note
Data is generated locally in your browser and never uploaded. It’s synthetic through and through — fake records made deliberately worse — and represents no real people or systems.
FAQ
Why generate bad data on purpose? Because production will. Pipelines tested only on clean fixtures fail on first contact with reality; injecting the mess before launch converts outages into unit tests.
Can I isolate one issue type? Yes — select a single issue and rate to test one defense at a time, then combine them for integration-level chaos.
How do I know what was injected? The seed is your answer key: the same settings always produce the same issues in the same places, so expected-vs-actual comparisons are exact.