[#52] Empire: funding-franchise iteration 3 — wins deposit-drought + rate-war #62

Merged
robertismo merged 2 commits from 52-empire into master 2026-09-29 20:04:29 +00:00
Owner

Thesis: empire is the funding-franchise bank

Empire models risk through the economics of its own funding engine, not through loan-market prices. Three levers, one calculus:

  1. Funding-horizon term structure (empire's own risk model). The franchise funds a loan against its own funding horizon — the bond term. A loan well inside the horizon is cheap money's work: its per-turn risk charge is the die rank scaled by the SQUARE of the horizon share; a loan at the full horizon pays the full rank. In flow-poor markets (deposit drought) the structure flattens toward the full rank — the franchise stops discounting the short end when the market's short clearing price cannot carry it. No cumulative-default tables (mill's), no cushion math (vault's), no market-relative scaling — the horizon is empire's own bond term.
  2. Clearing spread (empire's own price discovery). The franchise asks what its book must earn; every turn it reads its own fresh loans: paid at/above the ask → raise the spread; paid well below → lower it; won nothing while bidding → cut hard. Floor = funding + risk − 2.5·temp (a full notch below every rival anchor so the franchise wins outright, never on a seat-order tie); ask = funding + risk + 1.5·temp.
  3. Deposit pricing = f(flow, shelf), capped at the cost of market money. The franchise never pays more for deposits than the bond market charges; droughts and bond-dominated economies (bond-face > loan-max) pay tokens; bond-dominated economies get bond-house pricing (0.99·face, fills first).
  4. Capacity utilization. The canonical pair of franchise seats splits the loan shelf; a lone franchise seat covers the whole shelf.

No hard-coded values — every threshold derives from config. No calc helpers shared with the other brains.

Iterations

iter variant outcome (full bench vs master rivals)
1 v5b — shelf split, flat win-rate, flow-gated deposits merged as PR #58: won base 68, drought 65, cash-glut 65, rate-war 88 vs the pre-iteration rivals (882 wins)
2 v6 — bond-dominated playbook superseded by the rivals' merged iterations; folded into v7
3 (this PR) v7 — funding-horizon term structure + clearing spread wins deposit-drought and rate-war

Scenario wins (full bench, 100 games × 13 presets, vs current master incl. mill v10)

preset empire adapt mill vault
deposit-drought 34 32 30 4
rate-war 43 31 15 9
base 29 45 14 12
cash-glut 23 22 27 28

Other presets won outright: default-storm 84, bond-economy 54, mega-loans 44, tight-cash 40. Overall: empire 413, adapt 447, mill 264, vault 139 — second overall.

Verification: go build + go test green (includes the Lisp loader tests — they caught a paren bug mid-iteration); spectate smokes (6-player and 3-player) with zero [ai errors and zero ACCT divergences.

Engine findings reported on #52 (not in this PR's scope)

  • The round-robin bench is not reproducible across runs: printTable sorts the shared brains slice in place, so seat assignment for later presets depends on the random Go map preset order (run-to-run variance observed in several presets; scenario wins held across all observed variants).
  • #t reads as the symbol t and dies as unbound symbol in odd-player games — use numeric truth instead.
## Thesis: empire is the funding-franchise bank Empire models risk through the economics of its own funding engine, not through loan-market prices. Three levers, one calculus: 1. **Funding-horizon term structure (empire's own risk model).** The franchise funds a loan against its own funding horizon — the bond term. A loan well inside the horizon is cheap money's work: its per-turn risk charge is the die rank scaled by the SQUARE of the horizon share; a loan at the full horizon pays the full rank. In flow-poor markets (deposit drought) the structure flattens toward the full rank — the franchise stops discounting the short end when the market's short clearing price cannot carry it. No cumulative-default tables (mill's), no cushion math (vault's), no market-relative scaling — the horizon is empire's own bond term. 2. **Clearing spread (empire's own price discovery).** The franchise asks what its book must earn; every turn it reads its own fresh loans: paid at/above the ask → raise the spread; paid well below → lower it; won nothing while bidding → cut hard. Floor = funding + risk − 2.5·temp (a full notch below every rival anchor so the franchise wins outright, never on a seat-order tie); ask = funding + risk + 1.5·temp. 3. **Deposit pricing = f(flow, shelf), capped at the cost of market money.** The franchise never pays more for deposits than the bond market charges; droughts and bond-dominated economies (bond-face > loan-max) pay tokens; bond-dominated economies get bond-house pricing (0.99·face, fills first). 4. **Capacity utilization.** The canonical pair of franchise seats splits the loan shelf; a lone franchise seat covers the whole shelf. No hard-coded values — every threshold derives from config. No calc helpers shared with the other brains. ## Iterations | iter | variant | outcome (full bench vs master rivals) | |---|---|---| | 1 | v5b — shelf split, flat win-rate, flow-gated deposits | merged as PR #58: won base 68, drought 65, cash-glut 65, rate-war 88 vs the pre-iteration rivals (882 wins) | | 2 | v6 — bond-dominated playbook | superseded by the rivals' merged iterations; folded into v7 | | 3 (this PR) | v7 — funding-horizon term structure + clearing spread | **wins deposit-drought and rate-war** | ## Scenario wins (full bench, 100 games × 13 presets, vs current master incl. mill v10) | preset | empire | adapt | mill | vault | |---|---|---|---|---| | **deposit-drought** | **34** | 32 | 30 | 4 | | **rate-war** | **43** | 31 | 15 | 9 | | base | 29 | 45 | 14 | 12 | | cash-glut | 23 | 22 | 27 | 28 | Other presets won outright: default-storm 84, bond-economy 54, mega-loans 44, tight-cash 40. Overall: empire 413, adapt 447, mill 264, vault 139 — second overall. Verification: `go build` + `go test` green (includes the Lisp loader tests — they caught a paren bug mid-iteration); spectate smokes (6-player and 3-player) with zero `[ai` errors and zero ACCT divergences. ## Engine findings reported on #52 (not in this PR's scope) - The round-robin bench is not reproducible across runs: `printTable` sorts the shared `brains` slice in place, so seat assignment for later presets depends on the random Go map preset order (run-to-run variance observed in several presets; scenario wins held across all observed variants). - `#t` reads as the symbol `t` and dies as `unbound symbol` in odd-player games — use numeric truth instead.
- in bond-dominated economies (bond-face > loan-max, i.e. bond-economy):
  the franchise stops paying for deposits (deepest follower, rate
  decays) and becomes the bond house (offers at 0.99 face so its paper
  fills first)
- fixes the bond-economy collapse: 1-98 -> 29-1 / 13-13 at 30 games
- all four assigned scenarios still won in every quick bench
[#52] Empire v7: funding-horizon term structure + clearing spread (iteration 3)
All checks were successful
build / build (push) Successful in 24s
1317a7dca9
- funding-horizon term structure: risk charge = die rank x (term/bond-term)^2,
  flattened toward the full rank in flow-poor markets (drought)
- clearing spread: per-seat price discovery from the franchise own book,
  floor at funding+risk-2.5temp (a full notch under every rival anchor),
  ask at funding+risk+1.5temp
- deposit pricing capped at the cost of market money; drought and
  bond-dominated economies pay tokens; bond-house pricing when
  bond-face > loan-max
- lone franchise seats cover the whole loan shelf (the engine reorders
  brains by wins, so empire is single-seated in most seating chains)
- full bench (100 games, vs pre-v10 rivals): cash-glut won 34, total
  395 wins - second overall behind adapt
Sign in to join this conversation.
No reviewers
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!62
No description provided.