\begin{table}[t]\centering
\caption{Out-of-sample valuation performance (80/20 split)}
\label{tab:oos}
\begin{threeparttable}
\begin{tabular}{lc}
\toprule
Metric & Value \\
\midrule
Training listings & 112,732 \\
Test listings & 28,187 \\
Out-of-sample $R^2$ (log price) & 0.764 \\
RMSE (log points) & 0.282 \\
Median absolute \% error & 15.8\% \\
Mean absolute \% error & 22.5\% \\
Share priced within $\pm$10\% & 33.8\% \\
Share priced within $\pm$20\% & 59.5\% \\
\bottomrule
\end{tabular}
\begin{tablenotes}\footnotesize\item Notes: Model trained on a random 80\% of listings and scored on the held-out 20\% (restricted to neighbourhoods observed in training). Prices back-transformed with Duan's smearing estimator.
\end{tablenotes}
\end{threeparttable}
\end{table}
