Back to Portfolio
Data & Analysis8 min read
  • Microsoft Excel
  • Regression Analysis
  • Econometrics
  • Residual Diagnostics

Analyzing the Airbnb Market: A Multivariate Pricing Strategy for Boston and DC Short-Term Rentals

What drives Airbnb prices in Boston and DC? A regression model built in Excel on 1,382 listings sets out to find out.

Analyzing the Airbnb Market: A Multivariate Pricing Strategy for Boston and DC Short-Term Rentals cover image

Executive Summary

Entire homes list for $73+ more per night than shared rooms, and Boston listings run about $18 above Washington, D.C. This Excel regression of 1,382 Airbnb listings shows how room type, city and guest capacity shape price.

Cleaned Sample

1,242

From 1,382 raw listings

Explained Variance

39.54%

Adjusted R² (F = 116.93, p < 0.001)

Entire Home Premium

+$73.17

Base premium vs. shared room (+$6.52 per guest)

Boston Premium

+$17.82

Per night vs. Washington, D.C.

Many hosts set prices by gut feel or a flat rule, which can backfire: price a big listing too high and it may sit empty, too low and money is left on the table. Built for an MBA course, this project starts with a one-variable regression and improves it step by step into a model that puts a dollar value on what drives price.

This project investigates three core questions:

  1. Room Type & City: How much more do entire homes and private rooms list for than shared rooms, and how much does Boston add over D.C.?
  2. Guest Capacity: How does price change as capacity grows, and does it change differently for entire homes?
  3. Model Fit: How much of the variation in price can a simple Excel regression explain, and what does it leave out?

Skills Demonstrated

  • Data cleaning: Handled missing values, treated outliers with the IQR rule and encoded categorical variables.
  • Statistical modeling: Built multiple regression models with quadratic and interaction terms and tested significance.
  • Model diagnostics: Used residual plots and a correlation matrix to spot problems and improve each version.
  • Business communication: Turned coefficients into plain-English pricing advice and a presentation deck.

Presentation Deck

A slide summary of the project, from the problem to the recommendations.


Step 1: Preparing the Data

  1. Cleaned the basics.
    • Dropped ID columns that don’t help predict price (room_id, survey_id, host_id) and set nightly price (USD) as the target.
    • Found 2 missing bedrooms values and filled them with 1. Both were entire homes for 2 guests, so this was a safe call.
  2. Dealt with outliers.
    • Prices were heavily skewed by luxury listings (skewness of 3.77, mean of $194.25 vs. median of $129.50).
    • I used the IQR rule (upper cutoff of $372.50) and removed 140 listings, about 10% of the data.
    • The remaining 1,242 listings had a much more balanced distribution (skewness of 0.95), which suits regression.
  3. Encoded categories.
    • Turned room type and city into 0/1 variables as is_entireHome, is_privateRoom, is_boston.
    • The baseline for comparison is a shared room in Washington, D.C.
  4. Checked for overlapping variables.
    • bedrooms and accommodates were strongly correlated (r = 0.69), so they would blur each other’s effect.
    • I kept accommodates because it relates more closely to price (r = 0.49 vs. 0.40) and dropped bedrooms.
Price Metric Raw Data (N = 1,382) Cleaned Data (N = 1,242) What Changed
Mean price $194.25 $136.44 Luxury outliers no longer pull the average up
Median price $129.50 $120.00 The typical price barely moved
Standard deviation $216.05 $75.79 64.9% less volatility
Skewness 3.770 0.947 Much closer to a normal shape

Step 2: Building the Model in Three Rounds

Round 1: Simple Linear Regression

  • Predicted price using only guest capacity (accommodates).
  • Result: about +$19.96 per extra guest on top of a $73.94 starting point. It was statistically significant but explained only 24.18% of price variation.
  • What the residuals showed: the residual plot formed vertical stripes instead of random scatter. That told me important categories, like room type, were missing from the model.

Round 2: Multiple Linear Regression

  • Added room type, city, review count (reviews) and overall_satisfaction.
  • overall_satisfaction was not statistically significant (p = 0.78), so I removed it.
  • Result: Adjusted R² rose to 39.10% and the stripes disappeared. The model still over-predicted prices for larger groups.

Simple vs Multiple Regression

Round 3: Non-linear model (final)

  • Added two terms to fix the large-group problem:
    • accommodates_squared, so the model can show price gains slowing as groups get bigger.
    • accommodates × is_entireHome, because an extra guest is worth more in an entire home than in a room.
  • All seven predictors are significant (p < 0.05). Adjusted R² reached 39.54% and the standard error fell to $58.93.
