- Inicio
- PDCA (Plan, Do, Check, Act)
- Revisión y Control
- Guía de KPIs del módulo Informes BI
Caso de uso
Guía de KPIs del módulo Informes BI
Qué mide cada indicador, cómo se calcula y de dónde vienen los datos (para dirección, revenue y operaciones)
El módulo BI de Astro HMS, llamado Informes de BI, recopila y analiza automáticamente todos los datos de la operativa del hotel. No hay que introducir nada a mano: cada reserva, check-in, cobro y habitación disponible alimenta en tiempo real los informes.
Nota: Los datos están siempre filtrados por empresa y marca: cada hotel solo ve sus propios datos.
Fuentes de datos
- PMS — Reservas, habitaciones, tarifas, clientes, llegadas y salidas
- Economato / Stock — Consumos por departamento, recetas y costes de F&B
- Contabilidad — Ingresos reales facturados, presupuestos, cuentas USALI
1. Ocupación
Habitaciones Disponibles: Capacidad
El número de habitaciones que podían venderse en un día concreto, descartando bloqueos, cierres y habitaciones fuera de inventario.
Fórmula
Capacidad = SUMA de habitaciones donde:
- Sin bloqueo de mantenimiento
- Sin cierre de marca activo
- No es componente de BOR activo (Habitaciones Compuestas)
- Con acuerdo de disponibilidad vigente (En caso de usar el modulo de Villas)
Datos de entrada
- Estado de habitaciones del PMS
- Períodos de cierre por marca
- Bloqueos activos (mantenimiento, BOR)
- Campo calculado: quantity_onsale
Noches de Habitación Vendidas: Room Nights
Habitaciones ocupadas por noche. Una reserva de 5 noches en 1 habitación = 5 room nights. El día de salida no cuenta.
Fórmula
Room Nights = CUENTA de noches donde:
- Estado ∈ {Pre Reserva, Confirmada}
- fecha_proceso ≥ fecha_llegada
- fecha_proceso < fecha_salida
Datos de entrada
- Reservas PMS con estado Pre Reserva o Confirmada
- Fecha llegada y salida de cada reserva
- Habitación asignada
Nota: El sistema expande automáticamente cada reserva en una fila por noche. Una reserva del 1 al 5 de julio genera 4 filas (noches 1, 2, 3 y 4).
Habitaciones Vacantes
Habitaciones disponibles que no se vendieron. Representa la oportunidad de revenue no aprovechada.
Fórmula
Vacantes = Capacidad − Room Nights
Datos de entrada
- Calculado a partir de Capacidad y Room Nights del mismo período y marca
Porcentaje de Ocupación: % Occ
Fracción de habitaciones disponibles que se vendió, como porcentaje. El KPI de ocupación más usado para comparar períodos.
Fórmula
% Ocupación = (Room Nights / Capacidad) × 100
Datos de entrada
- Room Nights y Capacidad del mismo período y marca. División protegida contra cero.
Ejemplo: 78 habitaciones vendidas / 100 disponibles → 78% ocupación
Total de Ocupantes: PAX
Número total de personas alojadas por noche (adultos + niños). Obligatorio para partes estadísticos de turismo.
Fórmula
PAX = Σ(adultos) + Σ(niños) + Σ(adultos_secundarios) + Σ(niños_secundarios) [por noche, sin incluir día de salida]
Datos de entrada
- Campos adult, child, secondary_adult, secondary_child de cada reserva
Llegadas y Salidas
Número de check-ins y check-outs por día. Clave para planificar personal de recepción y housekeeping.
Fórmula
Llegadas (día X) = CUENTA reservas donde fecha_llegada = X y estado ∈ {Pre Reserva, Confirmada}
Salidas (día X) = CUENTA reservas donde fecha_salida = X y estado ∈ {Pre Reserva, Confirmada}
Datos de entrada
- Fecha de llegada de cada reserva PMS
- Fecha de salida de cada reserva PMS
2. Ingresos y Rentabilidad
Tarifa Media Diaria: ADR
El precio medio que se cobró por habitación ocupada en un período. Mide la calidad del precio de venta.
Fórmula
ADR = Ingresos Netos Alojamiento / Room Nights
Datos de entrada
- Líneas de yield tipo "alojamiento" (yield.move.line)
- Precio neto sin IVA (net_price_accommodation_total)
- Room Nights del mismo período
Ejemplo: Ingresos alojamiento 78.000 € / 780 noches = ADR 100 €
Importante: El ADR usa precio neto (sin IVA). El campo pvp_price_accommodation_total contiene el precio con IVA.
Ingreso por Habitación Disponible: RevPAR
El KPI más importante del revenue management. Combina precio y ocupación en un solo número para comparar rendimiento real entre períodos.
Fórmula
RevPAR = Ingresos Netos Alojamiento / Capacidad
Equivale a: ADR × (% Ocupación / 100)
Datos de entrada
- Ingresos netos de alojamiento
- Capacidad total del período (ajustada por días de cierre)
Ejemplo: ADR 100€ × 78% ocupación = RevPAR 78€
Ingreso Total por Habitación Disponible: TRevPAR
Versión ampliada del RevPAR que incorpora todos los ingresos operativos del hotel, no solo los de alojamiento. Permite evaluar el rendimiento global del establecimiento por habitación disponible, incluyendo F&B y otros servicios.
Fórmula
TRevPAR = Ingresos Totales del Hotel / Total de Habitaciones Disponibles
Dónde:
- Ingresos Totales = Yield Alojamiento + Yield Régimen + Yield Extras + Ingresos F&B + Otros ingresos operativos
- Total de Habitaciones Disponibles = Número de habitaciones del hotel × días del período
Datos de entrada
- Yield Alojamiento, Yield Régimen y Yield Extras (yield.move.line)
- Ingresos F&B y otros servicios operativos (Contabilidad / cuentas USALI)
- Capacidad total del período (habitaciones × días, sin ajuste por bloqueos)
Nota: A diferencia del RevPAR, el TRevPAR usa el total de habitaciones del hotel como denominador fijo, no la capacidad ajustada por cierres o bloqueos.
Ingresos de Alojamiento: Yield Alojamiento
Total facturado solo por pernoctación, sin régimen ni extras. Base para calcular ADR y RevPAR.
Fórmula
Yield Alojamiento = SUMA(net_price_accommodation_total) donde tipo_componente = "alojamiento" y estado ∈ {Pre Reserva, Confirmada}
Datos de entrada
- Tabla yield.move.line del PMS
- Filtro: componente tipo "alojamiento"
- Precio neto por noche de cada reserva
Ingresos de Régimen: Yield Régimen
Total facturado por régimen alimenticio (desayuno, media pensión, pensión completa, todo incluido).
Fórmula
Yield Régimen = SUMA(net_mealplan_price) donde tipo_componente = "régimen" y estado ∈ {Pre Reserva, Confirmada}
Datos de entrada
- Tabla yield.move.line del PMS
- Filtro: componente tipo "régimen / mealplan"
Ingresos de Extras y Paquetes: Yield Extras
Total facturado por servicios adicionales: spa, excursiones, parking, camas extra, etc. Mide el éxito del upselling.
Fórmula
Yield Extras = SUMA(net_package_price) donde tipo_componente = "paquete" o "feature" y estado ∈ {Pre Reserva, Confirmada}
Datos de entrada
- Tabla yield.move.line del PMS
- Filtro: componente tipo "paquete"
Días Abiertos / Ajuste por Cierre de Marca
Número de días que el hotel estuvo realmente operativo. Ajusta los KPIs mensuales para que los cierres de temporada no distorsionen los datos.
Fórmula
Días Abiertos = Días del período − Días de cierre de marca
Capacidad mensual = Σ(habitaciones × días_abiertos)
Datos de entrada
- Tabla brand.closed.period
- Capacidad por tipo de habitación para los días abiertos
3. Análisis de Reservas
Antelación de Reserva: Lead Time
Días entre la creación de la reserva y la fecha de llegada. Clave para ajustar la política de precios (early booking vs. last minute).
Fórmula
Lead Time = fecha_llegada − fecha_creación_reserva [resultado en días]
Datos de entrada
- create_date de la reserva
- checkin (fecha de llegada)
Ejemplo: Reserva creada el 1 de mayo para llegada el 1 de agosto → Lead time = 92 días
Reservas por Canal / Tarifa / Tipo de Hab. / Experiencia
Agrupaciones de room nights e ingresos según el canal de distribución, plan tarifario, tipo de habitación o experiencia contratada.
Fórmula (patrón común)
Room Nights por [dimensión] = SUMA(room_nights) agrupado por [agency_id | fare_id | room_type_id | product_id]
Datos de entrada
- Canal: campo agency_id de la reserva
- Tarifa: campo fare_id de la reserva
- Tipo hab.: campo room_type_id
- Experiencia: campo product_id
4. Objetivos y Previsión
Ritmo de Reservas: Pickup
Velocidad a la que se acumulan reservas para una fecha futura, comparada con el mismo punto del año anterior. Es el radar del revenue manager.
Fórmula
Pickup = Room Nights en cartera HOY para el período X vs. Room Nights en cartera hace 1 año para el mismo período X
Datos de entrada
- Reservas activas actuales del PMS
- Histórico de estado de reservas (pickup observer)
Ejemplo: Hoy tenemos 320 RN para julio 2026. El mismo día del año pasado teníamos 290 para julio 2025 → Pickup +30 RN (+10,3%).
Objetivo vs. Real
Comparación entre los objetivos de temporada fijados manualmente y los resultados reales generados automáticamente por el PMS.
Fórmula
Desviación % = ((Real − Objetivo) / Objetivo) × 100
Real → alimentado automáticamente por PMS Objetivo → introducido manualmente
Datos de entrada
- Tabla blazar.objective (manuales)
- KPIs reales calculados por Informes de BI
Tabla resumen de todas las fórmulas
| KPI | Fórmula | Datos de entrada |
|---|---|---|
| Capacidad | Σ habitaciones disponibles por día | PMS: bloqueos, cierres de marca |
| Room Nights | Cuenta noches Pre Reserva/Confirmada | PMS: reservas × noches ocupadas |
| Vacantes | Capacidad − Room Nights | Calculado |
| % Ocupación | (Room Nights / Capacidad) × 100 | Calculado |
| PAX | Σ adultos + Σ niños por noche | PMS: ocupantes por reserva |
| Llegadas | Cuenta reservas por fecha_llegada | PMS: fecha de llegada |
| Salidas | Cuenta reservas por fecha_salida | PMS: fecha de salida |
| ADR | Ingresos alojamiento neto / Room Nights | PMS: net_price_accommodation_total |
| RevPAR | Ingresos alojamiento neto / Capacidad | PMS: yield lines + capacidad |
| TRevPAR | Ingresos totales del hotel / Total habitaciones disponibles | PMS: yield lines + Contabilidad |
| Yield Alojamiento | Σ net_price_accommodation_total | PMS: yield.move.line tipo alojamiento |
| Yield Régimen | Σ net_mealplan_price | PMS: yield.move.line tipo régimen |
| Yield Extras | Σ net_package_price | PMS: yield.move.line tipo paquete |
| Yield Total | Σ todos los yield | PMS: todas las yield lines |
| Lead Time | fecha_llegada − fecha_creación | PMS: reserva |
| Días Abiertos | Días período − días cierre marca | PMS: brand.closed.period |
Permisos de usuario
Perfil | Ocupación | Ingresos y precios | Objetivos y previsión |
|---|---|---|---|
| Usuario BI básico | ✓ | ✗ | ✗ |
| Usuario BI con Yield | ✓ | ✓ | ✗ |
| Manager BI | ✓ | ✓ | ✓ |
Valoración
¿Te ha resultado útil este documento?
¿Necesitas ayuda?
¿No encuentras lo que buscas?
Explora todos los procesos o contacta con soporte para recibir ayuda personalizada.