Skip to content

dunnhumby Complete Journey711 daysweeks 1–102

2,595,732 transactions2,500 households

Detect → Explain → Predict → Investigate

What changed, what is likely next, and what caused it

Two years of grocery purchases from 2,500 households, turned into answers you can check. PostgreSQL and tested statistical models compute every figure. A language model only drafts SQL; it never produces a number.

The panel at a glance

All departments

Loading the totals…
Explain these figures

Revenue

Definition
The net amount households were charged at the till, after retailer discounts.
Source
The sales_value of every transaction in the panel. The published demo reads it pre-summed.Endpoint /api/v1/overview · reads pub_overview_totals, fact_transactions
Calculation
Sum of sales_value over all transactions, or over one department when a department is chosen.
Limitation
A panel of 2,500 households, not a retailer's total sales. Returns are recorded as quantity ≤ 0, never as negative money.

1 · Detect

What changed?

Revenue by week. The early rise is households joining the panel, so it is marked and should not be read as growth.

Loading weekly revenue…

2 · Explain

What is behind it?

Who the revenue comes from. Any question about it goes to Ask, where PostgreSQL computes the answer and shows its working.

Loading the customer segments…

3 · Predict

What is likely next?

Loading the forecast…

4 · Investigate

Could a campaign have caused it?

Loading the campaign estimate…
What these numbers mean: calendar, panel and revenue basis

Calendar basis: the source records day 1–711 with no published start date. Day 1 is anchored to Wednesday 2015-01-07 so day 6 falls on a Monday, matching the source WEEK_NO rule (day + 8) / 7. Elapsed intervals, month boundaries and year-over-year comparisons are real; weekday labels are a modelling convention and carry no meaning.

Panel basis: this is a household panel, not an acquisition funnel. 99.8% of households make their first purchase within 180 days of a 711-day window (median day 69), so calendar-month cohorts would contrast early recruits against six stragglers. Retention is reported on relative tenure — each household on its own timeline from its first purchase.

Revenue basis: sales_value is the net amount charged. gross_value = sales_value − retail_disc, where retail_disc is stored negative. Returns appear as quantity ≤ 0, never as negative money. 23,101 rows record weighted goods in grams and are excluded from unit counts.