Ana içeriğe geç
Kesit SQL
Orta · Vaka Çalışmaları

Vaka: Kayıp müşterilerin izinde

Churn olan müşterileri bul, nedenlerini ara, geri kazanım listesi hazırla.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

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.

TanımlarReferans tarih 2024-12-31. Son siparişi bu tarihten 180 günden eski olan (en az bir siparişi olan) müşteri kayıp, diğerleri aktif. Net ciro tanımı yıl sonu vakasındakiyle aynı.

Adımlar

  1. Müşteri başına son sipariş ve sipariş sayısı
  2. Segment bazında kayıp oranı
  3. Kayıp müşterilerin sipariş deneyimi: iptal ve iade oranı daha mı yüksek?
  4. Kayıp müşteriler hangi kanalı kullanıyordu?
  5. Geri kazanım listesi: en değerli 10 kayıp müşteri
Korelasyon ≠ nedensellikKayıp müşterilerde iade oranı yüksek çıkarsa bu bir ipucudur, kanıt değil. Bulguyu “araştırılmalı” diye raporla.

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;
Örneklem çok küçük25 kayıp müşteriden kontrol grubuna yalnızca 3 kişi düşüyor. Bu büyüklükte bir deneyden anlamlı bir fark çıkmaz. Gerçek bir analizde ya daha uzun bir dönem ve daha geniş müşteri tabanı kullanılır ya da sonuç “yönlendirici” diye raporlanır.
KararSeçenekler
Kayıp tanımıSabit eşik, kişisel ritim, abonelik iptali
ÖnceliklendirmeGeçmiş değer, kazanılma olasılığı, ikisinin çarpımı
ÖlçümKontrol grubu, kampanya öncesi/sonrası (zayıf), farkların farkı
Alıştırmalara geç (7)