The research story · MA thesis, University of Guelph, 2026

Does Airbnb raise rents in Toronto, and are the city's rules working?

Answering one question took eight different jobs. This page walks through each of them, in plain language, with the real numbers.

Toronto · data from Sept 2024 Methodological Excellence Award ~8 minute read 1-page brief (PDF) 2026 follow-up: the loophole today Full thesis on request
01 Research design

Ask the right question

Cities around the world have found that Airbnb can push rents up. But when I looked for evidence in Canada, there was very little, and almost nothing measuring what happened after Toronto's short-term rental by-law took effect. Meanwhile, Toronto had more than 14,000 entire-home Airbnb listings. A big phenomenon, barely measured.

Question 1 · Impact

Does Airbnb raise long-term rents in Toronto?

And if it does, by how much, and where does it hit hardest?

Question 2 · Policy

Is the city's by-law actually working?

Toronto's rules only cover stays under 28 days. Do listings inside and outside that line affect rents differently?

Literature review Gap analysis Research questions that policy can act on
02 Data engineering

Build the dataset that didn't exist

There was no ready-made dataset linking Toronto rents to Airbnb activity, so I built one. I wrote Python programs to pull data from public APIs, combined scraped listings with three census years, cleaned the gaps with documented rules, and merged everything into a single table where every rental listing carries 20+ variables.

From 10 raw sources to one analysis-ready dataset

Every arrow is Python, spreadsheet, or GIS work: collecting, cleaning, geocoding, joining, validating.

Collect

Rental listings (property.ca) Inside Airbnb Census 2021 Census 2016 Google Places API Walk Score API OpenStreetMap TTC schedules GO Transit schedules UP Express schedules

Integrate

One clean dataset 6,165 rentals × 20+ engineered variables, each mapped to its neighbourhood

Deliver

Statistical modelsWhat actually drives rents
Maps & chartsWhere the impact lands
Policy evaluationIs the by-law working?
10data sources
14,120Airbnb listings processed
6,165rental listings analyzed
3transit systems woven in

Some variables had to be invented, not downloaded. For every single rental I computed a walkability score, a transit score, a custom "tourist appeal" score built from Google ratings of nearby attractions, and the real door-to-door public transit time to the airport, combining street maps with actual TTC, GO, and UP Express timetables. That last one becomes the hero of chapter 4.

PythonAPIs & web dataData cleaningGeocodingExcel
03 Spatial analysis

Put every listing on the map

