FICTIONAL RETAIL DATA — DATA DICTIONARY

RAW GRAIN
One delivered record describing an order snapshot. Exact redeliveries and invalid
records are deliberately included. The cleaned grain is one accepted row per order.

ORDERS_RAW.CSV
order_id: text business key; required and unique after exact redelivery removal.
customer_id: text dimension key; missing is allowed and means anonymous/unknown.
ordered_at: timestamp with explicit UTC offset; parse to aware UTC instants.
channel: organic, paid, email, or unknown after trimming and lowercase normalization.
units: positive whole number of identical units represented by this order record.
unit_price_paise: nonnegative whole paise per unit; INR 1 = 100 paise.
discount_paise: whole-order discount in paise, between zero and gross.
refunded_paise: recorded refund in paise, between zero and discounted gross.
status: completed, returned, or cancelled.

DERIVED FIELDS
gross_paise = units * unit_price_paise
net_paise = gross_paise - discount_paise - refunded_paise, except cancellations = 0
Amounts exclude tax, shipping revenue, costs, ad spend, and settlement timing.
This is a teaching contract for an export, not a universal accounting definition.
Cancelled snapshots may retain gross and discount fields but contribute zero net.
Returned orders in this fixture are fully refunded; completed orders can have a
partial refund. AOV includes all non-cancelled orders, including returned orders.

CUSTOMERS.CSV
customer_id: unique, required text key (C001 through C048).
region: North, South, East, or West.
segment: consumer or small-business.
No names, addresses, contact details, or real personal data are present.

QUALITY POLICY
244 raw rows = 2 exact extra copies + 3 rejected records + 239 accepted orders.
O0007 has an unparseable price; XBADDATE has an invalid date; XBADUNITS has zero units.
One accepted order lacks customer_id. It remains in revenue but is excluded from
identified-customer cohort calculations. One channel is missing and becomes unknown.
One channel has padded uppercase text and is normalized to paid.
Conflicting repeated order IDs stop processing rather than choosing a row arbitrarily.
Original CSVs are preserved; transformed files go to outputs.

TIME AND COHORT POLICY
The known generator window is January 1 through March 31, 2026 in Asia/Kolkata.
Use inclusive starts and exclusive next-period starts for calendar windows.
Cohorts represent first OBSERVED non-cancelled purchase, not first-ever acquisition.
Unknown future cohort periods remain unavailable, not zero retention.

IMPORTANT LIMITS
Patterns are artificial. No demand, profit, marketing incrementality, conversion
funnel, or real retention benchmark can be inferred from this teaching data.
