% ============================================================================ \section{Methodology} \label{sec:methodology} % ============================================================================ \subsection{Point-in-time backtesting} The core of the design is a backtest that reproduces, for each target sale $i$ with date $\tau_i$ and price $P_i$, the information set available to a valuer on $\tau_i$. Let $\mathcal{S}$ denote the clean sample. The \emph{candidate pool} of $i$ is \begin{equation} \mathcal{C}_i = \{\, j \in \mathcal{S} : \tau_j < \tau_i,\; \tau_i - \tau_j \le 24 \text{ months},\; d_{ij} \le 25 \text{ km},\; u_j \neq u_i \,\}, \label{eq:pool} \end{equation} where $d_{ij}$ is the great-circle distance and $u_j$ the assessment unit; the last condition excludes prior sales of the subject itself, so that the method is evaluated as a comparable-sales method rather than a repeat-sales one. Every quantity entering a valuation on $\tau_i$ is computed from sales with $\tau_j < \tau_i$: the regional price index used to time-adjust comparables is re-estimated at the start of every month $m$ from all sales in months $< m$ (Section~\ref{sec:index}); adjustment coefficients and benchmark models are re-estimated at the start of every quarter $q$ from all sales in quarters $< q$ (Section~\ref{sec:config}). No configuration, hyperparameter or weight is chosen on test-period data: all are selected on the 2024 validation targets and frozen. A subtle but important consequence is that the price level of the target's own month is never observed. All methods, traditional and machine-learning alike, work at the level of the last fully observed month, exactly as a valuer must. This introduces a small, common and seasonal bias that we report rather than remove. \subsection{Point-in-time price index} \label{sec:index} For each evaluation month $m$ and administrative region $r$ we estimate, on all sales of region $r$ in months $0,\dots,m-1$, the within-municipality regression \begin{equation} \ln P_j = \alpha_{\mu(j)} + \mathbf{x}_j'\boldsymbol{\beta} + \sum_{s