← StatisticsCompleted

Exploratory data analysis

This analysis explores the NordHome retail dataset — customers, orders, order items, payments and returns — to understand how spending is distributed, how customer groups differ and where returns deserve a closer look. The aim is not to prove a hypothesis but to find patterns that lead to better questions.

Python · Pandas · NumPy · Matplotlib

View the complete analysis on GitHub →

01 — Project at a glance

The scope of the dataset

Counts come from the raw files. Duplicates and data-quality issues were cleaned or flagged before the analysis.

The dataset is synthetic, so differences below are exploratory signals, not real-world benchmarks.

8,364Customers
31,465Orders
75,473Order items
Jan 2021 — Jun 2024Analysis period

02 — Analytical questions

What questions are we trying to answer?

The analysis covers 21 business questions across six domains. Six of them are followed in sequence below — each answer shapes the next one: from the shape of spending, to who spends, to where returns deviate.

The full notebook: 21 business questions across 6 domains

  • 01 — Revenue1. Monthly revenue trend · 2. Revenue by country and channel · 3. Return/refund/cancellation impact on revenue · 4. Quarterly seasonality
  • 02 — Customers1. Distribution by market and country · 2. Distribution by age group · 3. Loyalty vs. non-loyalty value · 4. Repeat vs. one-time buyer value · 5. Revenue per customer by age group
  • 03 — Products1. Revenue and units by category · 2. Top 10 products by revenue · 3. Return rate and refund value by category · 4. Catalog vs. realized margin by category
  • 04 — Payments1. Payment status breakdown · 2. Unpaid risk by payment method
  • 05 — Returns1. Return volume and reasons by category · 2. Return rate trend year over year · 3. Return rate by channel and country
  • 06 — Marketing1. Channel clicks and conversion rate · 2. Top-performing campaigns · 3. Loyalty vs. non-loyalty conversion by channel

Six of these 21 questions are walked through in detail below, in the order they were asked.

Deep dive 01How are order values distributed?
Order value = sum of line totals per order, cancelled orders excluded (28,835 orders). Dashed line: IQR upper bound at €2,305.

Spending is strongly right-skewed

Most orders sit in a narrow range, while a small number extend far beyond it: the median order is €658, the mean €787.

I kept the 717 flagged orders (2.5%) in — excluding them moves the average order value by only 6.3%.

→ So who is doing the spending? Next: repeat customers versus one-time buyers.

Deep dive 02Do repeat customers spend more?
Excludes returned, refunded and cancelled orders. Orders are counted, not the time between them.

Repeat customers show a substantially different spending pattern

85.2% of customers ordered more than once. They spend €2,845 on average across 3.6 orders, versus €800 for one-time buyers — about 3.6× more per customer.

→ Repeat buying separates customers clearly. Can a simple demographic such as age do the same?

Deep dive 03Does age separate high-value customers?
Excludes cancelled, returned and refunded orders; under-18s excluded (n = 25, too few). The narrow spread may reflect the data generation rather than real behaviour.

Age groups show limited differentiation

Average revenue per customer runs from €2,465 (50–59) to €2,617 (30–39) — a spread of roughly 6%. Age alone does not separate customers by spend.

→ If customer traits explain little, the focus moves to where orders come back: returns by channel and country.

Deep dive 04How do return rates differ by channel and country?
Each cell rests on a small sample (about 769 orders on average) — extreme cells may reflect sampling noise rather than a real channel–country effect.

Order return rates cluster around 19% across channels and countries

Across 40 channel × country combinations, order return rates run from 16.0% to 22.8% (average 19.0%). The highest cell, Marketplace in the Netherlands, rests on roughly 750 orders and may be sampling noise; a proportion test would be the next step.

→ Return rates look similar across segments. Do they at least stay stable over time?

Deep dive 05How have return rates developed over time?
2024 covers January–June only. Cancelled orders are excluded from sold items; returns of unmatched (“ghost”) products are included in company-wide totals.

Return rates increased in H1 2024

The item return rate held at 8.2–8.7% from 2021 to 2023, then reached 9.7%; the revenue return rate moved from about 4% to 4.5%. A signal to investigate, not a conclusion.

→ Before asking which products might drive returns, one more basic question: which products carry the revenue?

Deep dive 06Which products generate the most revenue?
Gifts highlighted. Excludes unmatched (“ghost”) products and returned, refunded or cancelled orders.

A small group of products dominates the top revenue range

Gifts account for 6 of the 10 best-selling products, including the top three. The ten sit in a tight band: the best earns about 1.6× the tenth (€144K vs €92K).

→ These deep dives are brought together in the key findings below.

03 — Key findings

What stood out in the data?

  1. 01

    Spending is right-skewed

    A few very large orders and customers stretch the average (median €658 vs mean €787). They are signals to investigate, not errors.

    From deep dive 01

  2. 02

    Repeat customers behave differently

    €2,845 versus €800 per customer, about 3.6× more. The data shows that it matters, not why.

    From deep dive 02

  3. 03

    Age, channel and country barely differentiate

    Age moves revenue per customer by only about 6%; return rates cluster around 19% across 40 channel × country cells.

    From deep dive 03 · 04

  4. 04

    Returns are rising; revenue concentrates in few products

    The item return rate rose from 8.2–8.7% to 9.7% in H1 2024, and Gifts hold 6 of the top 10 products. Signals, not conclusions.

    From deep dive 05 · 06

04 — From findings to new questions

What should we investigate next?

TopicFollow-up question
  • 01 — High-value customers · findings 01, 02What characteristics distinguish high-value customers?
  • 02 — Product performance · finding 04Why are certain products or categories concentrated among top-revenue products?
  • 03 — Return behaviour · findings 03, 04What factors might explain differences in return rates?
  • 04 — Customer segmentation · findings 02, 03Would behavioural segmentation reveal stronger differences between customers?

05 — Methods

How the analysis was performed

  • Data preparationLoaded the raw NordHome tables and checked their structure and row counts.
  • Data cleaningRemoved duplicates and flagged data-quality issues; excluded cancelled, returned and refunded orders where a chart requires it.
  • Exploratory analysisDescriptive statistics across six areas — revenue, customers, products, payments, returns and marketing — through 21 business questions.
  • Distribution analysisHistograms of order value and revenue per customer; median compared with mean.
  • Group comparisonsRepeat versus one-time buyers, age groups and top products.
  • Relationship analysisReturn rates by channel × country and over time.
  • Outlier analysisIQR method (Q3 + 1.5 × IQR) to flag orders and customers outside the typical range; flagged cases were kept in the data.

06 — Conclusion

Where the investigation ends — for now

  1. 01

    What did the EDA reveal?

    Spending is skewed, and repeat customers spend about 3.6× more per customer than one-time buyers. Age, channel and country hardly separate customers, and returns edged up in H1 2024.

  2. 02

    What did it not explain?

    Why repeat customers spend more, what defines a high-value customer, and what drives the rise in returns. EDA shows patterns, not causes — and the dataset is synthetic.

  3. 03

    Why is further analysis needed?

    Each open question calls for a targeted follow-up — segmentation, product and category drill-downs, and tests of whether differences are statistically meaningful — before any business recommendation.