Customers
–
People in the current slice of the data.
Avg income
–
Yearly household income, mean of customers who reported it.
Avg spend (2 yrs)
–
Total spent across all six product categories per customer.
Response rate
–
Share who accepted the last campaign offer.
Accepted any campaign
–
Share who said yes to at least one of the five earlier campaigns.
Web visits / mo
–
Average visits to the website in the last month.
Where the spend and the responses come from
All six charts below respond to the filters.
Spend by product category
Total spent in the last two years, current slice
Purchases by channel
Average purchases per customer. Deals are discounted purchases across channels, not a separate channel.
Campaign acceptance rate
Share of customers who accepted each offer. The last campaign (Response) is highlighted.
Response rate by age group
Last-campaign response. Other filters apply; the age filter is ignored here so groups stay comparable.
Average spend by education
Two-year spend per customer. Other filters apply; the education filter is ignored here.
Spend concentration
Share of total spend by customer spend quartile. Full dataset, not filtered.
61.5%
of all spend comes from the top 25% of customers. The bottom half accounts for 9.3%.
Who says yes
Full dataset, not filtered.
Response by prior campaign accepts
Last-campaign response rate by how many of the five earlier offers a customer accepted
Response by days since last purchase
Recent buyers say yes far more often
What the data says
What I'd recommend
Numbers in both panels are from the full dataset of 2,237 customers.
How this was built
Income arrived as text with dollar signs and commas, 24 customers had no income on file, and three birth years put customers over 110 years old. I cleaned those in SQL and pandas, aggregated the results, and embedded a compact summary table in this page so every filter recomputes in the browser with no server.
The data is the public, anonymized "marketing_campaign" customer-personality teaching dataset (2,240 customers, enrolled 2012–2014). Ages are calculated as of 2014, the last year in the data.
Source and code
github.com/gilbertrenteria/customer-analytics-capstone
SQL queries, the Python notebook, the cleaned CSV and this dashboard are all in the repo.
Built by Gilbert Renteria · gilbertrenteria.dev