
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
$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
$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
$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
$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)
$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
$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
$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
€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
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
~$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)
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 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)
$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.
# 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: EnabledAction: 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)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.
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
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.
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
Mews PMS Example
Generic API Key Method (Oracle OPERA Cloud, Little Hotelier, etc.)
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)
If Using SiteMinder as Separate Channel Manager
Verify Direct Booking Engine
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.
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.
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.
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.
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
+$0 / +0%
Modifier Type: None (base rules)
Friday
+$___
Modifier Type: Flat increase
Saturday
+$___
Modifier Type: Flat increase
Sunday
-$___
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
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
# 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
===========================================
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
| 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 | 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
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
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:
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.
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
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
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.
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?