Bali Hotel Occupancy, Rate and Profitability Analytics Set (ID)

HTLOCC931· 620K records · 20 tables · v1.2.0 · Updated 2026-08-17
Hospitality & Tourism Hotels & Resorts Dataset API
CSV JSON SQL Imagesbalihoteloccupancyhospitalityadrrevpartourismprofitabilityairfarecola

Overview

This synthetic Bali hotel analytics product connects a balanced portfolio of modelled three-star, four-star and five-star properties with room inventory, facilities, transparent property media, a dated holiday and event calendar, daily operating performance, monthly room rates, guest source markets, booking channels, airfare and aviation-fuel pressure, operating-cost indices, departmental revenue and expense, and annual profitability. Historical patterns are calibrated to published Bali tourism and hotel-market context without reproducing any hotel record. The current year separates synthetic estimates from forward forecast months, while pandemic closure and reopening periods remain explicit so occupancy, rate, cost and profit models can be evaluated without look-ahead leakage.

Analytics

Four entries from the packaged tables, with the performance the dataset records for them. Every value below is read from the shipped files.

Sagara Lane Hotel
Sagara Lane HotelHTL00013 star
96Rooms
47.2%Occupancy
IDR 821kADR
IDR 387kRevPAR
190.8kRoom nights
0.6%Margin
Occupancy, percentOccupancy, percent
1 / 4

Row Counts by Table

Counted from the files that ship, not estimated.

TableRows
bali_hotels18
bali_hotel_years12
bali_hotel_periods144
bali_hotel_media18
bali_hotel_room_types72
bali_hotel_facilities288
bali_hotel_source_markets16
bali_hotel_booking_channels6
bali_hotel_holidays_events139
bali_hotel_cost_indices144
bali_hotel_market_access2,304
bali_hotel_daily_performance78,894
bali_hotel_monthly_performance2,592
bali_hotel_monthly_source_mix41,472
bali_hotel_room_rates10,368
bali_hotel_channel_mix15,552
bali_hotel_monthly_financials2,592
bali_hotel_annual_profitability216
bali_hotel_capital_projects36
bali_hotel_reservations465,386

Table Relationships

One parent record and seven child tables, each joined back on the same key.

70%
Loading diagram

Schema

Every table ships with typed columns, referential integrity, and documentation.

bali_hotels· Rows: 18
ColumnTypeDescription
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotels.
hotel_namevarchar(32)Bali hotel name created for this synthetic dataset.
brand_familyvarchar(24)Modelled commercial family under which the property is positioned.
star_ratingintegerModeled hotel classification of three, four or five stars.
property_typevarchar(32)Operating format such as hotel, resort, retreat, suites or villas.
target_segmentvarchar(40)Primary guest and trip-purpose segment targeted by the property.
architecture_stylevarchar(40)Synthetic design brief used for the property character and media illustration.

+17 more columns in bali_hotels. The full schema ships with the download.

bali_hotel_years· Rows: 12
ColumnTypeDescription
year_idvarchar(8)Stable identifier for year; use it for the joins declared for bali_hotel_years.
calendar_yearintegerFour-digit calendar year represented by the row.
period_startdateFirst ISO 8601 date in the annual reporting period.
period_enddateLast ISO 8601 date in the annual reporting period.
source_statusvarchar(40)Evidence status: observed, estimated or forecast according to the dataset methodology.
vintage_datedateDate on which the research inputs and modeled values were frozen.
bali_hotel_periods· Rows: 144
ColumnTypeDescription
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_periods.
year_idvarchar(8)Stable identifier for year; use it for the joins declared for bali_hotel_periods.
calendar_yearintegerFour-digit calendar year represented by the row.
month_numbervarchar(8)Calendar month number from 1 for January through 12 for December.
month_namevarchar(16)English calendar month name.
month_startdateFirst ISO 8601 date in the monthly period.
month_enddateLast ISO 8601 date in the monthly period.

+6 more columns in bali_hotel_periods. The full schema ships with the download.

bali_hotel_media· Rows: 18
ColumnTypeDescription
hotel_media_idvarchar(16)Stable identifier for hotel media; use it for the joins declared for bali_hotel_media.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_media.
image_filevarchar(32)Dataset-relative path to the hotel illustration.
image_formatvarchar(16)Media file format stored for the hotel illustration.
image_width_pxintegerIllustration canvas width in pixels.
image_height_pxintegerIllustration canvas height in pixels.
property_viewvarchar(48)Camera angle and property presentation used by the illustration.

