Back to Case Studies

CRM · Predictive Analytics · Machine Learning

Precision Marketing
for Restaurant

Course
Customer Data Analysis
Brand
The Cellar & Butcher (Case)
Stack
Python · Random Forest · Scikit-learn
Key Result
-78% ROI → Profitable (Top 19%)

Built a Random Forest classifier to identify the top 19% highest-probability responders from a premium restaurant's customer base — transforming a -78% average ROI into a profitable campaign by targeting 424 customers instead of all 2,240, while achieving a 45% expected response rate.

1. Problem — Mass Marketing is Bleeding Money

The Cellar & Butcher, a premium steak & wine dining brand, was running blanket campaigns across its entire 2,240-customer base. Random targeting of a premium product to a general audience meant campaigns cost more than they returned — every time.

Baseline — all 5 campaigns at negative ROI

Campaign 1
−76.5% ($−5,132)
Campaign 2
−95.1% ($−6,375)
Campaign 3
−73.3% ($−4,912)
Campaign 4
−72.6% ($−4,868)
Campaign 5
−73.6% ($−4,934)
−78%
Average ROI (Baseline)
$−26,221
Total Net Loss
2,240
Customers Targeted (Mass)
~15%
Response Rate (Mass)

2. Solution — Predictive Scoring + Profit Simulation

Instead of deciding who to target by intuition, I built a machine learning pipeline to score every customer by their probability of responding, then ran a profit simulation to find the mathematically optimal targeting cutoff — the "sweet spot" between response rate and campaign economics.

Modeling pipeline

01
🔧
Feature Engineering
MntWines, MntMeatProducts, Income, Age, Recency
02
🌲
Random Forest Classifier
Non-linear pattern recognition · 5-Fold Cross-Validation
03
📊
Probability Scoring
Each customer assigned a response probability (0–1)
04
💰
Profit Simulation
ROI & net profit modeled for every top-n% cutoff
05
🎯
Sweet Spot Selection
Top 19% maximizes total profit at 45% response rate

3. What Predicts Response?

The Random Forest model revealed that Recency (days since last visit) is the single strongest predictor, followed by wine and meat spending — confirming that behavioral signals dominate over demographics for this brand.

Top feature importances (Random Forest)

1
Recency
Engagement
0.107
2
MntWines
Spending
0.102
3
MntMeatProducts
Spending
0.094
4
Income
Demographics
0.088
5
MntGoldProds
Spending
0.062
6
Age
Demographics
0.054

4. Finding the Sweet Spot

The profit simulation shows that targeting the top 19% of customers by model score maximizes total net profit — beyond that point, adding lower-probability customers dilutes ROI faster than it adds revenue. The break-even targeting ratio is 27.3%.

5. Who Are the Top 19%?

The model's target segment spends dramatically more on wine and meat, and earns significantly higher income — validating that this is genuinely a distinct, high-value customer group, not a statistical artifact.

Customer profile — Target (Top 19%) vs. Others

✓ Top 19% — Target Segment
Wine Spend
$583
2.4× higher than others
Meat Spend
$342
2.7× higher than others
Income
$64k
30% above average
Response Rate
45%
vs. ~15% mass baseline
Others (81%)
Wine Spend
$238
Meat Spend
$125
Income
$49k
Response Rate
~15%
Mass campaign baseline

6. Campaign Proposals for Top 19%

🥩
Meat-centric High Spenders
The Butcher's Table Invitation
Private Chef's Tasting exclusively for top meat spenders — experiential upsell to increase LTV beyond transactional visits.
🍷
Wine Purchase History
Sommelier's Curated Selection
Personalized pairing offers built from individual wine purchase patterns — not generic promotions, but historically-informed recommendations.
⏱️
Top 19% · 60+ Day Inactive
Strategic Churn Prevention
Re-engagement offers targeted only at high-probability customers who haven't visited in 60+ days — highest Recency signal with proven spend history.

7. Results

  • Targeting ratio reduced to 19% — from 2,240 customers to ~424, saving 81% of campaign budget
  • Expected response rate: 45% vs. ~15% baseline — 3× improvement
  • ROI turns positive at top-19% cutoff — a direct reversal of the −78% mass baseline
  • Next step: Integrate real-time POS data for instant personalization upon guest arrival via CRM (Salesforce)
← Starbucks RFM Optimization