PADISO.ai: AI Agent Orchestration Platform - Launching May 2026
Back to Blog
Guide 27 mins

Apache Superset for Operational Dashboards in Hospitality

Design and operate Apache Superset dashboards for hospitality. Data modelling, dashboard design, and rollout patterns for hotels, restaurants, and venues.

The PADISO Team ·2026-06-18

Table of Contents

  1. Why Apache Superset for Hospitality Operations
  2. Data Modelling for Hospitality Metrics
  3. Dashboard Design Principles
  4. Building Your First Operational Dashboard
  5. Advanced Dashboard Patterns
  6. Rollout Strategy and Adoption
  7. Performance Optimisation
  8. Security and Compliance
  9. Real-World Implementation Patterns
  10. Next Steps and Scaling

Why Apache Superset for Hospitality Operations

Hospitality organisations—hotels, restaurants, venues, and managed accommodation providers—generate enormous volumes of operational data every single day. Room occupancy, guest check-ins, point-of-sale transactions, staff schedules, maintenance tickets, energy consumption, and revenue per available room (RevPAR) all flow through disconnected systems. Without a unified operational dashboard, managers make decisions on intuition rather than data, revenue leaks through the cracks, and staff work without visibility into what’s actually happening on the property.

Apache Superset is an open-source, modern data visualisation platform built for exactly this problem. It’s lightweight, cost-effective, and purpose-built for operational teams—not data scientists. Unlike enterprise BI tools that charge per seat and require months of implementation, Superset runs on modest infrastructure, scales to handle millions of rows of operational data, and can be deployed and iterated in weeks.

For hospitality operators, Superset solves three critical problems:

First, cost. A 100-room hotel running Tableau or Power BI for 20 staff members can spend $50,000–$100,000+ per year on licensing alone. Superset runs open-source on cloud infrastructure you already own, cutting that cost by 80–90%.

Second, speed. Operational dashboards need to reflect reality now, not tomorrow. Superset refreshes in seconds, not hours. A restaurant manager checking covers and revenue at 6pm sees the exact same data as the POS system recorded at 5:59pm.

Third, ownership. Your ops team builds and owns the dashboards, not IT or external consultants. When occupancy patterns shift or you need a new KPI, you adjust the dashboard in minutes, not weeks.

This guide walks you through designing, building, and rolling out operational dashboards in Superset for hospitality organisations. We’ll cover data modelling patterns, dashboard design principles, and the specific rollout cadence that drives adoption and real behaviour change.


Data Modelling for Hospitality Metrics

Before you build a single dashboard, you need clean, consistent data. Superset is only as good as what you feed it. Most hospitality organisations fail not because Superset is weak, but because their underlying data is fragmented, delayed, or defined inconsistently across properties.

Consolidating Data from Multiple Systems

A typical mid-size hotel chain runs 5–10 disconnected systems: property management system (PMS), point-of-sale (POS), revenue management system (RMS), energy management, booking engine, and accounting software. Each system has its own database, schema, and definition of “revenue” or “occupancy.”

Your first task is to build a data consolidation layer—a single source of truth that pulls data from all these systems on a regular schedule (typically hourly for operational dashboards, daily for strategic ones). This is where platform engineering becomes essential. You need reliable ETL pipelines that:

  • Extract data from your PMS (Folio, Opera, Micros) via API or database replication
  • Extract POS transactions from your restaurant, bar, and room service systems
  • Normalise timestamps across systems (UTC is best; avoid local time)
  • Deduplicate records and handle late-arriving data
  • Load into a centralised data warehouse or data lake

For a single property or small chain, this can be a PostgreSQL database. For larger operations, consider ClickHouse (extremely fast for time-series data) or a cloud data warehouse like Snowflake or BigQuery. The key principle: one system of record, updated frequently, accessible to Superset.

When designing your consolidation layer, establish a consistent namespace for key entities:

  • Property ID: Unique identifier for each hotel, restaurant, or venue
  • Date: Always ISO 8601 format (YYYY-MM-DD)
  • Time: 24-hour format, UTC-based
  • Guest ID / Booking ID: Linked to revenue and occupancy data
  • Department: Rooms, F&B, Spa, etc.
  • Revenue Category: Room revenue, food, beverage, ancillary

This consistency matters because Superset will group and filter on these fields hundreds of times per day. Inconsistent naming or formatting breaks dashboards silently.

Defining Core Hospitality Metrics

