# Dynamic pricingDynamic pricingAutomatically adjusting prices in real time based on demand, competition or user behaviour to optimise revenue, margin or conversion.View full definition → and revenue management with AI
A 180-room independent hotel in a mid-sized convention city was leaving money on the table every night. Its rates lived in a static rate card: a fixed price for a Tuesday, another for a Saturday, updated maybe once a season. Then it switched to an AI model that repriced every room type hourly against live competitor rates, city event calendars, and booking-pace signals. Within a year, RevPAR climbed roughly 12%.
That kind of result is now common enough that "manual rate cards" sound almost quaint. Let us unpack what actually changed.
Revenue management (RM) is the discipline of selling the right room to the right guest at the right price at the right time. RevPAR (Revenue Per Available Room) is the headline metric: total room revenue divided by total available rooms. It blends how full you are (occupancy) with how much you charge (ADR, or Average Daily Rate).
Old-school RM ran on rules and gut feel. A revenue manager watched the pickup report each morning, glanced at a couple of competitors, and nudged rates.
AI-driven RM does the same job continuously, across thousands of price points, using signals no human could track in real time.
The model turns those into a single output: a recommended price per room type, per date, refreshed often.
Static rules break in two directions. They leave money on the table when demand surges (you sold out at 2pm Tuesday and could have charged more), and they cannibalize revenue when demand is soft (you held rates too high and lost the booking to the hotel next door).
AI closes both gaps because it does three things rules cannot.
1. It forecasts unconstrained demand. The model estimates how many people *would* book at each price, not just how many did. That distinction matters. If you sell out early, your data hides the guests you turned away. Good models correct for this censored demand using patterns from similar dates.
2. It optimizes across the full booking curve. It decides not just today's price but how price should evolve as the arrival date approaches. Sell too cheap too early and you fill up with low-value bookings. The model balances the risk of empty rooms against the reward of holding out for higher-paying guests.
3. It reprices fast. Competitor drops a rate, a flight gets canceled, a convention adds a day: the model reacts in minutes, not at tomorrow's 9am meeting.
You do not need to code to run RM, but seeing the logic helps. Here is a stripped-down version of the price-optimization idea: pick the price that maximizes expected revenue, given a demand curve.
# Toy example: expected revenue at each candidate price
# demand_prob = estimated probability of selling the room at that price
candidate_prices = [149, 179, 199, 229, 259]
demand_prob = [0.92, 0.78, 0.61, 0.40, 0.22]
best_price, best_rev = None, 0
for price, prob in zip(candidate_prices, demand_prob):
expected_rev = price * prob
if expected_rev > best_rev:
best_rev, best_price = expected_rev, price
print(best_price, round(best_rev, 2))
# -> 199 121.39 (highest expected revenue in this toy set)Real systems estimate that demand curve from millions of historical observations and update it constantly. But the intuition holds: charging the maximum price is rarely optimal, and neither is charging the lowest.
Dynamic pricingDynamic pricingAutomatically adjusting prices in real time based on demand, competition or user behaviour to optimise revenue, margin or conversion.View full definition → is not only for room rates.
The unifying idea: the inventory is perishable. An unsold room tonight is revenue gone forever, exactly like an empty airplane seat at takeoff.
Speed and personalization create risk. A few things every operator should watch.
Price gouging rules. During declared emergencies (hurricanes, wildfires), many jurisdictions cap price increases. An unsupervised model that spikes rates when a storm drives demand can trigger legal exposure and brutal PR. Configure hard ceilings.
Rate parity. Contracts with OTAs (Online Travel Agencies) like Booking.com or Expedia often include rate parity clauses requiring you not to undercut them elsewhere. AI that freely discounts across channels can breach these. Note that parity rules are evolving; the EU has restricted broad parity clauses, so check current terms.
Personalization limits. Charging different guests different prices for the identical room based on their browsing history or device can look like discrimination and erode trust fast. Most reputable operators personalize *offers and packages*, not the base room rate for the same product.
Algorithmic collusion. If many competitors use the same pricing vendor feeding off the same signals, regulators worry prices could drift upward in lockstep without any explicit agreement. The US FTC and others have flagged this. It is an active area, so document your inputs and keep a human accountable.
For a solid primer on the economics, the OECD's overview of algorithmic competition and pricing is a good free read.
Knowledge check
1. RevPAR is best understood as a metric that captures which aspect of hotel performance?
2. What is the fundamental difference between old-school rule-based RM and AI-driven RM as described in the lesson?
3. Why is 'booking pace' (pickup) a valuable signal for a dynamic pricing model?
4. Select ALL correct answers about signals that feed an AI-driven revenue management model.
Select all the correct answers.
5. Select ALL correct answers about why AI-driven dynamic pricing can improve RevPAR over a static rate card.
Select all the correct answers.
You rarely build this from scratch. Established vendors (IDeaS, Duetto, Amadeus, and others) supply the models; larger chains build in-house. Either way, the operating playbook matters more than the algorithm.
Garbage in, garbage out. The model needs accurate historical bookings, correct room-type mapping, and a reliable competitor feed. Many failed rollouts trace back to messy PMS (Property Management System) data, not bad AI.
The best setups run semi-automated: the model recommends, and revenue managers approve or override, especially for high-stakes dates (a citywide sellout, a one-off festival). Over time, trust builds and more decisions run on autopilot within set guardrails.
Do not celebrate occupancy alone. A full hotel at a discounted rate can post lower RevPAR than a 78%-full hotel priced well. Track RevPAR and, ideally, TRevPAR (Total Revenue Per Available Room), which includes ancillary spend. Run an A/B or holdout test if you can: price one segment or set of dates with the model and a comparable set with the old method, then compare.
Your prices affect competitors, whose prices feed back into your model. If everyone reacts to everyone, small errors can amplify. Periodically sanity-check that the model is responding to real demand, not just chasing the hotel across the street.
A convention hotel sees a major medical conference announced 90 days out. The old process: someone eventually notices and raises weekend rates. The AI process:
1. The event feed flags the conference the day it is announced.
2. Booking pace for those nights ticks up in shopping data before reservations arrive.
3. The model raises rates gradually, holding back inventory for higher-paying late corporate bookings.
4. As the date nears and pace confirms strong demand, it opens premium room types and prices ancillaries (parking, early check-in) upward.
5. If pace stalls at day 20, it eases rates to protect occupancy.
No single human tracked all five steps in real time. That is the edge.