Airbnb Pricing & Occupancy Dashboard

An end-to-end Power BI project on a cleaned Airbnb dataset: listing trends, neighbourhood pricing, host performance metrics, and occupancy patterns by region and room type.

Year 2024
Role Data Analyst
Type BI Dashboard
Timeline 3 weeks
Dataset Inside Airbnb (public)
Records 48,000+ listings
Status Shipped
Tools Python, Power BI, DAX, Pandas

The Problem

The raw Airbnb dataset is rich but messy: mixed date formats, missing prices, inconsistent neighbourhood labels, and reviews that span years without clean activity signals. The goal was to turn that into an interactive dashboard that answered three questions a host or market analyst actually needs:

  • What does pricing look like across neighbourhoods and room types?
  • Which hosts are performing well, and what patterns do they share?
  • How does occupancy (estimated via review frequency) correlate with price?

Data Preparation

I ran the cleaning pipeline in Python (Pandas) before loading into Power BI. Key steps:

  • Removed listings with no reviews in the last 12 months as "inactive."
  • Imputed missing prices using the neighbourhood and room-type median.
  • Standardised neighbourhood group labels (four boroughs, city-wide rollup).
  • Created a derived "occupancy score" from reviews-per-month and availability_365.
  • Flagged "super-hosts" using listing count and review volume thresholds.

Dashboard Structure

The dashboard has four linked pages:

  • Overview: market-level KPIs, average price, median occupancy, total active listings.
  • Pricing Map: heat-map by neighbourhood with room-type filter. Drill through to listing detail.
  • Host Analysis: ranked list of top hosts by estimated revenue, review score, and listing count.
  • Occupancy Trends: occupancy score over time by room type and borough, with a year-over-year comparison.

Stack

Power BI Desktop
DAX
Power Query
Python (Pandas)
Inside Airbnb dataset

Key Findings

Entire-home listings in Manhattan command a 2.3x price premium over private rooms, but private rooms in Brooklyn show a higher estimated occupancy rate (72% vs 61% for entire homes), suggesting hosts accept lower price-per-night for higher utilisation. Super-host accounts (top 8% by volume) generate a disproportionate share of estimated revenue, averaging 4.1x the bookings of single-listing hosts.

Outcome

The dashboard was used as a capstone BI project demonstrating end-to-end data analysis: Python cleaning, DAX modelling, and Power BI storytelling. It demonstrates the full pipeline from raw public data to an interactive, decision-ready visual layer.

Results

By the Numbers.

48k+
Listings cleaned and modelled
4
Linked dashboard pages with cross-filtering
2.3x
Price premium for entire-home vs private room in Manhattan
72%
Estimated peak occupancy for Brooklyn private rooms