Once data is consolidated, define your core metrics as materialised views or tables in your data warehouse. These are the “atoms” of your operational dashboards.

Occupancy Metrics:

  • Available Rooms (rooms open for sale)
  • Occupied Rooms (rooms with active guests)
  • Occupancy % (occupied / available)
  • Out-of-Order Rooms (maintenance, renovation)
  • Sold Rooms (bookings, regardless of arrival status)

Revenue Metrics:

  • Room Revenue (nightly rate × occupied rooms)
  • F&B Revenue (food, beverage, room service)
  • Ancillary Revenue (spa, parking, events, mini-bar)
  • Total Revenue
  • Revenue Per Available Room (RevPAR)
  • Average Daily Rate (ADR)
  • Revenue Per Occupied Room (RevPOR)

Operational Metrics:

  • Guest Check-In Time (average, by hour)
  • Check-Out Completion % (same-day)
  • Housekeeping Turnaround Time (minutes from checkout to ready)
  • Maintenance Tickets (open, closed, overdue)
  • Staff Utilisation (hours scheduled / hours available)
  • Energy Consumption (kWh, by department)

Guest Experience Metrics:

  • Booking Source (direct, OTA, corporate, group)
  • Cancellation Rate (by booking window)
  • No-Show Rate
  • Guest Review Score (if you have API access to review platforms)

Define each metric once, in SQL, as a view. For example:

CREATE VIEW v_daily_occupancy AS
SELECT
  DATE(check_in_date) AS date,
  property_id,
  COUNT(DISTINCT room_id) FILTER (WHERE status = 'occupied') AS occupied_rooms,
  COUNT(DISTINCT room_id) FILTER (WHERE status IN ('occupied', 'available')) AS available_rooms,
  ROUND(100.0 * COUNT(DISTINCT room_id) FILTER (WHERE status = 'occupied') / 
    NULLIF(COUNT(DISTINCT room_id) FILTER (WHERE status IN ('occupied', 'available')), 0), 2) AS occupancy_pct
FROM bookings
WHERE check_in_date >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY DATE(check_in_date), property_id;

Once these views exist, Superset can query them directly. This separation—metrics defined in the data warehouse, visualised in Superset—keeps your dashboard layer clean and fast.

Time-Series Data and Granularity

Hospitality is inherently time-based. Occupancy changes hourly. Revenue accumulates throughout the day. Staffing patterns shift by shift. Your data model must support multiple time granularities:

  • Hourly: Check-in/check-out activity, POS transactions, energy usage
  • Daily: Occupancy, revenue, housekeeping performance
  • Weekly: Staff scheduling, maintenance cycles, booking pace
  • Monthly: Budget vs. actual, revenue trends, guest mix

Design your fact tables (the base tables that record transactions) at the finest granularity you need—typically hourly or by transaction. Then aggregate upwards in views. For example:

CREATE TABLE fact_pos_transactions (
  transaction_id BIGINT PRIMARY KEY,
  property_id INT,
  transaction_time TIMESTAMP,
  department VARCHAR (e.g., 'restaurant', 'bar', 'room_service'),
  amount DECIMAL(10, 2),
  payment_method VARCHAR,
  guest_id INT
);

CREATE VIEW v_hourly_revenue AS
SELECT
  property_id,
  DATE_TRUNC('hour', transaction_time) AS hour,
  department,
  SUM(amount) AS revenue,
  COUNT(*) AS transactions
FROM fact_pos_transactions
GROUP BY property_id, DATE_TRUNC('hour', transaction_time), department;

This structure lets you drill from monthly trends down to individual transactions without rebuilding queries.


Dashboard Design Principles

A well-designed operational dashboard is not a data dump. It’s a tool that lets a busy manager see the health of their property in 30 seconds and drill into problems in another 30 seconds. Poor dashboard design wastes time and leads to decision paralysis.

The Dashboard Hierarchy

Design dashboards in three layers:

Layer 1: Executive Overview (1 page, 5–8 KPIs) This is the first dashboard a general manager or area manager opens at 7am. It shows the absolute essentials:

  • Occupancy % (today vs. target)
  • Revenue (YTD vs. budget)
  • Guest satisfaction score (if available)
  • Critical alerts (maintenance issues, staffing gaps, high cancellation rate)

Each number is clickable, linking to Layer 2.

