Instacart

To enable marketing to targeted customer groups, Instacart has requested analysis to better understand its customers and products. Customer demographics and customer groups that can be targeted will provide subsets of customers to give focus to. Product preference and performance will permit targeting lagging and leading product types.

This targeted marketing will target the correct customer profiles with the appropriate products while addressing Instacart management’s questions:

  • Identify days and times with highest volume and highest spend

  • Understand product price groupings

  • Guide sales and marketing efforts with:

    • Highest product popularity and frequency

    • Brand loyalty

    • Customer demographics

Tools used

  • Python

  • Jupyter notebooks

  • Pandas

  • Matplotlib

  • Seaborn

  • NumPy

  • Anaconda

  • Excel

Skills required

  • Data wrangling and subsetting

  • Consistency checks

  • Data merging

  • Deriving variables

  • Grouping data

  • Aggregating data

  • Visualizations in Python

  • Reporting in Excel

  • Population flows

Initial Exploratory Analysis

Working to understand the tables, data available, and relationships between tables

Explore each table for a general understanding of contents with functions like head() and tail()

Look for consistent field data types and fields with NULL values to address in cleaning

Use describe() to understand general statistics, distribution of the data, and where deeper investigation may be needed during cleaning

Data Checks and Cleaning

Testing the data integrity and cleaning the data as needed

Change data types to consistent types or to reduce table size

Check for NULL values

Keep non-NULL rows and archive rows with NULL values

OR impute values to replace the NULL values (here, we replace NULL ‘days since prior order’ with zero to handle the first time shopper with no prior orders)

Check for duplicate rows

Check for mixed data types within each field

Analysis

Provide full analysis of the data to better understand Instacart’s customers and products and address management’s questions

To enhance the analysis, new fields (often flags) can be created to aggregate data as needed. Here, we create a ‘spending_flag’ to categorize customers as high or low spender. Several other flags have been created.

Times and Days with the highest Order Volume

Order Volume by Time

  • Orders begin at 6am, peak 9am and 5pm, and continue after 5pm slowly decreasing to midnight.

Customer Income vs Loyalty

  • Slight variability of income within a loyalty group with Regular customers showing the highest income

0 Saturday

1 Sunday

2 Monday

3 Tuesday

4 Wednesday

5 Thursday

6 Friday

Order Volume by Day

  • We see the busiest days for orders are Saturday and Sunday.

  • These are followed by Friday and Thursday.

  • There is a dip on orders in the middle of the week.

Customer Profiles and Customer Loyalty

Customer Marital Status/Dependents vs Spending

  • Married with dependents demographic leads greatly in sales

Instacart Final Report and Recommendations

  • Implementation of a frequent shopper program can be tailored to provide bonus points or additional savings on these lagging days.

  • Incentivize placing orders after 5pm to level the demand of orders. Similar to order days, a frequent shopper program could offer bonus points or additional savings for orders placed 'off hours'.

  • Consider eliminating product lines that may be considered bloat and detractors to the overall purchase experience. Focus can then be given to the remaining product lines to bolster their sales even more.

  • Improve orders during the week through targeted specials or sales only on those lagging days. An approach similar restaurant promotions on weekdays would be valuable.

Final Report and Python Scripts