top of page

Retail [Chips] Strategy & Analytics

Writer: Bhatt Bhoomi
Bhatt Bhoomi
Jun 9
6 min read

From Raw Data to a Real Client Recommendation - Here's Everything I Did

If you've been looking for a virtual internship that actually teaches you how analysts work in the real world - not just theory - the Quantium Data Analytics Virtual Experience on Forage is one of the best ones out there.

I recently completed all three tasks and want to walk you through exactly what I did, what I learned, and what the outputs looked like. Whether you're about to start it yourself or just curious about what data analytics work actually looks like day-to-day, this post covers it all.

What Is the Quantium Virtual Internship?

Quantium is one of Australia's leading data science and AI companies. Their virtual internship on Forage simulates working as a junior analyst on a real retail project - specifically, analysing chip purchasing behaviour for a supermarket client.

There are three tasks:

  • Task 1 - Customer Analytics (clean the data, find insights)

  • Task 2 - Experimentation & Uplift Testing (did the trial work?)

  • Task 3 - Present your findings to the client

It's open-ended, which means there's no single right answer. That's actually what makes it valuable - you have to make analytical decisions and justify them, just like a real job.


The Dataset

I was given two files:

  • Transaction data - every chip purchase made across 271 stores over a full year (July 2018 to June 2019)

  • Customer behaviour data - loyalty card holders mapped to their lifestage (Young Families, Retirees, etc.) and premium tier (Budget, Mainstream, Premium)

After cleaning and merging, I ended up with 246,739 transactions worth $1.8 million in total revenue.



Task 1 -- Customer Analytics

The Cleaning Part (Unglamorous but Critical)

Before I could find a single insight, I had to fix the data. Here's what I found:


Problem 1: The date column was broken. The transaction dates were stored as Excel serial numbers (like 43390) instead of actual dates. I fixed it like this:

df['DATE'] = pd.to_datetime(df['DATE'], unit='D', origin='1899-12-30')

Problem 2: Non-chip products were in the dataset. Products like salsa dip were mixed in. I filtered them out by scanning product names - removing anything that contained "salsa". That cut 18,094 rows.


Problem 3: A commercial buyer was inflating the data. One loyalty card (226000) had purchased 200 units of chips twice. That's clearly not a regular customer - it's a commercial buyer. I removed those two transactions to avoid skewing the averages.


Problem 4: One duplicate row - removed.

The Analysis Part (Where It Gets Interesting)

Once the data was clean, I extracted two new features from the product names:

df['PKT_SIZE'] = df['PROD_NAME'].str.extract(r'(\d+)').astype(int)
df['BRAND']    = df['PROD_NAME'].str.split(' ').str[0]

Then I merged the transaction data with the customer behaviour data so every transaction now had a lifestage and premium tier attached to it.


What I Found

Here are the headline numbers:

Sales & Volume

  • December was the peak month with 21,225 transactions - a pre-Christmas surge that peaks on December 24th at 865 transactions in a single day

  • February was the trough at 19,005 - expected, it's the shortest month

  • 175g packs dominate - 66,389 transactions, nearly 27% of all chip purchases

Brands

  • Kettle leads by a mile - $390,240 in revenue, almost double Smiths in second place at $202,903

  • Top product overall: Dorito Corn Chip Supreme 380g at $39,052

Customer Segments This is where it got really interesting. I grouped customers by their lifestage and premium tier and calculated average units purchased per customer:

  • Mainstream Older Families buy the most chips per visit - 9.26 units on average

  • Mainstream Young Singles/Couples generate the most total revenue - $147,582 - not because they buy the most per visit, but because there are so many of them

Price Behaviour I calculated average price per unit for each tier:

Tier

Avg Price/Unit

Budget

$3.80

Mainstream

$3.87

Premium

$3.81

Interesting - Premium doesn't pay the most! Mainstream actually pays more per unit than Premium. I ran independent t-tests to confirm all three differences are statistically significant (p < 0.05 for all pairs).



Task 2 - Experimentation & Uplift Testing

The Question

The client wanted to know: did the new store layout trial actually increase chip sales?

