A House Divided A House DividedDocumentation
Changelog
Game Design/Economy & Finance

IMF Sovereign Facility

Last updated 2026-08-21
Player wikiIMF Sovereign Facility
Source files

The IMF sovereign facility is the "bailout" resolution path for a sovereign debt crisis. When a country enters a crisis (failed bond auctions, unsustainable debt/GDP) and the executive chooses bailout instead of restructure or repudiate, the country's rollover need and deficit are consolidated into a single amortizing loan from the IMF Corp. The facility is repaid over time out of the country's own revenue, capped at a fraction of per-turn income, exactly like the corporate IMF bailout caps payments at a fraction of income, but the sovereign version uses federal revenue instead of corporate operating income, and the borrower is a country's federalBudget row rather than a Corporation document.

This is a separate system from the corporate IMF bailout. Both borrow the same IMF Corp entity and the same annuity-with-income-cap math (imfFacilityMath.ts), but they apply to different debtors and are triggered by different subsystems (sovereign default vs. corporate bond default).

Trigger: sovereign default crisis#

A country enters a sovereign crisis (sovereignCrisisState: "crisisPending") through crisisDetection.ts, driven by debt/GDP penalties on bond demand and a failed-auction counter:

Once in crisisPending, the executive has EXECUTIVE_DECISION_TURNS = 12 turns to choose repudiate, restructure, bailout, or monetize. Monetize is blocked at 8% inflation or above. If no executive decision lands in time, crisisAutoAction.ts automatically selects Repudiate; the legislative flow uses LEGISLATIVE_VOTE_TURNS_PER_CHAMBER = 24 per chamber.

Applying the bailout: applyBailoutResolution#

runs when the bailout choice is ratified (in Phase 5 as documented, executive submission auto-ratifies without the bicameral gate). It:

  1. Requires sovereignCrisisState to be crisisPending or crisisResolving; otherwise returns not-in-crisisPending.
  2. Requires a seeded IMF Corp (imfInstitution: true on the corporations collection); otherwise returns no-imf-corp.
  3. Computes facility terms via computeSovereignBailoutTerms (see below).
  4. Writes facility state onto the country's federalBudget document and sets sovereignCrisisState: "recovering".
  5. Opens a 12-turn IMF Board override window.
  6. Emits bailout-granted news, applies executive political impact, and emits a civil-unrest event chain for the "bailout" path.

Facility terms: computeSovereignBailoutTerms#

. Pure math, no DB access.

const rollover = Math.max(0, inputs.rolloverFaceValue);
const deficit = Math.max(0, inputs.annualDeficit);
const principal = rollover + deficit;

These four values (principal, rate, amortization turns, capture fraction) are written onto the federalBudget row as:

Field Meaning
imfSovereignBailoutActive Facility is live
imfSovereignFacilityPrincipalOutstanding Remaining principal (₳)
imfSovereignFacilityAnnualRate Annual rate, percent
imfSovereignFacilityAmortizationTurnsRemaining Turns left on the amortization clock
imfSovereignFacilityIncomeCaptureFraction Fraction of per-turn revenue captured
imfSovereignFacilityImfCorporationId IMF Corp receiving payments
imfSovereignFacilityCumulativePaidAnchor Lifetime anchor (₳) paid into the facility

Per-turn payment: processSovereignImfFacilityPayments#

, run every turn against every federalBudget with imfSovereignBailoutActive: true. Same annuity-with-income-cap kernel as the corporate facility (computeImfFacilityPaymentTurn in ):

  1. Per-turn revenue is approximated as budget.revenue.total / TURNS_PER_YEAR.
  2. The scheduled payment is a level annuity on the outstanding principal at the per-turn rate (annualRatePercent / 100 / TURNS_PER_YEAR) over the remaining amortization turns.
  3. Actual payment = min(scheduledPayment, perTurnRevenue * incomeCaptureFraction).
  4. If the cap binds and doesn't cover full interest, the interest shortfall is capitalized onto principal and the amortization clock does not advance that turn (the country gets more time, but the loan grows).
  5. When principal clears (newPrincipal <= 1e-6), imfSovereignBailoutActive is set back to false.

Budget-side revenue netting (i.e. deducting the payment from the country's own budget metrics) is explicitly out of scope for this phase per the code comment, "Phase 5 only models the IMF Corp credit side; budget-revenue netting lands in Phase 8 / 10 calibration." The processor only credits the IMF Corp and decrements the facility principal.

FX conversion#

The country's revenue is in its local currency; the IMF Corp's liquidCapital is in its own liquidCurrencyCode (typically USD). Each turn's payment is converted local currency → anchor (corpCapitalToAnchor) → IMF Corp currency (anchorToCorpLiquidCapital), and the anchor amount is also accumulated into imfSovereignFacilityCumulativePaidAnchor on the budget row in the same write.

IMF Board override window#

POST /api/imf/board/override (). Any character who is a shareholder of the IMF Corp (isImfBoardMember) can act once, within the window opened by applyBailoutResolution (IMF_BOARD_OVERRIDE_WINDOW_TURNS = 12 turns / IMF_BOARD_OVERRIDE_WINDOW_HOURS = 12 as the wall-clock fallback):

Read surfaces#

Recovery after bailout#

Entering the facility puts the country into sovereignCrisisState: "recovering". BAILOUT_DIRECT_GDP_PENALTY = 0.02 (a direct 2% GDP penalty) applies on the bailout path; per the code comment, the remaining roughly 3% of the total resolution-path penalty budget is left to emerge from the existing budget-to-metrics pipeline rather than being applied directly. This is a materially smaller direct penalty than the other two resolution paths: REPUDIATE_GDP_PENALTY = 0.12 (12%, over REPUDIATE_GDP_PENALTY_TURNS = 3 turns) and RESTRUCTURE_GDP_PENALTY = 0.06 (6%, over RESTRUCTURE_GDP_PENALTY_TURNS = 2 turns). Recovery requires RECOVERY_FLOOR_TURNS = 48 turns minimum plus a RECOVERY_DISCIPLINE_REQUIRED_STREAK = 5-turn streak of fiscal discipline, rechecked every RECOVERY_DISCIPLINE_RECHECK_TURNS = 5 turns.

Contrast with the corporate IMF bailout#

Sovereign facility Corporate bailout
Debtor Country federalBudget row Corporation document
Trigger Failed-auction sovereign crisis, executive chooses bailout Admin-initiated restructuring of a distressed corp
Rate Fixed 6% annual (IMF_SOVEREIGN_DEFAULT_RATE) Design-tunable per corp (imfFacilityAnnualRate)
Amortization 240 turns (IMF_SOVEREIGN_AMORTIZATION_TURNS) Term set at bailout time
Payment cap Income-capture fraction 10-30%, default 20%, of per-turn revenue 45% of per-turn corporate income
Equity None, no ownership dilution IMF receives new shares up to a target ownership percent
Oversight IMF Board 12-turn override window (rate/capture nudge or public statement) Admin-only controls, no board mechanic
Math kernel Shared computeImfFacilityPaymentTurn () Same shared kernel

Key Files#