Layer 2: Operational Deep-Dive (3–5 pages, 20–40 KPIs per page) These dashboards are organised by function: Rooms, F&B, Housekeeping, Revenue Management, etc. A Rooms manager opens the Rooms dashboard and sees:

  • Occupancy by room type (standard, deluxe, suite)
  • Check-in/check-out status (on time, delayed, pending)
  • Housekeeping queue (rooms ready, rooms in progress, rooms overdue)
  • Revenue by source (direct, OTA, corporate)
  • Cancellations and no-shows (by booking window)

Each chart is filterable by date range, property, and department. Clicking a room type drills into Layer 3.

Layer 3: Transactional Detail (unlimited, searchable) This is where you see individual bookings, transactions, or work orders. A Rooms manager investigating a spike in cancellations filters by date and cancellation reason, then sees the list of cancelled bookings with guest names, booking sources, and cancellation policies. They can export this to Excel if needed.

Visual Design for Operations

Operational dashboards are not art projects. They follow strict design rules:

Use colour sparingly. Red for alerts (occupancy below target, overdue maintenance). Green for healthy metrics. Grey for neutral or historical data. Avoid rainbow colour schemes; they confuse the eye and waste cognitive load.

Prefer tables to charts when precision matters. A bar chart showing occupancy by room type is useful for spotting trends. A table showing occupancy % with colour-coded cells (red < 70%, yellow 70–85%, green > 85%) is better for operational decisions.

Prioritise time-series charts for trends. A line chart showing occupancy over the last 90 days helps a revenue manager spot seasonal patterns and adjust pricing. A pie chart of “revenue by source” is useless; a stacked area chart showing revenue by source over time is actionable.

Size charts proportionally to importance. The occupancy chart should be large and above the fold. Maintenance ticket trends can be smaller, lower on the page.

Label axes and units clearly. “Revenue” is ambiguous. “Revenue (AUD, excluding tax)” is clear. “Occupancy” is ambiguous. “Occupancy % (occupied rooms / available rooms)” is clear.

Avoid dual-axis charts. They’re confusing and often misleading. If you need to show occupancy % and ADR together, use separate charts side-by-side.

When designing in Superset, use the Metabase Learn guide on building dashboards as a reference for general BI dashboard principles, then adapt them to hospitality operations. The core principle: every chart answers a specific operational question. If you can’t articulate the question, remove the chart.

Interactivity and Filtering

Operational dashboards must filter quickly. A Rooms manager should be able to filter by property, date range, and room type in under 2 seconds. Slow filters break adoption.

Design your filter hierarchy:

  1. Property (top-level; most users filter here first)
  2. Date Range (always present; default to last 7 days)
  3. Department (Rooms, F&B, etc.)
  4. Secondary filters (room type, payment method, booking source)

Keep filters above the fold. Place them in a horizontal bar at the top of the dashboard. Use dropdown menus for categorical filters (property, department) and date pickers for temporal filters.

In Superset, use “Native Filters” to create these interactive elements. Link them to your underlying SQL queries. Test the filter latency; if a filter takes more than 2 seconds to apply, optimise your underlying query or add caching.


Building Your First Operational Dashboard

Let’s walk through building a real dashboard: a daily Rooms Operations dashboard for a 150-room hotel.

Step 1: Connect Your Data Source

In Superset, go to Data > Databases and add your data warehouse connection. If you’re using PostgreSQL:

  • Host: your database host (e.g., db.company.internal)
  • Port: 5432
  • Database name: hospitality_warehouse
  • Username and password: create a read-only user for Superset

Test the connection. Once confirmed, Superset will auto-discover your tables and views.

Step 2: Create a Dataset

Datasets in Superset are abstractions over your underlying tables. They let you pre-define joins, calculated columns, and default metrics without touching SQL.

Create a dataset called “Daily Occupancy” based on your v_daily_occupancy view:

  • Columns: date, property_id, occupied_rooms, available_rooms, occupancy_pct
  • Calculated Columns: none yet (keep it simple)
  • Default Metrics: SUM(occupied_rooms), SUM(available_rooms), AVG(occupancy_pct)

Save the dataset. Superset will now let you build charts against this dataset without writing SQL.

Step 3: Create Charts

For your Rooms Operations dashboard, you need 6–8 charts:

Chart 1: Occupancy % (Today vs. Target) Chart Type: Big Number Metric: AVG(occupancy_pct) for today Target: 85% (or your hotel’s target) Filter: date = today, property_id = selected property

