The hotels compared on what matters
Every measure the owner asks about — occupancy, ADR, RevPAR, GOPPAR, payroll and food cost as a share, utilities per occupied room, distribution cost — for one hotel, a city, a company or the group, with each hotel against the group's median.
Menu → KPIs. A hotel's own numbers were always readable. What an owner of several asks is different: *which of my hotels is worse than the others, and by how much?*

The sheet
Pick the scope — a hotel, a company, a city or region, or the whole group — and the window. Every KPI in the pack comes back with its value, its target, and the numerator and denominator it was made from, so a number that looks wrong can be taken apart on the spot. Occupancy, ADR, RevPAR, TRevPAR, GOPPAR, EBITDA margin, payroll as a share of revenue, food and beverage cost, cost per occupied room, utilities per occupied room, housekeeping supplies per room, distribution cost, spend per cover.
The benchmark
Benchmark takes one KPI and puts every hotel under the scope side by side with the group's median, each hotel's variance from it and its rank. That is the table the owner reads: the same measure, the same window, no argument about definitions.
A KPI is a row, not code
The pack is the definitions themselves. Each says what the numerator and the denominator are, in sources the engine knows — revenue, revenue of one department, expense, an account by its code, rooms sold, rooms available, covers, bookings, headcount — its unit, whether higher or lower is better, and its target. A group that measures something of its own adds a row; one that disagrees with a seeded definition overrides it by its code. Nothing about a hotel's KPIs is written into the product's code, which is what lets a chain keep its own.
Where the number comes from is the ledger and the operating tables, through one resolver, so a KPI and the statement it is read beside cannot disagree.