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 (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

  • operational_burn (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

  • dues_income (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

  • expropriation_income (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

  • donor_income (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

  • heat (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Contradiction intensity from dormant (0) to rupture (1)', metadata=[Ge(ge=0.0), Le(le=1.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

  • reformist_drift (Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Ideological position from revolutionary (-1) to reactionary (+1)', metadata=[Ge(ge=-1.0), Le(le=1.0)]), AfterValidator(func=~babylon.kernel.math.quantize)])

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, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=quantize)]
operational_burn: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=quantize)]
dues_income: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=quantize)]
expropriation_income: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=quantize)]
donor_income: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Non-negative economic value (wealth, wages, rent, GDP)', metadata=[Ge(ge=0.0)]), AfterValidator(func=quantize)]
heat: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Contradiction intensity from dormant (0) to rupture (1)', metadata=[Ge(ge=0.0), Le(le=1.0)]), AfterValidator(func=quantize)]
reformist_drift: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Ideological position from revolutionary (-1) to reactionary (+1)', metadata=[Ge(ge=-1.0), Le(le=1.0)]), AfterValidator(func=quantize)]