49 min readDeterministic automation

Implementation Guide: Auto-adjust rates within defined yield management rules based on occupancy and date

Step-by-step implementation guide for deploying AI to auto-adjust rates within defined yield management rules based on occupancy and date for Hospitality clients.

Hardware Procurement

Front-Desk Workstation

DellDell OptiPlex 3000 Micro (i5-12500T / 8 GB / 256 GB SSD)Qty: 1

$650 per unit MSP cost / $900 suggested resale

Primary front-desk workstation for accessing the RMS dashboard, PMS, and channel manager via web browser. Only required if the client's existing workstation is older than 5 years or cannot run a modern browser at acceptable speed.

Network Firewall / Router / Security Gateway

UbiquitiUniFi Dream Machine Pro (UDM-Pro)Qty: 1

$379 per unit MSP cost / $550 suggested resale

Provides VLAN segmentation (separating PCI-scoped payment traffic from general operations and guest WiFi), IDS/IPS, site-to-site VPN for remote MSP management, and centralized UniFi network management. Critical for PCI DSS 4.0.1 compliance.

Managed PoE Switch

UbiquitiUniFi Switch USW-24-PoE (USW-24-POE)Qty: 1

$399 per unit MSP cost / $575 suggested resale

24-port managed switch providing PoE for access points and IP phones, plus VLAN tagging to isolate payment, operations, and guest network segments.

Wireless Access Point

UbiquitiUniFi U6 Pro (U6-Pro)Qty: 2

$159 per unit MSP cost / $229 suggested resale

Provides reliable Wi-Fi 6 coverage for front-desk and back-office areas. Two APs ensure redundancy and coverage for lobby and manager's office where RMS dashboards are accessed.

Uninterruptible Power Supply (UPS)

APC by Schneider ElectricAPC Smart-UPS 1500VA LCD (SMT1500)Qty: 1

$500 per unit MSP cost / $700 suggested resale

Battery backup for the UDM-Pro, PoE switch, ISP modem, and front-desk workstation. Keeps the rate-sync pipeline alive during power outages—critical because rate changes must reach OTAs 24/7.

LTE/5G Failover Modem

CradlepointCradlepoint IBR600C-150MQty: 1

$450 per unit MSP cost / $650 suggested resale

Cellular WAN failover connected to the UDM-Pro secondary WAN port. Ensures RMS-to-PMS-to-OTA rate sync continues if the primary ISP goes down. Essential for properties in areas with unreliable broadband.

Revenue Manager Tablet

AppleiPad 10th Generation (64 GB, Wi-Fi)Qty: 1

$329 per unit MSP cost / $449 suggested resale

Portable dashboard for the GM or revenue manager to monitor rate changes, occupancy, and RevPAR KPIs from anywhere on property. RoomPriceGenie and PriceLabs both have mobile-responsive dashboards.

Software Procurement

RoomPriceGenie — Advanced Plan

RoomPriceGenie (Bern, Switzerland)SaaS — per-property, monthly or annualQty: per property

€179/month (annual billing, ~$195 USD/mo); Monthly billing: €215/mo. MSP partner discount available after certification.

Primary Revenue Management System (RMS). Automatically calculates optimal room rates based on occupancy, booking pace, day-of-week, seasonality, competitor rates, and local events. Pushes rate updates to the PMS via two-way API. The Advanced Plan includes competitor rate tracking, event-based adjustments, multi-room-type support, and priority onboarding.

SiteMinder Channel Manager

SiteMinder (Sydney, Australia)SaaS — per-property, scales by room countQty: 1

From €56/month (small properties) to €161/month (100 rooms). ~$60–$175 USD/mo. Annual billing available.

Distributes rate and availability updates from the PMS to all connected OTAs (Booking.com, Expedia, Airbnb, Hotels.com, etc.) and the direct booking engine in real time. Required if the client's current PMS does not have a built-in channel manager or if broader OTA connectivity is needed.

Lighthouse (formerly OTA Insight) — Rate Shopper

Lighthouse (Brussels, Belgium)SaaS — per-propertyQty: per property

~$75–$200/month depending on property size and comp-set size. Custom pricing via sales.

Provides competitive rate intelligence by shopping rates from OTAs for 3–5 local competitor properties. Feeds market context into rate decisions—while RoomPriceGenie has built-in competitor tracking, Lighthouse provides deeper analytics for properties that want granular market intelligence.

Cloudbeds PMS (alternative / upgrade path)

Cloudbeds (San Diego, USA)SaaS — per-property, tiered

Flex: $180/month, One: $220/month, Experience: $320/month, Enterprise: custom. PIE (Pricing Intelligence Engine) add-on from ~€104/month.

Alternative full-stack option: cloud PMS with built-in channel manager, booking engine, and native PIE revenue-management engine. Recommended if the client needs a PMS upgrade or wants a single-vendor stack. Eliminates need for separate SiteMinder license.

Mews PMS + Atomize RMS (alternative)

Mews (Amsterdam, Netherlands) / Atomize (Stockholm, Sweden)SaaS — per-property

Mews PMS from €300/month. Atomize add-on from ~$299/month. Bundle pricing available.

Alternative full-stack option for mid-size properties (50+ rooms) wanting a modern API-first PMS with deeply integrated AI-powered RMS. Atomize Autopilot automates pricing for 70% of rate decisions. Best fit when client is already on Mews or considering a PMS migration.

ConnectWise RMM or Datto RMM (MSP management)

ConnectWise / DattoSaaS — per-endpoint

$2–$5/endpoint/month (MSP internal cost)

Remote Monitoring and Management agent deployed on front-desk workstation and UDM-Pro (via SNMP) for the MSP to monitor uptime, apply patches, and receive alerts if the workstation or network goes offline—which would disrupt rate sync.

Prerequisites

  • Client must have an active, cloud-based Property Management System (PMS) with an open API or pre-built integration with RoomPriceGenie. Supported PMS platforms include: Cloudbeds, Mews, Oracle OPERA Cloud, Little Hotelier, RoomRaccoon, Hotelogix, eZee Absolute, Protel, Clock PMS, and 70+ others listed at roompricegenie.com/integrations.
  • Client must have an active Channel Manager connected to at least one OTA (Booking.com, Expedia, etc.). If no channel manager exists, SiteMinder or the PMS's built-in channel manager must be procured and configured first.
  • Business-class internet service with minimum 25 Mbps down / 5 Mbps up and a service-level agreement (SLA) for uptime. A secondary WAN (LTE failover) is strongly recommended.
  • Minimum 12 months of historical booking and occupancy data in the PMS. 24+ months is preferred for better algorithm calibration. If the property is new or data is sparse, RoomPriceGenie can bootstrap from market data, but results will take longer to optimize.
  • Clearly defined room types in the PMS with no duplicate or legacy room-type codes. Each room type must have a distinct name, description, and base rate.
  • A documented rate strategy including: base rates per room type, absolute minimum rate floors, absolute maximum rate ceilings, desired rate tiers (e.g., low/medium/high season base rates), and any blackout dates or manually-controlled event dates.
  • A defined competitive set of 3–5 local competitor properties whose public OTA rates will be monitored for market context.
  • Admin-level credentials for the PMS (for API key generation and integration setup). A dedicated service account is recommended rather than using a staff member's personal login.
  • The property's payment processing must be PCI DSS 4.0.1 compliant. While the RMS does not process card data, the connected PMS and payment gateway must be compliant. Verify with the payment processor before proceeding.
  • Network infrastructure must support VLAN segmentation to isolate PCI-scoped traffic (payment terminals, PMS payment module) from general operations traffic. If current networking gear does not support VLANs, the Ubiquiti hardware in this guide must be installed first.
  • A designated project stakeholder on the client side—typically the General Manager or Revenue Manager—who can approve rate rules, review shadow-mode recommendations, and authorize go-live.