This gives you a single, large number that the GM sees at 7am. If it’s green (>= 85%), the day is on track. If it’s red (< 85%), there’s a problem.

Chart 2: Occupancy Trend (Last 30 Days) Chart Type: Line Chart X-axis: date Y-axis: occupancy_pct Filter: last 30 days

This shows whether occupancy is improving or declining. A declining trend in a high-season month signals a pricing or marketing problem.

Chart 3: Occupancy by Room Type (Today) Chart Type: Table Columns: room_type, occupied_rooms, available_rooms, occupancy_pct Filter: date = today

This lets the Rooms manager see which room types are selling well and which are underperforming. If deluxe rooms are at 60% occupancy while standard rooms are at 95%, there’s a pricing or positioning issue.

Chart 4: Check-In Status (Real-Time) Chart Type: Table Columns: room_number, guest_name, check_in_time, status (on-time, late, pending) Filter: date = today, status != ‘checked_out’ Order by: check_in_time DESC

This is a transactional view. The Front Office manager uses this to manage check-in flow and identify delayed arrivals.

Chart 5: Housekeeping Queue (Real-Time) Chart Type: Table Columns: room_number, current_status (dirty, in_progress, ready), time_in_status, priority Filter: current_status IN (‘dirty’, ‘in_progress’) Order by: time_in_status DESC

This shows which rooms are waiting to be cleaned and how long they’ve been waiting. A room that’s been “dirty” for 2 hours past checkout is a problem.

Chart 6: Revenue by Source (Last 7 Days) Chart Type: Stacked Area Chart X-axis: date Y-axis: revenue Stack by: booking_source (direct, OTA, corporate, group) Filter: last 7 days

This shows revenue trends and which channels are driving business.

Step 4: Assemble the Dashboard

In Superset, create a new dashboard called “Rooms Operations – [Property Name]”. Drag your 6 charts onto the dashboard:

  • Top row: Occupancy % (big), Occupancy Trend (medium), Occupancy by Room Type (medium)
  • Second row: Check-In Status (full width, scrollable table)
  • Third row: Housekeeping Queue (full width, scrollable table)
  • Fourth row: Revenue by Source (full width)

Add filters at the top:

  • Property (dropdown, defaults to current property)
  • Date Range (date picker, defaults to last 7 days)
  • Room Type (multi-select, optional)

Save the dashboard. Set refresh to every 5 minutes (for real-time operational data).

Step 5: Test and Iterate

Before rolling out to staff, test the dashboard:

  • Load it on a mobile device (many managers check dashboards on their phones)
  • Test all filters; ensure they respond in under 2 seconds
  • Verify that numbers match your PMS and accounting system (reconcile revenue, occupancy, etc.)
  • Ask a Rooms manager to use it for a full shift; gather feedback

Common issues:

  • Slow filters: Optimise your underlying query or add database indexes
  • Stale data: Check that your ETL pipeline is running on schedule
  • Confusing metrics: Clarify labels or add tooltips
  • Missing data: Investigate gaps in your data consolidation layer

Iterate based on feedback. You might discover that managers need a check-out completion % chart, or that the housekeeping queue needs to show estimated time to ready. Add these in a second iteration.


Advanced Dashboard Patterns

Once your foundational dashboards are live, you can build more sophisticated patterns.

Comparative Dashboards (Property vs. Property, Period vs. Period)

For multi-property chains, create dashboards that compare performance across properties. A Regional Manager opens a dashboard and sees:

  • Occupancy % by property (ranked)
  • Revenue per property (ranked)
  • RevPAR by property (ranked)
  • Performance vs. budget (variance % by property)

This is simple to build: group your metrics by property_id, then sort. Use colour coding to highlight over/under performers.

Forecasting Dashboards

If you have booking pace data (number of bookings for future dates), you can forecast occupancy and revenue. Create a dashboard that shows:

  • Actual occupancy (last 30 days)
  • Forecasted occupancy (next 30 days, based on current booking pace)
  • Variance between forecast and budget

Use a line chart with two lines: actual (solid) and forecast (dashed). This helps managers spot demand shortfalls early and adjust pricing or marketing.

Anomaly Detection Dashboards

For larger properties, create a dashboard that flags unusual patterns:

  • Occupancy significantly below historical average for this date
  • Revenue per room significantly below historical average
  • Check-in times significantly above average (indicating front desk delays)
  • No-show rate above threshold

