Türkiye'de Konaklama Vergisi ve Metasearch Fiyatlama
Konaklama vergisi, KDV, mandatory fee ve total-price semantiğini Türkiye'deki hotel metasearch ve OTA fiyat karşılaştırmalarında doğru modelleyin.
Türkiye'de hotel metasearch fiyat doğruluğu yalnız room rate karşılaştırmak değildir. Konaklama vergisi, KDV, zorunlu hizmet/fee bileşenleri ve channel'ın fiyatı hangi aşamada dahil ettiği total-price semantics'i değiştirir. Aynı stay için iki kanalın “gecelik fiyatı” aynı görünürken payable total farklı olabilir.
2026 konaklama vergisi context'i
6802 sayılı Kanun'un konaklama vergisi maddesi; konaklama tesislerinde geceleme hizmeti ve geceleme ile birlikte tesis bünyesinde sunulan bazı hizmetleri verginin kapsamına alır. Kanundaki temel oran %2'dir. 11263 sayılı Cumhurbaşkanı Kararı ile oran 1 Mayıs 2026–31 Aralık 2026 dönemi için %1 olarak uygulanmaktadır.
Bu tarih bağımlı bir bilgidir. Product logic'e “Turkey accommodation tax = 1%” şeklinde hard-code edilmemelidir.
Tax data model
Minimum model:
Price
├─ baseAmount
├─ taxes[]
│ ├─ type
│ ├─ rate
│ ├─ amount
│ ├─ includedInDisplay
│ └─ effectiveFrom / effectiveTo
├─ mandatoryFees[]
├─ optionalFees[]
├─ currency
└─ totalPayableTax rule source, effective date ve calculation basis tutulmalıdır.
KDV ile karıştırmama
Konaklama vergisi ile KDV aynı tax component değildir. GİB kaynağı konaklama vergisi matrahını KDV hariç bedel üzerinden tanımlar. UI veya canonical price modelinde vergi tipleri tek bir “tax” alanında flatten edilirse parity ve reconciliation hataları oluşabilir.
Metasearch display
Karşılaştırmada temel soru “headline rate aynı mı?” değil, aynı traveler context için zorunlu toplam ödeme aynı mı? olmalıdır.
Channel'lar arasında şu farklar olabilir:
- tax included vs excluded,
- property-payable fee,
- city/local tax,
- service fee,
- payment-at-property,
- occupancy veya nationality-dependent pricing,
- currency conversion.
Price parity
Parity analizinde offer ancak room/rate/meal/cancellation/occupancy/tax inclusion semantics aynıysa comparable kabul edilmelidir. Tax dahil olmayan fiyatı tax dahil fiyatla kıyaslayıp parity violation üretmek false positive'tir.
Booking handoff
Metasearch'te gösterilen tax semantics landing page ve final booking'e kadar korunmalıdır. Landing'de zorunlu vergi ekleniyorsa search result “all-in” gibi etiketlenmemelidir.
Failure mode'lar
- eski tax rate'in cache'te kalması,
- effective date timezone hatası,
- KDV ve konaklama vergisinin double count edilmesi,
- tax-inclusive ve exclusive offer'ın aynı fingerprint'te merge edilmesi,
- nationality/market-specific rule'un kaybolması,
- booking confirmation total ile observed total arasında reconciliation farkı.
Observability
Track:
- total-price mismatch,
- tax-component mismatch,
- effective-rate version,
- landing vs observed total,
- booking-confirmed total delta,
- market/nationality bucket.
Production checklist
- Tax rule versioned/effective-dated mı?
- KDV ve konaklama vergisi ayrı component mi?
- Mandatory fee ile optional fee ayrılıyor mu?
- Total payable açık mı?
- Display-included semantics korunuyor mu?
- Tax change cache invalidation tetikliyor mu?
- Final booking total reconcile ediliyor mu?
Benzer bir entegrasyon mu planlıyorsunuz?
Gereksinim, feed/API tasarımı ve production yaklaşımını birlikte değerlendirebiliriz.