Rent isn't just about the unit; it's about the neighbourhood. Using QGIS, I matched more than 14,000 Airbnb listings and 6,165 rentals to their census tracts (Toronto's standard neighbourhood unit). Now every rental "knows" its local context: income, employment, education, population change, and how dense Airbnb is around it.

How a rental learns about its neighbourhood

Illustrative diagram of the spatial join. Darker tracts have more Airbnb listings per 1,000 homes.

This rental is in a busy tract, so it inherits that tract's data Airbnb listing More Airbnbs per 1,000 homes Long-term rental
Conceptual illustration. In the real analysis, "Airbnb density" = entire-home Airbnb listings per 1,000 private dwellings in each census tract, built from Inside Airbnb and Census 2021 data.

The spatial work also powered the custom accessibility measures: I used street networks and transit timetables to compute how long each rental's real transit trip to the airport takes (door to door, with transfers) for thousands of addresses at once. In a separate project, the same skill set surfaced 20 years of gentrification patterns across Toronto.

QGISArcGIS geocodingSpatial joinsNetwork routing (r5py)Census geography
04 Statistical modeling

Separate the real effect from coincidence

Here's the trap: neighbourhoods that attract Airbnbs (central, walkable, lively) are the same neighbourhoods where rent is high anyway. A naive comparison would blame Airbnb for rent that downtown living explains. The model has to untangle that.

Controls explain two thirds of rent before Airbnb gets any credit

share of rent variation explained (adjusted R²) as each control layer joins the model – 0 to 100% scale – 6,165 Toronto rental listings, Sept 2024

0% 25% 50% 75% 100% Airbnb density alone no controls yet 0.2% + home basics bedrooms, bathrooms, time listed 63.0% + location and access walkability, transit, downtown distance 65.5% + neighbourhood profile income, age, education, population change 67.2% the twist: in this final model, Airbnb density itself is not significant – step two, below, shows that null is biased

MA thesis, University of Guelph (2026) · adjusted R² across the stepwise specifications · same numbers as the prose

Controls were step one, and they end on a twist: with all 19 in place, the ordinary regression finds no significant Airbnb effect at all. Step two is the clever part. A formal check (the Durbin–Wu–Hausman test, below) shows that naive null is biased, because something invisible still drives both Airbnb activity and rents. So I borrowed a technique from economics (an instrumental-variable design) and built the instrument myself: public transit time to the airport.

The logic: a quick train to the airport matters a lot to tourists, so Airbnbs cluster where airport access is good. But long-term renters rarely pay extra rent just to reach the airport faster, especially once the model already accounts for general transit quality, walkability, and distance to downtown. That one-sidedness lets the model isolate the part of Airbnb activity driven by tourism, and measure what that does to rents. And the data agree with the logic: when the location variables entered the rent model, every one of them priced in significantly except transit time to the airport.

One-way lever: why airport transit time works

Transit time to the airport Where Airbnbs cluster Long-term rents tourists care renters don't pay extra for it (after controls) So any rent change the airport-time lever produces must travel through Airbnb.

And then I checked the machinery: formal tests confirmed the correction was needed (a Durbin–Wu–Hausman test showed the naive model really was biased), that the lever is statistically strong (first-stage F-statistic above the conventional threshold of 10), and that the result survives a stricter confidence test (an Anderson–Rubin interval that is wider, yet its floor actually rises, from about +0.07% to +0.09% per listing, so even the most cautious reading stays above zero). The estimate: each additional entire-home Airbnb per 1,000 homes is linked to a 0.42% rent increase, statistically significant across all 6,165 rental listings (p < 0.05).

For technical readers, the full specification. Both stages run at the listing level. Stage one predicts each tract's Airbnb density from the airport instrument; stage two prices rents using the predicted density in place of the observed one:

At(i) = π0 + π1Airporti + π′Xi + νi
log Ri = β0 + βIVÂt(i) + γ′Xi + εi

where Ri is the asking rent of listing i; At(i) is entire-home Airbnb listings per 1,000 private dwellings in the listing's census tract; Airporti is the door-to-door public transit time to the airport; Xi collects the 19 controls (home basics, location and access, neighbourhood profile); and Ât(i) is the fitted density from stage one. The headline estimate is βIV = 0.0042: each additional listing per 1,000 dwellings is linked to a 0.42% higher rent. Re-estimating the same design with density split by regulatory status gives 1.07% per listing outside the by-law and 1.55% for the unlicensed subset (chapter 6).

StataRegression modelingInstrumental variables (2SLS)Diagnostics (Durbin–Wu–Hausman, first-stage F)Robustness checks
05 Insight & impact

What the numbers say

0.42% per listing sounds tiny, until you stack listings the way Toronto's neighbourhoods actually do. Averaged across the city (weighting neighbourhoods by how many renters live there), Airbnb activity is associated with rents about 5.62% higher than they would otherwise be. In the single densest tract, the model puts the premium near 50%.

In the densest tract, the estimated premium reaches about half the rent

estimated rent premium by tract Airbnb density – the curve compounds the thesis's 0.42% per-listing estimate – markers at the citywide average, 50 per 1,000, and the densest tract's level

0% 10% 20% 30% 40% 50% 0 25 50 75 100 entire-home Airbnb listings per 1,000 dwellings in the tract +5.6% citywide average +23% ≈ +50% the densest tract sits about here

derived from the thesis 2SLS estimate (0.42% per listing per 1,000 dwellings, compounding) · the +5.6% citywide average and ≈50% densest-tract anchors are the thesis's own figures

What does 5.62% mean for a real tenant?

Drag the slider to your rent. This applies the citywide average estimate. It's an illustration, not a quote for any specific unit.

$133of it each month is the estimated Airbnb premium
$1,596per year, roughly a month's groceries… or more

Math: a rent that is 5.62% higher than its no-Airbnb baseline means about 5.3 cents of every rent dollar is premium (5.62 ÷ 105.62). Citywide average applied for illustration.

One more wrinkle: the average hides a pattern. A citywide estimate quietly assumes Airbnb presses on every neighbourhood with the same force. The thesis put that assumption to a direct test, letting the per-listing effect vary with how owner-occupied each census tract is. The test found real variation: the effect strengthens as the owner-occupancy ratio rises, and the pattern repeats whether the ratio comes from the 2011, 2016, or 2021 census. In the headline 2016 model, the link is statistically clear in tracts covering roughly three quarters of the city.

The rent effect strengthens where more homes are owner-occupied

owner-occupancy ranges where the per-listing effect is statistically clear – headline 2016 model · robustness vintages – conditional interaction model, chapter 4's instrument set aside

2011 ratio robustness 54% 2016 ratio headline model ≈ 46% 2021 ratio robustness ≈ 48% 0% 25% 50% 75% 100% citywide mean 45.7% owner-occupancy ratio (%) below each threshold the estimate mostly loses clarity; the 2016 and 2021 models regain it only at very low ratios (thesis Fig. 3)

MA thesis, Table 3 and Figure 3 (marginal-effect graphs, Brambor et al. 2006 strategy) · interaction positive and significant in all three census vintages

That direction is a genuine surprise. A prominent U.S. study (Barron and colleagues, 2021) predicts the opposite, reasoning that low-ownership areas hold more convertible rental stock and should feel Airbnb hardest. The thesis offers a Toronto-sized explanation: market thickness. In high-ownership tracts the rental market is thin, with few rental units and few nearby substitutes, so when Airbnb tightens supply, renters have nowhere to step sideways and the pressure shows up in rent. In low-ownership tracts the market is thick enough to absorb more of the blow. Conversion of homes into Airbnbs still happens there; its rent effect is diluted by all the alternatives around it.

For technical readers: the moderation model interacts Airbnb density with the tract's owner-occupancy ratio.

log Ri = β0 + β1At(i) + β2Ownt(i) + β3(At(i) × Ownt(i)) + γ′Xi + εi

where Ownt(i) is the owner-occupancy ratio of the listing's census tract (2016 preferred; 2011 and 2021 as robustness checks) and everything else is as in the chapter 4 specification. The interaction β3 is positive and statistically significant in all three vintages. At the citywide mean ratio (45.65%), the conditional per-listing effect is 0.041%; in the 2016 model the effect is statistically significant except when the ratio sits around 36–46%. This is the conditional model, with chapter 4's instrument set aside, so its levels run muted; the finding is the slope, the way the effect grows with ownership.

Effect-size translationWeighted averagesInteraction (moderation) analysisData storytelling
06 Policy evaluation

Find the loophole in the by-law

Toronto's short-term rental by-law only covers stays of under 28 days. Set the minimum stay to 28 days or more, and a listing slips outside the rules: no licence, no accommodation tax. I split the data along that line and measured each side separately.

Inside the rules

Minimum stay under 28 days · governed by By-law 503-2024

  • Must register and hold a licence
  • Pays the Municipal Accommodation Tax
  • Pays GST/HST

Outside the rules

Minimum stay 28+ days · falls under general tenancy law instead

  • No licence required
  • Exempt from the accommodation tax
  • Exempt from GST/HST

Two thirds of the market stands outside the by-law, and most of that is unlicensed

where Toronto's 14,120 entire-home Airbnb listings stood in September 2024 – the second bar zooms into the outside segment

All 14,120 entire-home listings Sept 2024 66.2% outside the by-law (28+ day minimum stay) 33.8% inside …of those outside listings 76.3% unlicensed 23.7% licensed anyway outside the by-law = minimum stay of 28+ days: no licence requirement, no accommodation tax

MA thesis · Inside Airbnb snapshot, Sept 2024, with City of Toronto licence status · shares of entire-home listings

The further a listing sits outside the rules, the harder the hit on rents

estimated rent increase per additional entire-home listing per 1,000 dwellings, by listing type – same 2SLS design, with density split by regulatory status – notches mark each estimate's strictest-test floor

0 +0.5% +1% +1.5% All entire-home listings the citywide average listing +0.42% Outside the by-law 28+ day minimum stay +1.07% ≈ 2.5× the average Outside and unlicensed no licence held either +1.55% ≈ 3.7× estimated rent increase per additional listing per 1,000 dwellings notch = Anderson–Rubin floor – the strictest weak-instrument test keeps each effect above it

MA thesis · per-listing 2SLS estimates with Anderson-Rubin lower bounds (+0.09% / +0.24% / +0.22%) · outside ≈ 2.5× the average-listing effect; unlicensed ≈ 3.7×

Two details for careful readers. The gaps in that chart were tested formally rather than eyeballed: per additional listing, the outside class carries a 0.58-point larger rent effect than the regulated class, and, within the outside class, unlicensed listings carry 0.78 points more than licensed ones, with both differences statistically significant. And when each class gets the same city-wide weighting that produced the 5.62% average, the association grows: rents about 10.35% higher for the outside class's density, 11.90% for its unlicensed core, since the stronger per-listing effect more than offsets the smaller listing count.

The verdict: the by-law works, but only inside its own fence. Rather than returning homes to the long-term market, most hosts stepped just over the 28-day line, kept charging nightly-style rates, and kept the pressure on rents. For policymakers, the message is concrete: the decisive question is what to do about the two-thirds of the market standing outside the fence.

Where this stands in 2026: a follow-up study on this site revisits the loophole with fresh data. In the June 2026 snapshot, 58.7% of entire homes sit past the 28-day line, priced like housing at asking rents far above CMHC benchmarks. Read the follow-up →

Policy analysisRegulation & tax researchComparative effect testingActionable recommendations
07 Synthesis & frameworks

Zoom out: why this keeps happening

The numbers are local, but the forces aren't. Global investment money and global platforms now reach into every neighbourhood's housing market, pulling very different cities toward the same outcome: less affordable rentals. My thesis proposes an updated framework, the "Converging Housing Ecosystem", to help researchers and policymakers see local housing decisions inside that global context.

The housing market, before and after platforms

Then: a local balance Social housing vs. for-profit housing, shaped mostly by national policy
Now: a global pull Finance and platforms reach into local markets everywhere at once
Global forces: investment capital + rental platforms
Social housing squeezed further
Long-term rentals now compete with…
Short-term rentals a new rival inside the same housing stock
Simplified from the thesis framework. The practical takeaway: a city can't regulate its rental market as if it were sealed off: platforms connect it to global demand.
Framework buildingHousing economicsStrategic thinking
08 Communication

Make 135 pages worth 25 minutes

Research only matters if people can use it. The full analysis lives in a 135-page thesis; a 25-minute presentation to my examining committee told the same story; and the whole project compresses into one sentence anyone can repeat:

"Airbnb is linked to rents about 5.6% higher across Toronto, and the listings that sidestep the city's by-law are linked to over twice the impact of those that follow it."

That habit (original data work, careful methods, plain-language delivery) is what the SOAN ENGAGE Conference recognized with its Methodological Excellence Award (April 2026), citing "original dataset creation, complex data analysis methods, and clear communication of findings."

It's the same approach I bring to briefing notes, dashboards, and stakeholder presentations in my current research roles, and the approach I'd bring to your team.

Plain-language writingPresentation designData visualizationAward-recognized delivery
The end, almost

Want this kind of analysis on your team?

I'm open to planning, housing, and data analyst roles. The topic here was Airbnb, but the pipeline transfers to any policy question: vacancy taxes, zoning changes, transit investment. I'm always happy to talk methods in as much (or as little) detail as you like.