babylon.config.defines.economy_basic

Top-level economic mechanics: crisis detection and imperial rent.

Spec 058: extracted from the historical babylon.config.defines monolith. Re-exported via babylon.config.defines.__init__; composed into GameDefines in babylon.config.defines._assembler.

Classes

CrisisDefines(**data)

Crisis and Devaluation Mechanics coefficients (Feature 018).

EconomyDefines(**data)

Economic system coefficients.

LeontiefRentDefines(**data)

Tunables for the Spec 057 Leontief imperial-rent pipeline.

class babylon.config.defines.economy_basic.CrisisDefines(**data)[source]

Bases: BaseModel

Crisis and Devaluation Mechanics coefficients (Feature 018).

Configures the multi-period crisis detector, phased amplification, bifurcation risk assessment, and wage compression mechanics.

See also

babylon.domain.economics.tick.types: CrisisPhase, CrisisState specs/018-crisis-devaluation-mechanics/spec.md: FR-023

Parameters:
  • crisis_period_ticks (int)

  • r_threshold (float)

  • n_consecutive (int)

  • m_recovery (int)

  • r_cap (int)

  • hysteresis_coefficient (float)

  • wage_compression_rate (float)

  • wage_compression_floor_ratio (float)

  • bifurcation_solidarity_weight (float)

  • bifurcation_burden_weight (float)

  • class_burden_epsilon (float)

  • bifurcation_event_threshold (float)

  • dispossession_cascade_milestones (list[float])

  • stagnation_credit_growth (float)

model_config: ClassVar[ConfigDict] = {'frozen': True}

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

crisis_period_ticks: int
r_threshold: float
n_consecutive: int
m_recovery: int
r_cap: int
hysteresis_coefficient: float
wage_compression_rate: float
wage_compression_floor_ratio: float
bifurcation_solidarity_weight: float
bifurcation_burden_weight: float
class_burden_epsilon: float
bifurcation_event_threshold: float
dispossession_cascade_milestones: list[float]
stagnation_credit_growth: float
class babylon.config.defines.economy_basic.EconomyDefines(**data)[source]

Bases: BaseModel

Economic system coefficients.

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

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

extraction_efficiency: float
comprador_cut: float
base_labor_power: float
super_wage_rate: float
superwage_multiplier: float
superwage_ppp_impact: float
initial_rent_pool: float
pool_high_threshold: float
pool_low_threshold: float
pool_critical_threshold: float
min_wage_rate: float
max_wage_rate: float
subsidy_conversion_rate: float
subsidy_trigger_threshold: float
shadow_wage_hourly: float
negligible_rent: float
negligible_subsidy: float
base_subsistence: float
death_threshold: float
trpf_coefficient: float
rent_pool_decay: float
bribery_wage_delta: float
austerity_wage_delta: float
iron_fist_repression_delta: float
crisis_wage_delta: float
crisis_repression_delta: float
bribery_tension_threshold: float
iron_fist_tension_threshold: float
trpf_efficiency_floor: float
leontief_rent: LeontiefRentDefines
alpha_annual: float
epsilon_conservation: float
scenario_length_years: int
coefficient_lookup_policies: dict[str, CoefficientLookupPolicy]
initial_c_to_v_ratio: float
initial_k_to_v_ratio: float
border_commute_share: float
enable_border_commute_synthesis: bool
property alpha_weekly: float

Geometric weekly equalization rate derived from alpha_annual.

Implements alpha_weekly = 1 - (1 - alpha_annual)^(1/52) so that compounding 52 weekly applications reproduces the annual rate. Required to satisfy FR-029a startup invariant alpha_weekly < 1/52.

class babylon.config.defines.economy_basic.LeontiefRentDefines(**data)[source]

Bases: BaseModel

Tunables for the Spec 057 Leontief imperial-rent pipeline.

Lifted to GameDefines per Constitution III.1 (No Magic Constants): every numeric tunable in the new imperial_rent.compute() pipeline must trace to a configured constant rather than a literal in code.

See specs/057-leontief-rent-integration/data-model.md for the field-level rationale.

Parameters:
  • qcew_carry_forward_max_years (Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Maximum look-back window in years for the QCEW carry-forward fallback in the industry-to-county allocator; 0 disables carry-forward (strict no-data semantics).', metadata=[Ge(ge=0), Le(le=20)])])

  • phi_hour_outlier_threshold_low (float)

  • phi_hour_outlier_threshold_high (float)

model_config: ClassVar[ConfigDict] = {'frozen': True}

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

qcew_carry_forward_max_years: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Maximum look-back window in years for the QCEW carry-forward fallback in the industry-to-county allocator; 0 disables carry-forward (strict no-data semantics).', metadata=[Ge(ge=0), Le(le=20)])]

Maximum look-back window (in years) for QCEW carry-forward fallback in babylon.domain.economics.tensor_hierarchy.leontief_rent.industry_to_county_allocator.IndustryToCountyAllocator (per Spec 057 / FR-004 + Clarifications 2026-05-08). 0 disables carry-forward (strict no-data semantics).

phi_hour_outlier_threshold_low: float
phi_hour_outlier_threshold_high: float