How to use HotelLens
Guide for admins loading data and owners reading results. Includes data file specification and sample.
Admin Workflow
HotelLens is designed for a two-person workflow: an admin populates data monthly, and an owner opens the dashboard to review results in 60 seconds.
Monthly admin steps: (1) Gather performance data from PMS, accounting, guest satisfaction system, and maintenance logs. (2) Update the JSON data file with the new month's numbers. (3) Upload via the Import button. (4) Verify the dashboard reflects the new data. (5) Notify the owner that the dashboard is updated.
Owner reads: Dashboard β Scorecards β Drift Analysis β Interventions. That's the 60-second review. Deep-dive into Asset Protection and Accountability as needed.
Importing Data
Click "π Import" in the topbar or the Data Input page. Select a JSON file. The dashboard refreshes immediately. The badge changes from "Demo Data" to "Custom Data."
Exporting Data
Click "π€ Export" to download the current dataset. File is named with the hotel name and today's date.
Data File Specification
JSON file with these top-level objects:
property β Hotel profile
| Field | Type | Description |
|---|---|---|
| name | String | Hotel name |
| location | String | City, State |
| class | String | Segment (e.g., "Upscale Full-Service") |
| rooms | Number | Room count |
| ownershipType | String | E.g., "Private Equity", "Family", "REIT" |
| managementCompany | String | Management company name |
| gm | String | General Manager name |
| reportingPeriod | String | E.g., "Jan 2026 β Dec 2026" |
| budgetRevPAR | Number | Annual budget RevPAR target |
| budgetNOI | Number | Annual budget NOI target |
| marketNotes | String | Market context and competitive notes |
performance β Array of monthly performance records
| Field | Type | Description |
|---|---|---|
| month | String | "Mon YYYY" format |
| occ | Number | Occupancy % |
| adr | Number | Average Daily Rate $ |
| revpar | Number | Revenue Per Available Room $ |
| revenue | Number | Total revenue $ |
| noi | Number | Net Operating Income $ |
| budgetRev, budgetNOI | Number | Budget comparisons |
| forecastRev, forecastNOI | Number | Management's forecast |
| discountPct | Number | Discount % on published rates |
| channelDirect | Number | % of bookings from direct channels |
labor β Array of monthly labor records
| Field | Type | Description |
|---|---|---|
| month | String | Month label |
| laborPct | Number | Labor cost as % of revenue |
| overtimePct | Number | Overtime as % of total hours |
| fteCount | Number | Full-time equivalent headcount |
| turnoverPct | Number | Monthly staff turnover % |
| scheduledHours, actualHours | Number | Schedule vs actual hours worked |
guest β Guest experience data with parallel arrays indexed by month
| Field | Type | Description |
|---|---|---|
| months | Array | Month labels |
| overallScore | Array | Overall satisfaction (0β100) |
| complaints | Array | Monthly complaint count |
| repeatIssues | Array | Repeat complaint count |
| serviceRecoveryMin | Array | Avg service recovery time (minutes) |
| reviewScore | Array | Online review score (1.0β5.0) |
| cleanlinessScore | Array | Cleanliness score (1.0β5.0) |
maintenance β Same parallel-array structure as guest
| Field | Type | Description |
|---|---|---|
| months | Array | Month labels |
| backlogItems | Array | Outstanding work orders |
| criticalRepairs | Array | Unresolved critical repairs |
| pmCompliancePct | Array | Preventive maintenance compliance % |
| roomsOOO | Array | Rooms out of order |
| deferredCapitalItems | Array | Deferred capital project count |
| monthlyCapex | Array | Monthly capital expenditure $ |
scores β Object with six category keys, each containing score, grade, trend, weight, details
interventions β Array of intervention objects (id, issue, severity, recommendation, accountable, dueDate, status, impact)
reviews β Array of review objects (type, date, score, reviewer, notes)
Sample Data File
Minimal template with 2 months of data. Save as .json and upload to test.
π Dashboard
Shows the composite Management Grade (AβF, 0β100), trend signal (improving/stable/declining), top alerts from drift analysis, KPI cards for RevPAR, occupancy, NOI, labor, guest score, maintenance backlog, and turnover. The scorecard summary shows all six category bars.
π¨ Property
Hotel profile and targets. Static reference information.
π Scorecards
Each of the six categories is shown with its score, letter grade, trend, weight, and a detailed narrative explanation of why the grade was assigned. The composite grade is calculated as a weighted average.
π Drift Analysis
The core differentiator. Detects contradictions between metrics: RevPAR up but guest scores dropping, labor controlled but maintenance backlog growing, occupancy high but discounting heavy. Each drift shows the two conflicting metrics, severity, and a plain-English interpretation.
π§ Asset Protection
Monthly trend table for backlog, critical repairs, PM compliance, rooms OOO, deferred capital, and capex. Alerts fire when PM compliance drops below 70% or capex is cut more than 60% from period start.
π€ Accountability
Structured management reviews with scores and narrative. Full 12-month revenue performance table showing actual vs budget vs forecast, discount %, and direct channel share.
β‘ Interventions
Recommended owner actions. Each has severity, recommendation, accountable party, due date, status, and expected impact. These are the conversations ownership needs to have.
π Reports
Executive summary and scorecard. Report templates for owner summary, drift analysis, asset risk, intervention log, full data export, and quarterly ownership packet.
FAQ
Need help?
Questions about setup or data formatting?
alain@heailtcaire.ai