+3 more columns in bali_hotel_media. The full schema ships with the download.

bali_hotel_room_types· Rows: 72
ColumnTypeDescription
room_type_idvarchar(16)Stable identifier for room type; use it for the joins declared for bali_hotel_room_types.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_room_types.
room_type_namevarchar(32)Synthetic marketed name of the room or villa category.
room_classvarchar(16)Commercial inventory tier used in availability and pricing analysis.
view_typevarchar(24)Primary guest-room outlook, such as garden, pool, ocean or city.
room_countintegerNumber of physical keys assigned to this room type.
floor_area_sqmintegerTypical room floor area in square metres.

+8 more columns in bali_hotel_room_types. The full schema ships with the download.

bali_hotel_facilities· Rows: 288
ColumnTypeDescription
facility_idvarchar(16)Stable identifier for facility; use it for the joins declared for bali_hotel_facilities.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_facilities.
facility_categoryvarchar(24)Functional grouping for the hotel facility.
facility_namevarchar(32)Modelled guest-facing or operational facility name.
unit_typevarchar(16)Unit in which facility capacity is recorded.
unit_count_or_capacityintegerModeled count or guest capacity expressed in unit_type.
complimentary_flagbooleanTrue when normal guest access is included without a separate facility charge.

+5 more columns in bali_hotel_facilities. The full schema ships with the download.

bali_hotel_source_markets· Rows: 16
ColumnTypeDescription
source_market_idvarchar(8)Stable identifier for source market; use it for the joins declared for bali_hotel_source_markets.
country_codevarchar(8)Stable code for country.
country_namevarchar(40)Human-readable country name.
market_groupvarchar(24)Demand segment grouping for an origin country or aggregate source market.
world_regionvarchar(24)Broad geographic region assigned to the source market.
representative_distance_to_bali_kmintegerRepresentative great-circle travel distance to Bali in kilometres.
baseline_roundtrip_airfare_usd_2015integerModeled 2015 economy round-trip airfare baseline in United States dollars.

+6 more columns in bali_hotel_source_markets. The full schema ships with the download.

bali_hotel_booking_channels· Rows: 6
ColumnTypeDescription
booking_channel_idvarchar(8)Stable identifier for booking channel; use it for the joins declared for bali_hotel_booking_channels.
channel_codevarchar(16)Stable code for channel.
channel_namevarchar(40)Human-readable channel name.
channel_groupvarchar(16)Commercial distribution family such as direct, online travel agency or contracted account.
standard_commission_pctnumeric(6,2)Typical commission or acquisition cost applied to bookings from the channel.
active_flagbooleanBoolean indicator for active.
bali_hotel_holidays_events· Rows: 139
ColumnTypeDescription
holiday_event_idvarchar(16)Stable identifier for holiday event; use it for the joins declared for bali_hotel_holidays_events.
event_namevarchar(56)Holiday or demand event name used in the Bali seasonality model.
event_categoryvarchar(40)Holiday, school-break, festival or year-end event grouping.
start_datedateFirst ISO 8601 date on which the event affects demand.
end_datedateLast ISO 8601 date on which the event affects demand.
primary_origin_market_codevarchar(8)Country or aggregate market code most directly associated with the event.
demand_multipliernumeric(6,3)Multiplicative demand effect applied during the event window.

+4 more columns in bali_hotel_holidays_events. The full schema ships with the download.

bali_hotel_cost_indices· Rows: 144
ColumnTypeDescription
cost_index_idvarchar(16)Stable identifier for cost index; use it for the joins declared for bali_hotel_cost_indices.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_cost_indices.
cpi_cola_index_2015_100numeric(8,3)Consumer-price and cost-of-living adjustment index with 2015 equal to 100.
wage_cost_index_2015_100numeric(8,3)Hotel labor-cost index with 2015 equal to 100.
food_cost_index_2015_100numeric(8,3)Food and beverage input-cost index with 2015 equal to 100.
energy_cost_index_2015_100numeric(8,3)Hotel utilities and energy-cost index with 2015 equal to 100.
jet_fuel_usd_per_gallonnumeric(6,3)Representative aviation jet-fuel price in United States dollars per gallon.

+8 more columns in bali_hotel_cost_indices. The full schema ships with the download.

