Apache Superset for Hotels: RevPAR, ADR, and Occupancy Dashboards
Build RevPAR, ADR, and occupancy dashboards for hotels with Apache Superset. Real-time analytics for revenue management without platform overhead.
Understanding Hotel Revenue Metrics and Why Real-Time Dashboards Matter
Hotel operations run on three fundamental metrics: Revenue Per Available Room (RevPAR), Average Daily Rate (ADR), and occupancy percentage. These numbers determine whether your property thrives or struggles. Yet most hotel chains still rely on spreadsheets, legacy property management systems (PMS) with clunky reporting, or expensive BI platforms like Looker and Tableau that take months to implement and drain capital budgets.
The problem isn’t a lack of data—it’s the gap between data and decision-making. Your PMS generates occupancy data in real time. Your accounting system tracks revenue. Your booking channels feed reservation data continuously. But connecting these sources into a single, actionable dashboard that your revenue manager can check before morning coffee? That’s where most hotel operators fail.
Apache Superset solves this by providing a lightweight, open-source foundation for building production-grade dashboards without the vendor lock-in or astronomical costs of traditional BI platforms. D23 takes this further by managing Apache Superset infrastructure, adding AI-powered text-to-SQL capabilities for ad-hoc queries, and embedding analytics directly into your revenue management workflows.
This article walks through how to architect RevPAR, ADR, and occupancy dashboards using Apache Superset—what metrics to track, how to structure your data, and how to move from static reports to real-time decision support.
RevPAR: The North Star Metric for Hotel Performance
Revenue Per Available Room (RevPAR) is the single most important number in hotel operations. It answers the core question: “How efficiently are we converting our inventory into revenue?”
RevPAR is calculated as:
RevPAR = (Total Room Revenue ÷ Total Available Rooms) OR (ADR × Occupancy %)
Unlike occupancy alone, RevPAR forces you to optimize for both volume and price. A 100% occupied hotel charging $50/night generates the same RevPAR as a 50% occupied hotel charging $100/night. This metric prevents the common trap of chasing occupancy at the expense of rate.
In Apache Superset, you’ll want to track RevPAR across multiple dimensions:
- By date: Daily, weekly, and monthly trends to spot seasonality and demand patterns
- By room type: Suite RevPAR vs. standard room RevPAR reveals which segments drive value
- By market segment: Corporate, leisure, OTA (Online Travel Agency), direct bookings—each has different rate and occupancy patterns
- By channel: Track which booking channels (Expedia, Booking.com, your direct website) deliver the highest-quality revenue
- Year-over-year: Compare this year’s RevPAR to last year’s same date to measure growth and identify anomalies
To build a RevPAR dashboard in Apache Superset, you’ll need data from your PMS that includes:
- Room inventory by type and date
- Actual occupancy (rooms sold) by date and type
- Total room revenue by date, segment, and channel
- Check-in and check-out dates (to handle multi-night stays)
Once connected to Apache Superset, you can create your first dashboard with a combination of line charts showing RevPAR trends, bar charts comparing room type performance, and heatmaps showing daily RevPAR by room category. The beauty of Apache Superset is that these visualizations update as your PMS data refreshes—no manual exports, no overnight batch processes.
ADR: Pricing Strategy and Rate Management
Average Daily Rate (ADR) measures the average price you’re charging per occupied room. It’s the direct lever for revenue management—raise ADR, and RevPAR climbs (assuming you don’t lose too much occupancy).
ADR = Total Room Revenue ÷ Rooms Sold
ADR dashboards need to answer these operational questions:
- Are we pricing competitively? Compare your ADR to local competitors and market benchmarks
- Is yield management working? Track ADR by advance booking window (bookings made 30+ days out vs. last-minute walk-ins)
- Which segments pay more? Corporate guests often command higher ADR than leisure travelers
- What’s the channel mix impact? Direct bookings often yield higher ADR than OTA channels
- How does ADR trend with occupancy? Ideally, you want rising ADR even as occupancy increases (pricing power)
In Apache Superset, create an ADR dashboard with:
- Time-series line chart: ADR by date, with trend lines and moving averages to smooth out noise
- Segment comparison bar chart: ADR by guest segment (corporate, leisure, group, etc.)
- Channel breakdown: ADR by booking channel to identify which sources deliver premium rates
- Room type matrix: ADR by room type and date to show rate escalation strategy
- Occupancy vs. ADR scatter plot: Visualize the relationship—are you maintaining rate discipline during high-occupancy periods?
The key insight in ADR tracking is rate integrity. Many hotels discount too aggressively during high-occupancy periods, leaving money on the table. An Apache Superset dashboard makes this visible immediately: when occupancy hits 85%, is your ADR rising or falling? If it’s falling, your revenue manager should investigate whether pricing rules are executing correctly.
Occupancy: The Volume Lever and Demand Indicator
Occupancy percentage measures what portion of your available rooms are sold on a given night.
Occupancy % = (Rooms Sold ÷ Rooms Available) × 100
Occupancy is the leading indicator of demand. Rising occupancy signals strong booking pace; falling occupancy signals weakening demand and the need for promotional activity or pricing adjustments.
Occupancy dashboards should track:
- Daily occupancy: Is today tracking ahead or behind forecast?
- Forward-looking occupancy: What does the booking curve look like 14, 30, and 60 days out?
- Occupancy by segment: Which segments are booking? Corporate occupancy might be strong while leisure is weak (or vice versa)
- Occupancy by room type: Are premium suites selling better than standard rooms?
- Pace vs. last year: Are you ahead or behind last year’s occupancy for this date?
- Occupancy vs. target: Does your revenue manager have a nightly occupancy target? How are you tracking?
In Apache Superset, build an occupancy dashboard with:
- Gauge chart: Today’s occupancy vs. target (visual “at a glance” check)
- Forecast chart: Occupancy for the next 30 days based on current bookings
- Segment stacked bar chart: Occupancy broken down by market segment to show booking mix
- Pace table: Occupancy for today’s date compared to the same date last year and last month
- Room type heatmap: Occupancy by room type and date to spot which inventory is moving
Occupancy is also a proxy for market conditions. If your occupancy is falling while competitors’ occupancy is stable, you have a competitive issue (pricing, positioning, or distribution). If everyone’s occupancy is falling, it’s a market issue, and you need to adjust pricing downward to defend volume.
Integrating Data Sources: PMS, Accounting, and Booking Channels
Building a comprehensive hotel dashboard requires pulling data from multiple systems. Your PMS (like Opera, Micros, or Fosse) holds occupancy and booking data. Your accounting system (QuickBooks, NetSuite, etc.) tracks actual revenue. Your booking engine tracks channel performance. These systems rarely talk to each other natively.
Apache Superset acts as the integration layer. You can connect to:
- Your PMS database directly (most PMS systems expose a SQL database or API)
- Data warehouse or data lake (if you’ve already built one with Snowflake, BigQuery, or Redshift)
- CSV exports from your PMS or accounting system (for quick prototyping)
- REST APIs from booking channels (Expedia, Booking.com, your direct booking engine)
The Apache Superset open-source platform supports dozens of database connectors, so you can query your PMS and accounting system in the same dashboard without manual data consolidation.
Here’s a typical data flow:
- Your PMS exports occupancy and revenue data to a cloud data warehouse (Snowflake, BigQuery, or similar)
- Apache Superset connects to that warehouse with a service account
- You build SQL queries in Apache Superset that calculate RevPAR, ADR, and occupancy from the raw PMS data
- Dashboards refresh on a schedule (hourly, daily, or real-time depending on your needs)
- Your revenue manager accesses the dashboard via web browser or mobile app
For hotels with multiple properties, you’ll want to add a property dimension to all metrics, allowing your VP of Revenue to compare RevPAR across the portfolio and drill down into underperforming properties.
Building the RevPAR Dashboard: Step-by-Step Architecture
Let’s build a concrete RevPAR dashboard in Apache Superset. You’ll need a table with these columns:
property_id: Identifier for each hotel propertydate: The night (check-in date)room_type: Standard, Deluxe, Suite, etc.segment: Corporate, Leisure, Group, OTA, etc.channel: Booking.com, Expedia, Direct, Walk-in, etc.rooms_available: Total rooms of this type available that nightrooms_sold: Rooms actually occupiedtotal_revenue: Total room revenue for this type/segment/channel combination
From this table, you can calculate:
Occupancy % = (rooms_sold / rooms_available) * 100
ADR = total_revenue / rooms_sold
RevPAR = total_revenue / rooms_available
In Apache Superset, create a calculated column (or SQL view) for each metric. Then build these visualizations:
1. RevPAR Trend Line (Top of Dashboard)
- X-axis: Date (last 90 days)
- Y-axis: RevPAR
- Color: Property (if multi-property)
- Adds a trend line to show direction
- Highlights seasonality and anomalies
2. RevPAR by Room Type (Bar Chart)
- X-axis: Room type
- Y-axis: RevPAR
- Sorted descending to show which room types drive value
- Helps identify if premium inventory is performing
3. Occupancy vs. ADR (Scatter Plot)
- X-axis: Occupancy %
- Y-axis: ADR
- Each point is a date
- Shows correlation between volume and price
- Ideally, you want points moving up and to the right (rising occupancy AND rising ADR)
4. Segment Mix (Stacked Bar Chart)
- X-axis: Date
- Y-axis: Rooms sold
- Stack by segment
- Shows if your booking mix is changing
- Corporate bookings might decline in summer, leisure might surge
5. Channel Performance (Table)
- Columns: Channel, Rooms Sold, ADR, RevPAR, Occupancy %
- Sorted by RevPAR descending
- Helps identify which booking channels deliver the best economics
6. Daily Performance (KPI Cards)
- Today’s RevPAR vs. last year’s same date
- Today’s Occupancy vs. target
- Today’s ADR vs. 30-day average
- Quick visual check for the revenue manager
Once you’ve built these visualizations, you can save them as a dashboard and set a refresh schedule. D23 manages the infrastructure so you don’t have to worry about database performance, query optimization, or uptime—your dashboard stays fast even during peak demand periods.
Advanced: Forecasting and Predictive Dashboards
Once you have historical RevPAR, ADR, and occupancy data flowing into Apache Superset, you can add forecasting. This is where managed Apache Superset with AI capabilities becomes powerful.
With text-to-SQL and AI-powered analytics, you can ask questions like:
- “What will our RevPAR be if occupancy stays at 80% and ADR rises 5%?”
- “Which dates in the next 30 days are at risk of missing our RevPAR target?”
- “Which room type should we prioritize in marketing based on current booking pace?”
You can integrate forecasting models (built in Python or R) that predict occupancy based on historical patterns, day-of-week effects, seasonality, and external factors (events, conferences, holidays). Then visualize the forecast in Apache Superset alongside actual performance.
For example:
- Occupancy forecast chart: Shows actual occupancy for past 60 days, forecast for next 30 days, with confidence intervals
- RevPAR at-risk dashboard: Flags dates where forecasted RevPAR is below target
- Segment demand forecast: Predicts which segments will book in the coming weeks, informing pricing and marketing strategy
This transforms your dashboard from a rear-view mirror (showing what happened) into a navigation system (showing where you’re headed and where you need to adjust course).
Embedded Analytics: Integrating Dashboards into Your Revenue Management Workflow
One of the most powerful features of Apache Superset is embedding. Rather than asking your revenue manager to log into a separate BI tool, you can embed dashboards directly into your revenue management software, property management system, or internal web portal.
With D23’s managed Apache Superset and API-first approach, you can embed dashboards with:
- Row-level security: Each property manager sees only their property’s data
- Dynamic filters: Revenue manager selects date range, property, or segment, and all charts update
- Mobile responsiveness: Dashboard works on tablet in the hotel office or on a phone in the field
- Real-time refresh: Data updates every hour (or more frequently) so decisions are based on current information
Embedded dashboards eliminate friction. Your revenue manager doesn’t need to remember login credentials or navigate to a separate portal. They open their revenue management tool, and the RevPAR, ADR, and occupancy data is right there.
This is especially valuable for multi-property operators. A VP of Revenue at a 15-property chain can see all properties’ RevPAR in one view, spot which properties are underperforming, and drill down to understand why (weak occupancy? Low ADR? Both?).
Benchmarking and Competitive Intelligence
RevPAR is only meaningful in context. A $150 RevPAR might be exceptional for a budget property in a secondary market, or it might be terrible for a luxury property in a major city.
Your Apache Superset dashboard should include benchmarking data:
- Competitive set: If you know your competitors’ rates and occupancy (from public booking sites or industry reports), you can add them to your dashboard for comparison
- Market average: What’s the average RevPAR for your market segment and geography? (Available from industry sources like STR, Smith Travel Research)
- Your historical performance: How does this month’s RevPAR compare to last month? Last year? Your best month ever?
- Segment benchmarks: What’s typical ADR and occupancy for corporate guests in your market? Leisure?
Industry sources like Hospitality Net and Hotel Online publish benchmarking reports. You can manually update your Apache Superset dashboard with this data, or integrate it via API if the source provides one.
The American Hotel & Lodging Association also publishes industry statistics that help contextualize your property’s performance.
With benchmarking in place, your dashboard answers the critical question: “Are we winning or losing against the market?”
Real-Time Alerts and Anomaly Detection
Dashboards are great for exploration, but they require someone to look at them. For critical metrics like RevPAR, you want alerts when something goes wrong.
Apache Superset supports alerting: you can set up rules like:
- “Alert if today’s occupancy is more than 10% below last year’s same date”
- “Alert if ADR drops more than 5% from the 30-day average”
- “Alert if RevPAR forecast for next 14 days is below target”
These alerts can trigger emails, Slack messages, or SMS notifications to your revenue manager. This way, they don’t have to check the dashboard constantly—they’re notified when action is needed.
With D23’s managed infrastructure and AI capabilities, you can also enable anomaly detection. Machine learning models automatically flag unusual patterns (like a sudden drop in occupancy or an unexplained spike in ADR) without requiring you to manually define alert thresholds.
Comparing Apache Superset to Traditional BI Platforms
Why choose Apache Superset over Looker, Tableau, or Power BI for hotel dashboards?
Cost: Looker and Tableau charge per-user licensing fees, often $5,000–$15,000+ per year per user. For a hotel chain with dozens of revenue managers, this adds up quickly. Apache Superset is open-source and free. D23’s managed Apache Superset charges based on query volume and data size, not per-user, so adding a new revenue manager costs nothing.
Speed to dashboard: Tableau and Looker require data modeling, semantic layers, and training. Apache Superset connects directly to your database and lets you build visualizations in minutes. You can have a working RevPAR dashboard in a day, not three months.
Flexibility: Traditional BI platforms are opinionated about how you structure data and build dashboards. Apache Superset is lightweight and flexible. You write SQL, you build charts, you’re done. No complex semantic layers or metadata repositories.
Embedding: Embedding in Looker and Tableau requires additional licensing and complex configuration. Apache Superset embedding is built-in and straightforward.
AI and text-to-SQL: Newer BI platforms are adding AI features, but they’re often bolt-ons. With D23’s MCP (Model Context Protocol) integration, you get text-to-SQL and AI-powered analytics as a core feature. Ask a natural language question (“What was our RevPAR last Tuesday?”) and get a chart instantly.
For hotel operators, the choice is clear: Apache Superset delivers 80% of the functionality of Looker or Tableau at 20% of the cost and in a fraction of the time.
Data Governance and Security
Hotel data is sensitive. Your RevPAR, ADR, and occupancy data reveals your pricing strategy and demand patterns. You need to ensure this data is secure and access is controlled.
Apache Superset provides:
- Role-based access control (RBAC): You can grant different permissions to different users. A property manager sees only their property. A VP of Revenue sees all properties. A front-desk manager sees no financial data.
- Row-level security (RLS): Filters data at the database level so users can’t bypass restrictions
- Audit logging: Track who accessed what data and when
- Encryption in transit: Data is encrypted when moving between your database and Apache Superset
- Single sign-on (SSO): Integrate with your company’s identity provider (Okta, Azure AD, etc.) so you manage access centrally
D23’s managed Apache Superset adds enterprise-grade security, including encryption at rest, regular security audits, and compliance certifications (SOC 2, etc.).
Review D23’s Privacy Policy and Terms of Service to understand data handling and security commitments.
Scaling Across Multiple Properties
For hotel chains with 5, 50, or 500 properties, a single dashboard needs to handle massive scale. Your Apache Superset instance needs to:
- Ingest data from all properties: Aggregate occupancy, revenue, and booking data from each property’s PMS
- Query efficiently: A dashboard that takes 30 seconds to load for 5 properties might take 5 minutes for 500 properties
- Maintain security: Ensure each property manager sees only their data, and corporate sees everything
- Support drill-down: VP of Revenue sees portfolio-level RevPAR, clicks on a property, sees that property’s RevPAR by room type
Apache Superset handles this with:
- Database optimization: Proper indexing and partitioning of your data warehouse
- Caching: Pre-compute common queries (daily RevPAR by property) and cache the results
- Aggregation tables: Build summarized tables (e.g., daily RevPAR by property) rather than querying raw transactions
- Query optimization: Write efficient SQL that filters data early and aggregates only what’s needed
D23’s managed Apache Superset service handles these optimizations for you, including database tuning, caching strategy, and query performance monitoring.
Building Your First Dashboard: Practical Next Steps
Ready to build? Here’s how to get started:
Step 1: Audit your data sources
Identify where occupancy, revenue, and booking data live. Is it in your PMS database? A data warehouse? Spreadsheets? Can you access it via SQL or API?
Step 2: Design your data schema
Create a table (or view) that combines occupancy, revenue, and booking data. Columns should include date, property, room type, segment, channel, rooms available, rooms sold, and revenue. This is your source of truth for all hotel metrics.
Step 3: Connect to Apache Superset
If you’re self-hosting, download Apache Superset and connect it to your database. If you’re using D23’s managed service, we handle the setup.
Step 4: Build your first chart
Start simple: a line chart of RevPAR over the last 90 days. Follow the official Apache Superset guide for creating your first dashboard.
Step 5: Add more charts
Once you have one chart working, add ADR, occupancy, segment breakdown, channel performance, etc.
Step 6: Set up alerts and refresh schedules
Configure your dashboard to refresh hourly (or daily, depending on your PMS update frequency). Set up alerts for critical metrics.
Step 7: Embed and distribute
Embed the dashboard in your revenue management tool or internal portal. Share the URL with your revenue team.
The Future: AI-Powered Revenue Management
Apache Superset dashboards are the foundation. The next layer is AI-powered analytics.
With D23’s text-to-SQL and MCP integration, your revenue manager can ask questions in plain English:
- “Show me RevPAR by room type for dates when occupancy was above 85%”
- “Which segments have the highest ADR in Q4?”
- “Forecast our occupancy for the next 30 days based on current booking pace”
The AI interprets the question, generates SQL, queries your data, and returns a visualization. No need to learn SQL or dashboard design—just ask.
This democratizes analytics. Every revenue manager, not just data analysts, can explore data and answer their own questions.
For multi-property operators, AI analytics enable portfolio-wide insights: “Which of our properties is most exposed to occupancy risk? Which segments are driving growth? Where should we invest in marketing?”
Conclusion: From Spreadsheets to Real-Time Decision Support
Hotel revenue management is a real-time game. Your competitors are adjusting prices and marketing spend daily (or hourly). You need dashboards that show you what’s happening now, not what happened last month.
Apache Superset, especially when managed by D23, gives you RevPAR, ADR, and occupancy dashboards that are:
- Fast to build: Days, not months
- Low cost: No per-user licensing, no platform overhead
- Flexible: Connect to any database, build any visualization
- Scalable: Works for 1 property or 1,000
- Secure: Role-based access, encryption, audit logging
- AI-powered: Text-to-SQL and anomaly detection
Your revenue manager gets a single source of truth for hotel performance. Your VP of Revenue can spot underperforming properties and drill down to understand why. Your C-suite sees RevPAR trends and forecasts.
The result: better pricing decisions, higher occupancy, better rates, and higher RevPAR.
Start with a simple RevPAR trend chart. Add ADR and occupancy. Build segment and channel breakdowns. Integrate forecasting. Embed in your revenue management tool. Scale to your entire portfolio.
That’s the Apache Superset journey for hotels. And D23 is here to manage the infrastructure so you can focus on revenue optimization.