% Author: Simon-Pierre Boucher — contact@spboucher.ai % ============================================================================= % appendix_data.tex — Additional data details % ============================================================================= \section{Data Appendix}\label{app:data} \subsection{Variable Definitions} Table~\ref{tab:var_definitions} provides a comprehensive list of variables used in the analysis, including their definitions, sources, and units. \begin{table}[htbp] \centering \caption{Variable Definitions} \label{tab:var_definitions} \small \begin{tabularx}{\textwidth}{l l X l} \toprule \textbf{Variable} & \textbf{Source} & \textbf{Definition} & \textbf{Unit} \\ \midrule \multicolumn{4}{l}{\textit{Rental listing variables}} \\ \addlinespace \texttt{rent} & Realtor.ca & Monthly asking rent & CAD \\ \texttt{log\_rent} & Constructed & Natural log of monthly rent & --- \\ \texttt{bedrooms} & Realtor.ca & Number of bedrooms & Count \\ \texttt{bathrooms} & Realtor.ca & Number of bathrooms (total) & Count \\ \texttt{building\_type} & Realtor.ca & Building type (Apartment, House, Row/Townhouse) & Category \\ \texttt{size\_interior} & Realtor.ca & Interior floor area & sq ft \\ \texttt{lat}, \texttt{lon} & Realtor.ca & Latitude and longitude of the listing & Degrees \\ \texttt{city} & Realtor.ca & City / municipality name & Category \\ \addlinespace \midrule \multicolumn{4}{l}{\textit{Airbnb listing variables}} \\ \addlinespace \texttt{price\_numeric} & Airbnb & Nightly asking price & CAD \\ \texttt{log\_price} & Constructed & Natural log of nightly price & --- \\ \texttt{property\_type} & Airbnb & Property type (Rental unit, House, Cabin/Chalet, Condo, Apartment) & Category \\ \texttt{rating} & Airbnb & Star rating (0--5 scale) & Numeric \\ \texttt{num\_reviews} & Airbnb & Number of guest reviews & Count \\ \texttt{is\_superhost} & Airbnb & Superhost status indicator & Binary \\ \texttt{is\_guest\_favorite} & Airbnb & Guest favourite designation & Binary \\ \texttt{pets\_allowed} & Airbnb & Whether pets are allowed & Binary \\ \texttt{is\_entire\_home} & Constructed & Indicator for entire-home property types & Binary \\ \texttt{lat}, \texttt{lon} & Airbnb & Latitude and longitude of the listing & Degrees \\ \texttt{city} & Airbnb & City name (standardised) & Category \\ \addlinespace \midrule \multicolumn{4}{l}{\textit{Airbnb exposure variables (constructed via spatial buffer merge)}} \\ \addlinespace \texttt{airbnb\_count\_$r$} & Constructed & Number of Airbnb listings within radius $r$ & Count \\ \texttt{airbnb\_density\_$r$} & Constructed & Airbnb count / buffer area ($\pi r^2$) & Per km$^2$ \\ \texttt{mean\_airbnb\_price\_$r$} & Constructed & Mean Airbnb nightly price within radius $r$ & CAD \\ \texttt{share\_entire\_home\_$r$} & Constructed & Share of entire-home Airbnb listings within $r$ & Proportion \\ \texttt{mean\_rating\_$r$} & Constructed & Mean rating of Airbnb listings within $r$ & Numeric \\ \texttt{superhost\_share\_$r$} & Constructed & Share of superhost listings within $r$ & Proportion \\ \addlinespace \midrule \multicolumn{4}{l}{\textit{City-level variables}} \\ \addlinespace \texttt{airbnb\_count\_city} & Constructed & Total Airbnb listings in the city & Count \\ \texttt{mean\_airbnb\_price\_city} & Constructed & City-level mean Airbnb nightly price & CAD \\ \texttt{share\_entire\_home\_city} & Constructed & City-level share of entire-home listings & Proportion \\ \texttt{mean\_rent\_city} & Constructed & City-level mean monthly rent & CAD \\ \bottomrule \end{tabularx} \begin{flushleft} \footnotesize\textit{Notes:} Buffer radii $r \in \{250\text{m}, 500\text{m}, 1\text{km}, 2\text{km}\}$. All monetary values are in Canadian dollars (CAD). ``Constructed'' indicates variables derived from the raw data during the cleaning and merge stages. \end{flushleft} \end{table} \subsection{City Name Standardisation} The Airbnb dataset contains city names with inconsistent formatting, including accented and unaccented variants and abbreviations. Table~\ref{tab:city_mapping} lists the standardisation mapping applied during data cleaning. \begin{table}[htbp] \centering \caption{City Name Standardisation Mapping} \label{tab:city_mapping} \small \begin{tabular}{ll} \toprule \textbf{Original Name(s)} & \textbf{Standardised Name} \\ \midrule Montr\'{e}al & Montreal \\ Qu\'{e}bec City, Quebec City, Quebec & Qu\'{e}bec \\ Levis & L\'{e}vis \\ Saint Come & Saint-C\^{o}me \\ Sainte Adele, Sainte-Adele, Ste-Ad\`{e}le & Sainte-Ad\`{e}le \\ Saint Sauveur, Saint-Sauveur-des-Monts & Saint-Sauveur \\ Ste-Agathe-des-Monts & Sainte-Agathe-des-Monts \\ \bottomrule \end{tabular} \end{table} \subsection{Sample Attrition} The following summarises the sample attrition at each stage of data cleaning: \begin{itemize} \item \textbf{Airbnb:} Raw dataset $\approx 5{,}000$ listings. After dropping listings with missing or non-positive prices, the cleaned sample retains 3{,}456 listings. \item \textbf{Rentals:} Raw dataset of 8{,}356 records. After restricting to single-family properties with monthly rental periods and positive parsed rents, the cleaned sample retains 8{,}303 listings, all with valid coordinates. \item \textbf{Spatial merge:} All rental listings with valid coordinates are retained; the Airbnb count is zero for listings with no Airbnb neighbours within the buffer radius (composition variables such as the mean nearby price are undefined in that case). \item \textbf{Regressions:} The baseline hedonic sample comprises the 7{,}925 rental listings with non-missing bedrooms and bathrooms. \end{itemize}