Inspiration
Vancouver is one of the hardest housing markets in Canada, and short-term rentals sit right in the middle of that debate. The DataJam 2026 case asked a real-world question: if a fund had $10M to invest in BC short-term rentals, where should it go and what should it expect? We wanted to see whether data could give a clear, defensible answer.
What it does
We built an investment recommendation for Data-Driven Developments (DDD), a fictional real estate fund:
- Where: 70% in the City of Vancouver, 30% in the City of North Vancouver
- What: 9 properties: Downtown condos, West Side condos, a Kitsilano townhouse, plus condos and a townhouse in North Vancouver
- How much: $8.25M on purchases, with a $1.75M reserve for closing costs, licensing, furnishing and operations
- Expected 2027 performance: about $412K gross revenue and $169K net operating income, a net yield of about 1.7% (range 0.8%–2.9%)
How we built it
- Data: Inside Airbnb's Vancouver files (
listings.csv,calendar.csv,reviews.csv), CMHC rental market data, and AirROI data for North Vancouver- First exploration: we used R with the tidyverse in RStudio to explore columns like review scores
- Cleaning: we removed listings with 30+ night minimum stays (monthly rentals, not short-term rentals) and classified each listing's licence status by parsing the city and provincial registration numbers in the licence text
- Compliance analysis: we compared licensed and unlicensed listings on price, occupancy and revenue to test whether unlicensed listings distort the results
- Revenue model: for each property type, we found similar active, licensed listings and used their median yearly revenue as the expected case, with the 25th and 75th percentiles as the low and high cases
- Tools: R (tidyverse, dplyr), RStudio, GitHub for version control, and Google Slides for the pitch
Challenges we ran into
- Messy raw data: prices were stored as text like "$1,250.00", and some rows were blank or incomplete, so even summing prices took cleaning
- Comparing markets: North Vancouver isn't in the Inside Airbnb data, so we relied on outside data that's estimated differently
- Small samples: some segments, like Kitsilano townhouses, had very few comparable listings, so we used broader proxies
Accomplishments that we're proud of
- Finding that 1,900+ listings were really monthly rentals, the most important cleaning step in our analysis
- Giving a range for 2027 performance instead of a single number, so the uncertainty is visible
- Turning our analysis into reusable scripts that regenerate every table and chart when an assumption changes
What we learned
- Data cleaning decisions can matter more than the model itself
- How to parse messy text fields with regular expressions
- Regulation shapes the whole market: licensing, provincial registration and possible municipal opt-outs all affect where an investor can operate
- Using the median instead of the average protects estimates from a few extreme luxury listings
- Being honest about uncertainty makes a recommendation stronger, not weaker
What's next for H&M team
- Use
calendar.csvto model seasonality and monthly cash flow through 2027 - Use
reviews.csvto test whether guest ratings predict higher revenue - Replace assumed operating costs with sourced figures (licence fees, property tax, strata fees)
- Test moving budget from lower-earning West Side condos to higher-earning Downtown units