Hotel room occupancy calendar calculator

Calculate nightly [date,available,occupied,blocked] and conflicts and available room-nights with your own figures.

Your numbers

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

Use nightly [date,available,occupied,blocked] and conflicts and available room-nights to compare changes to your inputs. The method and limits below explain the scope.

Examples

Examples

Try the starting example

Room identifiers; enter JSON
["101","102"]
Bookings [room,check-in ISO date,check-out ISO date]; enter JSON
[["101","2026-11-01","2026-11-03"],["102","2026-11-02","2026-11-04"]]
Room blocks [room,start ISO date,end ISO date]; enter JSON
[["102","2026-11-01","2026-11-02"]]
Calendar start (ISO date)
2026-11-01
Calendar end excluded (ISO date)
2026-11-04
Nightly [date,available,occupied,blocked] and conflicts (JSON)
{"nights":[["2026-11-01",1,1,1],["2026-11-02",2,2,0],["2026-11-03",2,1,0]],"conflicts":[]}
Available room-nights (count)
5
Occupancy fraction of available room-nights
0.8

Try another scenario

Room identifiers; enter JSON
["101","102","103"]
Bookings [room,check-in ISO date,check-out ISO date]; enter JSON
[["101","2026-11-01","2026-11-04"],["102","2026-11-01","2026-11-03"]]
Room blocks [room,start ISO date,end ISO date]; enter JSON
[["103","2026-11-02","2026-11-04"]]
Calendar start (ISO date)
2026-11-01
Calendar end excluded (ISO date)
2026-11-04
Nightly [date,available,occupied,blocked] and conflicts (JSON)
{"nights":[["2026-11-01",3,2,0],["2026-11-02",2,2,1],["2026-11-03",2,1,1]],"conflicts":[]}
Available room-nights (count)
7
Occupancy fraction of available room-nights
0.714286
Calculation method

Calculation method

Nightly [date,available,occupied,blocked] and conflicts (JSON)

Enumerate each room-night; count unique occupied available room-nights; report double-booked or blocked-booked room-nights.

Available room-nights (count)

Sum available rooms over calendar nights.

Occupancy fraction of available room-nights

Occupied available room-nights/available room-nights; text if no available supply.

Symbols and units
a
Room identifiers; enter JSON
b
Bookings [room,check-in ISO date,check-out ISO date]; enter JSON
c
Room blocks [room,start ISO date,end ISO date]; enter JSON
d
Calendar start (ISO date)
e
Calendar end excluded (ISO date)

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

  • Exact named-room, nightly calendar; departure date is excluded and blocked rooms leave available supply. 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. Unique nonempty room ids; referenced rooms exist; valid ISO start<end; calendar at most 366 days; <=100 rooms/stays/blocks.
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.