-
Notifications
You must be signed in to change notification settings - Fork 1
Home
🇬🇧 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
- Algoritmo de pricing — the five multipliers, factor by factor, as they are in the code
- KPIs de Revenue Management — ADR, RevPAR, occupancy and how they relate
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"]
One script, 204 lines, no framework. It writes two CSVs and six JSON files; the dashboard lives in project-portfolio and reads the JSON.
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.
| 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 |
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
- Algoritmo de pricing — los cinco multiplicadores, factor a factor, tal y como están en el código
- KPIs de Revenue Management — ADR, RevPAR, ocupación y cómo se relacionan
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.
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.
| 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 |