TeX 59%
Python 40.8%
1% ============================================================================2\section{Data, variable ontology, rights and sample construction}3\label{sec:data}4% ============================================================================56\subsection{Sources and provenance}78Three sources enter the analysis, all through read-only copies of the Vrai Prix databases taken on 17~October 2026 (Section~\ref{sec:vraiprix}). The assessment roll provides the \textsc{admin} fields; its licence (CC-BY~4.0, Données Québec) permits reuse with attribution, owner identifiers are redacted at source and no attempt at re-identification is made. The listing database provides photographs (as URLs), descriptions, feature lists and broker-entered structured fields for houses offered for sale between 12~August and 17~October 2026, together with the Vrai Prix spatial match to a roll unit and its match distance. The transaction register is used only in aggregate, for the \nFrameStart{}-listing frame's units that sold after being listed. Two further public sources enter the cost model: Statistics Canada's building construction price indexes by census metropolitan area (table 18-10-0289-01, 2023$=$100, quarterly, retrieved through the Web Data Service) and published per-area construction cost figures for Québec and Montréal in 2026 (Section~\ref{sec:schedule_data}). Appendix~\ref{app:sources} lists every institutional source with its access date and the exact wording relied upon.910\subsection{Rights and ethics}11\label{sec:rights}1213Photographs and descriptions are copyrighted marketing material of brokers and owners. The study does not download, store or redistribute any photograph: images are passed to the model provider by URL for analysis and are not retained, no photograph is reproduced in this paper, and all reported quantities are aggregates. Hosts whose \texttt{robots.txt} disallows all automated retrieval were excluded from the analysis rather than circumvented; the provider's fetcher independently refused those URLs. This rule removed \nRobotsExcluded{} listings from the frame, essentially the listings of one large franchise network whose media host carries a blanket disallow directive. The exclusion is not neutral: the removed listings have a higher median asking price (\$\robotsExcludedPriceMedian{} against \$\robotsRetainedPriceMedian{}) and a higher median roll land value (\$\robotsExcludedLandMedian{} against \$\robotsRetainedLandMedian{}), so the retained frame under-represents the more urban, higher-land-value segment served by that network. Prices, taxes and municipal assessment amounts are masked in every text passed to a model, because the asking price is literally printed in some descriptions and would otherwise leak into any downstream comparison. The extraction schema contains no field about occupants or personal belongings. Terms of use of the individual broker sites were not reviewed one by one; this residual legal uncertainty is recorded in the project's data-rights document and the analysis is a non-commercial academic study of aggregate extraction behaviour.1415\subsection{Variable ontology}16\label{sec:ontology}1718Table~\ref{tab:ontology} summarises the attribute ontology; the machine-readable version with allowed values, extraction method, expected effect in the cost model, validation source and known error modes is released with the code. Each attribute belongs to one of the five evidence classes of Section~\ref{sec:evidence}. The \textsc{visual} attributes were chosen because they are (a) observable in a single photograph by a careful person, (b) cost-relevant in published schedules, and (c) at least partly verifiable against a broker field or a roll field in our data. Interior finish grades and condition scores are \textsc{proxy} attributes and are anchored with written descriptors in the prompt; they are evaluated by cross-extractor agreement and by their effect on the cost indication, not by accuracy, because no external reference exists. The \textsc{latent} attributes are listed so that their exclusion is explicit.1920\begin{table}[H]21\centering22\caption{Attribute ontology by evidence class (summary)}23\label{tab:ontology}24\footnotesize25\begin{tabular}{p{1.7cm}p{5.6cm}p{2.9cm}p{3.4cm}}26\toprule27Class & Attributes & Extraction & Validation in this study \\28\midrule29\textsc{admin} & year built, floor area, lot area, storeys, land value, building value, market-conditions date & roll lookup & internal (year built vs listing, 95\% within $\pm$1 year) \\30\textsc{visual} & scene, building type, storeys, cladding (up to 3), roof form and covering, garage, kitchen counters and cabinets, flooring, basement finish, visible defects, photo quality, staging & per-image VLM, strict JSON schema & broker fields (roofing, siding, basement, garage, type), roll storeys \\31\textsc{proxy} & exterior condition, interior condition, interior finish quality, kitchen and bathroom grade, renovation evidence & per-image VLM, anchored scales & cross-extractor agreement; effect on indication \\32\textsc{text} & building type, storeys, materials, garage, basement, grades, condition and renovation claims, year built, areas, heating, pool, disclosed defects & per-listing LLM on masked text & roll (year built, floor area), broker fields, images \\33\textsc{latent} & foundation, hidden moisture/mould, structure, permits/code, tenure, exact area & never inferred & scenario only \\34\bottomrule35\end{tabular}36\end{table}3738\subsection{Sampling frame and sample}39\label{sec:sample}4041Table~\ref{tab:exclusions} logs the construction of the frame. Starting from \nFrameStart{} house listings evaluated by Vrai Prix, we keep listings whose matched roll unit is a single-family dwelling, whose geocode lies within 15~m of the unit, whose roll record is complete (year built, floor area, land and building values), whose listing year built, when present, is within five years of the roll's, with at least four photographs, an asking price between \$100{,}000 and \$3{,}000{,}000, from sources that carry broker structured fields (two classified-advertisement platforms are dropped), whose image host permits automated retrieval, and one listing per roll unit when the same house is advertised by several brokers. The frame contains \nFrame{} listings in \nMunicipalitiesSample{}+ municipalities.4243From the frame we draw a stratified sample of \nSample{} listings (\nStrata{} non-empty strata of metropolitan area $\times$ building-age band $\times$ asking-price quartile, proportional allocation with a floor of 20 per stratum, fixed seed) and keep for each the first twelve photographs in the seller's order, \nImagesSample{} image URLs in all. The floor over-represents the smaller metropolitan areas by design, so that subgroup diagnostics have minimum support; design weights (frame stratum size over sample stratum size) are stored and used wherever a frame-level statement is made. Table~\ref{tab:sample_strata} compares the composition of frame and sample and Table~\ref{tab:sample_descriptives} gives descriptive statistics: the median listing asks \$\medianPriceSample{}, has \medianAreaSample{}~m$^2$ of above-grade floor area in the roll and \medianImagesSample{} photographs. Broker structured fields are unevenly available: a roofing material is recorded for \covRoof\% of the sample, a basement description for \covBasement\%, a siding material for \covSiding\%, a garage field for \covGarage\%, and a municipal building assessment for \covAssessBuilding\%; these coverages bound the reference sets of the agreement analysis.4445\begin{table}[H]46\centering47\caption{Construction of the sampling frame}48\label{tab:exclusions}49\footnotesize50\input{tables/frame_exclusions}51\end{table}5253\begin{table}[H]54\centering55\caption{Frame and sample composition by stratum}56\label{tab:sample_strata}57\footnotesize58\input{tables/sample_strata}59\end{table}6061\begin{table}[H]62\centering63\caption{Descriptive statistics of the sample}64\label{tab:sample_descriptives}65\footnotesize66\input{tables/sample_descriptives}67\begin{tablenotes}\footnotesize68\item Note: floor area, lot area, age and values are those of the matched assessment-roll unit; the roll's market-conditions date is 1 July 2022, 2023 or 2024 depending on the municipality's cycle.69\end{tablenotes}70\end{table}7172\begin{figure}[H]73\centering74\includegraphics[width=\textwidth]{f02_sample_composition.pdf}75\caption{Composition of the frame and of the stratified sample. The per-stratum floor over-represents the smaller metropolitan areas; design weights restore frame proportions where needed.}76\label{fig:sample}77\end{figure}7879A supplementary set of \saleSoldSupplementBThreeN{} frame listings, not in the main sample, whose roll unit recorded a sale after the listing first appeared, was processed with the two cheaper extractors for the market-alignment test against transaction prices (Section~\ref{sec:market}).8081\subsection{Cost-schedule data}82\label{sec:schedule_data}8384Two published anchors describe the per-area cost of a new single-family house in 2026. Anchor~A is the Montréal band of hard construction costs for a single-family house with an unfinished basement reported from Altus Group's \emph{2026 Canadian Cost Guide} by a secondary source (\$\costABasic{}--\$\costALuxury{} per square foot after our grade placement; the guide itself is distributed on request and was not consulted directly). Anchor~B is the range reported by Québec construction-industry guides updated in August and September 2026---a standard finish at \$280--325 per square foot for a two-storey house, a cottage with unfinished basement at \$230--285, high-end finishes from \$350, and a bungalow premium of roughly \$100 per square foot---which exclude land, servicing, soil tests, professional fees, landscaping, basement finishing and garages. We place the four grades at \$\costBBasic{}, \$\costBStandard{}, \$\costBUpgraded{} and \$\costBLuxury{} per square foot of a two-storey reference and derive a one-storey multiplier of 1.25 from the bungalow premium. Anchor~B is Québec- and date-specific and is the headline; anchor~A is reported throughout as a lower-bound alternative. Both are builder-facing guide figures rather than a cost manual, and the paper treats them as bands, not points (Table~\ref{tab:schedule_grades}). All other parameters of the schedule---storey and party-wall multipliers, basement and garage add-ons, indirect-cost and entrepreneurial-incentive mark-ups, site-improvement share, economic life, condition factor, renovation allowance---are author assumptions with declared ranges (Table~\ref{tab:schedule_parameters}). The Statistics Canada index updates anchor~A from early 2026 to the valuation quarter and indexes the assessor's building value from the roll's market-conditions date to the same quarter; it does not provide cross-city cost levels, which is why the regional level factor is a sensitivity parameter.8586\begin{table}[H]87\centering88\caption{Per-area hard construction cost by finish grade: the two published anchors}89\label{tab:schedule_grades}90\footnotesize91\input{tables/schedule_grades}92\begin{tablenotes}\footnotesize93\item Note: CAD per square foot of above-grade floor area; the band is the sensitivity range used in Sections~\ref{sec:robustness} and~\ref{sec:mc}. Anchor~A: Altus Group 2026 Canadian Cost Guide, Montréal, via NerdWallet Canada (accessed 2026-10-20). Anchor~B: Soumission Rénovation (updated 2026-08-31, attributing its ranges to Société d'habitation du Québec 2026 data) and Dessins Drummond (updated 2026-09-24).94\end{tablenotes}95\end{table}9697\begin{table}[H]98\centering99\caption{Cost-schedule parameters, sources and status}100\label{tab:schedule_parameters}101\footnotesize102\input{tables/schedule_parameters}103\end{table}104