Trial stores were 77, 86, and 88. The trial ran from February to April 2019.


Step 1: Find Control Stores

To know if the trial worked, I needed to compare each trial store against a store that was as similar as possible beforethe trial started. I wrote a function that calculated the Pearson correlation between each trial store and every other store in the dataset, using monthly total sales and monthly unique customer counts from the pre-trial period.

The store with the highest correlation score became the control store.

Results:

Trial Store

Control Store

Correlation

Store 77

Store 233

0.970

Store 86

Store 155

0.849

Store 88

Store 14

0.723


Step 2: Assess the Trial

For each trial-control pair, I:

  1. Scaled the control store's sales to match the trial store's pre-trial baseline

  2. Calculated the percentage difference month by month

  3. Compared trial period t-values against the 95th percentile of the t-distribution (7 degrees of freedom - based on 8 pre-trial months)

Results

Store 77 - ✅ Significant uplift Sales exceeded the control store's 95% confidence interval in 2 of 3 trial months. The trial worked.

Store 88 - ✅ Significant uplift Same result - clear, statistically confirmed increase in sales during the trial period.

Store 86 - ⚠️ Mixed outcome This one was the most interesting. Customer count increased significantly across all three trial months - but sales did not increase significantly.

More people came in, but they didn't spend more. My hypothesis: there may have been promotional pricing active during the trial at Store 86, which attracted more customers but compressed the basket value. I flagged this for the client to investigate before making a rollout decision.



Task 3 - The Client Presentation

The Framework: Pyramid Principles

Quantium specifically asks you to use the Pyramid Principles framework when presenting to clients. The idea is simple: lead with the answer, then support it with data - don't make the client sit through all your analysis before getting to the point.

So instead of:

"We looked at 246,739 transactions... we cleaned the data... we found December was the peak month... we then ran t-tests..."

You open with:

"Stores 77 and 88 showed statistically significant sales uplift. We recommend rolling out the new layout to both. Store 86 needs further investigation."

Then you back it up.

The Deliverable

I filled in the official Quantium brand template in PowerPoint - black sidebar, Quantium logo, Confidential footer, the works - and embedded all my actual charts from the analysis directly into the slides. No recreating charts from scratch.

The final deck covered:

  • Executive summary (Task 1 + Task 2 findings on one slide)

  • Monthly transaction trend

  • Customer segment analysis

  • Control store matching charts (one per store)

  • Trial performance assessment

  • Recommendations


The Cover Email

Along with the presentation, I wrote a short cover email to Julia (the Category Manager) summarising the three headline findings and pointing her to the recommendations slide. Short, professional, no jargon.


What I Built Beyond the Task Requirements

I went a bit further than just the three tasks:

Interactive HTML Dashboard I built a three-page interactive analytics dashboard in HTML and JavaScript using Chart.js - no Power BI required, opens in any browser. It covers Category Overview, Customer Segments, and Products & Stores with real data from the analysis.

Power BI Guide A step-by-step guide for building the same three dashboards in Power BI, including all DAX measures written out and ready to paste.

README.md A full project README for GitHub with dataset documentation, code explanations, key findings, all DAX measures, and file structure.



What I Learned

Technically:

  • How to handle real-world data quality issues (serial dates, outliers, duplicates, non-relevant rows)

  • How to use Pearson correlation for store matching in A/B test design

  • How to run and interpret independent t-tests for business questions

  • How to extract features from text columns (regex for pack size, string split for brand)

Commercially:

  • How to frame analytical findings for a non-technical client

  • Why the Pyramid Principles framework matters - clients need the answer first

  • That a statistically significant result is only the start - you still need to explain why it happened (see: Store 86)

  • How segment size and spend per customer tell very different stories


Final Thought

The thing that surprised me most about this internship was how much the communication side mattered. Getting the analysis right is only half the job. Translating it into something a Category Manager can act on - that's the other half. And honestly, that's the part most data courses don't teach you.

If you're working through this internship right now and have questions, drop them in the comments. Happy to help.

 
 
 

Recent Posts

See All

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
  • GitHub
  • Linkedin
bottom of page