% ============================================================================ \begin{appendices} % ============================================================================ \section{Proofs} \label{app:proofs} \begin{proof}[Proof of Proposition~\ref{prop:value}] Write the improvements component as $I_i=\mu_i A_i\,\kappa(g_i)(1-D_i)$ with $\mu_i$ collecting the storey, attachment, regional and temporal multipliers and the mark-ups, all known given the record, and $D_i$ held fixed. Under quadratic loss the Bayes estimate of $I_i$ without the image is $\mu_iA_i(1-D_i)\,\mathbb E_p[\kappa(g)]$ with expected loss $\mu_i^2A_i^2(1-D_i)^2\operatorname{Var}_p(\kappa(g))$. Observing $\hat g_i$ with likelihood $q_{g\hat g}=\Pr(\hat g\mid g)$ yields the posterior $p(g\mid\hat g)\propto p_g q_{g\hat g}$, Bayes estimate $\mu_iA_i(1-D_i)\mathbb E[\kappa(g)\mid\hat g]$ and expected loss $\mu_i^2A_i^2(1-D_i)^2\mathbb E_{\hat g}\operatorname{Var}(\kappa(g)\mid\hat g)$. The reduction is the stated expression by the law of total variance. If the rows of $Q$ are equal, $\hat g$ is independent of $g$, the posterior equals the prior and the reduction is zero. For the symmetric channel in which $\hat g=g$ with probability $\pi$ and is otherwise uniform over the other $G-1$ grades, the posterior given $\hat g=v$ puts mass proportional to $p_v\pi$ on $v$ and $p_g(1-\pi)/(G-1)$ on $g\neq v$; as $\pi$ increases the posterior concentrates and $\mathbb E_{\hat g}\operatorname{Var}(\kappa\mid\hat g)$ decreases monotonically to zero at $\pi=1$, while for fixed $\pi$ the reduction scales with $\operatorname{Var}_p(\kappa(g))$, the between-grade dispersion of the schedule. The factor $(1-D_i)^2$ is explicit. \end{proof} \begin{proof}[Proof of Proposition~\ref{prop:condition}] Before the cap and the renovation allowance, $D^{\mathrm{phys}}=\mathrm{age}\,\lambda(c)/\mathrm{EL}$. If $\lambda$ is affine on the relevant range with slope $\lambda'<0$, then $\lambda(\hat c)=\lambda(c)+\lambda'\varepsilon$ and $\mathbb E[D^{\mathrm{phys}}(\hat c)-D^{\mathrm{phys}}(c)\mid c]=\mathrm{age}\,\lambda'\delta(c)/\mathrm{EL}$. A uniform $\delta>0$ gives a negative bias proportional to age and inversely proportional to $\mathrm{EL}$. If $\delta(c)=\delta_0+\delta_1(c-\bar c)$ with $\delta_1<0$ and $\mathbb E[\delta(c)]=\delta_0$, the mean bias is $\mathrm{age}\,\lambda'\delta_0/\mathrm{EL}$ and the reported $\lambda(\hat c)$ has variance $(\lambda')^2(1+\delta_1)^2\operatorname{Var}(c)$ plus noise, smaller than $(\lambda')^2\operatorname{Var}(c)$ when $-2<\delta_1<0$: the cross-sectional dispersion of depreciation is compressed while its mean is unchanged when $\delta_0=0$. The cap and the renovation allowance only attenuate these effects. \end{proof} \section{Prompts and schemas} \label{app:prompts} The system prompt for the per-image extraction (version \texttt{wp20-prompts-1.0}) reads: \begin{quote}\small\itshape You are assisting a real-estate appraiser who applies the cost approach. You see ONE photograph from a Québec residential for-sale listing. Report only what is visually observable in this photograph. Classify the scene, then fill every field: use ``not\_visible'' when the feature is relevant to the scene but cannot be seen, and ``not\_applicable'' when the field does not apply to this scene (e.g.\ kitchen fields on an exterior photo). Rules: (1) never infer hidden conditions (foundation, structure, mold behind finishes, permits, exact year or area); (2) condition scales describe wear and deterioration, finish-quality scales describe the cost level of the materials, do not confuse taste with quality; (3) a renovated or staged room is still rated on what is visible; (4) if the image is a floor plan, a document, a logo or unusable, say so and set other fields to ``not\_applicable''. Output JSON only, matching the schema. \end{quote} {\sloppy The image schema (version \texttt{wp20-schema-1.0}) has 22 required fields: \texttt{scene} (14 classes), \texttt{photo\_quality} (1--5), \texttt{staging\_or\_rendering}, \texttt{building\_type\_visual}, \texttt{storeys\_visible}, \texttt{cladding} (list of up to three among brick, stone, vinyl, wood, aluminum or steel, stucco or acrylic, fiber cement, other), \texttt{roof\_form}, \texttt{roof\_covering} (asphalt shingle, metal, flat membrane, other), \texttt{garage\_visible} (attached, detached, carport, none visible), \texttt{exterior\_condition} (0--5), \texttt{kitchen\_grade} and \texttt{bathroom\_grade} (basic, standard, upgraded, luxury), \texttt{kitchen\_counters}, \texttt{kitchen\_cabinets}, \texttt{flooring\_main}, \texttt{basement\_finish}, \texttt{interior\_condition} and \texttt{interior\_finish\_quality} (0--5), \texttt{renovation\_evidence}, \texttt{visible\_defects} (list), \texttt{confidence} (0--1) and a one-line \texttt{evidence} statement. Every categorical field admits \texttt{not\_visible} and \texttt{not\_applicable}. The text schema has 22 fields covering building type, storeys, materials, garage, basement, grades, condition and renovation claims with items and years, year built and area claims, heating, pool, disclosed defects, a flag for any surviving value mention, and a confidence; every categorical field admits \texttt{not\_stated}. Both schemas are released in machine-readable form with the code, together with the text system prompt.\par} \section{Aggregation and reconciliation rules} \label{app:rules} Exterior attributes use exterior scenes only; categorical attributes take the confidence-weighted plurality among informative values with a confidence floor of 0.05; garage presence is positive if any exterior image reports a garage, carport or detached garage, ``none visible'' only if no image reports one and at least one reports none; ordinal grades take the weighted median of ordinal codes; conditions and finish quality take the confidence-weighted mean of non-zero scores; renovation evidence takes the maximum of (none, partial, extensive) with ``unsure'' ignored; defects are the union excluding ``none visible''; the composite condition is the mean of exterior and interior condition when both exist; the composite grade is the rounded weighted average of kitchen grade (0.5), bathroom grade (0.3) and interior finish quality rescaled to 1--4 (0.2), each entering only when observed. Reconciliation gives precedence to the roll (storeys), then to informative visual values, then to informative text values, then to the B0 default; the status of each reconciled attribute (agree, contradict, visual only, text only, unknown) is stored. \section{Proposed expert annotation protocol} \label{app:protocol} Three independent raters (two chartered appraisers and one building technologist, none involved in the schema design) code 300 listings drawn from the extraction sample with the same stratification, in two sessions---images only, then images and masked text---using a form with the property-level attributes of the ontology, a \texttt{not\_visible} option, a three-level confidence and the indices of the images used as evidence. Condition scales are anchored with written descriptors and reference photographs assembled from licensed sources. Reliability is reported as Krippendorff's nominal $\alpha$ and pairwise $\kappa$ for nominal attributes, quadratic-weighted $\kappa$ and ICC(2,1) for ordinal grades and conditions, with 0.67 as the minimum for reporting and 0.80 for use as reference labels. Disagreements are adjudicated by majority, three-way disagreements by a fourth senior appraiser, with a log. Each extractor tier is then treated as a fourth rater and its disagreements with the adjudicated labels are classified by error type (occlusion, staging, lighting, material look-alike, scene misclassification, hallucinated attribute). Time per listing is recorded for the review-cost analysis. Rater identities are kept outside the released data. \section{Institutional and statistical sources} \label{app:sources} \begin{itemize} \item \emph{Loi sur la fiscalité municipale}, RLRQ c.~F-2.1, sections 14, 43--46, 263 (legisquebec.gouv.qc.ca, read 2026-10-20). \item \emph{Manuel d'évaluation foncière du Québec}, structure document (Ministère des Affaires municipales et de l'Habitation, cdn-contenu.quebec.ca) and the ministry's page on \emph{facteurs de rajustement} (quebec.ca, 2026-10-20). Part~3E was not consulted. \item Données Québec, « Rôle d'évaluation foncière du Québec », MAMH, licence CC-BY~4.0, annual (CKAN metadata, 2026-10-20). \item Statistics Canada, Table 18-10-0289-01, \emph{Building construction price indexes, by type of building and division}, 2023$=$100, quarterly, Québec CMA (vector 1617911172), Montréal CMA (1617911556), Ottawa--Gatineau Ontario part (1617912324), 15-CMA composite (1617908100), single-detached house, division composite, latest 2026-Q2 (Web Data Service, 2026-10-20). \item Altus Group, \emph{2026 Canadian Cost Guide}, released 2026-04-23 (press release); residential figures as tabulated by NerdWallet Canada (``How much does it cost to build a house'', updated 2026; accessed 2026-10-20): Montréal \$155{,}000--\$215{,}000 per 1{,}000 sq~ft, single-family with unfinished basement, land excluded. \item Soumission Rénovation, « Coût de construction d'une maison au Québec en 2026 », modified 2026-08-31; Dessins Drummond, « Combien coûte construire une maison au Québec en 2026? », updated 2026-09-24 (both accessed 2026-10-20). \item IAAO, \emph{Standard on Mass Appraisal of Real Property}, revised 2025; Appraisal Institute of Canada, \emph{CUSPAP 2024}; IVSC, \emph{International Valuation Standards} effective 2025-01-31 (edition facts verified by web search 2026-10-20; texts not consulted in full). \end{itemize} \section{Reproducibility} \label{app:repro} The repository released with the paper contains the configuration files (data rules, sample design, ontology, prompts, models, cost schedule), the ingestion, extraction, aggregation, cost-model, evaluation and visualization modules, the numbered scripts that run the pipeline, unit tests, the raw model responses (as JSON lines without images), every table and figure as generated, a machine-readable manifest with the hash of every artefact, the research log, the pre-registered experiment plan, the data-rights document and the literature matrix with the verification record of each reference. The two databases are read-only copies of the Vrai Prix production data and are not redistributed; the roll is public on Données Québec and the listing data can be requested from the author under the conditions described in the data-rights document. All numbers in the text are macros generated from the result files; the manuscript compiles with \texttt{latexmk}. The extraction runs can be reproduced with the provider's batch interface and an API key, at a cost of about US\$\apiCostUSD{} at the prices in force in October 2026; model outputs will differ across model versions, which is one reason the raw responses are released. \end{appendices}