Installation Steps

Step 1: Network Infrastructure Audit and Upgrade

Assess the client's existing network infrastructure for reliability, VLAN capability, and PCI compliance readiness. If the existing router/firewall does not support VLANs or IDS/IPS, install the Ubiquiti UniFi Dream Machine Pro, USW-24-PoE switch, and U6 Pro access points. Configure three VLANs: VLAN 10 (PCI/Payment — payment terminals, PMS payment module), VLAN 20 (Operations — front-desk workstation, back-office PCs, RMS access), VLAN 30 (Guest WiFi — isolated, no access to VLANs 10/20). Connect the Cradlepoint IBR600C as secondary WAN on the UDM-Pro for automatic failover.

1
Access UDM-Pro at https://192.168.1.1 after initial setup
2
Navigate to Settings > Networks > Create New Network
VLAN definitions for UDM-Pro
text
# VLAN 10 - PCI Payment Zone
Name: PCI-Payment | VLAN ID: 10 | Subnet: 10.10.10.0/24 | DHCP: Enabled
# VLAN 20 - Hotel Operations
Name: Hotel-Ops | VLAN ID: 20 | Subnet: 10.10.20.0/24 | DHCP: Enabled
# VLAN 30 - Guest WiFi
Name: Guest-WiFi | VLAN ID: 30 | Subnet: 10.10.30.0/24 | DHCP: Enabled
1
Configure inter-VLAN firewall rules: Block Guest-WiFi from accessing PCI-Payment and Hotel-Ops
2
Navigate to Settings > Firewall & Security > Create Rule
Inter-VLAN firewall rules blocking Guest WiFi from PCI and Operations zones
text
Action: Drop | Source: VLAN 30 (10.10.30.0/24) | Destination: VLAN 10 (10.10.10.0/24)
Action: Drop | Source: VLAN 30 (10.10.30.0/24) | Destination: VLAN 20 (10.10.20.0/24)
1
Configure WAN Failover: Navigate to Settings > Internet > WAN2 > Assign Cradlepoint interface > Failover mode
2
Connect UPS to UDM-Pro, switch, and ISP modem via UPS outlets
Note

If the property already has a Meraki MX67/68 or equivalent managed firewall with VLAN support, skip the Ubiquiti installation and configure VLANs on the existing gear. Document all network changes in the client's IT asset register. Take screenshots of all firewall rules for the compliance file.

Step 2: PMS Data Audit and Cleanup

Log into the client's PMS with admin credentials and audit the data quality required for RMS activation. This is the most critical pre-deployment step—garbage in equals garbage out for rate automation. Verify room types, rate codes, historical data, and current rate structure. Clean up any issues found.

1
Navigate to Room Type Configuration — List all active room types. Remove or deactivate any legacy/duplicate types. Verify each room type has: Name, Description, Max Occupancy, Base Rate, Room Count. Example clean room types: STD-K (Standard King), DLX-2Q (Deluxe 2 Queens), STE-K (Suite King).
2
Navigate to Rate Code / Rate Plan Configuration — List all active rate codes. Deactivate any unused or test rate codes. Verify BAR (Best Available Rate) rate code exists and is the primary public rate. Document: Rate Code Name, Linked Room Types, Derivation Rules (e.g., AAA = BAR - 10%).
3
Navigate to Reporting > Occupancy Report — Pull occupancy data for the last 12–24 months. Verify data completeness: no months with 0% occupancy (unless genuinely closed). Export to CSV for RMS onboarding upload if the vendor requests it.
4
Navigate to Reservation Report — Verify booking source tracking is active (OTA name, Direct, Phone, Walk-in). This data helps the RMS understand channel mix and booking lead times.
Note

This step typically takes 2–4 hours for a clean PMS and up to 2 full days for properties with years of accumulated legacy data. Do NOT skip this step—activating an RMS on dirty data will produce erratic pricing that damages the property's reputation and revenue. If the PMS has fewer than 6 months of data, inform RoomPriceGenie during onboarding so they can supplement with market-level data.

Step 3: Define Yield Management Rules with Client

Conduct a structured workshop (60–90 minutes) with the General Manager or Revenue Manager to define the deterministic rules that will govern automated rate adjustments. These rules form the guardrails within which the RMS operates. Document everything in the Rate Strategy Worksheet (see custom AI components section). The RMS will never exceed these boundaries—this is the 'deterministic' aspect of the automation.

Rate Strategy Worksheet — Complete with client during workshop

1
Rate Strategy Worksheet - Complete with client during workshop: ROOM TYPE: [e.g., Standard King] Base Rate (rack rate): $___ Minimum Rate Floor (absolute lowest): $___ Maximum Rate Ceiling (absolute highest): $___
2
OCCUPANCY TRIGGERS: 0-40% occupancy: Rate = Floor + 10% 41-60% occupancy: Rate = Base Rate - 10% 61-80% occupancy: Rate = Base Rate 81-90% occupancy: Rate = Base Rate + 15% 91-100% occupancy: Rate = Base Rate + 30% (up to ceiling)
3
DAY-OF-WEEK ADJUSTMENTS: Friday/Saturday: +$20 flat or +15% (whichever client prefers) Sunday-Thursday: Base rules apply
4
SEASONAL MULTIPLIERS: Peak Season (dates: _____ to _____): +25% Shoulder Season (dates: _____ to _____): +10% Low Season (dates: _____ to _____): -10%
5
BLACKOUT / MANUAL OVERRIDE DATES:
6
[List specific dates where rates are manually controlled, e.g., local festivals, holidays]
7
COMPETITOR SET (3-5 properties):
8
1. [Hotel Name] - [Address/OTA listing URL]
9
2. [Hotel Name] - [Address/OTA listing URL]
10
3. [Hotel Name] - [Address/OTA listing URL]
11
LEAD TIME RULES: Bookings 60+ days out: -5% early bird discount Bookings 0-3 days out (last minute): +10% if occupancy > 70%
12
MINIMUM LENGTH-OF-STAY (LOS) RULES: Peak weekends: 2-night minimum Events: 3-night minimum (specify dates)
Note

This is a business conversation, not a technical one. The MSP technician should come prepared with industry benchmarks (average ADR for the market from STR or Lighthouse data) to guide the client. If the client has no existing rate strategy, start with RoomPriceGenie's recommended defaults and adjust after 30 days of data. Print the completed worksheet and have the GM sign it as the approved rate strategy—this protects both the MSP and client.

Step 4: Create RoomPriceGenie Account and Configure Property

Sign up for RoomPriceGenie (Advanced Plan) and complete the initial property configuration. Use the MSP partner portal if you have completed RoomPriceGenie certification—this unlocks partner discounts and a dedicated partner manager. Configure the property profile, room types, and connect the PMS integration.

