% ============================================================================ % Fundamental value: repeat sales, rents and user cost (WP 26) % Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca % Numbers: results/fundamental/*.json|csv (scripts/50_repeat_sales.py, 51_eval_vs_resale.py, 52_rents_usercost.py) % ============================================================================ \providecommand{\figdir}{../figures} \providecommand{\E}{\mathbb{E}} \providecommand{\Var}{\operatorname{Var}} \section{Identifying Fundamental Value: Repeat Sales, Rents and User Cost} \label{sec:fundamental} The accuracy results of Sections~\ref{sec:results} and \ref{sec:ablations} measure the distance between an arm's estimate and the realised transaction price. Lemma~\ref{lem:proxy} states exactly what such a distance identifies: the ranking of estimators by price-based error is their ranking by distance to the selected market value $\tilde v$, and nothing in that ranking speaks to the latent market-consistent value $v^{\ast}$ or to the structural fundamental value $V^{F}$ of Section~\ref{subsec:values}. A realised price differs from $\tilde v$ by transaction noise, which collects the bargaining outcome, the seller's urgency, the time the dwelling spent on the market and the idiosyncratic match between buyer and property; $\tilde v$ differs from $v^{\ast}$ by a selection term that is non-zero whenever the decision to sell is correlated with the unobserved component of the price \citep{genesove2001loss}; and $v^{\ast}$ differs from $\log V^{F}$ by expectational and liquidity components that can be large when down-payment constraints bind \citep{stein1995prices} or when expectations extrapolate recent growth \citep{glaeser2017extrapolative}. A method that forecasts prices well may therefore track a bubble as faithfully as it tracks fundamentals, and a method that is closer to fundamentals may be penalised by the price-based metric when the market departs from them. This section builds the three proxies announced in Section~\ref{subsec:fundamental}, documents the selection problem of each, reports the comparison of the statistical baselines against the sharpest proxy, the market-adjusted resale, and specifies how the same comparison will be read for the agentic arms once the evaluation partitions have had time to resell. Every number below is produced by \texttt{scripts/50\_repeat\_sales.py}, \texttt{51\_eval\_vs\_resale.py} and \texttt{52\_rents\_usercost.py} from the snapshot of Section~\ref{sec:data}, and nothing in it is shown to any arm. \subsection{Three proxies and what selects into each} \label{subsec:proxies} The first proxy is the subsequent resale of the same property. If parcel $i$ sells at $t_1$ for $P_{t_1}$ and again at $t_2>t_1$ for $P_{t_2}$, and if the movement of the market between the two dates is common to the cell in which the property trades, then the repeat-sales logic of \citet{bailey1963regression} and \citet{case1987prices,case1989efficiency} brings the later price back to the first date, \begin{equation} \log V^{R}_{t_1}=\log P_{t_2}-\bigl[I(m,c,\tau_2)-I(m,c,\tau_1)\bigr], \label{eq:resale} \end{equation} where $I(m,c,\tau)$ is a log-price index for municipality $m$, property class $c$ and month $\tau$. Under unchanged quality, $\log V^{R}_{t_1}-\log P_{t_1}=\varepsilon_{t_2}-\varepsilon_{t_1}$ is the difference of two transaction noises, so that an estimate formed at $t_1$ which lies closer to $V^{R}_{t_1}$ than $P_{t_1}$ does has captured a component of $v^{\ast}_{t_1}$ that the first transaction's noise obscured. Its selection problem is that properties which resell within a six-year window are not a random draw: flips, relocations, forced sales and renovated dwellings are over-represented, and the loss-averse listing behaviour documented by \citet{genesove2001loss} ties the decision to resell to the sign of $\varepsilon_{t_1}$. Renovations are unobserved, the roll being a single snapshot shared by both legs, and the holding period is right-censored by the snapshot date. We flag pairs held less than twelve months, report the proxy by holding period, and never correct for selection. The second proxy is the rent. Where a comparable unit commands a market rent $R_t$, the user-cost condition \eqref{eq:usercost} of \citet{poterba1984tax}, in the form used by \citet{himmelberg2005assessing}, delivers $V^{F}_t=R_t/u_t$ with $u_t=i_t+\tau_p+\delta+\gamma_t-\pi^{e}_t$. Three selection problems stand between this identity and the data. The rental stock differs from the owner-occupied stock in size, quality and location, so that the rent of an average registered apartment is not the rent of the condominium or plex that sold. Quebec rent regulation detaches contract rents from market rents for sitting tenants and compresses the rents of new leases toward those of the previous occupant. And $u_t$ contains the expected appreciation $\pi^{e}_t$, which is unobservable, so that the diagnostic of \citet{himmelberg2005assessing} identifies $V^{F}$ only under a maintained assumption about expectations; following \citet{campbell2009what}, who show that movements in rent--price ratios are dominated by the expected-return and expected-growth components rather than by rents, we report the implied value under a range of $\pi^{e}_t$ and read its time profile and dispersion, not its level. The third proxy, an independent professional appraisal, is an $\mathcal{I}_t$-measurable estimate like any other arm and is subject to Lemma~\ref{lem:proxy}; appraisers update toward observed prices \citep{quan1991price} and confirm the contract price in the large majority of mortgage transactions \citep{eriksen2019influence,calem2021appraising}, so that even where accessible they would proxy $\tilde v$ at best. None is accessible for this study and none is used. \subsection{The repeat-sales deflator and the resale sample} \label{subsec:resale-sample} The deflator is deliberately transparent. For every municipality, class and calendar month we take the median of the log price per square metre of floor area over the sales of the cell; cells with fewer than five sales fall back to the region-group by class cell; each series is smoothed by a centred three-month rolling median computed on valid months only; and the index is chained, the log index being the cumulative sum of month-to-month changes of the smoothed series, each change taken from the municipality series when both months are valid there and from the region series otherwise, so that a switch of source never produces a jump in level. On the 2021--2026 snapshot this yields $2{,}283$ municipality-by-class series over 70 months, of which $16{,}003$ monthly changes come from the municipality and $141{,}524$ from the region: at the monthly frequency most Quebec municipalities are thin, and the deflator is in practice a regional index with municipal corrections in the large cities. Pairs are formed from consecutive sales of the same roll unit in the full snapshot of $769{,}995$ deeds rather than in the headline sample alone, after removing deeds that cannot serve as a leg (duplicates, shared and multi-parcel deeds, land, non-residential and built-after-sale rows) and same-date pairs; the later leg keeps its data-quality flags. The resulting sample, described in Table~\ref{tab:resale-sample}, contains $92{,}089$ headline sales with a later resale, that is $14.6$ per cent of the analytic table: $30{,}900$ condominiums, $50{,}178$ houses and $11{,}011$ plexes. The median holding period is $23.5$ months and $28.8$ per cent of the pairs are held less than twelve months; among those held less than a month, one in nine resells at an identical price, which marks re-registrations rather than resales. The median annualised log return is $8.0$ per cent against a median index change of $0.124$ over the holding period. The gap $\log V^{R}-\log P$ has a mean of $+0.015$, so the deflator removes the market movement without a systematic residual, but a standard deviation of $0.438$ ($0.30$ for condominiums, $0.49$ for houses, $0.50$ for plexes) and a median absolute value of $0.128$. Figure~\ref{fig:resale-gap} shows that the dispersion is essentially flat in the holding period: it is the noise floor of the proxy, the sum of two transaction noises, unobserved changes to the dwelling and index error, and it is of the same order as the price-based errors of the arms. A resale-based contrast is therefore informative only with samples of hundreds of pairs. \begin{table}[t] \centering \caption{The resale sample: analytic sales with a later resale of the same parcel in the snapshot. Hold $<$12 m is the share of pairs held less than twelve months; Months is the median holding period; Ann.\ return is the median annualised log return; gap is $\log V^{R}-\log P$, the resale-implied log value of equation~\eqref{eq:resale} minus the realised log price. Source: \texttt{scripts/50\_repeat\_sales.py}, \texttt{results/fundamental/resale\_sample.csv}.} \label{tab:resale-sample} \small\setlength{\tabcolsep}{4.5pt} \input{tables/tab_resale_sample} \end{table} \begin{figure}[t] \centering \includegraphics[width=\textwidth]{\figdir/fundamental_resale_gap.pdf} \caption{Resale-implied log value minus realised log price, by property class and holding period (boxes: interquartile range; whiskers: 5th--95th percentiles). A value of zero means that the later price, deflated by the index, reproduces the first price exactly. Source: \texttt{scripts/50\_repeat\_sales.py}.} \label{fig:resale-gap} \end{figure} The censoring of holding periods by the snapshot date has a direct consequence for the evaluation design. First sales in the test partition (April to December 2025) have at most eighteen months in which to resell before the snapshot of October 2026, and $80$ per cent of their pairs are short holds; the 2026 holdout has none that is not. After excluding short holds and flagged legs, $729$ of the $96{,}935$ test-partition sales carry a usable $V^{R}$, which suffices for the baselines evaluated on the full partition, but only $6$ of the $600$ test subsample properties and none of the $300$ holdout properties on which the language-model arms are evaluated do. The resale check of the agentic arms is thus a deferred test: it is specified now, its code is frozen with the protocol, and it will be run on the same predictions once a later snapshot has been fetched. \subsection{Price-to-rent and user-cost diagnostics} \label{subsec:rents} The rent data are a sample of $57{,}433$ residential leases with monthly rent, number of rooms, lease year and coordinates, obtained through the Immo-Ka platform and described as leases registered with the Tribunal administratif du logement. Their limits bound what the diagnostic can say. The sample is self-selected and concentrated in 2022--2025; it records no floor area, so that no bridge from rooms to the square metres of the sales table exists; the rooms field is an undocumented integer that we read as bedrooms; the lease start date is missing for four in ten rows, so leases are placed in calendar years; and the raw table contains addresses outside Quebec. After removing implausible rents and years and exact duplicates, $56{,}305$ leases remain, of which $49{,}082$ are matched to a municipality by the nearest analytic sale within two kilometres ($32{,}232$ in the Montréal area, $5{,}359$ in the Québec area, $1{,}127$ in the Outaouais and $10{,}364$ elsewhere) and $48{,}188$ to a 2021 dissemination area. Median rents are then computed by municipality, year and rooms bucket. Because no area bridge exists, the price-to-rent comparison is deliberately crude: for each condominium and plex sale we take the median monthly rent of all matched leases in the same municipality and year, annualise it, multiply it by the number of dwellings for plexes, and divide by the price. This gross rental yield matches $162{,}981$ sales ($103{,}553$ condominiums and $59{,}428$ plexes) to a municipality-year cell with at least ten leases. Its median is $3.6$ per cent for condominiums and $5.6$ per cent for plexes; in 2025 it ranges from $3.5$ and $4.8$ per cent in the Montréal area to $5.0$ and $6.2$ per cent in the Outaouais. Figure~\ref{fig:price-rent} plots the distributions by region group and year. Two features are robust to the crudeness of the measure. Yields are ordered across regions in the way that prices are ordered in reverse, which is what a common discount rate applied to heterogeneous rent levels predicts, and the plex yields compress from 2021 to 2024 while condominium yields are nearly flat, which reflects the faster appreciation of small income properties over the period. The level of the condominium yield, by contrast, is not interpretable, since the rent of an average registered apartment is compared with the price of a sold condominium. \begin{figure}[t] \centering \includegraphics[width=\textwidth]{\figdir/fundamental_price_rent.pdf} \caption{Crude gross rental yields by region group and year of sale (boxes: interquartile range; whiskers: 5th--95th percentiles; cells with fewer than 30 sales omitted). The yield is twelve times the municipality-year median rent of the registered leases, times the number of dwellings for plexes, divided by the sale price; no adjustment for the size or quality of the sold unit is possible. Source: \texttt{scripts/52\_rents\_usercost.py}.} \label{fig:price-rent} \end{figure} The user-cost diagnostic divides the gross yield by $u_t$ to obtain the rent-implied value relative to the price, $(R_t/u_t)/P_t$. Table~\ref{tab:usercost-params} lists the inputs. The mortgage rate is the only measured one: the Bank of Canada's weekly series for the five-year conventional mortgage rate, averaged by calendar year, rises from $4.8$ per cent in 2021 to $6.7$ per cent in 2023--2024 and eases to $6.1$ per cent in 2026. Property tax, depreciation and the risk premium are assumptions in the range used by \citet{himmelberg2005assessing}, and expected appreciation is bracketed by three scenarios. Figure~\ref{fig:usercost} is accordingly labelled illustrative. Under the central scenario the median rent-implied value is $0.34$ to $0.46$ of the price for condominiums and $0.54$ to $0.75$ for plexes; under four per cent expected appreciation the plex ratio reaches $0.99$ in 2021 and $0.70$ in 2023--2024. We do not read these levels as evidence of over-valuation, because the quality mismatch and the regulation of contract rents both push the measured yield below the yield of the sold unit. What the figure does show is the mechanism that separates price from fundamental value in this period: the rise of the mortgage rate between 2021 and 2023 raised the user cost by about two percentage points while gross yields barely moved, so that the price-to-rent ratio could remain where it was only if expected appreciation absorbed the change. An arm that forecasts 2025 prices accurately is implicitly forecasting those expectations; whether it has identified the fundamental is a different question, and one that the resale proxy, not the price error, is designed to answer. \begin{table}[t] \centering \caption{Inputs of the user-cost diagnostic $u=i+\tau_p+\delta+\gamma-\pi^{e}$. The mortgage rate is measured (Bank of Canada Valet series V80691335, weekly, annual means); the other inputs are assumptions and scenarios. Source: \texttt{scripts/52\_rents\_usercost.py}, \texttt{results/fundamental/usercost\_parameters.csv}.} \label{tab:usercost-params} \small \input{tables/tab_usercost_params} \end{table} \begin{figure}[t] \centering \includegraphics[width=\textwidth]{\figdir/fundamental_usercost.pdf} \caption{Illustrative: median rent-implied value relative to the price, $(R/u)/P$, by year of sale under three expected-appreciation scenarios, with the interquartile range for the central scenario. The gross yield is the crude measure of Figure~\ref{fig:price-rent}; $u$ uses the inputs of Table~\ref{tab:usercost-params}. Levels are not interpretable; the time profile and the dispersion are. Source: \texttt{scripts/52\_rents\_usercost.py}.} \label{fig:usercost} \end{figure} \subsection{How the arm comparison against resale-implied values will be read} \label{subsec:resale-reading} For every evaluated property with a usable resale, an arm's estimate $\hat y$ has two errors, $e^{P}=\log\hat y-\log P_{t_1}$ against the realised price and $e^{R}=\log\hat y-\log V^{R}_{t_1}$ against the resale-implied value, and the realised price itself has $e^{R}_{P}=\log P_{t_1}-\log V^{R}_{t_1}$. The quantity of interest is the paired contrast $\Delta=\overline{|e^{R}|}(\text{arm})-\overline{|e^{R}|}(\text{price})$, estimated by the block bootstrap of Section~\ref{sec:design} with municipality-by-month blocks and Holm adjustment within the family, together with the pre-registered arm pairs evaluated against $V^{R}$ rather than against $P$. A negative $\Delta$ means that the arm is closer to the market-adjusted resale than the first transaction price was, which under the maintained assumptions is evidence that the arm captured a component of $v^{\ast}$ obscured by transaction noise; a $\Delta$ near zero means that the arm's error is of the same nature as the price's own noise; a positive $\Delta$ means that the arm is further from the resale than the transaction it was asked to predict, which is the expected outcome for an estimator that fits the price well, since by Lemma~\ref{lem:proxy} price-based training rewards proximity to $\tilde v$, not to $V^{R}$. The arm-versus-arm contrasts are read in the same way as in Section~\ref{sec:results}, with two caveats that the sample size imposes: the noise floor of the proxy is a log standard deviation of about $0.44$, and the selection of resellers is not corrected, so that a contrast is reported with its holding-period composition. Table~\ref{tab:resale} reports the result for the statistical baselines of Section~\ref{sec:results}, which are evaluated on the full test partition and therefore on the $729$ test sales with a usable resale ($399$ municipality-by-month blocks; the spatial-holdout variants on $63$). The language-model arms are not yet in the table: no live run exists on the test or holdout partitions at the time of writing, and when the runs exist their resale subsample will, for the reasons given above, remain too small until a later snapshot is fetched. Three features of the baseline result deserve notice, each read with the selection caveat in mind. First, the realised price is itself $0.073$ log points below the resale-implied value on average in this subsample, with a mean absolute distance of $0.243$: the properties that resold within twelve to eighteen months were, on average, bought below what their resale implies, which is the signature of the flip and renovation selection discussed in Section~\ref{subsec:proxies} and not a property of the market. Second, the gradient-boosting arms are measurably closer to the resale-implied value than the first transaction price was, with $\Delta$ between $-0.028$ and $-0.038$ and Holm-adjusted $p$-values below $0.05$, while their error against the realised price on the same properties is $0.18$; the hedonic baseline is no closer than the price ($\Delta=0.006$, $p=1$) and the hierarchical baseline is further from it ($\Delta=0.030$). The ordering of the baselines against $V^{R}$ is therefore the same as their ordering against $P$, which is what Lemma~\ref{lem:proxy} predicts when the arms differ mainly in their distance to $\tilde v$, and the gain of the boosting arms over the price is of the order of the price's own selection bias, so that it is as consistent with the arms being unbiased for the resellers as with their having identified a component of value. Third, the bias against $V^{R}$ is close to zero for the boosting arms and positive for the hedonic and hierarchical ones, so that on this subsample the proxy separates estimators by their bias rather than by their dispersion. None of this bears on the agentic arms, whose test will be run on the same footing when the data allow it. \begin{table}[t] \centering \caption{Arm errors against the realised price and against the resale-implied value $V^{R}$ on the evaluated properties with a usable later resale (holding period of at least twelve months, no data-quality flag on the later leg). $e^{P}$ and $e^{R}$ are the log errors against the realised price and against $V^{R}$; $\Delta$ is the paired difference between the arm's mean $|e^{R}|$ and that of the realised price used as an estimate, with the block-bootstrap 95 per cent interval and Holm-adjusted $p$-value; the reason for a placeholder is recorded in \texttt{results/fundamental/eval\_vs\_resale.json}. Source: \texttt{scripts/51\_eval\_vs\_resale.py}, \texttt{results/fundamental/eval\_vs\_resale.csv}.} \label{tab:resale} \small\setlength{\tabcolsep}{4.5pt} \input{tables/tab_resale} \end{table} The conclusion of this section is methodological. Forecasting accuracy and the identification of fundamentals are distinct properties of a valuation method, measured against distinct targets with distinct noise, and the paper keeps them separate. An arm that wins the price-based comparison of Section~\ref{sec:results} has demonstrated proximity to the selected market value; whether it has also demonstrated proximity to the economic fundamental is decided by the resale contrast of Table~\ref{tab:resale}, available for the statistical baselines and deferred for the agentic arms, and by nothing else in the paper. The rent-based diagnostics bound the gap between the two targets over the sample period but do not close it, and we do not claim that any arm discovers fundamental value until a test that could have refuted the claim has been run.