Skip to content
Mindset & Code edited this page Aug 18, 2026 · 5 revisions

Hotel Pricing Engine — Wiki

🇬🇧 English first · 🇪🇸 Español más abajo.

A dynamic pricing engine in Python that reproduces hotel revenue-management decisions: it builds two years of history, then prices the next 60 days from seasonality, day of week, local events, occupancy pressure and lead time.

Repo: mindset-code/project-hotel-pricing-engine Live: proyectos-mindset-code.web.app/hotel


Pages in this wiki


Architecture

graph LR
    A["dynamic_pricing_engine.py"] -->|build_historical| B["data/historical_hotel_data.csv<br/>730 days × 3 room types"]
    A -->|build_forecast| C["data/pricing_forecast.csv<br/>60 days × 3 room types"]
    B --> D["6 JSON files in data/"]
    C --> D
    D --> E["React dashboard at /hotel<br/>in project-portfolio"]
Loading

One script, 204 lines, no framework. It writes two CSVs and six JSON files; the dashboard lives in project-portfolio and reads the JSON.


Hotel configuration

Straight from the constants at the top of the script:

Parameter Value
Total rooms 120
Room types Standard (55%) · Deluxe (32%) · Suite (13%)
Base price — Standard $120 / night
Base price — Deluxe $185 / night
Base price — Suite $320 / night
History 730 days, ending today
Forecast 60 days ahead
Seed np.random.seed(42)

The history window is anchored to datetime.now(), so the dataset moves with the day it is generated. Two runs a week apart do not produce the same dates.

What the six JSON files carry

File Contents
kpis.json ADR, RevPAR and occupancy averaged over the last 30 days, plus total revenue
monthly_trend.json 24 months of ADR, RevPAR, occupancy and revenue
revenue_by_room.json Last 12 months split by room type
occupancy_by_dow.json Average occupancy and ADR per weekday
forecast.json The 60-day forecast, Standard room only
pricing_factors.json Average contribution of each factor

🇪🇸 Español

Un motor de precios dinámicos en Python que reproduce las decisiones de revenue management de un hotel: construye dos años de histórico y después fija el precio de los 60 días siguientes a partir de la estacionalidad, el día de la semana, los eventos locales, la presión de ocupación y la antelación de la reserva.

Repo: mindset-code/project-hotel-pricing-engine Live: proyectos-mindset-code.web.app/hotel


Páginas de esta wiki


Arquitectura

Ver el diagrama de arriba. Un solo script de 204 líneas, sin framework, que escribe dos CSV y seis ficheros JSON. El cuadro de mando vive en project-portfolio y lee los JSON.


Configuración del hotel

Sacada de las constantes de la cabecera del script:

Parámetro Valor
Habitaciones totales 120
Tipos de habitación Standard (55%) · Deluxe (32%) · Suite (13%)
Precio base — Standard 120 $ / noche
Precio base — Deluxe 185 $ / noche
Precio base — Suite 320 $ / noche
Histórico 730 días, terminando hoy
Previsión 60 días hacia delante
Semilla np.random.seed(42)

La ventana histórica está anclada a datetime.now(), así que el conjunto de datos se desplaza con el día en que se genera. Dos ejecuciones separadas una semana no producen las mismas fechas.

Qué lleva cada uno de los seis JSON

Fichero Contenido
kpis.json ADR, RevPAR y ocupación promediados sobre los últimos 30 días, más ingreso total
monthly_trend.json 24 meses de ADR, RevPAR, ocupación e ingreso
revenue_by_room.json Últimos 12 meses desglosados por tipo de habitación
occupancy_by_dow.json Ocupación y ADR medios por día de la semana
forecast.json La previsión a 60 días, solo habitación Standard
pricing_factors.json Contribución media de cada factor