Problem
The Leather-Sagi model and the closely related Bikbov-Chernov (2013) framework price commercial real estate (CRE) and bonds in a regime-switching New-Keynesian environment, but they reference the underlying Riccati machinery without writing it out in full. Two interlocking pieces are missing from the published presentation:
- The explicit, regime-path-conditional Riccati recursions for bond prices and for dividend strips of real-estate income, including the augmented
(macro, income)state. - A precise, computable no-bubble (transversality) condition for the asset-pricing recursion — distinct from the macro NBC of Cho-Moreno and Bikbov-Chernov — together with a hierarchy of cheap diagnostics that can be enforced as constraints during MLE/MAP.
Without these, both estimation (where Riccati divergence shows up as a cliff in the likelihood) and validation (where false bubbles produce nonsense cap rates) are fragile.
Key idea
Conditional on a fixed regime path π = (S_t, ..., S_{t+n-1}), the model’s risk-neutral dynamics are time-varying linear-Gaussian, so:
- Bond prices are exponential-affine in the macro state
x_t:B_n^π(x_t) = exp(a_n + b_n' x_t)with linear Riccati recursions for(a_n, b_n). - Dividend strips for asset
j ∈ {Apartment, Industrial, Office}are exponential-affine in the augmented statez_t = (x_t', ν_{j,t})':D_n^π(z_t) = exp(α_n + β_n' z_t)with analogous recursions. - Unconditional prices are obtained by averaging over the
4^nregime paths weighted by Markov transition probabilities, and approximated for largenvia a constant continuation valueQ_j^*. - The asset-pricing no-bubble condition is the requirement that the strip sum
∑_n D_nconverges. This is exactly equivalent to the spectral radiusr(T) < 1of an infinite-dimensional positive pricing operatorT, and is well-approximated byρ(M) < 1whereMis a finiteS × Stransfer matrixM_{ij} = π_{ij} exp(c(j))built from per-regime asymptotic growth ratesc(S).
The note also derives the long-run variance σ²_LR for the regime-switching VAR via stacked first-moment recursions that fold both state and regime persistence into a single 3S × 3S matrix K, and gives a layered diagnostic hierarchy (sufficient → spectral → cumulant → necessary) for use as an MLE constraint.
Method
1. Risk-neutral VAR and bond Riccati
Macro state x_t = (g_t, π_t, r_t)' follows a regime-dependent VAR under Q:
x_t = m^Q(S_t) + Φ^Q(S_t) x_{t-1} + Σ(S_t) ε_t^Qm^Q(S) = m(S) − Σ Σ' Π_0,Φ^Q(S) = Φ(S) − Σ Σ' Π_x(essentially-affine market price of risk)- Short rate
r_t = e_r' x_t
The bond Riccati recursions are derived by guessing B_n = exp(a_n + b_n' x_t), applying the one-step recursion B_{n+1} = E_t^Q[e^{−r_t} B_n(x_{t+1})], and using the Gaussian MGF:
b_{n+1} = Φ^Q(S_{t+1})' b_n − e_r
a_{n+1} = a_n + b_n' m^Q(S_{t+1}) + (1/2) b_n' Σ(S_{t+1}) Σ'(S_{t+1}) b_n
with (a_0, b_0) = (0, 0). Unconditional bond prices sum over 4^n paths weighted by ∏ P(S_{t+k+1}|S_{t+k}). Following Bikbov-Chernov, low-probability paths are pruned; the method is accurate out to n ≈ 40 quarters (10y).
2. Augmented state for CRE assets
For each asset j ∈ {A, I, O}, define z_t = (x_t', ν_{j,t})'. The income growth process
ν_{j,t}^Q = (a_j − ℓ_j) + γ_{j,π} π_t + γ_{j,g} g_t + ρ_j ν_{j,t−1}^Q + u_{j,t}^Q,
with risk premium ℓ_j = λ_Z σ_{j,Z}, is substituted into the VAR to yield a 4 × 4 augmented system
z_t = m_z^Q(S_t) + Φ_z^Q(S_t) z_{t−1} + Σ_z(S_t) ε̃_t^Q
with the standard block-triangular structure (macro evolves freely, income loads on lagged macro through γ_j' Φ^Q(S_t)).
3. Dividend strip Riccati
With the net-of-discount selector h = e_ν − e_r = (0,0,−1,1)', the strip price D_n(z_t) = E_t^Q[exp(∑_{s=t}^{t+n−1}(ν_{j,s} − r_s))] admits the path-conditional guess D_n^π = exp(α_n + β_n' z_t), yielding:
β_{n+1} = Φ_z^Q(S_{t+1})' β_n + h
α_{n+1} = α_n + β_n' m_z^Q(S_{t+1}) + (1/2) β_n' Σ_z(S_{t+1}) Σ_z'(S_{t+1}) β_n
with (α_0, β_0) = (0, 0). The ½ β_n' Σ Σ' β_n term is the Jensen correction the paper identifies as the channel through which time-varying cash-flow volatility moves prices.
4. Finite-horizon P/E and continuation value
The price-earnings ratio is approximated as Q_{j,t} ≈ ∑_{n=1}^{K} D_n(z_t) + D_K(z_t) Q_j^* with K = 39 (10y). The continuation Q_j^* is solved as a fixed point:
Q_j^* = (∑_{n=1}^{K} D̄_n) / (1 − D̄_K)
where D̄_n is the regime-ergodic-average strip price. The cap rate is c_{j,t} = 1 / Q_{j,t}.
5. Long-run variance via stacked recursions (Section 6)
To get D̄_n and the asymptotic strip growth rate, the note derives the long-run variance σ²_LR of δ' x_t (or h' z_t) under the regime-switching VAR. Stacking the Bikbov-Chernov first-moment recursion across regimes:
Â_{N+1} = Π Â_N + M B_N
B_{N+1} = Δ + K B_N
with K_{mm'} = π_{f(m),f(m')} Φ^Q_{g(m'),g(m)}(f(m')) the total persistence matrix that fuses state-variable mean reversion with regime-switching dynamics. Closed-form limits:
B_∞ = (I − K)^{−1} Δ(geometric convergence underρ(K) < 1)Â_∞ = ((I − Π + Π^U)^{−1} M (I − K)^{−1} − Π^U M (I − K)^{−2}) Δ
These feed a closed-form expression for lim_N (1/N) Var[∑ y_t] (Section 6.6).
6. Asset-pricing no-bubble condition (Section 7)
Two complementary statements:
Cumulant condition (Section 7.3): λ* = h' z̄^Q + ½ σ²_LR < 0, derived from the Lyapunov exponent of the strip process via a two-cumulant expansion. Decomposes into discounting (negative), Q-measure income growth (positive, amplified by 1/(1−ρ_j)), and Jensen / regime convexity (positive).
Spectral radius condition (Section 7.6): Define per-regime asymptotic growth c(S) = μ_z^Q(S)' B^*(S) + ½ B^*(S)' Σ_z(S) Σ_z'(S) B^*(S) and the S × S transfer matrix M_{ij} = π_{ij} exp(c(j)). Then by Perron-Frobenius:
ρ(M) < 1
is the (approximate, conservative) NBC. Two natural choices for the steady-state loading B^*(S):
- Absorbing:
B^{abs}(S) = (I − Φ_z^Q(S)')^{−1} h— assumes regime persists forever; conservative bias. - Stacked:
B̃(S), theS-th block of(I − K)^{−1} Δ— averages over regime transitions at the first-moment level; better median accuracy but slightly less conservative.
In Section 7.11 validation across 100 parameter draws, the stacked proxy has median absolute error 0.004 in ρ(M) and 97% classification accuracy; absorbing is recommended as a safety backstop.
Layered diagnostic hierarchy (Section 7.7): max_S c(S) < 0 (sufficient) → ρ(M) < 1 (spectral) → λ* < 0 (cumulant) → ∑_S π_S^U c(S) < 0 (necessary). Run all four; spectral is the primary verdict.
Smooth NBC barrier (Section 7.8): 1 − ρ(M(θ)) is a smooth function of θ (away from eigenvalue crossings) and can be added as a log-barrier −λ_b log(1 − ρ(M)) to the negative log-likelihood, replacing the brittle “iterate Riccati and check it didn’t blow up” approach.
7. Stacked stationarity vs. per-regime stability (Section 7.9)
A subtle and load-bearing result from MJLS theory: per-regime stability of Φ^Q(S) is necessary but not sufficient for stationarity of the stacked system. Two individually stable matrices can produce an unstable Markov-modulated product. The correct enforcement is ρ(K) < 1 directly, where K is the 3S × 3S (or 4S × 4S for the augmented state) total persistence matrix from Section 6.
Results
This is a derivation note, not an empirical paper, but it produces several concretely usable artifacts:
- Bond Riccati (Section 2.3): closed-form
(a_n, b_n)recursion drivingB_{t,t+n}and yieldsy_{t,t+n} = −(4/n) ln B_{t,t+n}, accurate ton ≈ 40quarters under path pruning. - Dividend-strip Riccati (Section 4): closed-form
(α_n, β_n)recursion for CRE income strips on the augmented(x_t, ν_{j,t})state. - Closed-form long-run variance (Section 6.6) for any linear functional
δ' x_tof a regime-switching VAR — usable for both bond and CRE asset pricing. - Validated finite-dimensional NBC (Section 7.6): the
S × Sspectral radius test with stacked + absorbing loadings, with 97% accuracy and median error 0.004 inρ(M)validated on 100 draws across 4 strata of the economically relevant region. - Smooth NBC barrier for MLE (Section 7.8):
−log(1 − ρ(M))as a differentiable constraint, replacing the catastrophic Riccati-divergence cliff.
In the project’s wider arc, the absorbing spectral proxy is now the production no-bubble gate: 99.1% accuracy vs. 63.3% for the deprecated get_lim_η heuristic, and 2.87× more feasible Sobol points. The constraint ρ(K) < 1 from Section 7.9 is the stacked-stationarity check enforced at every parameter evaluation.
Limitations
- Riccati divergence at the boundary: even with the spectral barrier, parameters very close to
ρ(M) = 1will still cause numerical Riccati blow-ups. The barrier mitigates but does not eliminate this. The note’s recommendation is to also numerically iterateQ_j^*as a final sanity check (Section 7.9, item 3). - Loading approximation error: neither the absorbing nor the stacked loading is the true eigenfunction of the operator
T. The error isO(ρ(K)^n), exponentially small at high regime persistence, but in low-persistence regimes the spectral test can disagree with direct iteration. - Path pruning for the unconditional bond price is heuristic — Bikbov-Chernov’s accuracy claim is only validated empirically out to
n ≈ 40. - Cumulant truncation at second order (Section 7.3) is order-of-magnitude only when one regime has
c(S) > 0; the spectral radius condition is the only one that captures all-orders regime-switching effects. - Risk-premium parameterization is tied to the Bikbov-Chernov essentially-affine specification; alternative SDF specifications (e.g., Epstein-Zin, ambiguity-averse) would require redoing Sections 1 and 7.4.
Open questions
- Exact eigenfunction of
T: is there a tractable characterization of the true (non-approximate) loading, e.g., as the fixed point of a coupled nonlinear system across regimes? - Tightness of stacked vs. absorbing: which loading is uniformly better across the full Leather-Sagi parameter region, or is the “stacked primary, absorbing backstop” hybrid actually optimal?
- Higher-order cumulants: is there a regime where the third cumulant matters, and if so what is the analog of the
Kmatrix that captures it? - MLE pathologies near the boundary: how does the smooth log-barrier interact with the m_g IS-stationarity constraint and with the BOBYQA optimizer used in the project’s 54-D estimation pipeline?
My take
This note is the load-bearing internal derivation for the entire CRE asset pricing arc. Two contributions stand out: (1) the explicit dividend-strip Riccati on the augmented state, which is what the production code (compute_quadratic_pricing_factors_msvar, Riccati recursion expecting a row-vector δ) actually implements; and (2) the spectral-radius NBC, which is the feasibility check that turned the project from “if you wander into a bubble region the code crashes” into “the optimizer steers smoothly away from the boundary.” The 99.1%-accurate absorbing spectral proxy that is now the production gate is a direct descendant of Section 7.6.
The cleanest pedagogical move in the note is the realization that per-regime stability does not imply stacked stationarity (Section 7.9). It is the kind of subtlety that costs months when discovered numerically and ten lines when stated explicitly.
Related
- coupled-riccati-recursions-regime-switching-asset
- spectral-radius-test-markov-pricing-operator
- bond-dividend-strip-prices-regime-switching
- asset-pricing-no-bubble-condition-regime
- david-leather
- jacob-sagi
- commercial-real-estate-pricing-regimes
- markov-switching-term-structure-models
- markov-jump-linear-systems-control-filtering
- switching-state-estimation