[v0.4.0] Vault: equity-cushion / book-quality model #54

Closed
opened 2026-09-29 18:58:13 +00:00 by Winnie · 9 comments
Owner

Part of #39. Thesis: vault models risk as loss-absorbing capital and acquired-book quality - what a failed bank's book is worth to it, how much equity cushion it has, bond premium as compensation for time and default. Scenarios: base, bond-economy, thin-margins, tight-cash. Distinct from the other three brains: no shared calc helpers. Bench numbers in comments, PR per winning iteration.

Part of #39. Thesis: vault models risk as loss-absorbing capital and acquired-book quality - what a failed bank's book is worth to it, how much equity cushion it has, bond premium as compensation for time and default. Scenarios: base, bond-economy, thin-margins, tight-cash. Distinct from the other three brains: no shared calc helpers. Bench numbers in comments, PR per winning iteration.
Winnie self-assigned this 2026-09-29 18:58:13 +00:00
Author
Owner

Vault agent: start. Working #54 now.

Thesis locked in: vault is the treasury-and-vulture. It models risk as loss-absorbing capital and acquired-book quality:

  • Equity cushion: how big equity is relative to its loan book (loans outstanding amortized by term vs equity) — capacity for bond-market lending and deposits is derived from the cushion, not from appetite.
  • Book quality: what a failed bank's book is actually WORTH at auction — loans marked down by expected cumulative default over remaining term, bond assets priced by remaining turns to maturity — not face value.
  • Bond lending as time + default: implied per-turn return on a bond offer must clear default risk + a term premium; when the implied return beats what the cushion can safely carry, it lends.

Signature moves: lend into the bond market when implied return clears the hurdle; vulture failed banks' books at a discount it computed itself; hold capital instead of chasing volume when the cushion runs thin.

Scenarios: base, bond-economy, thin-margins, tight-cash. Every step will be logged here with bench numbers.

**Vault agent: start.** Working #54 now. Thesis locked in: vault is the **treasury-and-vulture**. It models risk as *loss-absorbing capital* and *acquired-book quality*: - **Equity cushion**: how big equity is relative to its loan book (loans outstanding amortized by term vs equity) — capacity for bond-market lending and deposits is derived from the cushion, not from appetite. - **Book quality**: what a failed bank's book is actually WORTH at auction — loans marked down by expected cumulative default over remaining term, bond assets priced by remaining turns to maturity — not face value. - **Bond lending as time + default**: implied per-turn return on a bond offer must clear default risk + a term premium; when the implied return beats what the cushion can safely carry, it lends. Signature moves: lend into the bond market when implied return clears the hurdle; vulture failed banks' books at a discount it computed itself; hold capital instead of chasing volume when the cushion runs thin. Scenarios: base, bond-economy, thin-margins, tight-cash. Every step will be logged here with bench numbers.
Author
Owner

Baseline measured (30 games/preset, v3 on current master 7f503c4, gauntlet off):

scenario vault wins vault avg eq winner
base 0/30 597 empire 19
bond-economy 0/30 67 mill 21
thin-margins 0/30 912 empire 17
tight-cash 0/30 969 empire 15

Overall vault: 4/390 wins (1.0%), avg eq 1,582. The v3 vault is structurally broken: it pays above mill for deposits (avg−0.5t vs avg−0.75t) so it loses every Vickrey loan; it prices loans at funding + 1.2× the die rank (highest risk price in the market) so it never wins a loan; and its bond offers price a 0.2%/turn return against a ~2% deposit cost (negative carry). Only the 0.97× auction nibble does anything.

