Archive project · foundational work
Instacart — customer behaviour
Instacart wanted to understand its customers' buying patterns to target marketing better. A Python analysis of millions of orders surfaced when people shop, who they are, and where the pricing opportunities sit.
Why it mattered
Turned 3.4M raw order logs into timing and segmentation levers the marketing team can act on directly — when to place ads, which segments to split, and where a premium price will hold.
Sat & Sun
busiest order days
3.4M
orders analysed
2–7 AM
premium-price window
4–5 PM
ad-fatigue dip
01The questions
- When do customers place the most orders — by day and by hour?
- How does behaviour differ between customers with and without dependents?
- Where are the untapped pricing and timing opportunities?
02What I found
- Saturday and Sunday are the busiest days — 6.2M and 5.7M order-lines, with Friday a step above the mid-week lull; that's the window where availability and offers matter most.
- Ad responsiveness dips with post-work mental fatigue around 4–5 PM, and phone activity peaks over lunch.
- Orders between 2–7 AM show higher, more variable prices — a premium morning-routine segment.
- Ordering behaviour differs clearly between customers with and without dependents — one segmentation lever for marketing.
FIGOrders peak Saturday and Sunday
Weekend + FridayMid-week
millions of order-lines, by day of week
03Recommendations
- Time ad placement to post-work fatigue windows and weekend availability.
- Test premium product positioning for early-morning shoppers.
- Segment marketing by dependent status rather than treating customers as one group.
04Tools & method
PythonpandasKaggle datasetsData merging & wranglingExcel reporting