Asawer Analytics Asawer Analytics
Instacart | Customer & Purchasing Behavior
Data analytics portfolio · Customer intelligence

Instacart Insights

Exploring grocery purchasing behavior, shopping rhythms, product demand, and customer segments across 32.4 million order lines.

Python · DuckDB · SQL · Chart.js · Interactive storytelling

Exploratory market analysisOrder & customer level metricsAggregated data only
Loading aggregate analysis…
01 / Executive overview

Millions of baskets.
One clearer picture.

Order-level figures use unique order IDs. Product-level figures count order lines, not physical units, because item quantities are unavailable.

Unique orders—Deduplicated order IDs
Customers—Unique user IDs
Product order lines—Not item quantities
Estimated item value—From dataset prices, not audited revenue
Average basket value—Estimated USD per order
Average basket size—Product lines per order

The business question

When do customers shop, which departments drive demand, and how do purchasing habits vary across customer profiles? This interactive report revisits the questions from the original Instacart project using the updated cleaned dataset.

How to read the numbers

The dataset contains product-level purchase records merged with customer characteristics. Reported spending is an estimate built from prices; customers and orders are deduplicated separately. This is descriptive analysis, not individual prediction.

21 departments134 aisles49,659 products
02 / Order days & hours

When the baskets fill up.

Examine weekly shopping rhythms, the busiest hours, and the relationship between ordering activity and estimated basket value.

Orders by day of week

Change the measure to compare ordering volume, estimated value, and basket characteristics.

Weekday names follow the mapping shown in the original Instacart report (0 = Saturday through 6 = Friday). Region-specific data supports order counts and estimated spending only.

Hour-by-hour orders

Watch ordering activity rise through the day.

Days between consecutive orders

How many days elapsed between a customer’s previous order and the next one? The horizontal axis is the waiting time in days (not dates of the month); the vertical axis counts how many orders occurred after each interval.

How to read it: A point at 7 days means an order was placed 7 days after that customer’s previous order. For example, 512,368 orders have a 7-day interval. The 30-day value may also include longer intervals if the source field was capped at 30 days. No monetary values are shown here.

The shopping week, hour by hour

Compare the seven-day shopping rhythm as lines, grouped bars, or a day-by-hour heatmap.

X-axis: hour of the day (00:00–23:00). Each line or bar series represents a weekday. Switch to Heatmap for the full day-by-hour grid. Hover for exact values.

03 / Products & departments

What goes into
the basket.

Explore the departments, products, and price categories responsible for the most ordering activity and estimated spending.

Department performance

Rank all 21 departments or focus on the highest/lowest performers. Long department names remain readable without sideways scrolling.

Price-category mix

Categories come directly from the cleaned price_range_loc column.

Reorders by department

Reordered product lines as a share of all recorded product lines in each department.

Most frequently ordered products

Product-level rankings in the available top-product extracts, with a department-specific option.

The JSON contains the top 100 products overall and top 15 within each department, not the full product catalogue. “Lowest” refers only to that available extract.

04 / Customer behavior

Different people.
Different baskets.

Compare customer segmentation, shopping frequency, spending and demographic patterns without disclosing individual customer records.

Customer loyalty composition

Customer counts by source loyalty flag.

Orders per customer

Each bar shows how many customers placed the indicated number of orders. Horizontal axis: orders per customer (grouped into ranges). Vertical axis: customer count.

Customer segment explorer

Customer group names appear on the left, with the selected measure along the bottom. Change grouping and measure to compare customers, orders, and estimated spending.

Some cleaned age-group records are labeled “Unknown.” Source-defined spending flags may not rank customers by lifetime spend; view them as dataset categories, not inferred customer value.

Income by age band

An aggregated alternative to the original scatter plot: mean reported income and mean estimated customer spend by five-year age band.

05 / Geographic analysis

Where demand grows.

Compare regional and state-level order activity. Geographic assignments reflect customer data, not verified fulfillment locations.

US regions at a glance

Midwest, Northeast, South, and West comparisons using the dataset’s US regional groups.

State-level ranking

Compare observed markets without misrepresenting raw volume as per-capita demand.

Regional shopping-week comparison

Compare regional order activity and estimated spending from Saturday through Friday.

06 / Customer profiling

The department
preference explorer.

Compare department preferences by age, income, loyalty and region. Grouped horizontal bars are the default; choose Heatmap to scan all departments at once.

Age groups × departments

Compare each department across age groups. Switch between grouped bars and a heatmap; group share adjusts for differences in total activity.

The updated JSON includes “Unknown” instead of an “adult” age group. We preserve that source label rather than guessing its meaning.

Income groups × departments

Compare low-, middle- and high-income groups with aligned bars or a heatmap, using totals or within-group percentage shares.

Explore other customer profiles

Compare loyalty groups or US regions by department. The chart switches between grouped bars and a heatmap.

07 / Findings & recommendations

Turning observation
into opportunity.

Recommendations are exploratory actions suggested by descriptive patterns, not proven causal effects.

Shopping rhythmsPlan for peaks

Order activity clusters in daytime hours, with Saturday and Sunday leading in volume (using the report’s weekday mapping). Consider testing promotions or staffing around these observed periods.

Product strategyAnchor in essentials

Produce and dairy & eggs account for the most recorded product lines. Use department demand to guide merchandising tests and promotional placement.

Customer retentionSegment responsibly

Loyalty and order-frequency groups differ meaningfully in activity. Evaluate retention offers with controlled tests rather than assuming correlation is causation.

Methodology

Python and DuckDB aggregated a cleaned 10 GB CSV containing product-level lines into order-level and customer-level summaries. The public report loads only aggregated JSON; raw customer records are not exported.

How values were calculated

Estimated item value = sum of available product prices across ordered lines. Average basket value = estimated item value divided by priced orders. Reorder share = reordered lines / product lines. Profile share = a department’s share within a particular customer group.

Interpretation limits

There are no product quantities, audited sales amounts, transaction dates or independently verified weekday labels in the exported analysis. Some prices and age groups are missing. Spending flags reflect source definitions, which may differ from lifetime customer value. Historic records cannot establish current demand or the impact of an intervention.

Use the patterns to prioritize questions — then validate decisions with additional evidence.

Instacart Customer & Purchasing Behavior · Interactive portfolio analysis. Source: cleaned Instacart dataset with customer attributes. Estimates are descriptive, not audited financial statements. Original CSV is not exposed to the browser.