Sektör sözlüğü
| Metrik | Tanım | SQL fikri |
|---|---|---|
| Doluluk (load factor) | Binen yolcu ÷ koltuk | SUM(pax) / SUM(seats) |
| Zamanında varış (OTP) | Planlanandan en fazla 15 dk geç inen uçuşların payı | Koşullu sayım ÷ inen uçuş |
| Yolcu-km (RPK) | Taşınan yolcu × uçulan mesafe | SUM(pax * distance_km) |
| Koltuk-km (ASK) | Sunulan koltuk × mesafe | SUM(seats * distance_km) |
| No-show oranı | Rezervasyonu olup uçuşa gelmeyenler | no_show ÷ (flown + no_show) |
Doluluğun kilometre ağırlıklı hali RPK ÷ ASK'tır; uzun rotalardaki boş koltuk, kısa rotadakinden daha pahalıdır.
SELECT strftime('%Y-%m', f.sched_dep) AS ay,
ROUND(100.0 * SUM(f.pax * r.distance_km) / SUM(a.seats * r.distance_km), 1) AS km_doluluk
FROM hv_flights f
JOIN hv_routes r ON r.route_id = f.route_id
JOIN hv_aircraft a ON a.tail_no = f.tail_no
WHERE f.status <> 'cancelled'
GROUP BY strftime('%Y-%m', f.sched_dep)
ORDER BY ay;
Derinleş: Rötar nedenleri: kim kontrol ediyor, nasıl yayılıyor?
Rötar dakikalarını nedenlere göre toplamak ilk adımdır. Yönetim için asıl soru ise hangi dakikaların bizim kontrolümüzde olduğudur. Sektörde nedenler kabaca üç gruba ayrılır:
| Grup | Kanat kodları | Sahibi |
|---|---|---|
| İç (kontrol edilebilir) | teknik, yer_hizmetleri | Bakım, yer operasyonu |
| Dış | hava, hava_trafik | Meteoroloji, hava trafik kontrolü |
| Zincir (reactionary) | gec_gelen_ucak | Önceki uçuşun gecikmesi; planlama ve dönüş süresi |
Zincir gecikmesi kendi başına bir neden değildir, önceki uçuşun gecikmesinin yayılmasıdır. Kanat'ta toplam rötar dakikasının %24,9'u bu gruptan geliyor. Bu yüzden günün ilk uçuşlarını korumak (sabah ilk dalganın zamanında çıkması) ve uçuşlar arasına yeterli dönüş süresi (turnaround) koymak, en etkili iyileştirme alanlarıdır.
gec_gelen_ucak yalnız aynı uçağın önceki seferi en az 15 dakika geç indiyse yazılır (342 satır). Uçak kalkış saatinde gerçekten hazır olmayan satır ise 12'dir; filo seyrek uçtuğu için yayılım çoğunlukla dolaylıdır.Yayılımı veride görmek
Gecikmeler gün içinde birikir: Kanat'ta uçağın günün ilk uçuşunda zamanında kalkış %65,1, sonraki uçuşlarda %59,2. Bunu görmek için uçuşları uçak ve gün içinde sıralayıp günün ilk uçuşunu ayırmak yeterli. Kalkış ve varış OTP'sini aylık olarak yan yana koymak da faydalıdır:
SELECT strftime('%Y-%m', sched_dep) AS ay,
ROUND(100.0 * SUM(CASE WHEN ROUND((julianday(actual_dep) - julianday(sched_dep)) * 1440) <= 15 THEN 1 ELSE 0 END)
/ COUNT(actual_dep), 1) AS kalkis_otp,
ROUND(100.0 * SUM(CASE WHEN ROUND((julianday(actual_arr) - julianday(sched_arr)) * 1440) <= 15 THEN 1 ELSE 0 END)
/ COUNT(actual_arr), 1) AS varis_otp
FROM hv_flights
GROUP BY strftime('%Y-%m', sched_dep)
ORDER BY ay;
Varış OTP'si (tüm dönem %57,3) kalkış OTP'sinden (%62,1) düşüktür, çünkü havada ve inişte de gecikme eklenir. Yolcunun yaşadığı ve bağlantı uçuşlarını etkileyen asıl ölçü varıştır. Kalkış ise operasyon ekibinin doğrudan kontrol ettiği ölçüdür. İkisi birlikte raporlanır.
Sık hatalar
- Doluluk paydası: İptal edilen uçuşların koltukları paydaya girmez. Doluluk “uçulan” koltuklar üzerinden hesaplanır.
- Nedenleri uçuş sayısıyla toplamak: İki nedenli uçuşlar iki kez sayılır. Neden payını dakika üzerinden ver, uçuş sayısını
COUNT(DISTINCT flight_id)ile al. - Zaman dilimi: Varış havalimanı farklı bir saat dilimindeyse yerel saatleri doğrudan çıkarmak yanlış süre verir. Bu veride zamanlar tek bir saat dilimindedir; gerçek sistemlerde UTC saklanır.