E-commerce Order Data Generator
Realistic online-store order lines with RFM-style customer segments (Champion → At-Risk), weekly and holiday seasonality, promotions, and lifelike return rates. A ready sample orders file for dashboards, RFM and cohort practice.
Example output — a peek before you generate
| order_date | customer | segment | product | quantity | unit_price | line_total |
|---|---|---|---|---|---|---|
| 2026-05-14 | Avery Park | Loyal | Wireless Earbuds | 1 | $100.48 | $90.43 |
| 2026-05-14 | Jordan Reyes | Champion | Rain Shell | 1 | $64.20 | $64.20 |
| 2026-06-21 | Casey Nguyen | New | Ceramic Mug | 2 | $11.90 | $23.80 |
| 2026-06-21 | Morgan Patel | At-Risk | Yoga Mat | 1 | $22.50 | $22.50 |
A real generated file has 15 columns and up to 200,000 rows; this is a 7-column, 4-row taste of the shape. Set your row count below and click Generate for your own.
Generate the dataset
Save / load scenario (stored only in this browser)
Quick-start presets
What's in this dataset
Each row is one order line (one product within an order). Orders span the last 12 months.
| Column | Type | Description |
|---|---|---|
| order_date | date | Day the order was placed. |
| order_id | integer | Order identifier; lines in one order share it. |
| customer_id / customer | int / text | The shopper. |
| segment | text | RFM-style: Champion, Loyal, Regular, New, At-Risk. |
| channel | text | Acquisition channel (Organic, Paid Search, Email, …). |
| product / category | text | SKU and its department (Apparel, Electronics, …). |
| quantity / unit_price | number | Units and list price. |
| discount_pct | number | Promo or loyalty discount applied. |
| line_total | number | quantity × price × (1 − discount). |
| returned | 0/1 | Whether the line was returned (higher for At-Risk). |
| anomaly | 0/1 | Present only with injection on; flags fraud-like orders. |
Why it's realistic
Customers are assigned RFM-style segments that set how often they buy and how much: Champions and Loyal shoppers order frequently and respond to loyalty discounts, while At-Risk customers buy rarely and return more. Demand flows through a seasonality curve — a weekend lift, a strong November/December holiday peak, and a January lull — so daily revenue has the shape analysts expect to see. Promotions apply discounts in bursts, and returns track segment behavior. The outcome is an orders table where RFM analysis, cohort retention, channel attribution, and seasonality decomposition all return meaningful, defensible results instead of noise.
Good for
FAQ
How many customers are there?
About one customer per 8 rows, so a 5,000-row file has ~600 shoppers with repeat orders distributed by segment.
Does the data show seasonality?
Yes — generate ~12 months and the daily-revenue chart shows weekend lifts and a clear Q4 holiday peak. Use a fixed seed to reproduce the same curve.
Is anything uploaded?
No — generation is 100% in your browser.