Skip to content

Synthetic Test Data Generator

A field spec in, reproducible rows out as JSON, JSONL, CSV, SQL or TypeScript — seeded, so a link to this page regenerates the identical dataset.

Rows generated
8

8 field(s), 2,164 characters, an estimated 541 tokens if you paste the whole thing into a prompt.

Fields parsed
8
Spec lines that produced no field
0
Nullable fields
1
Fields marked unique
1
Output characters
2,164
Estimated tokens
≈ 541
Estimated tokens per row
≈ 68
Seed
orders-2026-08
What this assumes: the generator is seeded, so the same seed and spec always produce the same rows — that is what makes a link to this page reproduce a dataset rather than merely describe one. The names, words and email addresses come from three fixed lists of about 26 items each, shipped in this page: they are structurally realistic and statistically nothing at all, the people do not exist, and every address ends in example.com, which is reserved and cannot receive mail. Values are drawn independently per field, so nothing here reproduces a correlation your real data has. Everything on this page runs in your browser. Nothing you paste or open is uploaded, logged or sent anywhere.

Synthetic rows are for the things that do not depend on the data being true: filling a staging database, exercising a parser, checking that a prompt handles a null in the third column, or building a demo you can screenshot without redacting anything. For all of those, being able to regenerate the identical set from a seed in a URL is worth more than realism.

Where synthetic data quietly ruins things

Two places. The first is evaluation: a model scored on data drawn from independent uniform distributions is scored on a world where nothing correlates, and the score will not survive contact with production, where the cancelled orders cluster in one week and the long notes belong to the angry customers. The second is fine-tuning on model-generated text, which narrows a model towards its own habits. Neither is an argument against synthetic data; both are arguments against using it where you needed the truth.

What it is genuinely good for

Edge cases you cannot get from real data because real data does not contain them yet. Set a field to ?100 and every row has a null in it. Set a sentence 200..400 and see what your prompt does at the context limit. Set pick to one value and check the code that assumes variety. Those are the tests that catch the incident, and no production export will hand them to you.

Synthetic Test Data Generator · Multigrid