1
Navigate to https://app.roompricegenie.com/signup
2
Select 'Advanced Plan' and choose Annual billing (saves ~17%)
3
Complete property profile: Property Name, Address, Star Rating, Total Room Count; Property Type (Hotel, B&B, Hostel, Vacation Rental); Currency, Timezone
4
Add Room Types (must match PMS exactly): Room Type Name (e.g., 'Standard King' — use identical PMS naming); Room Count for this type; Base Rate (from Rate Strategy Worksheet); Minimum Rate Floor; Maximum Rate Ceiling
5
Configure Pricing Strategy: Aggressiveness: Start at 'Medium' (adjustable later); Pricing Mode: 'Recommend Only' (DO NOT enable Autopilot yet); Day-of-Week adjustments: Input from worksheet; Seasonal adjustments: Input from worksheet
6
Add Competitor Set: Search by property name or OTA URL; Add 3-5 competitors from the worksheet; Set competitive positioning: 'Match', 'Undercut by X%', or 'Premium by X%'
7
Set Blackout Dates: Add all manually-controlled dates from the worksheet; These dates will be excluded from automatic adjustments
Note

Use a dedicated MSP admin email (e.g., hospitality-rms@yourmsp.com) for the master account, then invite the client's GM as a secondary user. This ensures the MSP retains access for ongoing management. RoomPriceGenie offers a free trial—use it during the shadow/testing phase to avoid billing before the client sees value.

Step 5: Configure PMS-to-RMS API Integration

Establish the two-way API connection between the client's PMS and RoomPriceGenie. This allows the RMS to pull real-time occupancy/booking data FROM the PMS, and push optimized rates TO the PMS. The exact steps vary by PMS vendor, but the general pattern is: generate an API key in the PMS, enter it in RoomPriceGenie, map room types, and verify the data sync.

Cloudbeds PMS Example

1
Log into Cloudbeds as Admin
2
Navigate to Marketplace > Find 'RoomPriceGenie' > Click 'Connect'
3
Authorize the OAuth2 connection (Cloudbeds uses OAuth, not API keys)
4
In RoomPriceGenie: Settings > Integrations > Select 'Cloudbeds'
5
Complete the OAuth handshake — you'll be redirected to Cloudbeds to approve
6
Map Room Types: RoomPriceGenie will auto-detect Cloudbeds room types — Verify each mapping: RPG 'Standard King' ↔ Cloudbeds 'STD-K'
7
Map Rate Plans: Link the BAR (Best Available Rate) rate plan — RPG will push rates to this rate plan; derived rates (AAA, Corp) adjust automatically
8
Enable 'Pull Occupancy Data' — confirms RPG can read real-time availability
9
Click 'Test Connection' — verify green status on both read and write

Mews PMS Example

1
Log into Mews Commander as Admin
2
Navigate to Marketplace > Search 'RoomPriceGenie' > Install
3
Mews will generate an integration access token
4
Copy the access token
5
In RoomPriceGenie: Settings > Integrations > Select 'Mews'
6
Paste the Mews access token
7
Map Room Types and Rate Plans as above
8
Test Connection

Generic API Key Method (Oracle OPERA Cloud, Little Hotelier, etc.)

1
In PMS Admin: Navigate to API / Integrations settings
2
Generate a new API key or client credential set (Client ID + Secret)
3
Set API permissions: Read (reservations, availability, room types) + Write (rates)
4
In RoomPriceGenie: Settings > Integrations > Select PMS vendor
5
Enter API credentials
6
Map room types and rate plans
7
Test Connection
Note

If the PMS does not have a pre-built RoomPriceGenie integration, check if the PMS supports a channel manager that RoomPriceGenie connects to as a workaround (e.g., RoomPriceGenie → SiteMinder → PMS). Some older PMS systems (e.g., legacy on-premise OPERA v5) may require a middleware connector—contact RoomPriceGenie support for guidance. NEVER share API credentials via email; use a password manager (e.g., IT Glue, Passportal) to securely store and share credentials with the client.

Step 6: Configure Channel Manager Rate Push

Verify that rates updated by RoomPriceGenie in the PMS are correctly propagated to all OTAs via the Channel Manager. If the PMS has a built-in channel manager (Cloudbeds, Mews), this should happen automatically. If using a separate channel manager (SiteMinder), verify the PMS → Channel Manager → OTA pipeline is intact.

If Using Built-In Channel Manager (Cloudbeds, Mews)

1
In PMS: Navigate to Channel Manager > Connected Channels
2
Verify all OTAs are connected and status is 'Active': Booking.com: Active ✓, Expedia: Active ✓, Airbnb (if applicable): Active ✓, Hotels.com: Active ✓
3
Manually change a rate for a test room type (future date, 60+ days out)
4
Wait 5-15 minutes, then check the OTA extranet to verify the rate updated
5
Revert the test rate change

If Using SiteMinder as Separate Channel Manager

1
Log into SiteMinder at https://app.siteminder.com
2
Verify PMS connection: Settings > PMS > Status = Connected
3
Verify OTA connections: Channels > [Each OTA] > Status = Active
4
Check rate mapping: Rates > Rate Plan Mapping — Ensure BAR rate plan from PMS maps to the correct rate plan on each OTA
5
Perform same manual rate test as above
6
Monitor SiteMinder Activity Log for successful rate pushes

Verify Direct Booking Engine

1
Navigate to the property's booking engine (website direct booking page)
2
Search for a room on a future date
3
Verify the displayed rate matches the PMS BAR rate
4
If using Cloudbeds: Booking Engine settings are automatic
5
If using SiteMinder TheBookingButton: verify widget is updated
Note

Rate propagation time varies by OTA: Booking.com updates within 5 minutes, Expedia within 15 minutes, Airbnb up to 30 minutes. Always test with dates 60+ days in the future to avoid impacting real guest bookings. Document the current rate on each OTA before testing so you can verify the change, and always revert test changes immediately.

Step 7: Run Shadow Mode (Recommend Only) for 7–14 Days

With the integration active, RoomPriceGenie will begin analyzing occupancy data and generating rate recommendations. During shadow mode, the system recommends rates but does NOT automatically push them to the PMS. The GM reviews recommendations daily and compares them to their manual pricing decisions. This builds confidence and allows rule refinement before full automation.

1
In RoomPriceGenie: Verify Pricing Mode = 'Recommend Only' (NOT Autopilot)
2
Configure daily email digest: Settings > Notifications > Enable 'Daily Rate Recommendations Email'. Add GM email and MSP monitoring email.
3
Create a tracking spreadsheet — Columns: Date | Room Type | RPG Recommended Rate | Current Manual Rate | Difference | GM Action (Accept/Reject/Modify) | Notes
4
Daily review process (10–15 min/day): a. GM opens RoomPriceGenie dashboard. b. Review recommended rates for next 30 days. c. Compare to current rates. d. Note any recommendations that seem too high or too low. e. Log decisions in tracking spreadsheet.
5
After 7 days: Review the tracking spreadsheet with the GM — If >80% of recommendations are accepted: proceed to go-live. If <80%: adjust rules (min/max floors, aggressiveness setting) and run another 7 days.
6
Common adjustments during shadow mode: Tighten min/max rate floors if recommendations are too aggressive. Adjust 'Aggressiveness' slider (1–10 scale in RPG). Add/remove competitors from comp set if market positioning feels off. Add special event dates that were missed in initial setup.
Note

Shadow mode is non-negotiable for first-time deployments. Skipping it risks pushing incorrect rates to OTAs, which can result in sold rooms at below-cost rates or priced-out rooms on high-demand nights. The 7–14 day window also lets the algorithm ingest enough data to improve its recommendations. If the property has very low booking volume (e.g., <5 bookings/week), extend shadow mode to 21 days for more data points.

Step 8: Enable Autopilot Mode (Go-Live)

After successful shadow mode validation, enable Autopilot mode so RoomPriceGenie automatically pushes optimized rates to the PMS (and subsequently to all OTAs via the channel manager). Configure the update frequency and verify the first automated rate push.

