Durum
Pazarlama ekibi müşteri kaybının arttığını düşünüyor ve bir geri kazanım kampanyası planlıyor. Senden üç şey istiyorlar: kaybın büyüklüğü, olası nedenler ve kampanya için öncelikli müşteri listesi.
Adımlar
- Müşteri başına son sipariş ve sipariş sayısı
- Segment bazında kayıp oranı
- Kayıp müşterilerin sipariş deneyimi: iptal ve iade oranı daha mı yüksek?
- Kayıp müşteriler hangi kanalı kullanıyordu?
- Geri kazanım listesi: en değerli 10 kayıp müşteri
Derinleş: kayıp tanımı ve kampanyanın ölçülmesi
“180 gün sipariş vermeyen kayıptır” bir karar, bir gerçek değil. Eşik değiştikçe kaybın büyüklüğü de değişir ve pazarlamanın bütçesi bu sayıya göre ayrılır. Bu yüzden raporda eşiğin duyarlılığı gösterilir:
WITH m AS (
SELECT customer_id, julianday('2024-12-31') - julianday(MAX(order_date)) AS gun
FROM orders
GROUP BY customer_id
)
SELECT SUM(CASE WHEN gun > 90 THEN 1 ELSE 0 END) AS esik_90,
SUM(CASE WHEN gun > 180 THEN 1 ELSE 0 END) AS esik_180,
SUM(CASE WHEN gun > 365 THEN 1 ELSE 0 END) AS esik_365,
COUNT(*) AS musteri
FROM m;
Sipariş vermiş 136 müşteriden kayıp sayısı eşiğe göre 42, 25 ya da 13. Eşik, ürünün doğal satın alma sıklığına göre seçilmeli: her hafta alınan bir üründe 90 gün uzun, yılda bir alınan bir üründe kısa.
Kişisel ritim
Sabit eşik yerine her müşterinin kendi alışkanlığına bakılabilir: ortalama sipariş aralığının 3 katından uzun süredir sessiz olan müşteri “ritmini kaybetmiş”tir. En az 3 siparişi olan 111 müşteride bu kural 16, 180 günlük sabit eşik 19 müşteri işaretliyor. Aradaki 3 kişi, ortalama sipariş aralığı zaten 60 günü aşan seyrek müşteriler: sabit eşik onları kayıp sayıyor, oysa kendi ritimlerinin içindeler. Tersi de olabilir: sık alışveriş yapan biri 60 gün susarsa ritim kuralı onu 180 günü beklemeden yakalar (bu veride böyle bir müşteri yok).
Kampanyanın etkisini ölçmek
Geri kazanım kampanyasından sonra “kayıpların %30'u geri döndü” demek etkiyi kanıtlamaz; bir kısmı kampanya olmadan da dönecekti. Etkiyi ölçmek için kayıp listesinden rastgele bir kontrol grubu (holdout) ayrılır ve kampanya ona gönderilmez. Etki = kampanya grubunun geri dönüş oranı − kontrol grubunun geri dönüş oranı.
WITH k AS (
SELECT customer_id FROM orders
GROUP BY customer_id
HAVING julianday('2024-12-31') - julianday(MAX(order_date)) > 180
)
SELECT CASE WHEN customer_id % 10 = 0 THEN 'kontrol' ELSE 'kampanya' END AS grup,
COUNT(*) AS musteri
FROM k
GROUP BY CASE WHEN customer_id % 10 = 0 THEN 'kontrol' ELSE 'kampanya' END;
| Karar | Seçenekler |
|---|---|
| Kayıp tanımı | Sabit eşik, kişisel ritim, abonelik iptali |
| Önceliklendirme | Geçmiş değer, kazanılma olasılığı, ikisinin çarpımı |
| Ölçüm | Kontrol grubu, kampanya öncesi/sonrası (zayıf), farkların farkı |