Use conditional formatting (red cells for anomalies) to draw attention. Add a drill-down to investigate the root cause.

Staff Performance Dashboards

If your PMS tracks staff actions (check-ins processed, rooms inspected, etc.), create dashboards for individual departments:

Housekeeping Dashboard:

  • Rooms cleaned per shift (by housekeeper)
  • Average time per room
  • Quality score (based on inspection feedback)
  • Overtime hours

Front Office Dashboard:

  • Check-ins processed per shift
  • Average check-in time
  • Guest satisfaction score (for interactions)
  • Upsell rate (room upgrades, late checkout)

These dashboards are sensitive; use them for coaching, not punishment. A housekeeper who cleans 12 rooms per shift while peers clean 10 might be cutting corners (quality issue) or might be exceptionally efficient (recognition opportunity).


Rollout Strategy and Adoption

Building dashboards is 20% of the work. Rolling them out and driving adoption is 80%. Most Superset implementations fail not because the technology is weak, but because staff don’t use the dashboards or misinterpret the data.

Phase 1: Pilot (Weeks 1–2)

Start with one property and one user group (e.g., Rooms managers). Build a single dashboard (Rooms Operations) and have 3–5 Rooms managers use it for 2 weeks.

Objectives:

  • Verify data accuracy
  • Identify missing metrics or confusing designs
  • Gather feedback on usefulness
  • Build internal champions

Activities:

  • Daily check-ins with pilot users (15 mins each)
  • Weekly feedback session (1 hour)
  • Iterate on dashboard design
  • Document any data quality issues

Success Metric: 80%+ of pilot users open the dashboard at least 5 times per week, and report that it helps them make at least one operational decision per week.

Phase 2: Expansion (Weeks 3–6)

Roll out the Rooms Operations dashboard to all Rooms managers at the pilot property. Simultaneously, build dashboards for other departments (F&B, Housekeeping, Revenue Management).

Objectives:

  • Achieve 100% adoption among Rooms managers
  • Identify cross-functional insights (e.g., revenue manager notices occupancy trends that Rooms manager missed)
  • Build dashboards for other departments

Activities:

  • Group training session (1 hour) for Rooms managers
  • One-on-one training for managers who prefer it
  • Weekly office hours (30 mins) for questions
  • Build F&B, Housekeeping, and Revenue Management dashboards
  • Create a simple user guide (1–2 pages) with screenshots

Success Metric: 90%+ of Rooms managers using the dashboard weekly. First dashboards for other departments built and tested.

Phase 3: Multi-Property Rollout (Weeks 7–12)

Roll out all dashboards to all properties in the chain. Establish a dashboard governance process.

Objectives:

  • 100% adoption across all properties
  • Identify best practices and share across properties
  • Establish a process for dashboard maintenance and updates

Activities:

  • Regional training sessions (1 hour each) for each property
  • Designate a “Dashboard Champion” at each property (usually the GM or Operations Manager)
  • Monthly dashboard review calls (1 hour) with all Champions
  • Create a dashboard request process (e.g., “GM wants to track guest complaint trends”)
  • Document ROI: time saved, decisions made, revenue impact

Success Metric: 95%+ of staff in operational roles using dashboards weekly. At least 3 documented examples of dashboards driving operational improvements (e.g., “Identified housekeeping bottleneck, reduced turnaround time by 15 mins, gained 2 additional check-ins per day”).

Change Management: The Critical Piece

Rollout fails when you treat dashboards as a technical project instead of a change management project. Operational staff are busy. They’re used to making decisions based on intuition and phone calls. A new dashboard feels like extra work.

Address this head-on:

Tie dashboards to existing workflows. Don’t ask a Rooms manager to “open Superset every morning.” Instead, say: “Your morning occupancy meeting will now use this dashboard instead of the spreadsheet. It takes 5 mins instead of 15.” Show the time saving.

Celebrate early wins. When a manager uses a dashboard to spot a problem and fix it, share the story. “Sarah noticed housekeeping turnaround was 45 mins yesterday. She adjusted the shift schedule. Today it’s 28 mins. We gained 3 extra check-ins.” This shows dashboards drive real outcomes.

Make dashboards mobile-friendly. Managers check dashboards on their phones while walking the property. Superset dashboards are mobile-responsive, but test them on actual devices.

Empower managers to customize. Allow each property or department to create their own views or filters. If a GM wants to track a custom metric, help them build it. Ownership drives adoption.

