Evidence for researchers
Your first question: Will an analysis on the synthetic rows give the same answer, with honest uncertainty, as on the real data, and can I reproduce the file?
Short answer: the validity part isn't measured yet. The research-validity report (roadmap #7) is planned, not built, so Ground can't yet tell you whether a regression coefficient or a confidence interval computed on synthetic rows matches the real one. What it can show is how the data is made and measured, where each file came from, and that the same seed gives the same file.
Research validity: pending
| Measure | Result |
|---|---|
| Estimates and confidence intervals, real vs synthetic (how often the synthetic interval covers the real estimate) | pending first independent run |
| Effective sample size: how many real observations the synthetic rows are worth | pending first independent run |
| Utility of real plus synthetic rows against real rows alone | pending first independent run |
Methods
- Synthesizer. For an upload, several engines (copula and forest-partitioned mixtures, sequential trees, a causal-graph engine, flow matching, and optional GPU engines) are fitted on 90% of the training rows and scored on the rest by the same report users see; the best one wins only if it beats the copula by a point.
- Report. Column shapes, column pairs and a real-vs-synthetic classifier make the Overall score; utility is train-on-synthetic, test-on-real; privacy is four membership attacks, distance to closest record, attribute inference, singling out and a canary audit. Definitions and limits are in how to evaluate synthetic data quality.
- Assessments. Each new technique is prototyped behind an option and measured on held-back data before it ships. Two were measured no-go and aren't offered: failure-driven generation and a difficulty rubric.
- Known limits. Values stay within the range seen in the source; very fine interactions can be smoothed; the data keeps the source's biases unless you rebalance; default-mode privacy is measured, not guaranteed.
The full technical reference is docs/methods.md in Ground's repository, which isn't public yet.
Provenance
Every export gets a signed manifest next to the file: the dataset, model version and engine, settings, privacy guarantee, watermark columns and the file's SHA-256, signed by Ground. The API's provenance check confirms Ground issued a manifest and that it hasn't changed. Extensions of uploaded data also carry a statistical watermark in a few number columns, checkable through the API; it survives reordering and dropping rows, but not rounding the marked columns.
Same seed, same file
For designed datasets without AI-written text, generation is a pure function of the specification, the seed and the engine version: the same three give the same rows, whichever way an export is split into chunks. The worked examples publish the proof: download a file and compare its checksum, or regenerate it. AI-written text comes from a language model and isn't covered by this guarantee, and neither are models fitted to uploads, which this check doesn't test.
| Example, file | Seed | SHA-256 |
|---|---|---|
| Generate an e-commerce test dataset, data.csv | 991 | d08df533c440dc988b5637afeedd70f84f86aa7714c7492fbbfc5679e39b4772 |
| Generate an e-commerce test dataset, data.jsonl | 991 | 9440833e5924ee5b4cda8ae124f8a10a755965443f8a8b45450dbe5faa2682d9 |
| Generate an e-commerce test dataset, spec.json | 991 | 2940bc363b451eafe6b9f64417f3bc31d2080bd7a6a3fc86ef64cd173bfe2a6f |
| Generate transactions with rare fraud labels, data.csv | 31337 | ef859b56f8c95f1cc8fe9facbe030209e4266370d82b22f9a7d12f621495dd05 |
| Generate transactions with rare fraud labels, data.jsonl | 31337 | 2a7b292e3f343193f774a94c1a57601b8133fe540c4431bc8fdbf42375459aa2 |
| Generate transactions with rare fraud labels, spec.json | 31337 | 9691703521f68aca8d940db536d1c73fc9b51a59acd4d368fe83b68f139ce3e1 |
- How it is checked
- The example files are regenerated and compared byte for byte (
npm run examples:generate -- --check); each manifest records the seed and a fingerprint of the engine source. Tests pin output hashes for every template, and check that rows don't change when an export is cut into chunks or when an unrelated column is added. - Limit
- A future engine version can change generated values for the same seed; keep the downloaded file when you need exact long-term output.
- Benchmarks
- The benchmark run records its split and seeds but not yet its commit, machine and package versions, and its harness is in Ground's private repository, so it isn't independently reproducible yet. See the benchmark walkthrough.
Raw outputs
- evidence.json: every number on these pages, with its source and status (602 rows)
- benchmark-results.json: the six-table benchmark run
- rare-cases.json: rare cases in the preview and exact counts
- defects-results.json: defects on demand and edge cases
- failures-results.json and failures-results-boost3.json: failure-driven generation
- coverage-results.json: taxonomy coverage and the difficulty rubric