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.
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. |
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.
About one customer per 8 rows, so a 5,000-row file has ~600 shoppers with repeat orders distributed by segment.
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.
No — generation is 100% in your browser.