Measure and communicate impact. After 3 months, quantify the impact:

  • Time saved (hours per week)
  • Decisions made based on dashboard data
  • Revenue impact (if any)
  • Guest satisfaction improvement (if any)
  • Staff engagement (survey: “Do you find the dashboard useful?”)

Share these metrics in a monthly report to leadership. This justifies the investment and builds momentum for further rollout.


Performance Optimisation

As your dashboards grow and more staff use them, performance becomes critical. A dashboard that takes 10 seconds to load will be abandoned.

Query Optimisation

Start by profiling your queries. In Superset, go to SQL Lab and run your dashboard queries. Look at the execution time.

Common bottlenecks:

1. Unindexed columns. If you’re filtering by property_id or date, these columns must be indexed. In PostgreSQL:

CREATE INDEX idx_bookings_property_date ON bookings(property_id, date);

2. Aggregations on large tables. If you’re summing revenue across millions of transactions, it’s slow. Pre-aggregate in a materialised view:

CREATE MATERIALIZED VIEW v_daily_revenue AS
SELECT
  DATE(transaction_time) AS date,
  property_id,
  department,
  SUM(amount) AS revenue
FROM fact_pos_transactions
GROUP BY DATE(transaction_time), property_id, department;

Refresh this view nightly. Queries against the view will be 100x faster.

3. Joins on large tables. If your dashboard joins bookings (millions of rows) to guests (thousands of rows) to properties (tens of rows), the join can be slow. Use indexes on foreign keys:

CREATE INDEX idx_bookings_guest_id ON bookings(guest_id);
CREATE INDEX idx_bookings_property_id ON bookings(property_id);

4. Full-table scans. If your query doesn’t have a WHERE clause, it scans the entire table. Always filter by date or property:

-- Slow (full table scan)
SELECT SUM(revenue) FROM bookings;

-- Fast (filtered)
SELECT SUM(revenue) FROM bookings WHERE date >= CURRENT_DATE - INTERVAL '30 days';

For guidance on broader database optimisation for dashboard performance, refer to Preset’s guide on optimising database for dashboard performance, which covers indexing strategies, query patterns, and caching that apply directly to Superset.

Caching

Superset has built-in caching. Once a query runs, the result is cached for a configurable time (default: 1 hour). Subsequent queries return the cached result instantly.

Configure cache TTL (time-to-live) by dashboard:

  • Executive Overview: 1 hour (data doesn’t need to be real-time)
  • Operational Dashboards: 5 minutes (need near real-time data)
  • Transactional Detail: 1 minute (must be current)

Go to Dashboard > Settings > Cache Timeout and set accordingly.

Infrastructure Scaling

If you have 100+ concurrent users, a single Superset instance will struggle. Scale horizontally:

  1. Database optimization: Use AWS Big Data dashboards and reporting guidance to architect your data warehouse. Consider ClickHouse for time-series data (hospitality metrics are inherently time-series).

  2. Superset clustering: Run multiple Superset instances behind a load balancer. Use a shared cache (Redis) and database (PostgreSQL for Superset’s metadata).

  3. Query scheduling: Pre-compute expensive queries on a schedule. For example, run the “Occupancy Trend” query every hour and cache the result. When a user opens the dashboard, they get the pre-computed result instantly.

For most hospitality organisations, a single Superset instance with a well-optimised database is sufficient. Scale only when you hit actual performance problems.


Security and Compliance

Operational dashboards contain sensitive data: occupancy rates, revenue, guest names, staff schedules. You need security controls.

Row-Level Security (RLS)

Superset supports row-level security, which restricts dashboard data based on the logged-in user’s role. For example:

  • A Rooms manager at the Sydney property sees only Sydney data
  • A Regional Manager sees all properties in their region
  • A GM sees all data for their property

Configure RLS in Superset:

  1. Go to Security > Row-Level Security
  2. Create a rule: “Users with role ‘Rooms Manager – Sydney’ can only see rows where property_id = 1”
  3. Apply the rule to datasets

Now, when a Rooms manager logs in, all dashboards automatically filter to their property. They can’t see data from other properties, even if they try to hack the URL.

User Roles and Permissions

Create roles in Superset:

  • Viewer: Can view dashboards, can’t edit or create
  • Editor: Can create and edit dashboards, can’t manage users or security
  • Admin: Full access

