$19 one-time, plus applicable tax
Buy now: $19Test dataset · digital download (17 MB ZIP)
Please note. This is a digital download: after you pay on Stripe you are taken to a private download page, with no account needed. Links last 72 hours and the page can be re-opened for 30 days.

About this test dataset
A complete fictional online store across 33 months: nine related tables with consistent keys, seasonal order volume, repeat buyers, multi-item baskets, free-shipping thresholds, cancellations, partial returns and refunds. Totals reconcile exactly, so it works for testing reports and dashboards, not just filling tables. Comes in a small set (fast to load) and a full set (for realistic query plans).
- 9 tables in CSV, NDJSON and SQL (schema with keys + data)
- Small set and full set (hundreds of thousands of rows)
- Every total, foreign key and date sequence checked automatically
- Emails at example.com only, phones in 555-0100–0199, invented people and towns
Free table samples
Download the first rows of a few tables to check the format: customers.csv — first 25 rows · orders.csv — first 25 rows · order_items.csv — first 25 rows
A look at the data
First rows of a few tables from the small set.
customers (1,000 rows in the small set, 25,000 in the full set)
| customer_id | first_name | last_name | phone | created_at | marketing_opt_in | is_test_data | |
|---|---|---|---|---|---|---|---|
| 1 | Clara | Sutton | clara.sutton657@example.com | 2024-07-08 19:08:51 | False | True | |
| 2 | Greta | Dawson | greta.dawson517@example.com | +1-312-555-0107 | 2024-08-15 11:24:04 | True | True |
| 3 | Amara | Patel | amara.patel91@example.com | +1-201-555-0147 | 2024-04-22 11:05:28 | False | True |
| 4 | Liam | Alder | liam.alder751@example.com | +1-303-555-0199 | 2025-07-01 16:29:14 | True | True |
| 5 | Pavel | Silva | pavel.silva671@example.com | 2024-07-18 12:23:48 | False | True | |
| 6 | Ada | Knox | ada.knox833@example.com | 2024-06-22 07:13:51 | False | True | |
| 7 | Maya | Shah | maya.shah911@example.com | +1-212-555-0116 | 2025-09-23 09:06:48 | False | True |
| 8 | Ravi | Foster | ravi.foster753@example.com | +1-206-555-0124 | 2024-08-16 14:35:11 | False | True |
orders (1,907 rows in the small set, 48,924 in the full set)
| order_id | order_number | customer_id | shipping_address_id | status | placed_at | subtotal | shipping_fee |
|---|---|---|---|---|---|---|---|
| 1 | ORD-100001 | 1 | 1 | delivered | 2026-08-05 15:48:19 | 50.9 | 6.95 |
| 2 | ORD-100002 | 2 | 2 | delivered | 2026-06-07 21:10:12 | 197.98 | 0.0 |
| 3 | ORD-100003 | 3 | 4 | delivered | 2026-01-07 09:20:13 | 90.92 | 0.0 |
| 4 | ORD-100004 | 4 | 5 | delivered | 2026-04-01 13:50:31 | 136.98 | 0.0 |
| 5 | ORD-100005 | 5 | 6 | delivered | 2025-03-11 10:45:24 | 13.95 | 8.95 |
| 6 | ORD-100006 | 5 | 6 | delivered | 2026-04-30 07:45:43 | 245.96 | 0.0 |
| 7 | ORD-100007 | 8 | 9 | delivered | 2025-01-16 21:45:11 | 13.99 | 4.95 |
| 8 | ORD-100008 | 10 | 12 | delivered | 2025-10-09 22:38:58 | 158.0 | 0.0 |
order_items (3,669 rows in the small set, 96,944 in the full set)
| order_item_id | order_id | product_id | quantity | unit_price | discount | line_total |
|---|---|---|---|---|---|---|
| 1 | 1 | 108 | 1 | 38.95 | 0.0 | 38.95 |
| 2 | 1 | 64 | 1 | 11.95 | 0.0 | 11.95 |
| 3 | 2 | 70 | 2 | 98.99 | 0.0 | 197.98 |
| 4 | 3 | 143 | 3 | 23.99 | 0.0 | 71.97 |
| 5 | 3 | 53 | 1 | 18.95 | 0.0 | 18.95 |
| 6 | 4 | 143 | 1 | 23.99 | 0.0 | 23.99 |
| 7 | 4 | 56 | 1 | 99.0 | 0.0 | 99.0 |
| 8 | 4 | 116 | 1 | 13.99 | 0.0 | 13.99 |
In the download
- small/ and full/ sets
- csv/ (one file per table)
- json/ (NDJSON)
- schema.sql + data.sql
- SCHEMA.md
- License.txt
$19 one-time, plus applicable tax
Buy now: $19Free guide: Realistic Test Data for an Online Store: What "Realistic" Actually Means
Questions
Is any of this real customer data?
No. Every person, address and company is generated. Names are random first/last combinations, towns and streets are made up, emails use the reserved example.com domain and phones use the fictional 555-01xx range.
Which databases does the SQL work with?
The schema and inserts use portable SQL types (INTEGER, TEXT, NUMERIC, BOOLEAN, DATE, TIMESTAMP). They load as-is into SQLite and PostgreSQL. For anything else, use the CSV files with your database's import tool.
What does "adds up" mean?
Order subtotals equal the sum of their line items; totals equal subtotal + shipping + tax; refunds match returned items; deliveries come after shipping; no customer orders before signing up. The consistency checks are listed in SCHEMA.md.
Can I use it in a course or a product demo?
Yes, including commercial courses, demos and seed data inside your app. You just can't resell the dataset itself as a dataset.
Is this a subscription?
No. One payment of $19 and the files are yours to keep.
What if it does not work for me?
Ask within 14 days of purchase for a full refund. See the refund policy.
Sold by Quietcog. Support: gb1@mail.grokbot.com. See also the terms, refund policy and privacy policy.