Novolis Docs
novolis-civics / demography-coupling.md

Demography coupling (Wave 1)

dotnetsimulationcivicsnovolis

Closed loop across Civics, Economy, and Geopolitics for scientific and entertainment hosts.

Authority

StockOwnerSync
`Province.Population`GeopoliticsSpatial truth; mutated by `PopulationMigration.RunMonth`
`DemographicState` on `NationState`CivicsHost / geo CivicEngine syncs from Σ owned province population
`HouseholdCohort.HouseholdCount`EconomyHost scales from owned population (e.g. PolityTriad)

Month order

  1. Trade clearing (balances / shortages)
  2. Economy period (tax-sensitive cohort migrate + production)
  3. Civics ApplyPeriod (emigration pressure, labor-capacity tax factor, legitimacy vs net migration)
  4. PopulationMigration.RunMonth (apply pressures + tax/HD differentials on the map)
  5. Treaty effects / agents / conflict as usual

Policy smothering

High HouseholdTaxRate + weak transfers/HD raises EmigrationPressure. Geopolitics moves people toward high ImmigrationAttractiveness / low-tax neighbors. Net out-migration drags legitimacy and approval. Fiscal agents ease tax when pressure is high and treasury allows.

Wave 2 / 3 roadmap

  • Wave 2: education/health spend → HD → productivity; protest/unrest stock; refugee corridors; richer multi-objective agents.
  • Wave 3: age structure / dependency ratios; progressive tax incidence; multi-region fiscal map in Economy; calibration harness against stylized facts.

Packages

  • Novolis.Civics.CoreDemographicState, pressure outcomes
  • Novolis.Economy.Core — tax-push migrate in HouseholdConsumeMigrateStep
  • Novolis.Geopolitics.CorePopulationMigration, pop-weighted control
  • Dogfood: PolityTriad evidence report includes population PASS checks