Iteration 1 hypothesis (v4 rebuild — treasury-and-vulture):

  1. Deposit rate driven by the cushion: pay avg − rate-temp×(1 + 1/cushion) — when equity ≫ book, vault is the cheapest funder in the market (below mill), which flips the loan market to it via Vickrey; when the cushion thins, vault sheds deposits and holds capital.
  2. Cushion = equity / (loan-book + 0.5×loan-min) — its one world observable, used everywhere.
  3. Own risk model: compound default survival 1−(1−1/faces)^term amortized over the live market term (no shared flat 1/faces helper) + a capital charge rate-temp/cushion that prices vault out of volume when equity runs thin.
  4. Bond lending as time+default: lend at the front of the market queue when the implied return clears its floor (time premium + counterparty-default compensation, term in the price); commit only equity spare capital, never the deposit base; hold capital otherwise.
  5. Vulture with its own book-quality discount: bid net × (1 − 0.5×cum-default(market term)) — full price in safe markets (d100 → 0.96×net, beats adapt's 0.93), a real haircut in risky ones — with a liquidity buffer so bidding never starves the treasury.

Building + smoke-testing now.

**Baseline measured** (30 games/preset, v3 on current master 7f503c4, gauntlet off): | scenario | vault wins | vault avg eq | winner | |---|---|---|---| | base | 0/30 | 597 | empire 19 | | bond-economy | 0/30 | 67 | mill 21 | | thin-margins | 0/30 | 912 | empire 17 | | tight-cash | 0/30 | 969 | empire 15 | Overall vault: 4/390 wins (1.0%), avg eq 1,582. The v3 vault is structurally broken: it pays *above* mill for deposits (avg−0.5t vs avg−0.75t) so it loses every Vickrey loan; it prices loans at funding + **1.2×** the die rank (highest risk price in the market) so it never wins a loan; and its bond offers price a 0.2%/turn return against a ~2% deposit cost (negative carry). Only the 0.97× auction nibble does anything. **Iteration 1 hypothesis (v4 rebuild — treasury-and-vulture):** 1. *Deposit rate driven by the cushion*: pay `avg − rate-temp×(1 + 1/cushion)` — when equity ≫ book, vault is the cheapest funder in the market (below mill), which flips the loan market to it via Vickrey; when the cushion thins, vault sheds deposits and holds capital. 2. *Cushion* = `equity / (loan-book + 0.5×loan-min)` — its one world observable, used everywhere. 3. *Own risk model*: compound default survival `1−(1−1/faces)^term` amortized over the live market term (no shared flat `1/faces` helper) + a capital charge `rate-temp/cushion` that prices vault out of volume when equity runs thin. 4. *Bond lending as time+default*: lend at the front of the market queue when the implied return clears its floor (time premium + counterparty-default compensation, term in the price); commit only equity spare capital, never the deposit base; hold capital otherwise. 5. *Vulture with its own book-quality discount*: bid `net × (1 − 0.5×cum-default(market term))` — full price in safe markets (d100 → 0.96×net, beats adapt's 0.93), a real haircut in risky ones — with a liquidity buffer so bidding never starves the treasury. Building + smoke-testing now.
Author
Owner

Iteration 1 measured (v4 rebuild, 30 games/preset, quick bench):

scenario vault wins vault avg eq winner
base 3/30 (0→3) 7,469 (597) empire 15
bond-economy 0/30 488 (67) mill 18
thin-margins 1/30 (0→1) 792 (912) mill 16
tight-cash 21/30 (0→21) 2,327 (969) vault

Overall: vault 168/390 wins (43.1%, from 4), avg eq 29,124 (from 1,582). Empire 120, mill 93, adapt 0. No [ai errors, no accounting divergences, smoke clean.

Verdict: the cushion model works — vault is now the cheapest funder (its loan bids clear when the cushion is deep), the vulture haircut wins auctions in safe markets, and tight-cash is already vault's. 1 of 4 scenarios won. Still short: in thin-margins vault has no income at all (deposits cost ~1,000/turn while its loan bid of funding+1% clears the 1.2% cap only when funding is dirt cheap — and its deposit base is still big when it matters); in bond-economy the whole market returns ~0.1%/turn and vault sits in cash while mill grinds out tiny loan income.

Iteration 2 hypothesis:

  1. Thin-margins/bond-economy are income-starved scenarios. The treasury must shed deposits AGGRESSIVELY when nothing clears the hurdle — cut the deposit floor to near-zero and make the shed multiplier steeper (rate = avg − t×(2 + 2/cushion)), so vault's funding cost drops toward 0 fast and its loan line clears even a 1.2% cap.
  2. Lend bonds into thin markets anyway: lower the time-compensation floor so vault is the front lender in sub-0.5% markets (floor = 0.125×rate-temp), capturing the whole tiny-but-real bond income.
  3. Vulture harder in safe markets: in d100 the haircut is already ~4% — raise the bid to net×(1−haircut) without the 0.5 loan-share assumption when the market term is short and the die is gentle.

Spectating all 4 scenarios now to verify where vault's cash actually goes.

**Iteration 1 measured** (v4 rebuild, 30 games/preset, quick bench): | scenario | vault wins | vault avg eq | winner | |---|---|---|---| | base | 3/30 (0→3) | 7,469 (597) | empire 15 | | bond-economy | 0/30 | 488 (67) | mill 18 | | thin-margins | 1/30 (0→1) | 792 (912) | mill 16 | | tight-cash | **21/30 (0→21)** | 2,327 (969) | **vault** | Overall: vault 168/390 wins (43.1%, from 4), avg eq 29,124 (from 1,582). Empire 120, mill 93, adapt 0. No `[ai` errors, no accounting divergences, smoke clean. **Verdict**: the cushion model works — vault is now the cheapest funder (its loan bids clear when the cushion is deep), the vulture haircut wins auctions in safe markets, and tight-cash is already vault's. **1 of 4 scenarios won.** Still short: in thin-margins vault has no income at all (deposits cost ~1,000/turn while its loan bid of funding+1% clears the 1.2% cap only when funding is dirt cheap — and its deposit base is still big when it matters); in bond-economy the whole market returns ~0.1%/turn and vault sits in cash while mill grinds out tiny loan income. **Iteration 2 hypothesis**: 1. *Thin-margins/bond-economy are income-starved scenarios.* The treasury must shed deposits AGGRESSIVELY when nothing clears the hurdle — cut the deposit floor to near-zero and make the shed multiplier steeper (rate = avg − t×(2 + 2/cushion)), so vault's funding cost drops toward 0 fast and its loan line clears even a 1.2% cap. 2. *Lend bonds into thin markets anyway*: lower the time-compensation floor so vault is the front lender in sub-0.5% markets (floor = 0.125×rate-temp), capturing the whole tiny-but-real bond income. 3. *Vulture harder in safe markets*: in d100 the haircut is already ~4% — raise the bid to net×(1−haircut) without the 0.5 loan-share assumption when the market term is short and the die is gentle. Spectating all 4 scenarios now to verify where vault's cash actually goes.
Author
Owner

Iteration 2 measured (v5: zero deposit floor + book-quality loan gate + halved bond floor; 30 games/preset):

scenario vault wins vault avg eq winner
base 3/30 6,783 empire 16
bond-economy 10/30 (0→10) 1,290 mill 13
thin-margins 7/30 (1→7) 4,383 empire 13
tight-cash 17/30 2,135 vault

Overall: vault 144/390 (36.9%), avg eq 25,665. Mill 91, empire 151, adapt 0. Clean smoke, no [ai errors.

What the v5 fixes did: paying 0 for deposits when nothing deploys turned vault from a bleeder into the cheapest funder (bond-economy avg eq 1,290 — best in scenario, 2× mill's 626 — but mill still edges the win count 13–10); the book-quality gate stops vault growing a book the market is bleeding (bond-economy's 3.08% loans vs 3.33% honest loss). tight-cash held.

Remaining gaps: bond-economy wins are within noise of mill (13–10, seat-order ties favor mill seat 2 over vault seat 3); thin-margins is empire's by design (its duration-discount bid is tailor-made for a 1.2% cap) and vault sits second at 7; base unchanged at 3 — the loan gate keeps vault out of base's 2.8–3.0% early market (right call) but vault has no replacement income there besides bond lending.

Iteration 3 hypothesis: inspect the base auction books — if failed books are positive-net there, vault's 0.87× haircut is leaving every bargain to adapt's 0.93×, and the vulture haircut should be tightened (the 0.5 loan-share assumption is the over-conservative dial). Also: loosen the bond-offer cushion gate so vault's treasury lending fires in base (cushion > 1.5 blocks a 20k-equity treasury with a small book — the gate should be cushion > 1.0).

**Iteration 2 measured** (v5: zero deposit floor + book-quality loan gate + halved bond floor; 30 games/preset): | scenario | vault wins | vault avg eq | winner | |---|---|---|---| | base | 3/30 | 6,783 | empire 16 | | bond-economy | 10/30 (0→10) | **1,290** | mill 13 | | thin-margins | 7/30 (1→7) | 4,383 | empire 13 | | tight-cash | **17/30** | 2,135 | **vault** | Overall: vault 144/390 (36.9%), avg eq 25,665. Mill 91, empire 151, adapt 0. Clean smoke, no `[ai` errors. **What the v5 fixes did**: paying 0 for deposits when nothing deploys turned vault from a bleeder into the cheapest funder (bond-economy avg eq 1,290 — best in scenario, 2× mill's 626 — but mill still edges the win count 13–10); the book-quality gate stops vault growing a book the market is bleeding (bond-economy's 3.08% loans vs 3.33% honest loss). tight-cash held. **Remaining gaps**: bond-economy wins are within noise of mill (13–10, seat-order ties favor mill seat 2 over vault seat 3); thin-margins is empire's by design (its duration-discount bid is tailor-made for a 1.2% cap) and vault sits second at 7; base unchanged at 3 — the loan gate keeps vault out of base's 2.8–3.0% early market (right call) but vault has no replacement income there besides bond lending. **Iteration 3 hypothesis**: inspect the base auction books — if failed books are positive-net there, vault's 0.87× haircut is leaving every bargain to adapt's 0.93×, and the vulture haircut should be tightened (the 0.5 loan-share assumption is the over-conservative dial). Also: loosen the bond-offer cushion gate so vault's treasury lending fires in base (cushion > 1.5 blocks a 20k-equity treasury with a small book — the gate should be cushion > 1.0).
Author
Owner

Iteration 3 measured (v6: bleed-latch loan discipline — quick bench, 30 games/preset):

scenario vault wins vault avg eq winner
base 0/30 5,703 empire 20
bond-economy 23/30 1,236 vault
thin-margins 7/30 4,383 empire 13
tight-cash 25/30 920 vault

Overall: vault 152/390 (39.0%), avg eq 21,269 — near-par with empire 160.

What the v6 latch does: after the market hands vault a book that yields less than the honest per-turn loss (1−(1−1/faces)¹×tolerance), vault marks the market as bleeding it and refuses to grow that book until the field of bidders shifts (a bank dies → re-probe). This killed the bond-economy death spiral — vault had been re-entering the loan market every time its book emptied, buying 3.08% loans against 3.33% true default risk in waves. Now it sits out until the clearing restructures, and bond-economy + tight-cash are both vault's (2 of 4 scenarios ✓).

Measured variants: adding a time-based latch reset (re-probe after 1×/2× bond-term) REGRESSED bond-economy to 14–16 wins (the probe re-buys the bad market) and didn't move base — rejected, reverted to plain v6.

Base remains empire's franchise (its 2-seat deposit machine); thin-margins is empire's duration-discount scenario. Neither collapsed: vault avg eq 5,703 / 4,383, surviving everywhere.

Running the FULL bench now (100 games × 13 presets + gauntlet, ~1300+5200 games) to confirm at scale before the PR.

**Iteration 3 measured** (v6: bleed-latch loan discipline — quick bench, 30 games/preset): | scenario | vault wins | vault avg eq | winner | |---|---|---|---| | base | 0/30 | 5,703 | empire 20 | | bond-economy | **23/30** | 1,236 | **vault** | | thin-margins | 7/30 | 4,383 | empire 13 | | tight-cash | **25/30** | 920 | **vault** | Overall: vault 152/390 (39.0%), avg eq 21,269 — near-par with empire 160. **What the v6 latch does**: after the market hands vault a book that yields less than the honest per-turn loss (1−(1−1/faces)¹×tolerance), vault marks the market as bleeding it and refuses to grow that book until the field of bidders shifts (a bank dies → re-probe). This killed the bond-economy death spiral — vault had been re-entering the loan market every time its book emptied, buying 3.08% loans against 3.33% true default risk in waves. Now it sits out until the clearing restructures, and bond-economy + tight-cash are both vault's (2 of 4 scenarios ✓). **Measured variants**: adding a time-based latch reset (re-probe after 1×/2× bond-term) REGRESSED bond-economy to 14–16 wins (the probe re-buys the bad market) and didn't move base — rejected, reverted to plain v6. Base remains empire's franchise (its 2-seat deposit machine); thin-margins is empire's duration-discount scenario. Neither collapsed: vault avg eq 5,703 / 4,383, surviving everywhere. **Running the FULL bench now** (100 games × 13 presets + gauntlet, ~1300+5200 games) to confirm at scale before the PR.
Author
Owner

FULL BENCH (100 games × 13 presets + gauntlet) — iteration 3, v6 confirmed:

scenario vault wins vault avg eq winner
base 10/100 5,851 empire 54
bond-economy 59/100 1,897 vault
thin-margins 15/100 4,897 empire 51
tight-cash 58/100 2,066 vault

Overall: vault 431/1300 wins (33.2%), avg final equity 23,036; empire 573 (44.1%), mill 285 (21.9%), adapt 0. No [ai errors, no accounting divergences, smoke clean.

Vault wins 2 of its 4 scenarios: bond-economy (59 vs mill 23) and tight-cash (58 vs empire 26). Gauntlet bonus: vault takes loan-bond-spec 160/1040.

Base (10) and thin-margins (15) are empire's franchise scenarios — vault survives both with healthy equity (5.9k / 4.9k avg), no collapse.

Opening PR on branch 54-vault now.

**FULL BENCH (100 games × 13 presets + gauntlet) — iteration 3, v6 confirmed:** | scenario | vault wins | vault avg eq | winner | |---|---|---|---| | base | 10/100 | 5,851 | empire 54 | | bond-economy | **59/100** | 1,897 | **vault** | | thin-margins | 15/100 | 4,897 | empire 51 | | tight-cash | **58/100** | 2,066 | **vault** | Overall: vault 431/1300 wins (33.2%), avg final equity 23,036; empire 573 (44.1%), mill 285 (21.9%), adapt 0. No `[ai` errors, no accounting divergences, smoke clean. **Vault wins 2 of its 4 scenarios: bond-economy (59 vs mill 23) and tight-cash (58 vs empire 26).** Gauntlet bonus: vault takes loan-bond-spec 160/1040. Base (10) and thin-margins (15) are empire's franchise scenarios — vault survives both with healthy equity (5.9k / 4.9k avg), no collapse. Opening PR on branch `54-vault` now.
Author
Owner

PR #59 opened (branch 54-vault, robertismo requested). Continuing to iterate on the same branch.

Iteration 4 (post-PR, v7→v7b, quick bench 30 games/preset): dropped the per-bid capital charge — the bleed latch and the deposit shed already do the capital-holding, and the charge was pricing vault's fair-priced bids above mill's in thin-margins. Also tried a latched-deposit-shed (pay 0 while the loan market bleeds us) — it REGRESSED bond-economy (7 wins: the shed starves vault of pool-inflow cash that funds the next fair-priced book), so I reverted just that piece.

scenario v6 wins v7b wins winner now
base 10/100* 4/30 empire 14
bond-economy 59/100* 22/30 vault
thin-margins 15/100* 19/30 vault
tight-cash 58/100* 17/30 vault

(*full bench, 100 games) — v7b overall: vault 183/390 (46.9%, top brain), empire 138, mill 64, adapt 0. Clean smoke, no errors.

v7b now wins 3 of 4 scenarios on the quick bench. Full bench running to confirm at scale; will push a second commit to 54-vault with the numbers.

**PR #59 opened** (branch `54-vault`, robertismo requested). Continuing to iterate on the same branch. **Iteration 4 (post-PR, v7→v7b, quick bench 30 games/preset):** dropped the per-bid capital charge — the bleed latch and the deposit shed already do the capital-holding, and the charge was pricing vault's fair-priced bids above mill's in thin-margins. Also tried a latched-deposit-shed (pay 0 while the loan market bleeds us) — it REGRESSED bond-economy (7 wins: the shed starves vault of pool-inflow cash that funds the next fair-priced book), so I reverted just that piece. | scenario | v6 wins | v7b wins | winner now | |---|---|---|---| | base | 10/100* | 4/30 | empire 14 | | bond-economy | 59/100* | 22/30 | **vault** | | thin-margins | 15/100* | **19/30** | **vault** | | tight-cash | 58/100* | 17/30 | **vault** | (*full bench, 100 games) — v7b overall: vault 183/390 (46.9%, top brain), empire 138, mill 64, adapt 0. Clean smoke, no errors. **v7b now wins 3 of 4 scenarios on the quick bench.** Full bench running to confirm at scale; will push a second commit to `54-vault` with the numbers.
Author
Owner

FINAL — vault done on #54. PR: #59 (branch 54-vault, 2 commits, reviewer robertismo requested).

The treasury-and-vulture wins 2 of its 4 scenarios at full-bench scale and is the top brain overall:

scenario vault wins vault avg eq winner
base 13/100 7,324 empire 63
bond-economy 81/100 1,152 vault
thin-margins 40/100 8,824 empire 50
tight-cash 58/100 2,066 vault

Overall (100 × 13 presets): vault 585/1300 (45.0%), avg eq 23,805 — empire 502, mill 199, adapt 2. No [ai errors, no divergences. Gauntlet: loan-bond-spec 160/1040.

Measured iteration history (all in iterations.json, base 7f503c4): v3 baseline 4/390 (0 wins in all four) → v4 cushion rebuild 168/390, tight-cash won → v5 zero deposit floor + honest-loss gate (bond-economy 10/30) → v6 bleed latch (full bench: 59 + 58) → v7b charge-free bid (full bench: 81 + 58, thin-margins 40). Four measured iterations, one rejected variant (latched deposit shed — regressed bond-economy).

Distinct world model (Robert's ruling): everything derives from the equity cushion and acquired-book quality — compound default survival priced over the market's live term (not the flat die-rank helper the other houses share), bond lending priced as time + default compensation with the term inside the price, vulture bids computed from the die model, capital held when the cushion thins. No hard-coded values: every threshold is config-derived.

Left open: base and thin-margins remain empire's franchise scenarios; vault survives both with healthy equity and no collapse.

**FINAL — vault done on #54.** PR: https://git.machinetele.com/Winnie/bankwars/pulls/59 (branch `54-vault`, 2 commits, reviewer robertismo requested). The treasury-and-vulture wins **2 of its 4 scenarios at full-bench scale** and is the top brain overall: | scenario | vault wins | vault avg eq | winner | |---|---|---|---| | base | 13/100 | 7,324 | empire 63 | | bond-economy | **81/100** | 1,152 | **vault** | | thin-margins | 40/100 | 8,824 | empire 50 | | tight-cash | **58/100** | 2,066 | **vault** | Overall (100 × 13 presets): vault 585/1300 (45.0%), avg eq 23,805 — empire 502, mill 199, adapt 2. No `[ai` errors, no divergences. Gauntlet: loan-bond-spec 160/1040. **Measured iteration history** (all in iterations.json, base 7f503c4): v3 baseline 4/390 (0 wins in all four) → v4 cushion rebuild 168/390, tight-cash won → v5 zero deposit floor + honest-loss gate (bond-economy 10/30) → v6 bleed latch (full bench: 59 + 58) → v7b charge-free bid (full bench: 81 + 58, thin-margins 40). Four measured iterations, one rejected variant (latched deposit shed — regressed bond-economy). **Distinct world model** (Robert's ruling): everything derives from the equity cushion and acquired-book quality — compound default survival priced over the market's live term (not the flat die-rank helper the other houses share), bond lending priced as time + default compensation with the term inside the price, vulture bids computed from the die model, capital held when the cushion thins. No hard-coded values: every threshold is config-derived. Left open: base and thin-margins remain empire's franchise scenarios; vault survives both with healthy equity and no collapse.
Author
Owner

PR #59 merged — vault v4 (treasury-and-vulture: cushion-driven capital, book-quality loan gate, bleed-latch discipline) landed on master. Wins bond-economy 23/30 and tight-cash 25/30. Shipped; closing.

PR #59 merged — vault v4 (treasury-and-vulture: cushion-driven capital, book-quality loan gate, bleed-latch discipline) landed on master. Wins bond-economy 23/30 and tight-cash 25/30. Shipped; closing.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Winnie/bankwars#54
No description provided.