customers
26,467 rows
- idtext · key
- nametext
- emailtext
- statetext
- created_attime
A hose dataset · vertical
Pageviews, carts, checkouts and the seven in ten that never happen. Orders, shipments, winter holds and the plants that arrive dead.
3,007,210 rows · last row 426 days ago
The receipt
The whole dataset grows from this one seed. Everyone who downloads it gets the same rows with the same ids, today and next month, so whatever you build on it keeps working after the data refreshes.
per day, last 90 days
Schema · 10 tables
26,467 rows
130 rows
2,744,351 rows
49,909 rows
110,342 rows
17,238 rows
37,912 rows
17,171 rows
3,684 rows
6 rows
What the data claims
Why this one
Most sample sales databases start at the order. The customer wanted something, paid for it, and the row appeared. Overwater starts three steps earlier. It is a single-brand online house-plant store: live plants, pots, soil and care accessories, sold through a site whose traffic, carts and checkouts are all in the data.
Sessions are not a table. Pageviews are, with a referrer on the entry
view, and you sessionize them with the same 30-minute rule you would
use on a real export. Carts are first-class rows, so abandonment is a
left join, and a recovered cart is an order that lands hours after its
cart with an email-referred pageview in between. Shipments have a
delivered_at that is still null for recent orders. Plants sent to
cold states in winter wait longer, because the sim knows which states
freeze even though the schema only stores a state code.
Spring sells plants and February does not. A few collectors account for a large share of revenue while gift buyers order once and leave. In the spring of the second year a paid-social spike brings in a cohort that looks great on the acquisition chart and worse on the repeat chart. Prices step up a few percent each year. The same monstera costs more in later order lines than in early ones.
The other datasets