Hospitality-Revenue-Insights-PowerBI

所属分类:数据挖掘/数据仓库
开发工具:Others
文件大小:0KB
下载次数:0
上传日期:2023-12-09 23:12:52
上 传 者sh-1993
说明:  酒店收入洞察PowerBI
(Hospitality Revenue Insights PowerBI)

文件列表:
AtliQ_Grands_Hospitality_dashboard.pdf
Hospitality_Mgmt.pbix
dim_date.csv
dim_hotels.csv
dim_rooms.csv
fact_aggregated_bookings.csv
fact_bookings.csv
mock up dashboard_atliq grands.png

# AtliQ Grands Hospitality Revenue Insights ## Hospitality Domain – Data Analytics Project Challenge By Codebasics ### Resume Challenge Project at https://codebasics.io/challenge/codebasics-resume-project-challenge ## Problem Statement AtliQ Grands owns multiple five-star hotels across India. They have been in the hospitality industry for the past 20 years. Due to strategic moves from other competitors and ineffective decision-making in management, AtliQ Grands are losing its market share and revenue in the luxury/business hotels category. As a strategic move, the managing director of AtliQ Grands wanted to incorporate “Business and Data Intelligence” to regain their market share and revenue. However, they do not have an in-house data analytics team to provide them with these insights. Their revenue management team had decided to hire a 3rd party service provider to provide them insights from their historical data. ### Task List You are a data analyst who has been provided with sample data and a mock-up dashboard to work on the following task. You can download all relevant documents from the download section. - Create the metrics according to the metric list. - Create a dashboard according to the mock-up provided by stakeholders. - Create relevant insights that are not provided in the metric list/mock-up dashboard ## About AtliQ Grands #### Some good-to-know stats before starting the building dashboard. - AtliQ Grands is a five stars hotel chain is operating in 4 cities (Hyderabad, Mumbai, Banglore, Delhi). - It has 7 properties with branches across these 4 cities. - The rooms in these properties are categorized into 4 types: Elite, Premium, Presidential, & Standard. - There are 6 main platforms to book the rooms and some other platforms that are not as effective as others. ### Datasets provided by Codebasics - **dim_date** - **dim_hotels** - **dim_rooms** - **fact_bookings** - **fact_aggregated_bookings** ### Key Metrics to include in the Report suggested by the stakeholder #### Financial Stats The financial stats added in this report are the typical metrics that are used only in the hospitality sector. This includes revenue, cancellations, room-level pricing etc. Here is a list of these financial metrics used in the hospitality industry. 1. *Revenue* - a common metric used in every industry. 2. *RevPAR* - Revenue generated per available room. - RevPar = Total Revenue / Total Rooms available to Sell - Revpar = ADR * Occupancy % 3. *ADR* – Average Daily Rate is the average daily price per room. - ADR = Total Rooms Sold Revenue / Number of Rooms Sold #### Performance Stats The stats related to performance includes the hotel’s occupancy, cancellation %, room availability and many more. Here is a list of performance metrics used in the hospitality industry. 1. *Occupancy %* - Occupancy % = Total Rooms Occupied / Total Rooms Available 2. *Cancellation %* 3. *SRN* (Sellable Room Nights) - SRN is the metric used for available rooms that can be sold. Example: If there are 100 rooms in a hotel and 20 rooms are not available for any XYZ reason, the SRN here is 80. 4. *DSRN* (Daily Sellable Room Nights) 5. *URN* (Utilized Room Nights) -URN are the nights utilized by the customers. This can be the checked-in nights. It is considered when the customer ends-up staying. 6. *DURN* (Daily Utilized Room Nights) 7. *BRN* (Booked Room Nights) - It is the sum of URN, Cancellation and customers who didn't stay even after bookings. - BRN = URN + Cancellation + No Show 8. *DBRN* (Daily Booked Room Nights) 9. *Realisation* - It refers to the number of customers bookings received against customers actually stayed - Realisation = URN / BRN 10. *Avg Rating* – Average rating is the average rating given by a customer per booking. 11. *Day Type* – Day is the category of days in a week. Weekday and Weekend. Based on the feedback from stakeholder, we considered Friday and Saturday as weekend and weekdays from Sunday to Thurdsay. 12. *Booking Platforms* – Booking platforms are the modes that are used by customers to book rooms. These include AtliQ’s own booking platform and third-party platforms as well. 13. *Week Number* – Week number is the number of weeks in a year. 14. *WoW* – Week on Week is the metric to compare the performance change over the week. ### Filters Used 1. **Filter by Properties** - Looking into properties or room class can drill down the problems and challenges faced by hotels. Example: Ratings will help in improving the standards of the room. Availability will help in providing more rooms with the category in high demand. 2. **Filter by City** - This filter helps in knowing the market value of AtilQ. 3. **Filter by Status** - This helps in knowing the revenues generated from the customers who actually checked in. 4. **Filter by Platforms** - Choosing booking platforms provides insights to the marketing team to target accordingly. Also, improving AtliQ’s own platforms for generating direct revenue. 5. **Filter by Month** - To measure monthly performance. 6. **Filter by Week** - To view each week’s performance. ### Mock-up Dashboard ![mock up dashboard_atliq grands](https://github.com/guddushah/Hospitality-Revenue-Insights-PowerBI/assets/40028193/b3b98f28-d005-4a32-936d-df907014fd36) ### Steps taken to build Dashboard - Imported all the data in Power BI - Performed Data Transformation using Power Query - Then, established relationship between the tables, obtained STAR Schema in Data Model View. - Created calculated columns and measures using DAX (Data Analysis Expression) - Started building Dashboard ### Data Transformation #### Created calculated columns in dim_date table 1. Used DAX formula to derive week number from the corresponding date - wn = WEEKNUM(dim_date[date]) 2. Used DAX formula to derive day type - day type = Var wkd = WEEKDAY(dim_date[date],1) return IF( wkd>5,"Weekend","Weekday") ### Data Model Created ![model](https://github.com/guddushah/Hospitality-Revenue-Insights-PowerBI/assets/40028193/5ee1946e-7e9d-4e9e-b51d-3967b14b3a30) ### Dashboard Created ![al1](https://github.com/guddushah/Hospitality-Revenue-Insights-PowerBI/assets/40028193/dc086afa-368d-42ef-9115-a3f5e5f18e6b) ![pic2](https://github.com/guddushah/Hospitality-Revenue-Insights-PowerBI/assets/40028193/6ec77722-a31f-4ff7-8c5e-9ad654c6704f) ## View Dashboard here https://app.powerbi.com/view?r=eyJrIjoiNjZiYTFiMmEtOTNlYy00NjU0LTliNmYtMmM0NWE1N2ZhMTQ3IiwidCI6Ijc5OWU3OTRjLTllYWMtNGUxZi05ZjY0LTE0ODhjYjMyMjRlNiJ9 Using all the information and data provided by the stakeholders, I analyzed and created this report. This report shows metrics that will help solve the problems faced by AtliQ Grands’s management in generating good revenue. ## Key Insights obtained from the Dashboard #### 1. Insight by Room Class - **Revenue** - Highest Revenue (Elite Rooms -- 553.7 M), Lowest Revenue (Standard -- 305.6 M) - **RevPAR** - Highest RevPAR (Presidental Rooms -- 13.8 K), Lowest RevPAR (Standard Rooms -- 4.6 K) - **ADR** - Highest ADR (Presidental Rooms -- 23.4 K), Lowest ADR (Standard -- 8 K) #### 2. Insight by Property Name - **Revenue** - Highest Revenue (AtliQ Exotica -- 316 M), Lowest Revenue (AtliQ Seassons -- 65 M) - **RevPAR** - Highest RevPAR (AtliQ Exotica -- 7.8 K), Lowest RevPAR (AtliQ Grands -- 6.5 K) - **ADR** - Highest ADR (AtliQ Seassons -- 16.5 K), Lowest ADR (AtliQ Blu -- 11.9 K) #### 2. Insight by City - **Revenue** - Highest Revenue (Mumbai -- 660.6 M), Lowest Revenue (Delhi -- 290.9 M) - **RevPAR** - Highest RevPAR (Mumbai -- 8.89 K), Lowest RevPAR (Bangalore -- 7.3 K) - **ADR** - Highest ADR (Mumbai -- 15.3 K), Lowest ADR (Hyderabad -- 9.32 K) ### Key Measures Created 1. **Revenue** - Revenue = SUM(fact_bookings[revenue_realized]) 2. **Total Bookings** - Total Bookings = COUNT(fact_bookings[booking_id]) 3. **Total Capacity** - Total Capacity = SUM(fact_aggregated_bookings[capacity]) 4. **Total Succesful Bookings** - Total Succesful Bookings = SUM(fact_aggregated_bookings[successful_bookings]) 5. **Occupancy %** - Occupancy % = DIVIDE([Total Succesful Bookings],[Total Capacity],0) 6. **Average Rating** - Average Rating = AVERAGE(fact_bookings[ratings_given]) 7. **No of days**. - No of days = DATEDIFF(MIN(dim_date[date]),MAX(dim_date[date]),DAY) +1 8. **Total cancelled bookings** - Total cancelled bookings = CALCULATE([Total Bookings],fact_bookings[booking_status]="Cancelled") 9. **Cancellation %** - Cancellation % = DIVIDE([Total cancelled bookings],[Total Bookings]) 10. **Total Checked Out** - Total Checked Out = CALCULATE([Total Bookings],fact_bookings[booking_status]="Checked Out") 11. **Total no show bookings** - Total no show bookings = CALCULATE([Total Bookings],fact_bookings[booking_status]="No Show") 12. **No Show rate %** - No Show rate % = DIVIDE([Total no show bookings],[Total Bookings]) 13. **Booking % by Platform** - Booking % by Platform = DIVIDE([Total Bookings], CALCULATE([Total Bookings], ALL(fact_bookings[booking_platform])))*100 14. **Booking % by Room class** - Booking % by Room class = DIVIDE([Total Bookings], CALCULATE([Total Bookings], ALL(dim_rooms[room_class]) ))*100 15. **ADR** - ADR = DIVIDE( [Revenue], [Total Bookings],0) 16.**Realisation %** - Realisation % = 1- ([Cancellation %]+[No Show rate %]) 17. **RevPAR** - RevPAR = DIVIDE([Revenue],[Total Capacity]) 18. **DBRN** - DBRN = DIVIDE([Total Bookings], [No of days]) 19. **DSRN** - DSRN = DIVIDE([Total Capacity], [No of days]) 20. **DURN** - DURN = DIVIDE([Total Checked Out],[No of days]) 21. **Revenue WoW change %** - Revenue WoW change % = Var selv = IF(HASONEFILTER(dim_date[wn]),SELECTEDVALUE(dim_date[wn]),MAX(dim_date[wn])) var revcw = CALCULATE([Revenue],dim_date[wn]= selv) var revpw = CALCULATE([Revenue],FILTER(ALL(dim_date),dim_date[wn]= selv-1)) return DIVIDE(revcw,revpw,0)-1 22. **Occupancy WoW change %** - Occupancy WoW change % = Var selv = IF(HASONEFILTER(dim_date[wn]),SELECTEDVALUE(dim_date[wn]),MAX(dim_date[wn])) var revcw = CALCULATE([Occupancy %],dim_date[wn]= selv) var revpw = CALCULATE([Occupancy %],FILTER(ALL(dim_date),dim_date[wn]= selv-1)) return DIVIDE(revcw,revpw,0)-1 23. **ADR WoW change %** - ADR WoW change % = Var selv = IF(HASONEFILTER(dim_date[wn]),SELECTEDVALUE(dim_date[wn]),MAX(dim_date[wn])) var revcw = CALCULATE([ADR],dim_date[wn]= selv) var revpw = CALCULATE([ADR],FILTER(ALL(dim_date),dim_date[wn]= selv-1)) return DIVIDE(revcw,revpw,0)-1 24. **Revpar WoW change %** - Revpar WoW change % = Var selv = IF(HASONEFILTER(dim_date[wn]),SELECTEDVALUE(dim_date[wn]),MAX(dim_date[wn])) var revcw = CALCULATE([RevPAR],dim_date[wn]= selv) var revpw = CALCULATE([RevPAR],FILTER(ALL(dim_date),dim_date[wn]= selv-1)) return DIVIDE(revcw,revpw,0)-1 25. **Realisation WoW change %** - Realisation WoW change % = Var selv = IF(HASONEFILTER(dim_date[wn]),SELECTEDVALUE(dim_date[wn]),MAX(dim_date[wn])) var revcw = CALCULATE([Realisation %],dim_date[wn]= selv) var revpw = CALCULATE([Realisation %],FILTER(ALL(dim_date),dim_date[wn]= selv-1)) return DIVIDE(revcw,revpw,0)-1 26. **DSRN WoW change %** - DSRN WoW change % = Var selv = IF(HASONEFILTER(dim_date[wn]),SELECTEDVALUE(dim_date[wn]),MAX(dim_date[wn])) var revcw = CALCULATE([DSRN],dim_date[wn]= selv) var revpw = CALCULATE([DSRN],FILTER(ALL(dim_date),dim_date[wn]= selv-1)) return DIVIDE(revcw,revpw,0)-1

近期下载者

相关文件


收藏者