bali_hotel_market_access· Rows: 2,304
ColumnTypeDescription
market_access_idvarchar(16)Stable identifier for market access; use it for the joins declared for bali_hotel_market_access.
source_market_idvarchar(8)Stable identifier for source market; use it for the joins declared for bali_hotel_market_access.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_market_access.
average_roundtrip_airfare_usdnumeric(8,2)Modeled average economy round-trip fare to Bali in United States dollars.
estimated_fuel_surcharge_usdnumeric(7,2)Estimated fuel-surcharge component of the round-trip airfare in United States dollars.
airfare_increase_due_to_fuel_usdnumeric(7,2)Estimated airfare increase attributable to jet-fuel movement versus the 2015 baseline.
jet_fuel_usd_per_gallonnumeric(6,3)Representative aviation jet-fuel price in United States dollars per gallon.

+7 more columns in bali_hotel_market_access. The full schema ships with the download.

bali_hotel_daily_performance· Rows: 78,894
ColumnTypeDescription
daily_performance_idvarchar(24)Stable identifier for daily performance; use it for the joins declared for bali_hotel_daily_performance.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_daily_performance.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_daily_performance.
stay_datedateGuest-night operating date in ISO 8601 format.
day_of_weekvarchar(16)English weekday for stay_date.
operating_statevarchar(24)Hotel operating condition, including normal, constrained or closed states.
primary_holiday_event_idvarchar(16)Holiday event with the strongest modeled demand effect on the stay date; empty when none applies.

+22 more columns in bali_hotel_daily_performance. The full schema ships with the download.

bali_hotel_monthly_performance· Rows: 2,592
ColumnTypeDescription
monthly_performance_idvarchar(16)Stable identifier for monthly performance; use it for the joins declared for bali_hotel_monthly_performance.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_monthly_performance.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_monthly_performance.
operating_daysintegerNumber of calendar days the property was modeled as operating during the month.
rooms_inventoryintegerPhysical rooms held by the property on the observation date or month.
available_room_nightsintegerSum of sellable rooms across all operating dates in the period.
sold_room_nightsintegerSum of occupied room nights sold in the period.

+16 more columns in bali_hotel_monthly_performance. The full schema ships with the download.

bali_hotel_monthly_source_mix· Rows: 41,472
ColumnTypeDescription
source_mix_idvarchar(24)Stable identifier for source mix; use it for the joins declared for bali_hotel_monthly_source_mix.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_monthly_source_mix.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_monthly_source_mix.
source_market_idvarchar(8)Stable identifier for source market; use it for the joins declared for bali_hotel_monthly_source_mix.
room_nightsintegerOccupied room nights allocated to the source market.
estimated_guest_arrivalsintegerEstimated arriving guests derived from room nights and length of stay.
average_length_of_stay_nightsnumeric(6,2)Modeled average occupied nights per arriving guest from the source market.

+9 more columns in bali_hotel_monthly_source_mix. The full schema ships with the download.

bali_hotel_room_rates· Rows: 10,368
ColumnTypeDescription
room_rate_idvarchar(24)Stable identifier for room rate; use it for the joins declared for bali_hotel_room_rates.
room_type_idvarchar(16)Stable identifier for room type; use it for the joins declared for bali_hotel_room_rates.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_room_rates.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_room_rates.
cpi_cola_index_2015_100numeric(8,3)Consumer-price and cost-of-living adjustment index with 2015 equal to 100.
avtur_cost_index_2015_100numeric(8,3)Aviation turbine fuel price index with 2015 equal to 100.
holiday_rate_multipliernumeric(6,3)Multiplicative room-rate premium or discount associated with event demand.

+9 more columns in bali_hotel_room_rates. The full schema ships with the download.

bali_hotel_channel_mix· Rows: 15,552
ColumnTypeDescription
channel_mix_idvarchar(24)Stable identifier for channel mix; use it for the joins declared for bali_hotel_channel_mix.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_channel_mix.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_channel_mix.
booking_channel_idvarchar(8)Stable identifier for booking channel; use it for the joins declared for bali_hotel_channel_mix.
sold_room_nightsintegerSum of occupied room nights sold in the period.
room_night_share_pctnumeric(7,3)Source-market or booking-channel room nights as a percentage of the hotel monthly total.
gross_room_revenue_idrbigintRoom revenue before distribution commission in Indonesian rupiah.

