BCW2011 Case Study#
Use this page to keep the four BCW repository cases in one frame. After you have run the scripts once, this is the cleanest place to align notation, numerical targets, and implementation patterns.
The repository currently covers four paper-aligned cases:
src/example/BCW2011Liquidation.pysrc/example/BCW2011Refinancing.pysrc/example/BCW2011Hedging.pysrc/example/BCW2011CreditLine.py
The shared paper transcript used for equation references is:
src/example/A_unified_theory_of_tobin's_q,_corporate_investment,_financing,_and_risk_management.md
What The BCW Path Teaches#
The BCW track is the shortest route from a continuous-time corporate finance paper to a runnable one-dimensional FinHJB implementation.
It teaches three things at the same time:
how BCW reduces a two-state problem to one state by homogeneity,
how that reduced problem is expressed in the FinHJB class interface,
how endogenous boundaries become numerical search targets.
Common Notation And Mapping#
All four BCW examples use the same one-dimensional reduction:
The paper’s objects map to repository objects as follows:
Paper object |
Meaning |
Repository object |
|---|---|---|
|
cash-capital ratio |
|
|
value-capital ratio |
|
|
marginal value of cash |
|
|
curvature |
|
|
average q |
derived series |
|
marginal q |
derived series |
policy functions |
|
|
The FinHJB interface mapping is equally stable across the four scripts:
FinHJB class |
BCW role |
|---|---|
|
Table I primitives and case-specific parameters |
|
left/right boundary values and state limits |
|
control variables stored on the grid |
|
FOCs or explicit policy updates |
|
HJB residual and outer boundary targets |
Four Cases, Four Modeling Patterns#
Case |
Script |
Paper figure |
Main numerical idea |
Main economic idea |
|---|---|---|---|---|
Case I |
|
Figure 2 |
one-target payout-boundary search |
severe financing distress triggers disinvestment |
Case II |
|
Figure 3 |
two-target search over |
equity issuance softens the liquidation region |
Case IV |
|
Figure 6 |
two-control HJB plus hedge-region diagnostics |
hedging and liquidity management are complements |
Case V |
|
Figure 7 |
piecewise HJB over cash and debt regions |
credit lines reduce the marginal value of liquidity |
How Paper Boundary Conditions Become Numerical Targets#
One of the main reasons to study the BCW examples is that they show how a paper’s boundary language becomes runnable code.
The recurring pattern is:
a paper equation specifies a boundary value,
a paper optimality condition specifies a searched unknown,
the solver searches until the grid satisfies the target residual.
Examples:
liquidation: search
\bar wuntilp''(\bar w)=0,refinancing: search
p(0)and\bar w, then infermfromp'(m)=1+\gamma,hedging: keep the refinancing boundary logic but solve a richer policy problem,
credit line: keep issuance and payout logic while switching the HJB residual across regimes.
Reading Order#
If your goal is to understand the package through BCW rather than just run the scripts, use this order:
The walkthroughs are the derivation-and-code bridge. Results and Diagnostics is the solver-facing companion once you already understand the case logic.
Stable Magnitudes To Cross-Check#
Healthy runs in this repository usually look like this:
Case |
Stable magnitudes |
|---|---|
Liquidation |
|
Refinancing |
with |
Hedging |
costly margin: |
Credit line |
with |
These are the right first checks before you worry about small grid-to-grid differences.
Which Walkthrough To Use As A Template#
If you later adapt BCW to your own model, pick the closest structural example:
liquidation for one control and one endogenous payout boundary,
refinancing for issuance and smooth pasting at an interior target,
hedging for multiple controls and control-dependent variance,
credit line for regime-dependent residuals on one shared grid.