Python 52.4%
TeX 47.6%
1% ============================================================================2% Appendix3% ============================================================================4\newpage5\begin{appendices}67\renewcommand{\thetable}{A\arabic{table}}8\renewcommand{\thefigure}{A\arabic{figure}}9\setcounter{table}{0}10\setcounter{figure}{0}1112\section{Machine-Generated Feature Definitions}13\label{app:features}1415Table~\ref{tab:app_features} lists the attributes extracted by the language and16vision models under their respective strict JSON schemas. All fields use closed17enumerations or booleans; absent information is coded as \texttt{false},18\texttt{unknown}, or an empty list.1920\begin{table}[htbp]21 \centering22 \begin{threeparttable}23 \caption{Attributes Extracted by the AI Models}24 \label{tab:app_features}25 \small26 \begin{tabular}{@{}p{2.9cm}p{4.4cm}p{6.3cm}@{}}27 \toprule28 Layer & Field & Domain \\29 \midrule30 \multicolumn{3}{@{}l}{\textit{Panel A: Text (LLM, \texttt{gpt-4o-mini})}} \\[3pt]31 Condition & \texttt{condition} & to renovate / original / good / renovated / like-new / new \\32 Turnkey & \texttt{turnkey} & boolean \\33 Renovated kitchen & \texttt{renovated\_kitchen} & boolean \\34 Renovated bathroom & \texttt{renovated\_bathroom} & boolean \\35 Flooring & \texttt{flooring} & hardwood / ceramic / laminate / carpet / vinyl / concrete \\36 Countertop & \texttt{countertop} & granite / quartz / marble / laminate / wood \\37 Heating & \texttt{heating} & electric / heat pump / wood / gas / oil / radiant / geothermal \\38 Water view & \texttt{view} & water / mountain / city / none \\39 Income property & \texttt{income\_property} & boolean \\40 Large lot; quiet area & \texttt{large\_lot}, \texttt{quiet\_area} & boolean \\[6pt]41 \multicolumn{3}{@{}l}{\textit{Panel B: Vision (\texttt{claude-haiku-4-5}, façade)}} \\[3pt]42 Building type (visual) & \texttt{building\_type\_visual} & detached / semi / row / condo / cottage / land \\43 Condition score & \texttt{condition\_score} & integer 1--10 \\44 Curb appeal & \texttt{curb\_appeal} & integer 1--10 \\45 Renovation level & \texttt{renovation\_level} & to renovate / dated / standard / renovated / high-end \\46 Exterior materials & \texttt{exterior\_materials} & brick / stone / vinyl / wood / aluminum / stucco / concrete \\47 Landscaping & \texttt{landscaping} & none / minimal / maintained / manicured \\48 Setting & \texttt{setting} & dense urban / suburban / rural / waterfront / wooded \\49 Luxury indicator & \texttt{curb\_luxury} & boolean \\50 Photo quality & \texttt{photo\_quality} & integer 1--10 \\51 \bottomrule52 \end{tabular}53 \begin{tablenotes}[flushleft]54 \footnotesize55 \item \textit{Notes:} Both extractions use schema-constrained decoding with56 closed enumerations, required fields, and \texttt{additionalProperties:false};57 decoding temperature is zero. The text layer reads the free-text description;58 the vision layer analyzes one façade photograph per listing. Fields are mapped59 to numeric regressors (booleans to $0/1$, ordinal scales to integers, categories60 to indicators), each with an availability flag.61 \end{tablenotes}62 \end{threeparttable}63\end{table}6465\section{Sample Construction Flow}66\label{app:flow}6768\begin{table}[htbp]69 \centering70 \begin{threeparttable}71 \caption{From Raw Records to Estimation Sample}72 \label{tab:app_flow}73 \begin{tabular}{@{}lr@{}}74 \toprule75 Step & Records \\76 \midrule77 Realtor.ca raw & 27{,}302 \\78 DuProprio raw & 7{,}693 \\79 Houses (single-family + townhouse) with price & 19{,}273 \\80 After outlier cleaning & 19{,}123 \\81 \quad of which with measured living area (Model~A) & 9{,}446 \\82 \bottomrule83 \end{tabular}84 \begin{tablenotes}[flushleft]85 \footnotesize86 \item \textit{Notes:} See Section~\ref{sec:data}. ``Measured living area'' means87 reported area or area reconstructed from room-level dimensions.88 \end{tablenotes}89 \end{threeparttable}90\end{table}9192\end{appendices}93