Demo
AS

Machine Learning Engine

Concept — not yet active

From rules a human wrote to patterns learned from outcomes.

The ML engine replaces the mechanism that produces the price — not the safety net around it. Today the numbers come from a revenue manager's experience encoded as rules. The ML engine learns them from what actually happened: which quotes won, which lost, and what the hotel could have sold those rooms for otherwise. The rule engine survives as guardrails.

No hotels are currently set to ML — quotes run on the rule-based engine.

Two models, one optimiser

MODEL M1

Demand Forecaster

Buildable today

Predicts transient demand and rate for the requested dates — so the engine knows what a group displaces.

Trained on historical reservations & rate facts. No quote log required.

MODEL M2

Win-Probability Model

Needs data capture

Predicts the probability a group accepts a given price, from its profile (segment, lead time, size, regime…).

Trained on the MICEDesk quote-outcome log — has to be captured first.

Architecture

Feature store
Cleaned, joined, time-aligned features — one row per quote / per date
M1 — Demand forecaster
Predicts transient demand & rate
M2 — Win probability
P(accept) over price curve
Displaced transient GOP
€ per room-night
P(win) curve over price
probability vs €
Optimiser — not a learned model
Sweeps prices · expected GOP = P(win) × [ group GOP − displaced GOP ] · picks the peak
Rule engine as guardrail
Clamps to revenue-manager-approved bounds
Recommended price → quote sent
Revenue manager can always override
Outcome (won / lost / actual pickup) is logged back — becomes new training data for Model 2.
Win-probability curve
P(win) vs quoted room price
P(win)price (€)120320
Expected-GOP curve
P(win) × ( group GOP − displaced GOP ) — peak marks the optimum
peak €170expected GOPprice (€)

Readiness checklist

Enough volumePending
One hotel's few hundred quotes a year is too thin. Pooled across the customer base, the volume becomes trainable.
Outcomes are capturedPending
Every RFP logged with the quoted price and the result (won / lost / no response). Must start from day one.
GOP is definableReady
Finance can produce a per-booking profit figure with ancillary margin (F&B, M&E). Without it there is nothing to optimise.

Data requirements

BLOCK 01
Reservation history
Builds the booking curve. Pickup pace, length of stay, ADR by segment.
BLOCK 02
Current state
OTB, pace vs STLY, on-the-books revenue. Anchors today's forecast.
BLOCK 03
Cost & margin data
Cost-to-serve, ancillary margins. Turns revenue into GOP.
BLOCK 04
Quote outcomes
Every quote, its price, and the result. Builds the win-probability model.

Phased path

1
Capture quote outcomes
Log every RFP with price & result. The data asset that makes a model possible.
2
Ship Model 1 — demand forecaster
Trains on facts that already exist. Surfaces displaced GOP inside the rule engine.
3
Ship Model 2 + optimiser
Once the outcome log has enough volume, swap the price proposer behind the same interface.