Generate an e-commerce test dataset
This worked example generates 1,000 synthetic orders for testing an ingestion or analytics pipeline. It uses Ground's rule-based engine, a fixed seed and explicit distributions. Download the data and specification to inspect the output or reproduce it locally.
By the Ground team · 1,000 rows · 10 columns · Seed 991
The same specification, row count and seed, in your own editable copy. Sign in to save it; preview is free and normal credits apply to exports.
Download the actual output
No signup required. All records are synthetic. The manifest contains file sizes and SHA-256 checksums so you can verify your copy.
Start with a clear request
This request describes the intent. The downloadable specification records the exact settings used to generate the files.
Create 1,000 e-commerce orders with unique order IDs, customer names and emails, products, quantities, long-tailed prices and order dates. Use delivered, shipped, processing, returned and cancelled statuses with weights 78, 10, 5, 5 and 2. Leave about 12% of ratings missing. No AI-written reviews.
Inspect the first eight rows
These are the first rows of the downloadable files. CSV preserves decimal formatting; JSONL carries native numbers, booleans and nulls.
| Order ID | Product | Quantity | Unit price | Status | Rating |
|---|---|---|---|---|---|
| ORD-100001 | Bespoke Metal Keyboard | 1 | 212.27 | delivered | 4 |
| ORD-100002 | Awesome Wooden Chicken | 4 | 238.94 | delivered | 3 |
| ORD-100003 | Generic Silk Pants | 4 | 51.73 | delivered | 3 |
| ORD-100004 | Tasty Gold Shirt | 2 | 128.25 | shipped | 2 |
| ORD-100005 | Unbranded Rubber Fish | 3 | 185.03 | delivered | 5 |
| ORD-100006 | Recycled Concrete Table | 2 | 144.09 | delivered | 5 |
| ORD-100007 | Soft Wooden Shoes | 2 | 36.53 | returned | 5 |
| ORD-100008 | Refined Steel Mouse | 3 | 23.32 | shipped | 4 |
Check the measured output
These counts are calculated from the full downloadable dataset. Probability settings describe sampling rates, so observed percentages can differ.
- Unique order IDs
- 1000
- Missing ratings
- 115 / 1,000 (11.50%)
- Status: delivered
- 767 / 1,000 (76.70%)
- Status: shipped
- 106 / 1,000 (10.60%)
- Status: processing
- 56 / 1,000 (5.60%)
- Status: returned
- 50 / 1,000 (5.00%)
- Status: cancelled
- 21 / 1,000 (2.10%)
Use it in your workflow
- Download the CSV and load it into a disposable test table.
- Check the unique order IDs, numeric types and allowed statuses before exercising your pipeline.
- Verify that blank CSV ratings are treated as missing; the JSONL version encodes them as null.
- Run your own aggregations and assertions. Save this artifact when you need an exact regression fixture.
Understand the schema
Order ID: sequenceCustomer: fakerEmail: fakerProduct: fakerCategory: fakerQuantity: integerUnit price: numberOrdered at: dateStatus: categoryRating: category, missing probability 0.12
Verify the download yourself
Download the verification script. It uses Python's standard library to download the files, verify their checksums, count records and check unique identifiers. No account or extra package is required.
curl -fsS https://useground.dev/examples/verify-example.py -o verify-example.py python3 verify-example.py ecommerce-test-data
Recreate the dataset through the API
With a Ground account and API key, send the downloaded specification in the spec field to create a dataset. Then start an export with the returned dataset ID. This uses normal export credits (1 for one export of this rule-based example). See the API reference for job polling and download.
# Requires curl and jq. Set GROUND_API_KEY to your own API key.
curl -fsS https://useground.dev/examples/ecommerce-test-data/spec.json -o spec.json
jq '{spec: .}' spec.json > request.json
curl -fsS https://useground.dev/api/datasets -H "Authorization: Bearer $GROUND_API_KEY" -H "Content-Type: application/json" --data-binary @request.json
# Replace DATASET_ID with the id returned above.
curl -fsS https://useground.dev/api/jobs -H "Authorization: Bearer $GROUND_API_KEY" -H "Content-Type: application/json" -d '{"datasetId":"DATASET_ID","format":"jsonl"}'The files were regenerated and checked against the specification before publication. Keep the downloaded fixture when you need exact long-term output: future engine versions can change generated values. The manifest records the seed and an engine-source fingerprint.
Limitations
This is a designed simulation, not a model fitted to a merchant's production data. Product and department values are independently generated, and each row is an order rather than a line item. No tax, inventory, returns workflow or accounting totals are modeled. Extend the schema for those tests.
Build your own version
Open this example in Ground to adapt this exact specification, or use the API and Python SDK. Read the workflow guide and Ground versus a Faker script to choose an approach.