Assign roles based on job function:

  • Front Office staff: Viewer (read-only access to Rooms Operations dashboard)
  • Rooms Manager: Editor (can modify Rooms Operations dashboard, create custom views)
  • GM: Admin (full access to all dashboards)

Data Encryption

Ensure data in transit is encrypted (HTTPS) and at rest (database encryption). For cloud deployments:

  • Use AWS RDS with encryption enabled
  • Use VPN or AWS PrivateLink to connect Superset to your database
  • Require HTTPS for all Superset URLs

Audit Logging

Log all dashboard access and modifications. This helps you:

  • Detect unauthorised access
  • Comply with regulatory requirements
  • Troubleshoot issues (“Who changed the occupancy formula?”)

Enable Superset’s audit logging:

  1. Go to Admin > Audit Logs
  2. Enable logging for all events
  3. Set retention to 90 days (or your compliance requirement)

Review logs monthly for anomalies.

Compliance Considerations

If your hospitality organisation handles payment card data (PCI DSS) or personal data (GDPR, CCPA), be aware:

  • Don’t store raw payment card data in your data warehouse. Store only tokenised references.
  • Don’t expose personal data (guest names, email, phone) in operational dashboards. Use anonymised identifiers (Guest ID, not name).
  • Implement data retention policies. Delete old transaction data after 7 years (or your legal requirement).

For organisations pursuing SOC 2 or ISO 27001 compliance, Superset fits into your broader security architecture. It’s a tool that accesses data; the security of the data itself is your responsibility. Platform engineering services that include Superset implementation should follow security-first design principles from the start.


Real-World Implementation Patterns

Let’s look at how real hospitality organisations have implemented Superset successfully.

Pattern 1: Single-Property Hotel (100–200 Rooms)

Setup:

  • PMS: Folio or Opera
  • POS: Toast or Square
  • Data warehouse: PostgreSQL on AWS RDS
  • Superset: Single instance, 5 users

Dashboards:

  • Rooms Operations (daily occupancy, check-in/check-out status, housekeeping queue)
  • F&B Operations (covers, revenue, table turnover)
  • Revenue Management (occupancy, ADR, RevPAR, booking pace)
  • Staff Schedule (shifts, utilisation, overtime)

Rollout Timeline:

  • Week 1–2: Data consolidation, build Rooms Operations dashboard
  • Week 3–4: Pilot with Rooms manager, gather feedback
  • Week 5–6: Expand to F&B and Revenue Management dashboards
  • Week 7–8: Train all staff, go live

ROI:

  • Time saved: 5 hours/week (managers no longer compile spreadsheets)
  • Revenue impact: +2–3% (better pricing and occupancy management)
  • Cost: ~$5,000 (infrastructure, implementation, training)

Pattern 2: Multi-Property Chain (5–10 Properties)

Setup:

  • PMS: Centralised Opera instance (all properties)
  • POS: Distributed (each property has own system) + API aggregation
  • Data warehouse: ClickHouse (handles high volume of transactional data)
  • Superset: Single instance with 30+ users across all properties

Dashboards:

  • Executive Overview (all properties, key metrics)
  • Property Deep-Dive (single property, all metrics)
  • Comparative Dashboard (property vs. property ranking)
  • Revenue Management (occupancy, ADR, RevPAR, forecasting)
  • Staff Performance (by department, by property)

Rollout Timeline:

  • Weeks 1–4: Data consolidation across all properties, build core dashboards
  • Weeks 5–8: Pilot at 2 properties, refine based on feedback
  • Weeks 9–12: Roll out to remaining properties, train all staff

ROI:

  • Time saved: 20 hours/week (eliminates manual reporting)
  • Revenue impact: +3–5% (better visibility into occupancy and pricing across properties)
  • Cost: ~$30,000 (infrastructure, implementation, training, ongoing support)

Pattern 3: Restaurant or Bar Group (3–20 Locations)

Setup:

  • POS: Toast, Square, or Lightspeed (each location has own instance)
  • Data warehouse: PostgreSQL (aggregates data from all POS systems via API)
  • Superset: Single instance with 50+ users

Dashboards:

  • Daily Sales (covers, revenue, by location)
  • Menu Performance (item sales, margins, popularity)
  • Staff Performance (covers per shift, upsell rate, customer satisfaction)
  • Inventory (stock levels, usage, waste)
  • Customer Analytics (repeat customers, average spend, booking source)

