Operations Decision Support Tool

Hotel group pricing

Project type
Operations Decision Support Tool
Architecture
React → Express API → MongoDB

Stack

  • React
  • Node.js
  • Express.js
  • MongoDB

Key technical concepts

  • Revenue optimization logic
  • Scenario analysis
  • Business rule implementation
  • Decision-support recommendations

01

Executive Summary

A decision aid for a group booking inquiry: Accept, Counter, or Decline, with the recommended rate, the net impact after displacement, and a short reason. On the built-in Sheraton Fallsview sample, the recommendation is Accept at $259 and the net impact is +$58,275. It is a practice model of that operations decision. It is not a system a hotel has adopted.

02

Business Problem

A group inquiry needs one consistent answer. The rate floor, the rooms that may be turned away, and the net impact are easy to lose while the conversation is still going.

The requested rate is not the decision by itself. An ask can clear the floor and still be a poor choice if those rooms would have sold to other guests at a higher public rate.

Who would use it. Whoever has to accept, counter, or decline the inquiry, and then explain the answer without reconstructing the arithmetic.

03

Dataset / Inputs

Each property profile supplies the public rate, the minimum acceptable rate, expected occupancy, the room count, and a competitor set. The inquiry supplies the dates, the requested nightly rate, and the rooms asked for. Optional fields cover expected drop-off, events, and extra revenue such as parking and food and beverage. The five profiles are modeled defaults for Niagara Falls properties. Choosing a hotel and a date fills the public rate, the floor, and the occupancy from that profile. They are not a live extract from a hotel system.

  • Property defaults

    Public rate, minimum acceptable rate, expected occupancy, room count, competitor set, and expected drop-off. Choosing a property fills these in.

  • Stay dates

    Check-in and check-out. Nights are calculated and drive the room-night total.

  • Requested rate and rooms

    The nightly rate the group is asking for, plus room types and quantities. Group size is calculated from the rows.

  • Optional adjustments

    Wash, major events, room-type mix, or ancillary revenue. These refine the net picture. They do not change the order of the decision.

Property profiles used as inputs

Sheraton Fallsview
670 rooms. Base public rate $329. Base floor $239. Group band $229–$319. Competitors: Marriott Fallsview, Marriott on the Falls, Hilton Niagara Falls, Embassy Suites Fallsview.
Marriott Fallsview
432 rooms. Base public rate $309. Base floor $225. Group band $215–$299. Competitors: Sheraton Fallsview, Marriott on the Falls, Hilton Niagara Falls, DoubleTree Fallsview.
Marriott on the Falls
667 rooms. Base public rate $299. Base floor $219. Group band $205–$289. Competitors: Marriott Fallsview, Sheraton Fallsview, Crowne Plaza Niagara Falls, Hilton Niagara Falls.
Crowne Plaza Niagara Falls
234 rooms. Base public rate $259. Base floor $189. Group band $169–$249. Competitors: Skyline Hotel & Waterpark, Marriott on the Falls, Holiday Inn Fallsview, DoubleTree Fallsview.
Skyline Hotel & Waterpark
210 rooms. Base public rate $249. Base floor $179. Group band $159–$239. Competitors: Crowne Plaza Niagara Falls, Great Wolf Lodge, Holiday Inn Fallsview, Marriott on the Falls.

04

Approach

The review follows one order. Displacement is counted before the answer is treated as final. Unless the property details are overridden, the check uses total rooms and one group rate, not each room type on its own.

  1. 01

    Below the floor

    If the requested rate sits under the minimum acceptable rate, recommend a counter.

  2. 02

    Negative net impact

    If taking the group would reduce overall revenue after displacement, decline.

  3. 03

    Strong versus the market

    If the rate clears the floor and looks strong versus the competitor set, accept and flag it as high versus market.

  4. 04

    Otherwise

    If the ask clears the floor and net impact stays positive, accept.

Displacement is the transient demand you may lose when the group takes rooms that would otherwise sell at a higher public rate.

05

Key Insights

This is the built-in Sheraton Fallsview sample. The figures are what the decision panel shows for these inputs. They are not a result from a hotel that adopted the tool.

  • The rate clears the floor and still sits below the public rate

    The group asked for $259. The floor is $229 and the public rate is $319, so the first check does not force a counter.

  • Displacement is counted before the answer

    At 85% expected occupancy, transient demand is 569.5 rooms in a 670-room hotel. The group asks for 75 rooms a night. Those rooms fit, so none are displaced and the displacement cost is $0, against $58,275 of group revenue.

  • The net figure supports Accept

    Net impact is +$58,275. The recommendation is Accept at $259, with that reason attached.

Worked example — Sheraton Fallsview

15 Oct 2026 to 18 Oct 2026. Built-in sample. The public rate, floor, occupancy, and competitor average are the sample's figures.

Inputs

Arrival / Departure
15 Oct 2026 → 18 Oct 2026 (3 nights)
Rooms per night
75
Requested group rate
$259
Public rate
$319
Competitor average
$268
Expected occupancy
85%
Total rooms
670
Minimum rate
$229

Result

Transient rooms
569.5
Displaced rooms
0
Displacement cost
$0
Group revenue
$58,275
Net impact
+$58,275
Decision
Accept at $259

06

Business Value

The value is a repeatable recommendation, not a new booking system.

Operations
The same inquiry produces the same Accept, Counter, or Decline.
Visibility
Rate, net impact, rooms displaced, and risk sit in one result.
Communication
The short explanation can be repeated without redoing the arithmetic in the middle of the conversation.
Planning
Dates, rate, or expected occupancy can be changed and the recommendation updates from the same rules.

07

Lessons Learned

  • The rate is not the decision

    An ask can clear the floor and still be a poor choice if those rooms would have sold to other guests at a higher public rate.

  • Displacement comes before the answer

    The net impact is group revenue after the rooms that may be turned away. Calling the answer before that count skips the check that can change it.

  • The reason has to travel with the number

    Accept, Counter, or Decline is usable when the short explanation is attached. Otherwise the next person rebuilds the arithmetic.

  • Optional fields do not reorder the checks

    Wash, events, and extra revenue refine the net figure. They do not change the order: floor, then displacement, then the recommendation.

08

Solution

After the inquiry is evaluated, the result is a recommendation someone can read out loud, with the figures that produced it.

  • Accept, Counter, or Decline.
  • Recommended rate.
  • Net impact.
  • Rooms displaced.
  • Risk, marked Low, Medium, or High.
  • A market flag when the rate looks high versus the competitor set.
  • A short explanation of why that answer was reached.

09

Screenshots

Screens from the working example. The Sheraton Fallsview sample. Not a system a hotel has adopted.

  • Decision panel for Sheraton Fallsview showing Accept, risk Low, recommended rate $259, and net impact +$58,275.

    Decision

    Accept at $259. Net impact +$58,275. Risk is Low.

  • Group pricing sample with Sheraton Fallsview selected, 15 to 18 October 2026, 75 traditional rooms at $259, and an Accept decision.

    Sample inquiry

    The sample loads the stay, the rooms, and the rate, then shows the decision beside the inquiry.

10

Skills Demonstrated

  • Operational decision-making
  • Revenue evaluation
  • Recommendation logic
  • Business reasoning

Working example: React, Vite, Node.js, Express.js, MongoDB. The recommendation does not depend on that choice.