Hotel single-night upgrade matching calculator

Calculate allowed booking-class assignment and incremental upgrade cost with your own figures.

Your numbers

Use the units shown. Results update as you change valid inputs.

Choose the currency for these amounts. Changing it keeps your numbers and does not convert exchange rates.

Use allowed booking-class assignment and incremental upgrade cost to compare changes to your inputs. The method and limits below explain the scope.

Examples

Examples

Try the starting example

Booking-by-room-class incremental costs (USD); null disallowed; enter JSON
[[0,20],[null,0],[0,20]]
Available room count by class
1,1
Allowed booking-class assignment (JSON)
[1,2,null]
Incremental upgrade cost (USD)
$0.00
Unallocated bookings (count)
1

Try another scenario

Booking-by-room-class incremental costs (USD); null disallowed; enter JSON
[[0,15],[null,0],[null,0]]
Available room count by class
1,2
Allowed booking-class assignment (JSON)
[1,2,2]
Incremental upgrade cost (USD)
$0.00
Unallocated bookings (count)
0
Calculation method

Calculation method

Allowed booking-class assignment (JSON)

Maximum bipartite matching; rows are bookings and columns room classes, capacity expanded; allowed only non-null cost.

Incremental upgrade cost (USD)

Sum supplied cost for matched booking/class pairs.

Unallocated bookings (count)

Count unmatched bookings.

Symbols and units
a
Booking-by-room-class incremental costs (USD); null disallowed; enter JSON
b
Available room count by class

Use the units shown. A list keeps the order in which you enter its values. The symbol ^ means “raised to the power of”.

Assumptions & limits

Assumptions & limits

  • One-night room-class allocation on explicitly permitted upgrade cost matrix; maximum count matched, without minimum-cost guarantee. Supported limits: All numeric inputs and computed intermediates must remain finite. Supported numeric input magnitude is zero or 1e-12 through 1e12 in absolute value; reject values outside this bounded range. All lists/JSON record tables are limited to 100 records unless a stricter bound is stated; reject malformed record arity and wrong member types. At most 50 bookings/classes and 100 total room slots; rectangular cost matrix, nonnegative numeric costs or null.
Are these inputs private?

These calculations run in your browser. A shared link contains the values you choose to share. Only questions submitted to the separate AI finder are sent to OpenAI.

Share this page
Share this calculator

Leave unchecked to share the page without your entered values.