1
Enable Autopilot: In RoomPriceGenie: Settings > Pricing Mode > Switch to 'Autopilot'
2
Set update frequency: 'Multiple times per day' (recommended) or 'Once daily'
3
Set update window: Rates for next 365 days (default; adjust if client prefers shorter)
4
Verify first automated push: Wait for the next scheduled update cycle (usually within 1–4 hours)
5
In RoomPriceGenie: Activity Log > Verify 'Rate Push Successful' entries
6
In PMS: Check rate calendar > Verify rates match RPG recommendations
7
On OTA extranet (Booking.com, Expedia): Verify rates match PMS/RPG
8
Monitor intensively for first 5–7 days: Daily check of rate pushes in RPG Activity Log
9
Daily comparison: RPG rate vs OTA displayed rate (spot check 3 dates)
10
Watch for booking velocity changes (increase = good; sharp decrease = investigate)
11
GM should review dashboard daily during this period
Note

Go-live should be scheduled for a low-demand period if possible (e.g., not the week before the biggest local event). This minimizes risk if any rule adjustments are needed. Ensure the GM knows they can manually override any rate at any time in the PMS—Autopilot respects manual overrides for blackout dates. Set a calendar reminder for a 30-day post-go-live review with the GM.

Step 9: Configure MSP Monitoring and Alerting

Set up ongoing monitoring so the MSP is alerted to any integration failures, network outages, or anomalous rate behavior. This is the foundation of the recurring managed service offering.

1
RoomPriceGenie Monitoring: Navigate to Settings > Notifications > Add MSP alert email. Enable alerts for: Integration errors, Failed rate pushes, Connection timeout. Set up a bookmark to the RPG Activity Log in the MSP's monitoring dashboard.
2
Network Monitoring (UDM-Pro): Log into UniFi Controller: https://unifi.ui.com. Navigate to Settings > Notifications > Enable alerts for: WAN failover events, Gateway offline, Switch offline. Add MSP email/webhook for alert delivery.
3
ConnectWise/Datto RMM Agent (on front-desk workstation): Deploy RMM agent on the front-desk workstation. Configure monitoring: CPU, RAM, Disk, Uptime, Windows Updates. Create alert: 'Workstation offline for >15 minutes' → Email MSP.
4
Uptime Monitoring (external): Add the property's booking engine URL to an uptime monitor. Tool: UptimeRobot (free for up to 50 monitors) or Better Stack. Check interval: 5 minutes. Alert: Email + SMS to MSP on-call tech if booking engine is unreachable.
5
Create MSP Runbook Entry: Document in IT Glue / Hudu / SharePoint: Client name, property name, room count. RMS: RoomPriceGenie (login URL, admin credentials in password vault). PMS: [vendor] (login URL, API key location in vault). Channel Manager: [vendor] (login URL, credentials in vault). Network: UDM-Pro IP, UniFi Cloud login. Escalation: RoomPriceGenie support (support@roompricegenie.com). Escalation: PMS vendor support phone/email. Rate Strategy Worksheet: [link to signed document].
Note

Monitoring is what transforms a one-time implementation into a recurring managed service. The MSP should check the RPG Activity Log at least weekly during the first 3 months, then bi-weekly thereafter. Automated alerts handle critical failures, but regular spot-checks catch subtle issues (e.g., rates not updating for a specific room type due to a mapping error).

Step 10: Staff Training and Documentation

Conduct formal training for the property's staff covering daily operations, dashboard interpretation, manual overrides, and escalation procedures. Leave behind printed and digital documentation.

1
Dashboard Overview (20 min) - Login to RoomPriceGenie - Explain: Calendar view, rate recommendations, occupancy overlay - Show: RevPAR, ADR, and Occupancy KPI widgets - Show: Competitor rate comparison view
2
Rate Rules Recap (15 min) - Review the signed Rate Strategy Worksheet - Explain: How min/max floors work as guardrails - Explain: What triggers a rate change (occupancy threshold, day-of-week, etc.)
3
Manual Overrides (20 min) - Demo: How to override a rate for a specific date in RPG - Demo: How to set a blackout date (e.g., special event just announced) - Demo: How to temporarily disable Autopilot for a room type
4
Daily Workflow (15 min) - Morning: Check RPG dashboard (2-3 min) - Review today's rate and next 7 days - Check for any alerts or override suggestions - Weekly: Compare RevPAR to same period last year
5
Troubleshooting & Escalation (10 min) - If rates look wrong: Check PMS > Check RPG Activity Log > Call MSP - If OTA rate doesn't match: Check channel manager sync status - MSP help desk number and email - RoomPriceGenie support contact
6
Q&A (10 min)
Note

Train the GM plus at least one backup person (front desk manager or assistant GM). Record the training session (with permission) and save the recording to the client's shared drive. Provide both a printed quick-reference card (laminated, kept at the front desk) and a digital PDF manual. Schedule a 30-day follow-up training refresher to address questions that arise after real-world use.

Custom AI Components

Rate Strategy Worksheet Template

Type: workflow

A structured document template that the MSP uses during the client discovery workshop (Step 3) to capture all yield management rules. This worksheet becomes the configuration source-of-truth for RoomPriceGenie setup and serves as the signed agreement between the MSP and client on rate boundaries.

Implementation:

Rate Strategy Worksheet — Automated Yield Management

Property: ________________________

Date: ___________ Prepared by: ___________ Approved by (GM): ___________

SECTION 1: ROOM TYPES AND RATE BOUNDARIES

  • Room Type Code: STD-K | Room Type Name: Standard King | Count: ___ | Base Rate: $___ | Min Floor: $___ | Max Ceiling: $___
  • Room Type Code: STD-2Q | Room Type Name: Standard 2 Queens | Count: ___ | Base Rate: $___ | Min Floor: $___ | Max Ceiling: $___
  • Room Type Code: DLX-K | Room Type Name: Deluxe King | Count: ___ | Base Rate: $___ | Min Floor: $___ | Max Ceiling: $___
  • Room Type Code: STE-K | Room Type Name: Suite King | Count: ___ | Base Rate: $___ | Min Floor: $___ | Max Ceiling: $___
  • (add rows as needed)

SECTION 2: OCCUPANCY-BASED RATE TIERS

  • 0% – 30% | Rate Adjustment: Floor + 10% | Example (Base=$150): $____
  • 31% – 50% | Rate Adjustment: Base - 10% | Example (Base=$150): $135
  • 51% – 70% | Rate Adjustment: Base Rate | Example (Base=$150): $150
  • 71% – 85% | Rate Adjustment: Base + 15% | Example (Base=$150): $172.50
  • 86% – 95% | Rate Adjustment: Base + 30% | Example (Base=$150): $195
  • 96% – 100% | Rate Adjustment: Max Ceiling | Example (Base=$150): $____

SECTION 3: DAY-OF-WEEK MODIFIERS

Monday – Thursday

None (base rules)

+$0 / +0%

Modifier Type: None (base rules)

Friday

Flat increase

+$___

Modifier Type: Flat increase

Saturday

Flat increase

+$___

Modifier Type: Flat increase

Sunday

Discount

-$___

Modifier Type: Discount

SECTION 4: SEASONAL MULTIPLIERS

  • Season: Peak | Date Range: ___/___ to ___/___ | Multiplier: +___%
  • Season: Shoulder | Date Range: ___/___ to ___/___ | Multiplier: +___%
  • Season: Low | Date Range: ___/___ to ___/___ | Multiplier: -___%

