babylon.models.entities.revolutionary_finance

Revolutionary finance model for revolutionary organizations.

This module defines the RevolutionaryFinance model which tracks the financial state of revolutionary organizations in the Babylon simulation.

Epoch 1 (The Ledger) - Political Economy of Liquidity specification.

The RevolutionaryFinance model represents the fiscal capacity of revolutionary actors:

  • war_chest: available liquid funds for revolutionary activity

  • operational_burn: minimum cost to maintain organization per tick

  • Income streams: dues (members), expropriation (direct action), donors (liberal funding)

  • Strategic concerns: heat (state attention), reformist_drift (ideological corruption)

Key insight: Revolutionary organizations face a fundamental tension:

  • Donor income is easiest but causes reformist_drift (ideological corruption)

  • Expropriation income is most revolutionary but generates heat (state attention)

  • Dues income is sustainable but requires organizational capacity

Classes

RevolutionaryFinance(**data)

Financial state of a revolutionary organization.

class babylon.models.entities.revolutionary_finance.RevolutionaryFinance(**data)[source]

Bases: BaseModel

Financial state of a revolutionary organization.

Tracks war chest, operational costs, and corruption metrics (heat, drift). Part of the Political Economy of Liquidity (Epoch 1: The Ledger).

Parameters:
war_chest

Available liquid funds for revolutionary activity. Defaults to 5.0.

operational_burn

Minimum cost to maintain organization per tick. Defaults to 2.0.

dues_income

Member contributions per tick. Defaults to 1.0.

expropriation_income

Income from direct action. Defaults to 0.0.

donor_income

Liberal funding income. Defaults to 0.0.

heat

State attention level [0, 1]. Higher = more surveillance. Defaults to 0.0.

reformist_drift

Ideological corruption [-1, 1]. Positive = reformist. Defaults to 0.0.

Example

>>> finance = RevolutionaryFinance(war_chest=50.0, heat=0.7)
>>> finance.heat >= 0.8  # Check if in danger zone
False
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

war_chest: Annotated[float]
operational_burn: Annotated[float]
dues_income: Annotated[float]
expropriation_income: Annotated[float]
donor_income: Annotated[float]
heat: Annotated[float]
reformist_drift: Annotated[float]