Ana içeriğe geç
Kesit SQL
Orta · Büyük Veriyle Çalışmak

Ücret ve kullanıcı segmentleri: aboneler mi, tek seferlikler mi?

Ücret modelinin gelire etkisi, abonelikte ücretsiz 30 dakikanın sonucu, kullanım sıklığına göre segmentler ve elektrikli bisikletin farkı.

Uygulamada aç, 6 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ç.

Ücret modeli

Aboneler ilk 30 dakikayı ücretsiz kullanır, sonrası dakikası 2 TL. Tek seferlik kullanıcılar açılış için 10 TL ve dakikası 1,5 TL öder. Bu yüzden abonelerin çoğu yolculuğu 0 TL'dir ve gelir tek seferlik kullanıcılardan gelir; ama aboneler sistemi düzenli kullanır.

Sıklık segmentleri

Kullanıcıları yolculuk sayısına göre NTILE ile dörde böl: en sık kullanan %25 çoğu zaman yolculukların yarısından fazlasını yapar. Bu, Pareto benzeri bir yoğunlaşmadır.

Derinleş: Ücret modeli davranışı değiştiriyor mu?

Fiyatlandırma yalnızca geliri değil davranışı da şekillendirmek için tasarlanır. Pedal İzmir'in modelinde iki teşvik var:

Bu tasarımın iki öngörüsü veriyle sınanabilir: (1) aboneler 30. dakikanın hemen altında yığılmalı, (2) abonelerin yolculukları tek seferliklerden kısa olmalı.

WITH t AS (
  SELECT user_id, ROUND((julianday(ended_at) - julianday(started_at)) * 1440) AS dk
  FROM bk_trips
  WHERE ended_at IS NOT NULL
    AND ROUND((julianday(ended_at) - julianday(started_at)) * 1440) BETWEEN 20 AND 40
)
SELECT CASE WHEN t.dk < 25 THEN '20-24' WHEN t.dk < 30 THEN '25-29'
            WHEN t.dk < 35 THEN '30-34' ELSE '35-40' END AS dakika,
       SUM(CASE WHEN u.user_type = 'abone' THEN 1 ELSE 0 END) AS abone,
       SUM(CASE WHEN u.user_type = 'tek seferlik' THEN 1 ELSE 0 END) AS tek_seferlik
FROM t JOIN bk_users u ON u.user_id = t.user_id
GROUP BY CASE WHEN t.dk < 25 THEN '20-24' WHEN t.dk < 30 THEN '25-29'
              WHEN t.dk < 35 THEN '30-34' ELSE '35-40' END
ORDER BY dakika;

Sonuç beklentiyi doğrulamıyor. Abonelerde 25–29 dakika aralığında 3.412, 30–34 aralığında 3.483 yolculuk var: sınırın altında yığılma yok. Ortalama süre de iki grupta neredeyse aynı (abone 29,2, tek seferlik 29,4 dakika). Bu veride ücret modeli süre davranışını değiştirmiyor. Bu da bir bulgudur: ya kullanıcılar ücret kuralını bilmiyor ya da 30 dakikayı aşan ücret onları caydıracak kadar yüksek değil. Uygulamada kalan süreyi gösteren bir sayaç, fiyat değişikliğinden önce denenebilecek ucuz bir müdahaledir.

“Ya şöyle olsaydı?” analizi

Fiyat kararlarında en sık istenen sorgu senaryo hesabıdır: mevcut yolculukları başka bir tarifeyle yeniden fiyatlamak. Örneğin bütün tek seferlik kullanıcılar abone olsaydı, onların yolculuklarından gelen gelir ne kadar düşerdi? Bu hesabı yaparken davranışın değişmeyeceğini varsaydığını unutma. Abone olan kullanıcı daha sık bisiklete biner.

HataSonuçDoğrusu
Kapanmamış yolculukları ücretsiz saymakÜcretsiz oranı şişerfare NULL'dır; COUNT(fare) paydası
116 bin satırı önce birleştirip sonra özetlemekYavaş sorguÖnce kullanıcı başına özetle, sonra 6 bin kullanıcıyla birleştir
Gelir payını yolculuk payıyla karıştırmak“Aboneler kârsız” yanılgısıİkisini yan yana göster; abonelik ücreti bu tabloda yok
Alıştırmalara geç (6)