SECTION 5: LEAD TIME ADJUSTMENTS

  • 60+ days before arrival: -___% early bird — Condition: If occupancy < ___%
  • 30-59 days: No adjustment — Condition: Standard rules
  • 7-29 days: +___% — Condition: If occupancy > ___%
  • 0-6 days (last minute): +___% — Condition: If occupancy > ___%
  • 0-6 days (last minute): -___% distressed — Condition: If occupancy < ___%

SECTION 6: MINIMUM LENGTH-OF-STAY (LOS)

  • Peak weekends — Min LOS: ___ nights
  • Special events — Min LOS: ___ nights — Notes: See event calendar below
  • Low season — Min LOS: 1 night (no restriction)

SECTION 7: BLACKOUT / MANUAL CONTROL DATES

  • Date(s): ___/___ | Event/Reason: ____________ | Manual Rate: $___ | Managed By: GM
  • Date(s): ___/___ | Event/Reason: ____________ | Manual Rate: $___ | Managed By: GM

SECTION 8: COMPETITOR SET

1
Property Name: ____________ | Address: ____________ | OTA Listing URL: ____________ | Positioning: Match / Undercut ___% / Premium ___%
2
Property Name: ____________ | Address: ____________ | OTA Listing URL: ____________ | Positioning: Match / Undercut ___% / Premium ___%
3
Property Name: ____________ | Address: ____________ | OTA Listing URL: ____________ | Positioning: Match / Undercut ___% / Premium ___%
4
Property Name: ____________ | Address: ____________ | OTA Listing URL: ____________ | Positioning: Match / Undercut ___% / Premium ___%
5
Property Name: ____________ | Address: ____________ | OTA Listing URL: ____________ | Positioning: Match / Undercut ___% / Premium ___%

SECTION 9: APPROVAL

I approve the above rate strategy as the governing rules for automated yield management.

General Manager Signature: ___________________________ Date: ___________ MSP Representative: ___________________________ Date: ___________

SECTION 10: REVISION HISTORY

  • Date | Change Description | Approved By
  • | |

Rate Sync Health Check Monitor

Type: integration

A lightweight monitoring script that the MSP runs on a scheduled basis (via cron job, Azure Function, or AWS Lambda) to verify that RoomPriceGenie is successfully pushing rates to the PMS. It queries the PMS API for the current BAR rate for a sample room type 30 days out, compares it to the RoomPriceGenie recommended rate, and alerts the MSP if there is a mismatch or if the PMS rate has not changed in 48+ hours despite occupancy changes.

Implementation

Rate Sync Health Check Monitor
python
# deploy via cron every 6 hours, Azure Function, or AWS Lambda

#!/usr/bin/env python3
"""
Rate Sync Health Check Monitor
Purpose: Verify RoomPriceGenie → PMS rate sync is functioning
Deployment: Run via cron every 6 hours, or as an Azure Function / AWS Lambda
Dependencies: pip install requests python-dateutil
"""

import requests
import json
import smtplib
from email.mime.text import MIMEText
from datetime import datetime, timedelta
import os

# --- CONFIGURATION (use environment variables in production) ---
PMS_API_BASE = os.getenv('PMS_API_BASE', 'https://api.cloudbeds.com/api/v1.2')  # Example: Cloudbeds
PMS_API_KEY = os.getenv('PMS_API_KEY', 'your-pms-api-key-here')
SAMPLE_ROOM_TYPE_ID = os.getenv('SAMPLE_ROOM_TYPE_ID', 'STD-K')  # Room type to spot-check
CHECK_DATE_OFFSET_DAYS = 30  # Check rates 30 days from today

ALERT_EMAIL_FROM = os.getenv('ALERT_EMAIL_FROM', 'alerts@yourmsp.com')
ALERT_EMAIL_TO = os.getenv('ALERT_EMAIL_TO', 'hospitality-team@yourmsp.com')
SMTP_HOST = os.getenv('SMTP_HOST', 'smtp.office365.com')
SMTP_PORT = int(os.getenv('SMTP_PORT', '587'))
SMTP_USER = os.getenv('SMTP_USER', 'alerts@yourmsp.com')
SMTP_PASS = os.getenv('SMTP_PASS', 'your-smtp-password')

# State file to track last known rate (for stale-rate detection)
STATE_FILE = '/tmp/rate_sync_state.json'

def get_pms_rate(check_date: str) -> dict:
    """Query PMS API for the BAR rate on a given date for the sample room type."""
    headers = {'Authorization': f'Bearer {PMS_API_KEY}', 'Accept': 'application/json'}
    # Cloudbeds example endpoint - adapt for other PMS vendors
    params = {'date': check_date, 'room_type_id': SAMPLE_ROOM_TYPE_ID}
    try:
        resp = requests.get(f'{PMS_API_BASE}/getRates', headers=headers, params=params, timeout=30)
        resp.raise_for_status()
        data = resp.json()
        # Extract rate - structure varies by PMS; adapt as needed
        rate = data.get('data', {}).get('rate', None)
        return {'success': True, 'rate': float(rate) if rate else None, 'raw': data}
    except Exception as e:
        return {'success': False, 'rate': None, 'error': str(e)}

def load_state() -> dict:
    try:
        with open(STATE_FILE, 'r') as f:
            return json.load(f)
    except (FileNotFoundError, json.JSONDecodeError):
        return {}

def save_state(state: dict):
    with open(STATE_FILE, 'w') as f:
        json.dump(state, f)

def send_alert(subject: str, body: str):
    msg = MIMEText(body)
    msg['Subject'] = f'[Rate Sync Alert] {subject}'
    msg['From'] = ALERT_EMAIL_FROM
    msg['To'] = ALERT_EMAIL_TO
    try:
        with smtplib.SMTP(SMTP_HOST, SMTP_PORT) as server:
            server.starttls()
            server.login(SMTP_USER, SMTP_PASS)
            server.sendmail(ALERT_EMAIL_FROM, [ALERT_EMAIL_TO], msg.as_string())
        print(f'Alert sent: {subject}')
    except Exception as e:
        print(f'Failed to send alert: {e}')

def main():
    check_date = (datetime.now() + timedelta(days=CHECK_DATE_OFFSET_DAYS)).strftime('%Y-%m-%d')
    print(f'Checking PMS rate for {SAMPLE_ROOM_TYPE_ID} on {check_date}...')

    result = get_pms_rate(check_date)

    if not result['success']:
        send_alert(
            f'PMS API Error - {SAMPLE_ROOM_TYPE_ID}',
            f'Failed to query PMS API for rate on {check_date}.\nError: {result.get("error", "Unknown")}\n\nCheck PMS API connectivity and credentials.'
        )
        return

    current_rate = result['rate']
    if current_rate is None:
        send_alert(
            f'No Rate Found - {SAMPLE_ROOM_TYPE_ID}',
            f'PMS returned no BAR rate for {SAMPLE_ROOM_TYPE_ID} on {check_date}.\nThis may indicate a mapping issue between RoomPriceGenie and the PMS.'
        )
        return

    state = load_state()
    last_rate = state.get('last_rate')
    last_check = state.get('last_check')
    last_change = state.get('last_change', datetime.now().isoformat())

    # Check for stale rates (no change in 48 hours)
    if last_rate is not None and float(last_rate) == current_rate:
        hours_since_change = (datetime.now() - datetime.fromisoformat(last_change)).total_seconds() / 3600
        if hours_since_change > 48:
            send_alert(
                f'Stale Rate Warning - {SAMPLE_ROOM_TYPE_ID}',
                f'Rate for {SAMPLE_ROOM_TYPE_ID} on {check_date} has been ${current_rate:.2f} for {hours_since_change:.0f} hours.\nRoomPriceGenie may not be pushing updates. Check RPG Activity Log and PMS integration status.'
            )
    else:
        last_change = datetime.now().isoformat()

    # Save state
    save_state({
        'last_rate': current_rate,
        'last_check': datetime.now().isoformat(),
        'last_change': last_change,
        'check_date': check_date
    })

    print(f'Rate for {SAMPLE_ROOM_TYPE_ID} on {check_date}: ${current_rate:.2f} — Sync OK')

