ARI vs Live Search vs Reprice: Hotel Fiyat ve Uygunluk Lifecycle
ARI, live search ve reprice/check akışlarını freshness, granularity, latency, booking confidence ve source-of-truth açısından karşılaştırın.
ARI, live search ve reprice aynı "fiyat alma" işleminin üç versiyonu değildir. Üçü farklı time horizon ve confidence level taşır.
Karşılaştırma matrisi
| Boyut | ARI | Live Search | Reprice / Check |
|---|---|---|---|
| Scope | Room/rate/date state | Request-specific availability/offers | Selected offer/rate |
| Trigger | Source sync/change | User/search request | User selection / pre-book |
| Cardinality | Çok geniş date/product matrix | Search context kadar | Tek/az offer |
| Latency expectation | Async/background | Interactive | Interactive, booking-critical |
| Freshness role | Sellability projection | Current searchable state | Transaction-near validation |
| Booking confidence | Orta | Yüksekçe | En yüksek |
| Typical output | availability/rate/restrictions | offers/rate keys | confirmed/changed/unavailable |
ARI neyi çözer?
ARI = Availability, Rates & Inventory.
property + room + rate plan + date
-> inventory
-> rate
-> stop-sell
-> min/max LOS
-> CTA/CTDARI geniş state projection için uygundur. Kullanıcı tam search yapmadan önce sellability state'ini dağıtabilir.
Ama ARI snapshot booking guarantee değildir.
Live Search neyi çözer?
Live Search request-specific context'i provider'a taşır:
- check-in/out,
- occupancy,
- market/point of sale,
- currency,
- hotel/destination.
Response gerçek search anındaki available offer set'ini üretir.
Çok supplier varsa latency budget + partial result yönetimi gerekir.
Reprice neyi çözer?
Kullanıcı bir offer seçtikten sonra booking öncesi dar scope'ta state yeniden doğrulanır.
Örnek provider pattern'leri:
- Expedia Rapid → Price Check,
- Hotelbeds → CheckRates when RECHECK,
- flight/NDC → offer refresh/revalidate.
Reprice sonucu:
MATCHED
PRICE_CHANGED
UNAVAILABLE
EXPIRED
POLICY_CHANGEDgibi explicit state'e map edilmelidir.
Neden üçünü birlikte kullanabilirsiniz?
ARI/cache
-> broad discovery
-> live search
-> selected offer
-> reprice/check
-> bookingBu pattern coverage ve latency için broad state'i kullanırken booking confidence'ı final validation ile artırır.
Freshness modeli
Tek updatedAt alanı yeterli değildir.
Ayrı timestamp'ler:
- ariObservedAt,
- searchObservedAt,
- repriceObservedAt,
- bookingAttemptedAt.
Eski ARI snapshot yeni reprice sonucunu ezmemelidir.
Failure modes
ARI
- stale inventory,
- lost restriction delta,
- date/rate-plan mapping drift.
Live Search
- timeout,
- partial suppliers,
- inconsistent tax semantics,
- quota pressure.
Reprice
- price changed,
- rate expired,
- sold out,
- policy changed,
- selected offer identity lost.
Product davranışı
Search result fiyatını “confirmed booking price” etiketiyle göstermeyin.
Reprice fiyatı değişirse kullanıcıya explicit reconfirmation gerekir.
Final booking create timeout'u da reprice success'ten ayrı transaction state'tir.
Checklist
- ARI source/version timestamp var mı?
- Search observation ayrı mı?
- Offer identity reprice'a kadar korunuyor mu?
- PRICE_CHANGED UX tanımlı mı?
- Reprice retry policy var mı?
- Booking UNKNOWN state modelleniyor mu?
- Price accuracy search→landing→booking ayrı ölçülüyor mu?
Benzer bir entegrasyon mu planlıyorsunuz?
Gereksinim, feed/API tasarımı ve production yaklaşımını birlikte değerlendirebiliriz.