Revenue blog · Metrics
What is CPOR: the cost-per-occupied-room number nobody publishes
The CFO of a regional group I worked with kept a single sticky note on the side of her monitor. One number, in pencil, updated by hand once a month: A$62. It was the property's CPOR — cost per occupied room. When the revenue manager came to her with a discount request on a soft Tuesday, the first sentence out of her mouth was always the same: "What's the rate landing at, and how far is that from sixty-two?" The number on the note was the floor. Everything above it was a trade. Everything below it was a transfer of wealth from the building to the guest.
What CPOR actually means in 2026
CPOR is the total operating cost a property absorbs for every room it sells, divided by the number of rooms occupied over the same period. The cost line includes direct variable cost — housekeeping labour, linen, in-room amenities, breakfast where applicable, utilities per stay — plus the share of distribution cost loaded onto the rooms sold, plus an allocated share of departmental overhead that scales with occupancy. The denominator is occupied room-nights, not available room-nights.
That denominator matters. RevPAR and GOPPAR divide by available room-nights because they measure how the inventory converts at the building level. CPOR divides by occupied room-nights because it measures the cost of the transaction that actually happened. A 120-key property running 70 percent occupancy on a Tuesday sold 84 rooms; CPOR is the total cost across those 84, divided by 84.
The metric exists because rate-setting in isolation is rate-setting in the dark. ADR tells you what the guest paid. RevPAR tells you what the building captured per available room. Neither tells you what the property paid to deliver the night. CPOR is the floor that converts a rate decision into a profit decision. The companion read on the layer above this sits at ADR vs RevPAR vs GOPPAR.
The CPOR formula (with a worked example)
One formula, three input groups. The complexity is entirely in deciding what goes inside operating cost.
CPOR = Total operating cost ÷ Rooms occupied
where Total operating cost = Direct variable cost (linen, amenities, housekeeping labour, breakfast, utilities per stay) + Channel cost on rooms sold (commission, processing, GDS fees) + Allocated share of departmental overhead
Take a 120-key urban hotel running a single calendar month. Occupancy 72 percent across 30 nights — 2,592 occupied room-nights. Direct variable cost A$28 per stay across linen turn, amenities, in-room utilities and a continental breakfast: A$72,576. Housekeeping labour at A$22 per occupied room when scheduled properly: A$57,024. Commission and channel cost averaging 14 percent on a blended ADR of A$210: A$76,205. Allocated departmental overhead — front office labour share, reservations team, in-room maintenance — at A$18 per occupied room: A$46,656. Total operating cost: A$252,461. Divided by 2,592 occupied rooms: A$97.40 per occupied room.
| Line | Per occupied room | Month total |
|---|---|---|
| Linen, amenities, breakfast, in-room utilities | A$28.00 | A$72,576 |
| Housekeeping labour | A$22.00 | A$57,024 |
| Channel cost (commission + processing) | A$29.40 | A$76,205 |
| Allocated departmental overhead | A$18.00 | A$46,656 |
| CPOR | A$97.40 | A$252,461 |
| Blended ADR | A$210.00 | — |
| Contribution per occupied room | A$112.60 | A$291,859 |
The arithmetic gives the revenue manager a ceiling and a floor in one sentence. The ceiling is the open rate the market is paying. The floor is A$97.40. A discount that lands ADR at A$140 still produces A$42.60 of contribution. A discount that lands ADR at A$95 is loss-making even before the room is sold. The same arithmetic sits behind the rate-floor discipline I wrote about in how to calculate RevPAR — net RevPAR is the building view, CPOR is the per-stay view, and the gap between them is the contribution line owners actually read.
Where CPOR breaks down (and the four lines operators miss)
CPOR is a clean number on a clean cost stack. The problem is that the cost stack at most independent properties is incomplete in the same four places.
First miss: housekeeping labour booked as a fixed line. Many properties book housekeeping under departmental payroll and treat it as fixed. It is not. A property that drops from 80 percent occupancy to 50 percent should be running fewer attendants per day; if it is not, the labour cost per occupied room rises sharply on the soft dates — precisely the dates where a defended CPOR floor matters most.
Second miss: channel cost recorded gross-of-revenue. A property that pays a 15 percent OTA commission and books rooms revenue gross is double-counting if it also loads commission into CPOR. The discipline is to choose one convention — gross revenue with commission in CPOR, or net revenue with commission absorbed upstream — and document it on the same page as the formula. Across portfolios I have audited, that convention drift is the single biggest reason CPOR figures don't reconcile.
Third miss: amenities priced at last year's rate. Linen wash cost, breakfast cost-of-goods and in-room amenities all drift with supplier renegotiations and energy prices. A property still pricing CPOR with last year's amenity cost is using a 12-month-old rate floor. Updating the amenity stack quarterly is a 30-minute exercise that prevents a quietly inflated contribution line.
Fourth miss: allocated overhead set once and forgotten. The departmental overhead share of CPOR is usually loaded as a single per-room figure at the start of the year and held constant. The lines underneath drift continuously. A property running a frozen A$15 per occupied room of allocated overhead through a year where the true figure has crept to A$21 is reading a CPOR that is A$6 light. On 24,000 occupied room-nights, that is A$144,000 of contribution the dashboard never named.
CPOR is the metric that turns rate-setting from gut into arithmetic. The properties that publish it monthly are the ones that defend their rate in the soft season without anyone needing to explain why.
The structural issue underneath all four is the same: CPOR is presented as a fact, but it is a built number. The discipline is not in the calculation. It is in keeping the input stack current. A monthly twenty-minute review of the four lines — variable cost rate, channel cost convention, amenity prices, allocated overhead — produces a CPOR figure the operator can defend in any owner conversation.
Why CPOR rarely makes it onto the owner pack
The metric is older than most of the dashboards on the market. It rarely appears on the page anyway. The gap is structural.
Training. Revenue curricula spend most of their hours on RevPAR optimisation and very few on the cost side. Most accreditation programmes treat housekeeping payroll, amenity cost and channel fees as background — the responsibility of operations, of the GM, of finance.
Data access. ADR and RevPAR live in the PMS. Channel cost lives in the OTA extranet or the accounting system. Housekeeping cost lives in payroll. Amenity cost lives in procurement. CPOR sits at the intersection of four systems. Closing the loop takes a deliberate monthly handshake — see the discipline I unpack in what is GOP in hotels and what is GOPPAR.
Comfort. CPOR forces a conversation about cost in the same room as rate. Revenue managers are typically rewarded against RevPAR or revenue targets, not against contribution. Publishing CPOR alongside RevPAR shifts the question from topline growth to contribution growth — and the second question pulls procurement, housekeeping rota and channel mix into the conversation. The discomfort is the point.
What to do about it — a five-step playbook
Closing the gap between rate-setting and a defended CPOR floor is a reporting layout shift more than a strategy shift. The numbers exist. They sit in four files.
- Build the four-line stack once. A single page that itemises direct variable cost per stay, housekeeping per occupied room, channel cost per occupied room, and allocated departmental overhead per occupied room. Sum to CPOR. Update monthly with trailing three-month numbers. Once it exists, every rate decision references a published floor rather than a remembered one.
- Choose the gross-or-net convention and document it. Either rooms revenue is reported gross and commission lives inside CPOR, or rooms revenue is reported net and commission sits upstream. Both are defensible. Switching between them — even by accident — produces CPOR figures that don't reconcile across months. The convention belongs on the same page as the formula, in twelve-point type, with a date.
- Re-price the variable stack every quarter. Linen wash, breakfast cost-of-goods, in-room amenities, energy per stay. Most properties drift A$2 to A$5 per stay over a year. On a 90-key property at 70 percent occupancy, A$3 of drift is A$68,000 of misread contribution. A thirty-minute supplier review by procurement is the cheapest control there is.
- Track housekeeping at minutes-per-room. Convert payroll into a per-occupied-room rate that scales with occupancy. The conversation with housekeeping management shifts from headcount to minutes-per-clean — and the rota for the soft dates produces a different number from the rota for compression dates. Both numbers feed the CPOR floor for their respective dates.
- Publish CPOR alongside ADR, RevPAR and contribution per stay. One row on the monthly owner pack: ADR, RevPAR, CPOR, contribution per occupied room. The owner reads the third and fourth columns first the moment they appear. The conversation rebalances from topline growth to margin growth inside two months. The forecasting discipline behind this pairs with the demand-side read in hotel demand forecasting.
A real scenario — anonymised, but it lands every time
At a 110-key suburban property I worked with, the team had spent two quarters on a revenue-growth push. The headline was clean: RevPAR up 8.3 percent year-on-year, occupancy up two points, ADR up A$11. The GM was preparing a quarterly review for the owner. CPOR was not on the page.
When we rebuilt the cost stack, four things surfaced. Housekeeping labour had drifted to A$26 per occupied room, A$4 above plan. Channel cost had crept from 13 percent to 15.4 percent as a wholesale channel had taken a larger share. The amenity stack still ran last year's pricing — A$2.20 per stay light. Allocated overhead had been frozen at A$15 since the year began, while the true trailing-three-month figure was A$19.
The walk: housekeeping plus A$4, channel plus A$5.20, amenities plus A$2.20, overhead plus A$4. CPOR moved from A$88 to A$103.40. ADR had grown to A$208. Contribution per occupied room had compressed from A$120 to A$104.60. On 24,000 trailing-twelve-month occupied rooms, that was A$370,000 of contribution the headline RevPAR story had not surfaced. The companion read on how this connects to the valuation conversation sits at EBITDA per room explained.
FAQ
What is CPOR in plain English?
CPOR is the cost a hotel pays to deliver one occupied room-night. It is the floor under every rate decision: a room sold at or below CPOR is a loss-making transaction. The arithmetic is total operating cost divided by occupied room-nights.
What is the CPOR formula?
CPOR equals total operating cost divided by rooms occupied. Operating cost includes direct variable cost (housekeeping, linen, amenities, breakfast, utilities per stay), channel cost on the rooms sold, and an allocated share of departmental overhead. The denominator is occupied room-nights for the same period.
What is the difference between CPOR and ADR?
ADR is what the guest pays per night. CPOR is what the hotel pays per night to deliver the room. The gap between them is the per-room contribution toward fixed cost and profit. If ADR falls below CPOR on a given date, every additional room sold makes the property poorer on that date.
How is CPOR different from GOPPAR?
GOPPAR is gross operating profit per available room and answers how well the building converts revenue to profit. CPOR is cost per occupied room and answers what the next room costs to sell. GOPPAR is read after the period closes. CPOR is the input the revenue manager uses while the period is still open.
What is a good CPOR for a hotel?
There is no universal benchmark. A limited-service regional property might run CPOR in the A$30 to A$55 band. A full-service CBD property might run A$55 to A$95 once allocated overhead is included. The reference points that matter are the property's own trend and properties of comparable scale, segment and service standard.
Should commission be included in CPOR?
It depends on the revenue convention. If rooms revenue is reported gross, commission is a separate cost line and belongs inside CPOR. If revenue is reported net of commission, CPOR excludes commission to avoid double-counting. The discipline is to choose one convention, document it on the same page as the formula, and apply it consistently.
How often should I update CPOR?
Monthly trailing-three-month is the working cadence. Direct variable cost moves with payroll cycles and supplier renegotiation. Channel cost moves with mix shift. A CPOR figure older than three months is a number from the previous operating reality — useful for trend, not for pricing the next thirty days.
The honest summary
CPOR is the number on the sticky note next to the CFO's monitor. ADR is what the guest pays. CPOR is what the property pays to deliver the night. Contribution is what survives in between. Operators who publish the four-line CPOR stack monthly defend rate in the soft months and grow margin in the strong ones. The discipline is in keeping the four input lines current.
At RevPerfect we built the contribution row directly into the snapshot: ADR, RevPAR, NRevPAR, CPOR and contribution per occupied room running in one continuous line so the owner conversation starts at margin rather than at topline. Book a 20-minute walkthrough, or try RevPerfect free →.