if __name__ == '__main__':
    main()

Monthly RevPAR Performance Report Generator

Type: workflow

An automated monthly report workflow that pulls key revenue metrics from the PMS and RoomPriceGenie, formats them into a client-facing PDF, and emails it to the GM and MSP account manager. This report is a key deliverable for the recurring managed service and demonstrates ongoing value.

Implementation

Trigger & Method

  • Trigger: 1st of each month at 08:00 local time (cron: 0 8 1 * *)
  • Method: Python script or Power Automate flow
  • Data Sources: PMS API (occupancy, ADR, RevPAR) + RoomPriceGenie dashboard (rate change log)
  • Output: PDF report emailed to GM + MSP account manager

Report Template — Executive Summary

Report header template
text
===========================================
MONTHLY REVENUE PERFORMANCE REPORT
Property: [Property Name]
Report Period: [Month Year]
Prepared by: [MSP Name]
===========================================
  • Average Occupancy: [XX.X%] (vs [XX.X%] same month last year, Δ [+/-X.X%])
  • Average Daily Rate (ADR): $[XXX.XX] (vs $[XXX.XX] SMLY, Δ [+/-$XX.XX])
  • Revenue Per Available Room (RevPAR): $[XXX.XX] (vs $[XXX.XX] SMLY, Δ [+/-$XX.XX])
  • Total Room Revenue: $[XX,XXX] (vs $[XX,XXX] SMLY, Δ [+/-[varies],XXX])

Key Metrics Table

Key metrics table template
text
| Metric                  | This Month | Last Month | SMLY | YoY Change |
|-------------------------|------------|------------|------|------------|
| Occupancy %             |            |            |      |            |
| ADR                     |            |            |      |            |
| RevPAR                  |            |            |      |            |
| Total Revenue           |            |            |      |            |
| Avg. Booking Lead Time  |            |            |      |            |
| Direct Booking %        |            |            |      |            |

Automated Rate Adjustments

  • Total rate changes pushed by RoomPriceGenie: [XXX]
  • Average rate changes per day: [X.X]
  • Rate range utilized: $[min] – $[max]
  • Number of manual overrides by GM: [X]
  • Blackout dates in effect: [X]

Occupancy Heatmap

Visual: calendar grid showing daily occupancy by color — Red = 90–100% | Orange = 70–89% | Yellow = 50–69% | Green = 30–49% | Blue = 0–29%

Competitor Rate Comparison

Competitor rate comparison table template
text
| Competitor | Their Avg. Rate | Our Avg. Rate | Positioning |
|------------|-----------------|---------------|-------------|
| [Comp 1]   | $[XXX]          | $[XXX]        | [+/-$XX]    |
| [Comp 2]   | $[XXX]          | $[XXX]        | [+/-$XX]    |
| [Comp 3]   | $[XXX]          | $[XXX]        | [+/-$XX]    |

Recommendations for Next Month

1
Specific recommendation based on data, e.g., 'Increase weekend ceiling by $20 due to consistent sellouts'
2
E.g., 'Add [local event] as a blackout date — expected high demand'
3
E.g., 'Consider adjusting min floor for STD-K down by $10 for low-season midweeks'

Next review meeting: [Date] | MSP Contact: [Name] | [Email] | [Phone]

Implementation Notes

  • Pull occupancy/ADR/RevPAR via PMS API (GET /reports/revenue endpoint)
  • Pull rate change count from RoomPriceGenie Activity Log (export CSV or API if available)
  • Use Python + reportlab or weasyprint to generate PDF
  • Use smtplib or Microsoft Graph API to send email with PDF attachment
  • Store historical reports in the client's shared folder (SharePoint/Google Drive)
  • MSP account manager reviews report before sending; adds personalized recommendations

Antitrust Compliance Guardrail Checklist

Type: workflow

A compliance checklist and review process that the MSP performs during initial setup and quarterly thereafter to ensure the automated rate management implementation does not inadvertently cross antitrust boundaries. Given active FTC/DOJ scrutiny of algorithmic pricing in hospitality, this is a critical risk-mitigation component.

Implementation:

Antitrust Compliance Guardrail Checklist for Automated Rate Management

1
Antitrust Compliance Guardrail Checklist for Automated Rate Management
2
===================================================================== Purpose: Protect MSP and client from antitrust risk related to algorithmic pricing Frequency: Complete during initial setup, then review quarterly Legal basis: FTC/DOJ joint statement of interest on algorithmic pricing (2024-2025),
3
Gibson et al. v. Cendyn Group, and related active litigation
4
--- CHECKLIST ---
5
INITIAL SETUP REVIEW
6
☐ 1. RATE DATA SOURCES — Verify the RMS uses ONLY these permissible data inputs:
7
✅ Property's own occupancy data (from PMS)
8
✅ Property's own booking pace and lead time data
9
✅ Publicly available competitor rates (scraped from OTAs — this is public data)
10
✅ Local event calendars and demand signals
11
✅ Historical rates and revenue from the property's own records ❌ PROHIBITED: Private/proprietary rate data shared directly between competitors ❌ PROHIBITED: Participation in a shared pricing pool with competitor properties ❌ PROHIBITED: Using a tool where the same algorithm optimizes rates for
12
competing properties using each other's private data
13
☐ 2. VENDOR DUE DILIGENCE — Confirm with RoomPriceGenie (or chosen RMS vendor):
14
☐ Does your platform share any individual property's private rate/occupancy data with competing properties? (Expected answer: NO)
15
☐ Does your algorithm use aggregated anonymized data or individual competitor private data? (Expected answer: Aggregated/public only)
16
☐ Can you provide a written statement confirming your platform's approach to
17
competitive data and antitrust compliance?
18
☐ Document the vendor's response and file in the client's compliance folder
19
☐ 3. COMPETITOR SET CONFIGURATION — Verify:
20
☐ Competitor rates are sourced from PUBLIC OTA listings only
21
☐ No direct data-sharing agreements exist between client and competitor hotels
22
☐ Client is NOT part of a revenue management consortium or co-op that shares
23
proprietary rate data with direct competitors
24
☐ 4. RATE INDEPENDENCE — Verify:
25
☐ The RMS makes pricing recommendations based primarily on the property's
26
OWN demand signals (occupancy, pace, seasonality)
27
☐ Competitor rates are used as CONTEXT, not as the primary driver
28
☐ The property retains full ability to override any recommendation
29
☐ Autopilot operates within the property's own min/max guardrails
30
QUARTERLY REVIEW
31
☐ 5. Re-confirm vendor has not changed data-sharing practices
32
☐ 6. Review any new legal developments (FTC filings, court rulings)
33
☐ 7. Verify no staff have entered into informal rate-sharing arrangements
34
with competitor GMs (this is a human risk, not a technology risk)
35
☐ 8. Document review completion, date, and reviewer name
36
RISK LEVEL ASSESSMENT: ✅ LOW RISK: Property uses RMS with own data + public competitor rates = Standard yield management ⚠️ MEDIUM RISK: Property is part of a management company using shared RMS across competing properties 🔴 HIGH RISK: Direct private data sharing between competitors via shared platform DISCLAIMER: This checklist is operational guidance for MSP technicians.
37
It does NOT constitute legal advice. Recommend the client consult a hospitality
38
attorney for formal antitrust compliance review, especially if: - The property is part of a management company operating competing hotels - The property participates in any industry pricing data consortium - The property has received any legal inquiry related to pricing practices Reviewer: _________________________ Date: ___________ Next Review Due: ___________

