\section{SHARP-HPI: framework and identification}\label{sec:framework} \subsection{Decomposition} For a sale $i$ of class $k$ in month $t(i)$, located in municipality $u(i)$, MRC $m(i)$ and region $r(i)$, and in fine-location cell $\ell(i)$, the model is \begin{equation} \log P_i \;=\; f_k\!\big(x_i; \theta_{k,t(i)}\big) \;+\; \alpha_{k,\ell(i)} \;+\; \mu_{k,t(i)} \;+\; \delta^{R}_{r(i),k,t(i)} \;+\; \delta^{M}_{m(i),k,t(i)} \;+\; \delta^{U}_{u(i),k,t(i)} \;+\; \varepsilon_i . \label{eq:model} \end{equation} The function $f_k$ is a flexible hedonic surface (cubic in centred log floor area, quadratic in centred log lot area, age in nine bins, storeys, building genre, physical-link subtype for houses and number of dwellings for plexes, with time-stable missingness indicators) whose floor-area and lot-area coefficients are allowed to move linearly in a centred time index; $\alpha_{k,\ell}$ is a location fixed effect at the finest grid cell with at least fifteen sales of the class; $\mu_{k,t}$ is the provincial path (a month effect); and the three $\delta$ terms are nested deviations of the region from the province, of the MRC from its region and of the municipality from its MRC. The quality-constant log level of municipality $u$ is $L_{u,k,t} = \mu_{k,t} + \delta^R_{r(u),k,t} + \delta^M_{m(u),k,t} + \delta^U_{u,k,t}$; the level of an MRC omits the last term and that of a region the last two. The cell-level spatial residual $u_{\text{spatial},t}$ of the protocol is absorbed by $\alpha_{k,\ell}$ in the cross-section and by the nesting in time; its remaining extent is measured by Moran's $I$ of the residuals (Section~\ref{sec:validation}). \subsection{Temporal evolution of the deviations} Each deviation follows a local-level process, \begin{equation} \delta_{g,t} = \delta_{g,t-1} + \eta_{g,t}, \qquad \eta_{g,t} \sim N(0, \tau_g^2), \label{eq:ll} \end{equation} and is observed through the monthly mean of the stage-one residuals of the cell net of its parent's deviation, \begin{equation} \bar y_{g,t} = \delta_{g,t} + e_{g,t}, \qquad e_{g,t} \sim N\!\left(0, \sigma_g^2 / n_{g,t}\right), \label{eq:obs} \end{equation} with no observation in months where $n_{g,t}=0$. A local-linear-trend alternative adds a stochastic slope to \eqref{eq:ll}; it is estimated as an ablation and did not improve on the local level (Section~\ref{sec:simulation}). The observation variance $\sigma_g^2$ is the cell's robust residual variance shrunk toward the class variance with weight $N_g/(N_g+100)$ for cells with few sales. \subsection{Identification and constraints} Three constraints identify \eqref{eq:model}. (i) The month effects $\mu_{k,t}$ are normalised at zero in January 2021 and the location effects are absorbed, so that $\mu$ is the provincial path for a dwelling of fixed attributes in a fixed cell. (ii) The deviations are deviations from the parent: because the location fixed effects absorb each cell's mean residual over the sample, every $\delta_{g,\cdot}$ has zero sample mean by construction and a diffuse initial state; a region's level is therefore the province's plus a zero-mean relative movement, which is what makes the hierarchy additive and the indices coherent in logs. (iii) The innovation variances $\tau_g^2$ are identified from the autocovariance of $\bar y_{g,t}$ only when the cell has several observed months; for the many cells where this is not the case the variance is calibrated across cells (next subsection). The real-time property follows from \eqref{eq:ll}--\eqref{eq:obs}: the filtered estimate of $\delta_{g,t}$ uses $\bar y_{g,1},\ldots,\bar y_{g,t}$ only. \subsection{Adaptive pooling through empirical-Bayes calibration} The Kalman gain of \eqref{eq:ll}--\eqref{eq:obs} is $\kappa_{g,t} = p_{g,t|t-1}/(p_{g,t|t-1} + \sigma_g^2/n_{g,t})$, where $p_{g,t|t-1}$ is the predictive variance of the state. It is the weight of the month's local data in the updated estimate and it depends on the cell through $\tau_g^2$ and $\sigma_g^2$ and on the month through $n_{g,t}$: a liquid month in a volatile cell gets a gain near one; an empty month gets zero and the estimate is the parent-consistent prediction. The adaptive element is the calibration of $\tau_g^2$. Estimating it by maximum likelihood cell by cell is unstable for thin cells (the profile likelihood is flat and often maximised at the boundary, which produces either a frozen deviation or one that chases noise). We instead place a normal prior on $\log\tau_g^2$ shared by all cells of a level, $\log \tau_g^2 \sim N(m_\ell, v_\ell)$, estimate $(m_\ell, v_\ell)$ by a grid EM algorithm that maximises the marginal likelihood $\sum_g \log \int L_g(\tau^2)\, dN(\log\tau^2; m_\ell, v_\ell)$ over the cells of the level, and set each cell's $\tau_g^2$ to its posterior mode. A liquid cell is driven by its own likelihood; a thin cell inherits the level's typical signal-to-noise ratio. This is the empirical-Bayes logic of \citet{efronmorris1973} and \citet{fayherriot1979} applied to a dynamic variance component; it is not new, and its value is established by the ablation that replaces it with per-cell maximum likelihood. \subsection{Robust innovations} Transaction-level outliers are handled in stage one by Huber-type iteratively reweighted least squares ($k = 1.345$ on MAD-standardised residuals). Monthly mean residuals can still be contaminated when a cell has few sales, so the state-space step down-weights months whose standardised innovation exceeds 1.345 by inflating their observation variance (two passes), a pragmatic approximation to a Student-$t$ observation density in the spirit of \citet{francke2017hierarchical}. The Gaussian variant is an ablation. \subsection{Reliability bundle} For every cell-month the panel records $n_{g,t}$; the effective sample size $\mathrm{ESS}_{g,t} = \sigma_g^2 / \Var(\hat\delta_{g,t})$, the number of transactions whose simple mean would have the posterior variance of the estimate; the local-data weight $\kappa_{g,t}$; the posterior standard error of the log level, which sums the state variances along the hierarchy and the stage-one variance of $\mu_{k,t}$ (treating levels as independent, an approximation examined by bootstrap); the covariate overlap; the lag-one autocorrelation of the observed deviations; and the one-step-ahead standardised innovation, whose root mean square should be one if the model is calibrated out of time. Grades A to E are thresholds on ESS and the posterior standard error, anchored on the Monte Carlo coverage results (Table~\ref{tab:grades}). The local-data weight is a Kalman gain, not a probability or a quality score, and the panel documents it as such.