Blog · Board and management reporting · Hospitality
Hospitality revenue analysis reconciles rooms, food and beverage, meetings and ancillary revenue before comparing properties. Use matched-period exports, apply the approved revenue mapping and prove the movement with a stream-by-stream bridge.
Hospitality revenue analysis compares recorded revenue across rooms, food and beverage, meetings and ancillary services after reconciling each stream to finance. Map each transaction to one property and one stream, then compare matched periods. The resulting bridge should explain the full revenue change without counting a package, event or transferred charge twice.
Begin with actual operating revenue for the properties in the review. Use the same business dates, account mapping and adjustment cutoff in both periods. A reservation snapshot, an event deposit report and a completed-service revenue report represent different stages of the business.
The stream structure reflects how a hotel operates. Hilton describes its ownership revenue as room sales, food and beverage, and ancillary goods and services, with group business also involving meeting and catering services in its annual filing. Your review should use your own finance-approved categories rather than copying another company's reporting presentation.
Keep room operating ratios in the separate room revenue analysis. This workflow asks whether the hotel's revenue streams add up and which streams explain the change. It does not use food or event revenue to increase a room-only rate.
Bring the room-revenue export, food-and-beverage sales summary, meeting or event revenue register, ancillary sales summary and finance adjustments. A controller should confirm how each source maps to the general ledger. Preserve source references so a difference can be investigated without guessing which report supplied it.
Use a Google Sheet tab named Revenue with these fields:
| Column | Field | Mapping rule |
|---|---|---|
| A | Period | Same approved posting period across sources |
| B | Property | Stable property identifier |
| C | Revenue stream | Exactly one approved category per row |
| D | Source reference | Export or journal reference for review |
| E | Gross posted amount (USD) | Revenue-scope amount before listed deductions |
| F | Credits and reductions (USD) | Positive amounts in this worksheet |
| G | Net revenue (USD) | E less F |
Separate service date, posting date and cash date when those fields exist. Use finance's selected reporting basis consistently. A later correction should follow the agreed cutoff policy rather than being silently moved to whichever month improves the comparison.
For packages, use the approved component allocation already provided by finance. If a restaurant charge appears in the food-and-beverage export and is transferred to a guest folio, retain its revenue once. The transfer records where the charge is settled; it does not create another sale.
For the worksheet's positive deduction convention, net revenue in G2 is:
=E2-F2
If the source instead provides signed debit and credit movements, confirm the sign mapping before applying that formula. Do not subtract a credit that is already negative a second time.
With periods stored as text, September 2026 room revenue for Harbor is:
=SUMIFS(Revenue!$G$2:$G$5000,Revenue!$A$2:$A$5000,"2026-09",Revenue!$B$2:$B$5000,"Harbor",Revenue!$C$2:$C$5000,"Rooms")
Use the same criteria with "2025-09" for the comparison period. Google's SUMIFS documentation describes summing rows that meet multiple criteria. Extend all ranges together, and test that no valid property or stream was left unmapped.
Covirage is not affiliated with Google or Hilton.
An illustrative US operator compares September 2026 with September 2025 for the same properties. All figures below are exact USD amounts. Credits and reductions are the finance-approved items included in this example's revenue scope; taxes collected for others and advance deposits sit outside this table under the operator's approved mapping.
| Property | Stream | Prior net revenue (USD) | Current gross amount (USD) | Current reductions (USD) | Current net revenue (USD) | Change (USD) |
|---|---|---|---|---|---|---|
| Harbor | Rooms | 315,000 | 360,000 | 4,320 | 355,680 | 40,680 |
| Harbor | Food and beverage | 90,000 | 96,000 | 6,000 | 90,000 | 0 |
| Harbor | Meetings | 40,000 | 56,000 | 1,000 | 55,000 | 15,000 |
| Harbor | Ancillary | 15,000 | 18,000 | 3,000 | 15,000 | 0 |
| Mesa | Rooms | 240,000 | 252,000 | 2,000 | 250,000 | 10,000 |
| Mesa | Food and beverage | 65,000 | 72,000 | 2,000 | 70,000 | 5,000 |
| Mesa | Meetings | 30,000 | 20,000 | 0 | 20,000 | -10,000 |
| Mesa | Ancillary | 10,000 | 13,000 | 1,000 | 12,000 | 2,000 |
| Total | 805,000 | 887,000 | 19,320 | 867,680 | 62,680 |
The first check is gross less reductions: 887,000 − 19,320 = $867,680. The second is the period movement: 867,680 − 805,000 = $62,680. Growth is 62,680 / 805,000 = 7.8%, rounded to one decimal place.
In a summary matching this table, current net revenue in F2 is =D2-E2, and change in G2 is =F2-C2. Sum the dollar columns; calculate total growth from the totals rather than averaging the row growth percentages.
Regrouping those same rows produces the revenue bridge:
| Stream | Prior net revenue (USD) | Current net revenue (USD) | Contribution to change (USD) |
|---|---|---|---|
| Rooms | 555,000 | 605,680 | 50,680 |
| Food and beverage | 155,000 | 160,000 | 5,000 |
| Meetings | 70,000 | 75,000 | 5,000 |
| Ancillary | 25,000 | 27,000 | 2,000 |
| Total | 805,000 | 867,680 | 62,680 |
The bridge identity is 805,000 + 50,680 + 5,000 + 5,000 + 2,000 = $867,680. The property view independently gives Harbor $55,680 of growth and Mesa $7,000, again totaling $62,680. These are two views of the same movement; do not add the property contributions to the stream contributions.
Harbor's food-and-beverage gross amount rose, but its net revenue was unchanged after reductions. Mesa's meeting revenue fell by $10,000, partly offsetting its other gains. Those are specific review questions for the outlet manager and events team, rather than a general claim that every part of the business improved.
Tie the current and prior net totals to the corresponding finance reports. If they differ, show the unmatched accounts or journals explicitly. The guide to revenue leakage in a ledger covers further reconciliation questions; do not label every difference lost revenue before resolving its accounting treatment.
Finance owns the revenue mapping and ledger tie. Property managers validate operational explanations, while outlet and events leaders investigate their stream movements. If one account explains a change, use customer revenue analysis as a separate follow-up rather than expanding the stream table into an unrelated account dashboard.
Bring your property revenue exports and finance-approved stream mapping in a file or Google Sheet. Covirage maps the columns; its tools compute and check the matched-period totals, and the external AI model explains the comparisons with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for hospitality for the supporting industry context.
Start with rooms, food and beverage, meetings or events, and ancillary services such as parking. Adapt the categories to the hotel's approved accounts. Keep the categories mutually exclusive, particularly where a package includes a room, breakfast and meeting services.
Receipts track money collected, while the revenue report follows the approved period and recognition policy. Advance deposits, refunds, unsettled receivables and amounts collected for others can create differences. Keep a separate reconciliation rather than treating the bank deposit as the sales total.
Match reporting dates, revenue definitions, currency and property scope first. Compare both the total change and the contribution of each revenue stream. Separate newly added or closed properties from the continuing-property comparison so portfolio changes do not obscure underlying performance.