Testing & Validation

  • INTEGRATION TEST: In RoomPriceGenie, navigate to Settings > Integrations and verify the PMS connection status shows 'Connected' with a green indicator. Confirm the 'Last Sync' timestamp is within the last 4 hours. If status is red or last sync is stale, re-authenticate the API connection.
  • ROOM TYPE MAPPING TEST: In RoomPriceGenie, navigate to Room Types and verify each room type listed matches the PMS room types exactly (same name, same count). Cross-reference by logging into the PMS and comparing the room type list. Any mismatch will cause rates to be pushed to the wrong room type.
  • RATE BOUNDARY TEST: For each room type, set a test rate recommendation in shadow mode and verify it falls within the configured min floor and max ceiling. Attempt to manually set a rate below the floor in RPG—the system should reject it or display a warning.
  • RATE PUSH TEST (Shadow Mode): While still in Recommend Only mode, note RPG's recommended rate for a specific room type and date 60+ days out. Manually enter that exact rate in the PMS for that room type and date. Verify the rate propagates to at least one OTA (Booking.com) within 15 minutes by checking the OTA extranet. Revert the change immediately after verification.
  • RATE PUSH TEST (Autopilot): After enabling Autopilot, wait for the first automated rate push cycle. In RPG Activity Log, confirm entries showing 'Rate pushed successfully' for all room types. In the PMS, verify the rate calendar shows updated rates matching RPG. On one OTA extranet (Booking.com), verify the rate matches.
  • CHANNEL MANAGER PROPAGATION TEST: Change a rate in the PMS for a test date (60+ days out). Within 15 minutes, verify the rate is visible on: (a) Booking.com, (b) Expedia, (c) the property's direct booking engine. If any channel does not update, troubleshoot the channel manager connection for that specific OTA.
  • FAILOVER TEST: Disconnect the primary ISP at the UDM-Pro. Verify the Cradlepoint LTE failover activates within 60 seconds (check UDM-Pro dashboard for WAN2 active status). While on failover, trigger a manual rate change in the PMS and verify it reaches an OTA. Reconnect primary ISP and verify automatic failback.
  • OCCUPANCY TRIGGER TEST: If the property has adjustable test reservations, create dummy bookings to push occupancy above 80% for a future date. Verify that RPG's recommended rate for that date increases according to the occupancy-based rules defined in the Rate Strategy Worksheet. Cancel test reservations after verification.
  • MIN/MAX GUARDRAIL TEST: Manually create a scenario where demand signals would push the rate beyond the configured max ceiling (e.g., set all rooms to booked for a date except 1). Verify RPG's recommended or autopilot rate does not exceed the ceiling. Similarly, on a very low-demand date, verify the rate does not drop below the floor.
  • NOTIFICATION TEST: Deliberately break the PMS API connection (e.g., revoke the API key temporarily). Verify that RoomPriceGenie sends an integration error alert to the configured MSP email within 1 hour. Restore the API key and verify the connection re-establishes automatically.
  • BLACKOUT DATE TEST: Add a new blackout date in RoomPriceGenie for a date 45 days out. Verify that RPG does not generate a rate recommendation for that date and that the PMS retains the manually-set rate for that date without any automated override.
  • END-TO-END BOOKING TEST: Have someone (MSP tech or client) make a real test booking on the property's direct booking engine for a date where Autopilot has set a rate. Verify the booking confirmation shows the RPG-optimized rate. Cancel the booking within the free cancellation window after verification.

Client Handoff

The client handoff should be conducted as a structured 90-minute on-site session with the General Manager and at least one backup staff member (front desk manager or assistant GM). Cover the following topics:

1
System Overview (15 min): Walk through the architecture — RoomPriceGenie monitors occupancy and demand from the PMS, calculates optimal rates within the approved guardrails, and pushes those rates through the PMS to all OTAs and the direct booking engine. Emphasize that the system operates within the rules THEY approved in the Rate Strategy Worksheet.
2
Dashboard Training (20 min): Live demonstration of the RoomPriceGenie dashboard including: calendar view with rate overlay, occupancy visualization, competitor rate comparison, activity log showing recent rate pushes, and KPI widgets (ADR, RevPAR, Occupancy). Show how to read the daily email digest.
3
Manual Overrides (15 min): Demonstrate how to override a rate for a specific date, set a new blackout date, temporarily pause Autopilot for a room type, and adjust min/max guardrails. Emphasize they always have control — the system suggests, they approve (or override).
4
Daily/Weekly Workflow (10 min): Morning routine: 2-3 minute dashboard check. Weekly: 10-minute review of the week's rate changes and upcoming occupancy. Monthly: review the MSP-generated RevPAR performance report.
5
Troubleshooting & Escalation (10 min): Decision tree: If rates look wrong → check PMS → check RPG Activity Log → call MSP help desk. If an OTA shows a different rate → check channel manager sync → call MSP. Emergency contact information for the MSP and RoomPriceGenie support.
6
Q&A (20 min): Open questions.

Documentation to Leave Behind

  • Printed and laminated Quick Reference Card (1-page: login URL, daily workflow, emergency contacts)
  • Digital PDF User Guide (15-20 pages with screenshots)
  • Signed Rate Strategy Worksheet (kept at front desk and in digital file)
  • MSP Runbook excerpt showing the client's specific configuration
  • Recorded video of the training session (with permission)
  • RoomPriceGenie's own help center URL: https://help.roompricegenie.com

Success Criteria to Review Together

Maintenance

Ongoing MSP Responsibilities:

Weekly (15-30 min per client)

  • Check RoomPriceGenie Activity Log for any failed rate pushes or integration errors
  • Spot-check 3 random future dates: verify RPG rate matches PMS rate matches OTA rate
  • Review network monitoring dashboard: confirm UDM-Pro, workstation, and ISP are healthy
  • Check the Rate Sync Health Check Monitor alerts (custom component) for any triggered warnings

Monthly (1-2 hours per client)

  • Generate and review the Monthly RevPAR Performance Report (custom component)
  • Compare current month RevPAR/ADR to same month last year (SMLY)
  • Review rate change frequency and range utilization — are min/max guardrails being hit frequently? If so, recommend adjusting them.
  • Check for upcoming local events that should be added as blackout dates or demand spikes
  • Verify all OTA connections in the channel manager are active
  • Apply any OS/browser updates to the front-desk workstation
  • Review RoomPriceGenie release notes for new features or configuration changes

Quarterly (2-3 hours per client)

  • Conduct the Antitrust Compliance Guardrail Checklist review (custom component)
  • Schedule a 30-minute call with the GM to review quarterly performance, discuss upcoming seasonal changes, and adjust rate rules if needed
  • Review and update the Rate Strategy Worksheet if any rule changes are approved
  • Verify PCI DSS compliance status of the PMS and payment systems
  • Review competitor set — add/remove competitors if the local market has changed
  • Test WAN failover functionality
  • Update the MSP runbook with any configuration changes

