Housing Tenure-Choice Model¶
An agent lives for \(T\) periods holding assets \(a \geq 0\) and a housing stock \(H \geq 0\). Each period she receives a Markov income shock \(y\) and then decides whether to own or rent housing. On the ownership path she adjusts her housing stock \(H'\) (paying a transaction cost \(\phi\) when \(H' \neq H\)) and consumes; on the rental path she liquidates housing into cash and rents services \(S\) at unit price \(P_r\).
This is the model of Fella (2014), solved via DC-EGM with the FUES upper envelope of Dobrescu & Shanker (2024). See Housing owner-only model for the sequential (non-branching) submodel.
Branching syntax
See Spec 0.1l — Branching stages for the full specification.
Bellman Equation¶
Let \(V_t(a, H, y_{\text{pre}})\) be the value of an agent entering period \(t\) with assets \(a\), housing \(H\), and previous income state \(y_{\text{pre}}\). After the income shock \(y\) is realized:
Own branch. The agent keeps or adjusts housing, then consumes:
subject to \(a' = w_{\text{oc}} - c \geq 0\), where cash-on-hand after housing adjustment is
Rent branch. The agent liquidates housing, rents services \(S\), then consumes:
subject to \(a' = w_{\text{rc}} - c \geq 0\), where cash-on-hand after rental payment is
Note that renters arrive at the next period with \(H = 0\).
Utility is CES in consumption and housing services:
where \(h = H'\) for owners and \(h = S\) for renters. When \(\gamma = 1\) this reduces to Cobb-Douglas; the solver handles this limit.
Terminal condition: \(V_{T+1} \equiv 0\).
T-Calculus Decomposition¶
The period decomposes into five stages. Each has forward transitions \(\mathrm{g}_{\prec\sim}\), \(\mathrm{g}_{\sim\succ}\) and backward movers \(\mathbb{B}\), \(\mathbb{I}\).
TenureChoice (branching, \(x_\prec = \{a, H, y_{\text{pre}}\}\), \(x = \{a, H, y\}\)):
OwnerHousing (own path, \(x_\prec = \{a_o, H_o, y_o\}\), \(x_\succ = \{w_{\text{oc}}, H_{\text{nxt}}, y_o\}\)):
OwnerCons (own path, \(x_\prec = \{w_{\text{oc}}, H_{\text{nxt}}, y_o\}\), \(x_\succ = \{b_o, H_{\text{nxt}}, y_o\}\)):
RenterHousing (rent path, \(x_\prec = \{w_r, y_r\}\), \(x_\succ = \{w_{\text{rc}}, S, y_r\}\)):
RenterCons (rent path, \(x_\prec = \{w_{\text{rc}}, S, y_r\}\), \(x_\succ = \{b_r, H_r, y_r\}\)):
Period Composition¶
Both branches terminate with poststates that map to the next period's arrival \((a, H, y_{\text{pre}})\) via a uniform inter-period connector:
A renter arriving with \(H = 0\) who chooses own starts from \(w_{\text{oc}} = (1+r)a + z[y]\) — no housing equity.
Period Structure¶
The income shock \(y\) is realized at tenure_choice (arrival to decision). The own branch passes \((a, H, y)\) to owner_housing; the rent branch converts everything to cash \(w_r = (1+r)a + z[y] + H\) and passes \((w_r, y)\) to renter_housing. Both consumption stages output end-of-period assets and housing stock — the renter sets \(H_r = 0\) explicitly, so the inter-period connector is a uniform rename.
Stages¶
Each stage is documented with its dolo-plus YAML specification:
| # | Stage | Kind | Control | Method |
|---|---|---|---|---|
| 1 | tenure_choice | branching | \(d \in \{\text{own}, \text{rent}\}\) | max aggregator + \(\mathbb{E}_{y\|y_{\text{pre}}}\) |
| 2 | owner_housing | sequential | \(H' \in X_H\) (discrete) | discrete max over housing grid |
| 3 | owner_cons | sequential | \(c > 0\) (continuous) | EGM + FUES |
| 4 | renter_housing | sequential | \(S \in X_S\) (discrete) | discrete max over rental grid |
| 5 | renter_cons | sequential | \(c > 0\) (continuous) | EGM + FUES |
Period, Nest, and Calibration¶
See Period and nest wiring for the period template, inter-period connectors, and calibration.