Rollout Timeline:

  • Weeks 1–3: Data consolidation from all POS systems
  • Weeks 4–6: Build core dashboards, pilot at 2 locations
  • Weeks 7–10: Roll out to all locations, train managers and staff

ROI:

  • Time saved: 10 hours/week (eliminates manual POS reporting)
  • Revenue impact: +5–8% (better menu pricing, staff incentives based on data)
  • Cost: ~$20,000

Next Steps and Scaling

You’ve built and rolled out your first dashboards. What’s next?

Measure and Iterate

After 3 months, measure the impact:

  1. Usage: How many staff use dashboards weekly? Is adoption increasing or plateauing?
  2. Business impact: Have dashboards driven any operational improvements? Revenue gains? Cost savings?
  3. Feedback: What features or dashboards do staff want next?

Use these metrics to justify further investment and prioritise the next phase.

Advanced Analytics

Once operational dashboards are mature, add predictive analytics:

  • Occupancy forecasting: Use historical occupancy patterns and current booking pace to forecast occupancy 30 days out
  • Revenue forecasting: Forecast ADR and revenue based on seasonal patterns and current trends
  • Demand sensing: Detect unusual demand patterns and alert revenue managers
  • Churn prediction: Identify guests at risk of cancellation and trigger retention campaigns

For these capabilities, you’ll need data science expertise. Consider partnering with a venture studio or platform engineering firm that specialises in hospitality AI.

Automation and AI

Once you have clean, consistent data and operational dashboards, you can automate decisions:

  • Dynamic pricing: Automatically adjust room rates based on occupancy, demand, and competitor pricing
  • Housekeeping scheduling: Automatically assign rooms to housekeepers based on queue length and skill level
  • Guest experience: Automatically send targeted offers (room upgrades, dining credits) based on guest history and preferences

These require agentic AI and workflow automation, which is beyond the scope of Superset. But Superset dashboards provide the visibility and data quality foundation these systems need.

Consolidation with Other BI Tools

As your organisation grows, you might use multiple BI tools:

  • Superset for operational dashboards (real-time, team-focused)
  • Power BI or Tableau for strategic reporting (slower refresh, executive-focused)
  • Custom dashboards embedded in your PMS or booking engine

Superset plays well with others. It’s lightweight and purpose-built for operations, so it complements rather than competes with enterprise BI tools.

Building a Data Culture

The ultimate goal is not dashboards; it’s a data-driven culture where managers make decisions based on data, not intuition. This takes time and intentionality:

  1. Train all staff (not just managers) on how to read and use dashboards
  2. Tie compensation to dashboard-tracked metrics (occupancy, revenue, guest satisfaction)
  3. Make data accessible (dashboards should be easy to find and use)
  4. Celebrate data wins (share stories of how dashboards drove improvements)
  5. Iterate based on feedback (staff should feel heard; their requests should be prioritised)

When this happens, dashboards stop being a “nice-to-have” and become the operating system of your business.

Getting Professional Support

If you’re a multi-property chain or complex hospitality organisation, consider partnering with a platform engineering firm that specialises in hospitality analytics. They can:

  • Design and build your data consolidation layer
  • Create production-grade dashboards
  • Optimise database performance
  • Train your team
  • Provide ongoing support

Look for partners with experience in hospitality, understanding of your PMS and POS systems, and expertise in Superset and modern data stacks. The investment (typically $30,000–$100,000 for a multi-property implementation) pays for itself within 6 months through improved occupancy and revenue management.


Conclusion

Apache Superset is a powerful, cost-effective tool for building operational dashboards in hospitality. It’s not fancy, but it works. A 100-room hotel can replace a $100,000/year Tableau license with a $5,000 Superset implementation and get better, faster dashboards.

The key is to start small (one dashboard, one user group), measure impact, and scale gradually. Don’t try to build the perfect dashboard; build a useful one, use it, learn from it, and improve it.

Your operational data is a competitive advantage. Most hospitality organisations leave it on the table, making decisions on intuition. With Superset, you see the truth: occupancy patterns, revenue drivers, operational bottlenecks, and guest behaviour. Armed with this visibility, you’ll make better decisions, faster.

Start building. Your first dashboard will take 2–3 weeks. Your second will take 1 week. By month 2, you’ll have 5–6 dashboards live and your team will be asking for more. That’s when you know adoption is real.

Want to talk through your situation?

Book a 30-minute call with Kevin (Founder/CEO). No pitch — direct advice on what to do next.

Book a 30-min call