Este storytelling sigue el rastro de esas señales para entender dónde aparece el riesgo, cuándo aumenta y qué puede aprender un hotel antes de que el cliente llegue.
Imagen de portada: Zoshua Colah, Unsplash License.
Cada reserva representa una intención de viaje, pero no todas terminan convirtiéndose en una estancia real. Algunas se mantienen, otras desaparecen antes de la llegada y obligan al hotel a reajustar ocupación, ingresos y planificación.
La pregunta que guía esta historia es directa:
¿Por qué algunos hoteles pierden tantas reservas antes incluso de que el huésped llegue?
Para responderla se analiza el conjunto tratado del dataset Hotel Booking Demand, con reservas reales de dos hoteles portugueses: un hotel urbano y un hotel vacacional. La lectura se centra en patrones comprensibles para negocio: tipo de hotel, anticipación de reserva, estacionalidad, segmento de mercado, precio medio diario y país de origen.
Antes de analizar cancelaciones o patrones de comportamiento, fue necesario tratar el conjunto de reservas para eliminar registros inconsistentes y valores extremos que podían distorsionar la historia.
El tratamiento aplicado elimina estancias sin coste, reservas sin noches, registros sin huéspedes y valores atípicos relacionados con ADR o número de adultos. El objetivo no es limpiar por estética, sino evitar que unos pocos casos residuales oculten los patrones reales del negocio hotelero.
reservas tratadas
tasa global de cancelación
días de anticipación mediana
ADR mediana
Antes de visualizar se eliminan reservas sin noches, sin huéspedes, sin ADR positivo o con valores extremos. Así, la historia no se apoya en anomalías técnicas, sino en patrones de comportamiento.
El hotel urbano presenta una tasa de cancelación superior al resort. La primera pista es clara: no todos los hoteles pierden reservas de la misma manera. El contexto del viaje importa.
Una reserva hecha con mucha antelación no siempre es una garantía: también puede ser una reserva más expuesta a cambios de plan.
El mapa de calor permite leer rápidamente meses y años con mayor concentración de cancelaciones. No sustituye al análisis temporal completo, pero ayuda a detectar zonas calientes sin obligar al lector a comparar muchas barras.
La cancelación no permanece estable en el tiempo. También cambia según el momento del año y el tipo de hotel.
El deslizador temporal permite recorrer la evolución mes a mes y observar cómo el hotel urbano mantiene niveles de cancelación superiores al resort durante gran parte del período analizado.
Este gráfico combina dos lecturas: el porcentaje de cancelación y el volumen de reservas. Así se evita mirar solo la tasa y olvidar el tamaño real del segmento.
No todas las cancelaciones cuestan lo mismo. Algunas afectan a reservas con un valor medio más alto, aumentando el impacto económico para el hotel.
El país de origen puede aportar señales, pero no debe interpretarse de forma aislada. La cancelación combina mercado emisor, canal, segmento, hotel, temporada y anticipación.
La historia que cuentan los datos es clara: la cancelación no es aleatoria. Se concentra en determinados hoteles, segmentos, momentos del calendario, niveles de anticipación y mercados.
Desde negocio, esto permite pasar de una reacción tardía a una gestión anticipada:
El dato no elimina la incertidumbre, pero permite verla antes. Esa es la utilidad real del storytelling: convertir una tabla de reservas en una historia de decisión.
Esta versión está planteada como una pieza narrativa lineal y publicable en web. Como evolución futura, podría incorporar imágenes propias, iconos, animaciones suaves o elementos interactivos adicionales siempre que refuercen la comprensión de la historia y no distraigan de los datos.
RMarkdown permite integrar recursos visuales mediante HTML/CSS y librerías de visualización como plotly, ggimage, patchwork o fontawesome, facilitando la creación de piezas más editoriales e interactivas.
Para esta entrega se optó por una estética moderada y centrada en la claridad narrativa.
Imagen de portada: Zoshua Colah / Unsplash License.