+6 more columns in bali_hotel_channel_mix. The full schema ships with the download.

bali_hotel_monthly_financials· Rows: 2,592
ColumnTypeDescription
monthly_financial_idvarchar(16)Stable identifier for monthly financial; use it for the joins declared for bali_hotel_monthly_financials.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_monthly_financials.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_monthly_financials.
room_revenue_idrbigintGuest-room revenue in Indonesian rupiah.
food_beverage_revenue_idrbigintFood and beverage revenue in Indonesian rupiah.
other_revenue_idrbigintSpa, transport, activity and other hotel revenue in Indonesian rupiah.
total_revenue_idrbigintTotal hotel revenue in Indonesian rupiah across room, food and beverage, and other departments.

+25 more columns in bali_hotel_monthly_financials. The full schema ships with the download.

bali_hotel_annual_profitability· Rows: 216
ColumnTypeDescription
annual_profitability_idvarchar(16)Stable identifier for annual profitability; use it for the joins declared for bali_hotel_annual_profitability.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_annual_profitability.
year_idvarchar(8)Stable identifier for year; use it for the joins declared for bali_hotel_annual_profitability.
available_room_nightsintegerSum of sellable rooms across all operating dates in the period.
sold_room_nightsintegerSum of occupied room nights sold in the period.
occupancy_pctnumeric(6,2)Rooms sold divided by rooms available, expressed as a percentage.
adr_idrintegerAverage daily room rate in Indonesian rupiah, calculated from room revenue and sold room nights.

+13 more columns in bali_hotel_annual_profitability. The full schema ships with the download.

bali_hotel_capital_projects· Rows: 36
ColumnTypeDescription
capital_project_idvarchar(16)Stable identifier for capital project; use it for the joins declared for bali_hotel_capital_projects.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_capital_projects.
project_typevarchar(24)Capital-investment category such as renovation, efficiency or facility enhancement.
project_namevarchar(64)Modelled property capital-project name.
approved_datedateSynthetic ISO 8601 date on which project funding was approved.
project_start_datedateSynthetic ISO 8601 date on which project work began.
planned_completion_datedateSynthetic ISO 8601 date targeted for project completion.

+7 more columns in bali_hotel_capital_projects. The full schema ships with the download.

bali_hotel_reservations· Rows: 465,386
ColumnTypeDescription
reservation_idvarchar(16)Stable identifier for reservation; use it for the joins declared for bali_hotel_reservations.
hotel_idvarchar(16)Stable identifier for hotel; use it for the joins declared for bali_hotel_reservations.
room_type_idvarchar(16)Stable identifier for room type; use it for the joins declared for bali_hotel_reservations.
booking_channel_idvarchar(8)Stable identifier for booking channel; use it for the joins declared for bali_hotel_reservations.
source_market_idvarchar(8)Stable identifier for source market; use it for the joins declared for bali_hotel_reservations.
period_idvarchar(16)Stable identifier for period; use it for the joins declared for bali_hotel_reservations.
booking_datedatebooking date as an ISO 8601 calendar date.

+12 more columns in bali_hotel_reservations. The full schema ships with the download.

Sample Data

A snapshot of real rows from the dataset (values are fully synthetic).

hotel_idhotel_namestar_ratingproperty_typearea_nameregency_nametotal_roomstarget_segmentarchitecture_stylebeach_accessownership_model
HTL0001Sagara Lane Hotel3urban beach hotelKutaBadung96value leisurecompact contemporary tropicalwalkableindependent
HTL0002Purnama Courtyard Inn3courtyard hotelLegianBadung84families and groupsterracotta Balinese courtyardwalkableindependent
HTL0003Nusa Pagi Hotel3garden hotelSanurDenpasar72mature leisurelow-rise garden pavilionnearbyfamily-owned

Version History

v1.2.02026-08-17Gives the eighteen properties web addresses that read like a hotel's. They were the hotel name lowercased, stripped of spaces and punctuation, cut at twenty four characters and finished with the reserved .example suffix, which produced theayunawritersretr.example and announced the column as filler in every row. Each address is now built from whole words with the trade word dropped where something distinctive survives, so Sagara Lane Hotel is sagaralane.com, and the suffix follows what Bali properties actually hold: mostly .com, a real minority on .co.id. No other column changes, and the occupancy, rate, revenue and profitability figures are identical to 1.1.0.