THE RESULT
What the data shows
The top 434 identified purchasers—about 10% of the customer base—account for 61.4% of identified gross sales.
Gross invoiced sales total £10.67 million. This is observed historical purchasing value, not profit or a campaign result.

| month | gross sales gbp | orders | net invoiced gbp | complete month | average order value gbp |
|---|---|---|---|---|---|
| 2010-12 | 823,746.14 | 1,559 | 748,957.02 | True | 528.4 |
| 2011-01 | 691,364.56 | 1,086 | 560,000.26 | True | 636.6 |
| 2011-02 | 523,631.89 | 1,100 | 498,062.65 | True | 476 |
| 2011-03 | 717,639.36 | 1,454 | 683,267.08 | True | 493.6 |
| 2011-04 | 537,808.62 | 1,246 | 493,207.12 | True | 431.6 |
| 2011-05 | 770,536.02 | 1,681 | 723,333.51 | True | 458.4 |
| 2011-06 | 761,739.90 | 1,533 | 691,123.12 | True | 496.9 |
| 2011-07 | 719,221.19 | 1,475 | 681,300.11 | True | 487.6 |
| 2011-08 | 759,138.38 | 1,361 | 704,804.63 | True | 557.8 |
| 2011-09 | 1,058,590.17 | 1,837 | 1,019,687.62 | True | 576.3 |
| 2011-10 | 1,154,979.30 | 2,040 | 1,070,704.67 | True | 566.2 |
| 2011-11 | 1,509,496.33 | 2,769 | 1,461,756.25 | True | 545.1 |
Reading repeat purchasing carefully
65.6% of identified purchasers made more than one positive-sales purchase in the observed window. That share depends on customer tenure. Cohort percentages measure purchasing at each month age; future unobserved periods remain missing.

THE METHOD
From source to answer
Python and SQL reconciliation, a signed sales ledger, purchase cohorts, and explicit customer segmentation rules.
- Keep unknown customer IDs in sales totals and show customer-level coverage separately.
- Retain credits in a signed ledger; reconcile £10,666,684.54 gross sales less £896,812.49 credits to £9,769,872.05 net invoiced value.
- Keep exact repeated lines unless there is evidence of an error. Removing them changes gross sales by only 0.23%.
- Build purchase cohorts and transparent customer segments using a fixed 10 December 2011 snapshot.
- Reproduce monthly sales, invoice counts, and segments independently in SQL and pandas.
The Python source exposes this study’s transformations. The complete project download includes shared preparation and evaluation routines.
EVALUATION
How the result was checked
541,909 source invoice lines · 19,960 positive-sales invoices · 4,338 identified purchasers. Observations cover 1 December 2010 through 9 December 2011. The last month is incomplete.
THE NEXT DECISION
What follows from the finding
Review high-value repeat purchasers with a commercial owner. Test a targeted reactivation intervention using randomized eligible groups and a predeclared observation period.
Where the conclusion stops
135,080 invoice lines (24.9%) have no customer ID. Identified purchasers account for 83.5% of gross sales. Purchase value is not profit or lifetime value, and repeat-buyer share is affected by different observation windows.
Related studies may reuse observations or holdouts. These are historical analyses; associations and backtests do not demonstrate commercial impact. Further model tuning needs new, untouched evaluation data.