\section{Computation} \label{app:computation} \paragraph{Discretisation of $F$.} The carrying-cost distribution Beta$(a,b)$ on $[c_L,c_H]$ is represented by $n$ types placed at the conditional means of $n$ equal-probability bins, with the bins' masses as weights; the mean of the discretisation equals the Beta mean exactly. Convergence in $n$ is reported in Table~\ref{tab:conv_types}: with 9 types the mean price differs from the 81-type solution by \convTypesRelErr{} percent. \paragraph{Stationary equilibrium.} For a given $\theta$, $\Lambda_s=\phi A\theta^\alpha$ and $U=k$; each $V(c_i)$ is the Brent root of $\Phi$ with bracket $[(-c_i+\delta w_0)/(r+\delta),\,w_H-U]$ (widened by doubling when the support is unbounded), tolerance $10^{-12}$; hazards, stocks and the free-entry residual follow in closed form. The residual is evaluated on 60 log-spaced points of $[0.02,60]$ and Brent's method is applied to every sign change; the number of roots is stored with each result. In the baseline and in all 60 random draws of Table~\ref{tab:uniqueness_draws} there is exactly one root (\uniqMultiple{} draws with several roots, \uniqNone{} without). \paragraph{Financing extension.} With $x=(\ln\theta,U_c,\operatorname{logit}\tilde\pi)$ and $U_m=(k-\pi U_c)/(1-\pi)$, the residual vector consists of the cash and mortgage buyer Bellman equations divided by $r$ and of the stock-consistency condition $\tilde\pi=B_c/(B_c+B_m)$, where $B_c=\pi Q/\xi_c$, $B_m=(1-\pi)Q/(\phi_m\xi_m)$, $\xi_c=\lambda_b\int(1-G(v^*_c))dN$, $\xi_m=\lambda_b\int(1-G(v^*_m))dN$, $n(c)=sf(c)/[\eta_c(c)+\phi_m\eta_m(c)+\delta]$ with $\eta_c=\lambda_s\tilde\pi(1-G(v^*_c))$ and $\eta_m=\lambda_s(1-\tilde\pi)(1-G(v^*_m))$, pending stock $m(c)=\eta_m n/\nu$, and $Q=\int(\eta_c+\phi_m\eta_m)n$. The identity $\theta=(B_c+B_m)/S$ is implied by the flow accounting and is reported as a diagnostic (it holds to $10^{-15}$). The system is solved by a hybrid Powell method with a Levenberg--Marquardt fallback, from the baseline-screen equilibrium; all residuals are below $10^{-15}$ and three different starting points return the same solution. The expected mean prices by financing type are $\bar p_c=V+\beta M(v^*_c)$ and $\bar p_m=V+\beta[E(w\mid w\ge v^*_m)-V-U_m]+\Delta_b$. \paragraph{Posted prices.} $y(c)$ solves $(y-a)g(y)=1-G(y)$ by Brent's method, nested inside the Brent root for $V$; the buyer's surplus per meeting with a type-$c$ seller is $H(y(c))$. \paragraph{Planner.} The flow surplus \eqref{eq:welfare} is maximised over $(\ln\theta,v^*(c_1),\dots,v^*(c_n))$ by Nelder--Mead followed by Powell's method, started at the decentralised allocation; success flags and function evaluations are stored. \paragraph{Transition.} On a grid with step $\Delta t$ (0.02 years in the reported experiments, horizon 8 years), the seller value is updated backward by $V_j=[V_{j+1}+\Delta t(-c+\delta w_0+\Lambda_{s,j}\beta H(V_{j+1}+k))]/[1+(r+\delta)\Delta t]$ from the terminal steady state; the stock is updated forward by $n_{j+1}=(n_j+\Delta t\,sf)/[1+\Delta t(\eta_j+\delta)]$ from the initial steady state; the free-entry condition gives $\theta_j=\{(rk+\kappa_b)/[\phi_jA_j(1-\beta)\int H(V_j+k)dN_j]\}^{1/(\alpha-1)}$; the tightness path is updated with damping 0.3 until the maximum change is below $10^{-7}$ (27 to 46 iterations). Terminal stocks match the new steady state to $10^{-12}$; convergence in $\Delta t$ is reported in Table~\ref{tab:conv_dt}. \paragraph{Monte Carlo validation.} Listings are simulated individually: a type is drawn from $f$, meetings arrive at rate $\Lambda_s$, withdrawal at rate $\delta$, each meeting draws $w\sim G$ and the sale occurs at the first $w\ge v^*(c)$ at the Nash price. Three seeds and $n\in\{2{,}000, 20{,}000, 100{,}000\}$ listings; the maximum absolute relative error between simulated and analytic moments at $n=100{,}000$ is \mcMaxRelErr{} percent, and identical seeds reproduce identical samples. \paragraph{Reproducibility.} All experiments are run by \texttt{python -m src.simulation --exp all} from \texttt{config/baseline.yaml} (SHA-256 hash of the configuration and the software versions are stored with each result), tables by \texttt{python -m src.tables}, figures by \texttt{python -m src.plotting}, tests by \texttt{pytest}, and the manuscript by \texttt{latexmk}; every number in the text is a macro generated from the result files. \begin{table}[H] \centering \caption{Convergence in the number of seller types (model-generated)} \label{tab:conv_types} \footnotesize \input{tables/tab07c_convergence_types} \end{table} \begin{table}[H] \centering \caption{Convergence of the transition solver in the time step (permanent 20 percent fall in $A$, horizon 4 years)} \label{tab:conv_dt} \footnotesize \resizebox{\textwidth}{!}{\input{tables/tab07d_convergence_dt}} \end{table} \begin{figure}[H] \centering \includegraphics[width=\textwidth]{fig13_numerical_convergence.pdf} \caption{Numerical convergence (model-generated). Panel (a): relative deviation of equilibrium objects from the 81-type solution as the number of seller types increases. Panel (b): relative deviation of transition objects from the finest time step.} \label{fig:convergence} \end{figure}