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.
- 01
Below the floor
If the requested rate sits under the minimum acceptable rate, recommend a counter.
- 02
Negative net impact
If taking the group would reduce overall revenue after displacement, decline.
- 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.
- 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
Accept at $259. Net impact +$58,275. Risk is Low.

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.
Next project. Biomedical Equipment Records Management System