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:

  1. The explicit, regime-path-conditional Riccati recursions for bond prices and for dividend strips of real-estate income, including the augmented (macro, income) state.
  2. 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 state z_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^n regime paths weighted by Markov transition probabilities, and approximated for large n via a constant continuation value Q_j^*.
  • The asset-pricing no-bubble condition is the requirement that the strip sum ∑_n D_n converges. This is exactly equivalent to the spectral radius r(T) < 1 of an infinite-dimensional positive pricing operator T, and is well-approximated by ρ(M) < 1 where M is a finite S × S transfer matrix M_{ij} = π_{ij} exp(c(j)) built from per-regime asymptotic growth rates c(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^Q
  • m^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), the S-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 driving B_{t,t+n} and yields y_{t,t+n} = −(4/n) ln B_{t,t+n}, accurate to n ≈ 40 quarters 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_t of a regime-switching VAR — usable for both bond and CRE asset pricing.
  • Validated finite-dimensional NBC (Section 7.6): the S × S spectral 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) = 1 will still cause numerical Riccati blow-ups. The barrier mitigates but does not eliminate this. The note’s recommendation is to also numerically iterate Q_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 is O(ρ(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 K matrix 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.