Model R² Adjusted R² Std. Error Key Takeaway
1. Simple linear 24.18% 24.12% $66.02 Striped residuals: missing variables
2a. Multiple linear (full) 39.35% 39.05% $59.17 overall_satisfaction not significant
2b. Multiple linear (pruned) 39.35% 39.10% $59.15 Stripes gone, but large groups over-predicted
4. Non-linear (final) 39.88% 39.54% $58.93 Captures slowing gains and the entire-home effect

The Final Model

Predicted Price = 26.91 + 73.17(EntireHome) + 30.94(PrivateRoom) + 17.82(Boston)
                  - 0.17(Reviews) + 13.56(Accommodates) - 0.59(Accommodates²)
                  + 6.52(Accommodates × EntireHome)

The baseline is a shared room in Washington, D.C.

Variable Coefficient Std. Error t-Stat P-Value 95% Confidence Interval
Intercept (shared room, D.C.) 26.91 12.61 2.13 0.0331 [$2.16, $51.66]
is_entireHome +73.17 13.37 5.47 < 0.0001 [$46.94, $99.40]
is_privateRoom +30.94 11.72 2.64 0.0084 [$7.93, $53.94]
is_boston +17.82 3.44 5.18 < 0.0001 [$11.08, $24.57]
reviews -0.17 0.04 -3.85 0.0001 [-$0.26, -$0.08]
accommodates +13.56 3.36 4.04 < 0.0001 [$6.97, $20.15]
accommodates_squared -0.59 0.24 -2.49 0.0128 [-$1.05, -$0.13]
interaction_accom_entireHome +6.52 2.70 2.41 0.0160 [$1.22, $11.82]

What the numbers mean

  • Room type matters most. A private room adds $30.94 per night over a shared room. An entire home adds $73.17, which is $42.23 more than a private room, before counting guest capacity.
  • Boston costs more. With room type, capacity and reviews held equal, Boston listings average $17.82 more per night than D.C.
  • More reviews, slightly lower price. Each extra review goes with a $0.17 lower price, so 100 reviews is about $17 lower. This likely reflects budget listings that book often, not reviews hurting a listing’s value.
  • Extra guests add less each time. Guest capacity has a curved effect, not a straight line.
    • For private and shared rooms, the gain per guest shrinks steadily and levels off at around 11 to 12 guests.
    • For entire homes, the interaction term lifts the starting gain to +$20.08 per guest (13.56 + 6.52).
    • Example: a Boston entire home with 24 reviews is predicted at $133.31 for 1 guest, $184.70 for 4 guests and $236.70 for 8 guests.

Diminishing Marginal Returns of Guest Capacity


Business Recommendations

  1. Look closely at entire homes for 4 to 8 guests. An entire home lists for about $73 more per night than a shared room at baseline, and the gap grows by about $6.50 for each extra guest (roughly $86 at 2 guests).
  2. Build the Boston premium into pricing. Anyone comparing the two cities should expect about $17.82 more per night in Boston and factor that in when setting rates or evaluating a property.
  3. Use tiered pricing instead of a flat extra-guest fee. The model shows each added guest is worth a bit less than the one before, by roughly $1.18. A flat fee likely overcharges larger groups, so a fee that tapers down as the group grows is a better fit.

Bottom Line

Room type and city explain most of what hosts can predict about price. Entire homes carry a premium that widens with group size and Boston runs about $18 above D.C. The model is a useful pricing benchmark, but it can’t show profit or demand, which the data doesn’t include.


Limitations

  • It predicts price, not profit. The data has no occupancy, booking, or cost information. The model shows where prices run higher, not which listings earn the most.
  • Important details are missing. Amenities like parking, renovation quality and distance to transit or landmarks are not in the data. They likely account for much of the 60% of variation the model does not explain.
  • City-level view only. The model treats every Boston neighborhood the same and every D.C. neighborhood the same. A next version could add neighborhood or zip-code effects and model ln(Price) to better handle expensive listings.
  • One snapshot in time. The data can’t show seasonality, local events, or weekday vs. weekend demand.

Data Source & Attribution

Airbnb listing data for Boston and Washington, D.C., based on the open-source Airbnb Data Collection by Tom Slee, which gathers public listings from the Airbnb website. I received the 1,382-listing sample (534 in Boston, 848 in D.C.) through my MBA course, MIS 657: Business Analytics. Prices are nightly rates in US dollars. This project was done for academic purposes only.

Technologies & Tools
  • Microsoft Excel
  • Regression Analysis
  • Econometrics
  • Residual Diagnostics

Hiring for a Data or Business Analyst role?

Email

LinkedIn

WhatsApp

Resume

Credentials & PDF