Hotel Price Mismatch Nasıl Debug Edilir?
Metasearch, OTA ve hotel booking engine arasında görülen fiyat uyuşmazlıklarını kanıt bazlı bir triage ve RCA akışıyla teşhis edin.
Hotel price mismatch, metasearch'te gösterilen offer ile click sonrası landing veya booking engine'de görülen fiyatın aynı olmamasıdır. İlk amaç “hangi sistem yanlış?” demek değil, aynı search context'in gerçekten karşılaştırılıp karşılaştırılmadığını kanıtlamaktır.
Symptom
Kullanıcı aynı hotel, tarih ve occupancy için listede bir fiyat görür; provider'a geçtiğinde fiyat yükselir, currency değişir, room/rate farklılaşır veya offer unavailable olur.
Possible causes
- Context: dates, occupancy, child ages, residency, currency veya locale farklıdır.
- Rate identity: room/rate plan canonical eşleşmesi bozulmuştur.
- Tax/fee: total vs base price veya inclusive/exclusive model karışmıştır.
- Freshness: cache veya feed güncel değildir.
- Provider: click sonrası supplier yeniden fiyatlamıştır.
- Landing: deeplink search context'i korumuyordur.
Diagnosis
- Aynı request'i correlation ID ile yeniden üretin.
- Search input'un canonical halini kaydedin.
- Gösterilen offer'ın provider response snapshot'ını bulun.
- Click URL içindeki dates/occupancy/currency parametrelerini karşılaştırın.
- Landing'de görülen room/rate ve total price'ı kaydedin.
- Farkın context, component veya freshness kaynaklı olup olmadığını sınıflandırın.
Toplanması gereken kanıt
En az şu alanları tek incident kaydında tutun:
{
"hotelId": "H123",
"checkIn": "2026-10-12",
"checkOut": "2026-10-14",
"adults": 2,
"children": [],
"currency": "EUR",
"roomId": "R9",
"ratePlanId": "RP2",
"base": 180.00,
"taxes": 22.00,
"fees": 8.00,
"total": 210.00,
"observedAt": "2026-09-26T09:00:00Z"
}Karar ağacı
Context aynı mı? Hayırsa mismatch değildir; request propagation problemidir.
Context aynı, room/rate aynı mı? Hayırsa mapping veya deeplink problemidir.
Room/rate aynı, component toplamı farklı mı? Tax/fee normalization'ı inceleyin.
Her şey aynı ama zaman farkı yüksek mi? Cache/freshness ihtimalini test edin.
Snapshot güncel ama landing farklı mı? Provider-side reprice veya landing logic'i doğrulayın.
Yanıltıcı belirtiler
Currency conversion rounding, per-night vs stay-total gösterimi, “from” price, member/mobile rate ve refundable/non-refundable farkı gerçek price mismatch gibi görünebilir.
Recovery
Fix sonrası aynı context ile en az üç aşamayı tekrar ölçün: search response → rendered price → landing price. Sadece UI düzelmişse incident kapanmamalıdır.
Observability
- search-to-landing price delta,
- mismatch rate,
- unavailable-after-click rate,
- stale-offer age,
- provider bazlı price accuracy.
Prevention
Offer snapshot, context hash, room/rate identity ve price component'lerini birlikte loglayın. Mismatch alert'i yalnız total fiyat değil context eşitliği sağlandıktan sonra üretin.
Bu problemi production’da mı yaşıyorsunuz?
Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.