Annually

  • Full rate strategy review with GM: update all seasonal dates, base rates, and min/max guardrails for the upcoming year
  • PCI DSS compliance audit support (coordinate with payment processor)
  • Renew RoomPriceGenie annual subscription (verify partner discount is applied)
  • Review vendor roadmap for new features that could benefit the client
  • Benchmark client's RevPAR improvement against industry averages to demonstrate ROI

SLA Considerations

  • Rate sync failures: MSP responds within 4 hours during business hours, 8 hours after hours. Rates not pushing to OTAs is a revenue-impacting issue.
  • Network outage: MSP responds within 2 hours (failover should handle automatically, but investigate root cause)
  • PMS API authentication failure: MSP responds within 4 hours; may require re-authentication with PMS vendor
  • Escalation path: MSP Tier 1 → MSP Hospitality Specialist → RoomPriceGenie Support (support@roompricegenie.com) → PMS Vendor Support

Triggers for Rule Re-Tuning

  • Occupancy consistently hits 95%+ on certain day types → raise the max ceiling
  • Rooms going unsold despite rate drops to the floor → lower the floor or investigate demand issues
  • New competitor opens in the market → add to comp set
  • Major renovation or room addition → update room counts and possibly rate tiers
  • Significant negative reviews mentioning price/value → review rate positioning
  • Client complaint that rates 'seem off' → immediate shadow-mode review for 7 days

Alternatives

PriceLabs (Per-Listing Model)

PriceLabs charges $19.99/month per listing (room type or unit) instead of a flat per-property fee. It offers similar automated pricing with occupancy-based rules, day-of-week adjustments, seasonal pricing, and competitor tracking. Originally built for vacation rentals but has expanded to hotels. Integrates with Cloudbeds, Hostaway, Guesty, Lodgify, and 60+ PMS/channel managers.

Tradeoffs

Cost advantage: For a 50-room hotel with 4 room types, PriceLabs costs ~$80/month vs. RoomPriceGenie's ~$195/month — a 60% savings. However, for properties with many individually-listed units (e.g., 50 separate vacation rental units), cost can exceed RoomPriceGenie. PriceLabs has a steeper learning curve and less guided onboarding than RoomPriceGenie. The interface is more data-dense, which is powerful for sophisticated users but overwhelming for GMs who want simplicity. PriceLabs offers a 30-day free trial.

Note

Recommend PriceLabs when: (a) the client is budget-sensitive, (b) the property is a vacation-rental/hotel hybrid, (c) the GM is comfortable with data-heavy interfaces, or (d) the property uses a PMS that PriceLabs integrates with but RoomPriceGenie does not.

Cloudbeds Full-Stack (PMS + PIE + Channel Manager)

If the client needs a PMS upgrade anyway, Cloudbeds offers an all-in-one platform: cloud PMS, built-in channel manager, booking engine, and PIE (Pricing Intelligence Engine) for automated rate management. This eliminates the need for separate SiteMinder and RoomPriceGenie subscriptions. PIE is a rules-based engine that tracks competitor availability and rates from OTAs and adjusts pricing within defined guardrails.

  • Pros: Single vendor, single login, seamless data flow with no API integration to manage, simplified support (one vendor to call). PIE from ~€104/month as an add-on is competitively priced. Cloudbeds is the #1 rated hotel management platform by Hotel Tech Report 2021-2025.
  • Cons: Requires a full PMS migration if the client is not already on Cloudbeds — this adds 4-8 weeks and $3,000-$8,000 in migration costs. PIE's pricing algorithm is less sophisticated than RoomPriceGenie or PriceLabs for pure dynamic pricing. The client is locked into the Cloudbeds ecosystem.
  • Recommend when: (a) the client's current PMS is end-of-life or inadequate, (b) the client wants to reduce vendor count, (c) the MSP wants to standardize hospitality clients on one platform for operational efficiency.
  • Total cost: Cloudbeds One ($220/mo) + PIE (~$113/mo) = ~$333/month for PMS + RMS + Channel Manager combined.

Mews PMS + Atomize RMS

For mid-size properties (50-200 rooms) that want a modern, API-first PMS with deeply integrated AI-powered revenue management. Mews is a next-generation PMS focused on automation, and Atomize (acquired by Mews in late 2024) provides generative AI-powered pricing with an Autopilot feature that automates 70% of pricing decisions. Together they offer a tightly integrated stack.

Tradeoffs

  • Pros: Atomize is one of the most advanced RMS platforms, with properties reporting up to 35% RevPAR improvement and 37% ADR increase.
  • Pros: The Mews-Atomize integration is the deepest in the market since they are now the same company.
  • Pros: Mews's open API makes it easy for MSPs to build additional integrations.
  • Cons: Significantly more expensive — Mews from €300/month + Atomize from ~$299/month = ~$600+/month, roughly 3x the cost of RoomPriceGenie alone.
  • Cons: Overkill for properties under 50 rooms.
  • Cons: Requires PMS migration if not already on Mews.
  • Cons: Atomize's sophistication may generate recommendations that a non-revenue-manager GM struggles to understand or trust.

When to Recommend

1
The property has 50+ rooms.
2
There is a dedicated revenue manager or sophisticated GM.
3
The property is already on Mews or planning a PMS migration.
4
The client is willing to invest for maximum revenue optimization.

happyhotel (Ultra-Budget Option)

German-based RMS that charges just €5 per hotel room per month for its yielding tool and algorithm. The analytics module (pulling data from the PMS) is free. Offers an autopilot function for hands-off pricing. Integrates with major PMS platforms.

Tradeoffs

  • Pros: By far the cheapest option — a 50-room hotel pays just €250/month (~$270).
  • Free analytics tier allows evaluation before committing to the paid yielding module.
  • Good for properties that want basic automation without sophisticated features.
  • Cons: Limited English-language documentation and support (stronger in German/European markets).
  • Fewer PMS integrations than RoomPriceGenie or PriceLabs.
  • Less sophisticated algorithm — good for basic yield management but lacks the nuance of premium platforms.
  • Smaller user community means less peer support and fewer online resources.

Recommend When

1
Budget is the primary constraint.
2
The property is in Europe.
3
The property wants 'good enough' automation rather than optimal.
4
As a stepping stone before upgrading to a more capable platform.

Manual Yield Management with Spreadsheet Rules (No RMS)

For clients who are not ready for automated rate management, the MSP can implement a structured manual process using a custom Excel/Google Sheets rate calculator that applies the same occupancy-based rules from the Rate Strategy Worksheet. The GM manually inputs daily occupancy, and the spreadsheet outputs the recommended rate. Rates are then manually entered into the PMS.

Tradeoffs

  • Pros: Zero software cost, no integration complexity, gives the GM full control and understanding of rate decisions.
  • Pros: Serves as a training tool before adopting an RMS.
  • Pros: Can be implemented in 1-2 days.
  • Cons: Entirely manual — rates are updated once per day at best (vs. multiple times daily with an RMS).
  • Cons: No competitor tracking.
  • Cons: No automated OTA propagation.
  • Cons: GM must remember to do it every day (and often forgets on busy days).
  • Cons: Revenue improvement will be significantly lower (estimated 5-10% vs. 15-35% with automated RMS).
  • Cons: This approach is not scalable.
Note

Recommend when: (a) the client has extreme budget constraints, (b) the client is skeptical and wants to 'try' yield management before investing in software, (c) as a Phase 1 proof-of-concept before Phase 2 RMS deployment.

Want early access to the full toolkit?