# 🧭 The Social Compression Hypothesis **UQO Working Paper No. 35** β€” *A pre-registered test of coordination demand, institutional capacity, and instability in historical and modern societies, with a formal framework and agent-based experiments* [![Paper](https://img.shields.io/badge/paper-PDF%20(73%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) [![Python](https://img.shields.io/badge/python-3.12-3776AB?logo=python&logoColor=white)](pyproject.toml) [![Data](https://img.shields.io/badge/data-Seshat%20Polaris--2026%20Β·%20D--PLACE%20EA%20v3.3%20Β·%20V--Dem%20v16%20Β·%20Maddison%202023-4051b5)](data/raw/README.md) [![Reproducible](https://img.shields.io/badge/reproducible-make%20all-2e7d32)](Makefile) [![Pre-registered](https://img.shields.io/badge/pre--registered-frozen%20before%20analysis-6a1b9a)](research/preregistration.md) [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) [![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca) > **TL;DR** β€” Can the mismatch between a society's coordination *demand* (scale) and its coordination *capacity* (administration, standardized rules and money, communication infrastructure, record-keeping) predict instability? Under a pre-registration frozen before any outcome was examined, we built the indices from Seshat Polaris-2026 (626 polities, 127 CrisisDB crises with pre-crisis predictors), the Ethnographic Atlas (1,291 societies) and a V-Dem/Maddison panel (14,637 country-years, 2,692 events). Capacity and scale are positively associated everywhere. The mismatch index is positively associated with crisis severity (0.20 log-odds/SD) and modern instability onsets (0.40/SD), stable across regions and eras β€” **but fails the pre-registered test**: it does not beat the scale-only baseline (Seshat) or the capacity-only baseline (modern) out of sample, a placebo does as well, past events load on it as strongly as future ones, and an Oster adjustment flips its sign. Five theorems make "institutions as codes" precise; 6,632 agent-based runs confirm them in silico and locate where institutions hurt (unpaid set-up, saturated hierarchies, unstructured task spaces). The universal theory is not supported; the narrower paper is what we wrote. --- ## πŸ“Œ Status | Item | Value | |---|---| | Version | 1.0 (November 2026) | | SSRN | not yet submitted | | Journal | β€” | | Code & data | fully reproducible from the raw downloads (`make all`); raw files not redistributed (D-PLACE CC BY-NC, V-Dem terms); SHA-256 registry included | | Process | executed autonomously by Claude Code (Fable 5.1) under the PI's mandate (`docs/MANDATE_VERBATIM.txt`); PI review pending | ## 🎯 What this paper does The Social Compression Hypothesis reads institutions as devices that lower the communication cost per coordinated task. The paper (i) states that reading as five theorems (coding gain, break-even scale, stale-code penalty, hierarchical routing, backlog dynamics) and three explicit conjectures; (ii) pre-registers and runs the first out-of-sample test of the demand/capacity mismatch conjecture of Shin et al. (2020) on real historical and modern data; (iii) runs factorial agent-based experiments with five imposed institutional regimes where messages, bits, queues and overhead are measured directly. ``` P_it = z(log D_it) - z(K_it) # mismatch index (K standardized, not logged: bounded share) E[Y1] = Ξ›(Ξ± + Ξ² P + Ξ³'X + ΞΌ_region + Ο„_era) # Seshat crisis severity (fractional logit) Pr(Y456 in (t,t+5]) = Ξ›(Ξ± + Ξ² P_it + Ξ³'X_it + ΞΌ_r + Ο„_t) # modern onsets (logit, country-clustered) ``` ## πŸ† Headline results | Object | Estimate | |---|---| | corr(z(D), z(K)) across Seshat polities | 0.84 β€” P retains 17% of the joint variance | | H1 Seshat: D on K (region + era FE) | 0.75 SD per SD of K (SE-based 95% CI excludes 0); EA: 0.70 log community size per jurisdictional level; modern within-country 0.15 | | H2-A Seshat crisis severity, Ξ²_P | 0.196 (SE 0.056, n = 127); with covariates 0.204 (0.085, n = 87); scale-only 0.257 (0.138); placebo 0.257 (0.138) | | H2-A out of sample | beats FE-only / K-only / complexity in β‰₯ 80% of folds; **not** scale-only (75%), persistence (69%), D+K (75%); loses to scale alone in 7/10 leave-region-out folds | | H2-C modern Y456, Ξ²_P | 0.398 (0.089, n = 14,637); capacity-only βˆ’0.632 (0.126); negative control (past events) 0.436 vs forward 0.475; Oster-adjusted βˆ’0.024; RV = 0.07 | | H2-C out of sample | never beats capacity-only (forward chaining 0/2; LORO 1/6 log-lik) | | H4 threshold | Seshat: hinge/spline beat linear in 10%/8% of folds; modern: 80%/87% but +0.001 nats (negligible) | | H5 | Ξ²_P positive in every held-out macro-region, era, region and period | | Y2 polity hazard / Y3 succession | no association with P (HR 1.00–1.03) | | H3 (SIMULATED) | norms/records lower operating bits per success in 99.7% / 71% of paired runs and raise success in 99.3% / 100%; central hierarchy at half capacity: success βˆ’0.44; a 200-bit code is repaid only with s = 256, Zipf 1.5, T = 160; stale-code penalty 1.90 bits vs KL 1.98 | ## πŸ—‚ Repository layout ``` social-compression-hypothesis/ β”œβ”€β”€ CLAUDE.md, docs/MANDATE_VERBATIM.txt # mandate and binding rules β”œβ”€β”€ research/ # preregistration (frozen), literature_review, framework (theorems), β”‚ β”‚ # measurement, identification, integration, limitations, decisions, β”‚ β”‚ # prior_art.csv (Crossref-verified), bib_overrides.csv β”œβ”€β”€ configs/sources.yaml, regions.yaml # source registry inputs; macro-regions and eras β”œβ”€β”€ data/{raw,interim,processed,metadata}/ # raw (not committed; SHA-256 in metadata/source_registry.json) β”œβ”€β”€ src/wp35/ β”‚ β”œβ”€β”€ acquisition/fetch.py # downloads + hashes β”‚ β”œβ”€β”€ harmonization/{seshat,dplace,modern,build_panels}.py β”‚ β”œβ”€β”€ measurement/{irt,build_indices}.py # D, K, P, 2PL IRT, invariance, power β”‚ β”œβ”€β”€ econometrics/{common,h1,h2_seshat,h2_modern,run_all}.py β”‚ β”œβ”€β”€ simulations/{model,run_experiments,analyze}.py # SIMULATED β”‚ β”œβ”€β”€ visualization/make_all.py # every table fragment and figure β”‚ └── validation/{verify_bib,build_bib}.py # Crossref verification β†’ references.bib β”œβ”€β”€ results/{empirical,simulated,diagnostics,logs}/ # machine-readable outputs, execution log, audit β”œβ”€β”€ tests/ # 11 tests (parsers, IRT, CV utilities, simulation invariants) β”œβ”€β”€ paper/ # main.tex, sections/, appendix/, tables/, figures/, references.bib β†’ main.pdf └── replication/ # replication guide ``` ## πŸš€ Quick start ```bash uv venv -p 3.12 .venv && uv pip install -p .venv/bin/python -e . make fetch && make data && make measure && make econ && make sim && make figures && make paper make test ``` About 25 minutes end-to-end on an Apple-silicon laptop (the modern-panel estimation dominates); the simulations take about one minute on 12 cores. ## πŸ—ƒ Data | Source | Release obtained (2026-11-01) | Use | |---|---|---| | Seshat Global History Databank | Polaris-2026 (GitHub `build_polaris_dataset`, commit 55ca5fbc2b, MIT) + Equinox-2020 spreadsheet + Zenodo 8120128 | historical polities, CrisisDB crisis consequences | | D-PLACE Ethnographic Atlas | v3.3 (CC BY-NC 4.0) + Glottolog 5.3 families | ethnographic cross-section (H1 only) | | V-Dem | v16 via the official `vdemdata` R package (commit f4dd26922e) | modern institutions and outcomes | | Maddison Project Database | 2023 (dataverse.nl 421302/421303) | modern population and GDP per capita | Coverage, missingness and the data dictionary: `results/diagnostics/`, `data/metadata/data_dictionary.md`. Missing is never zero; nothing is forward-filled; no outcome is imputed. ## πŸ”¬ Methodology 1. `acquisition/fetch.py` β€” registry-driven downloads with SHA-256. 2. `harmonization/*` β€” long facts table with explicit uncertainty; polity, society and country-year panels; outcomes. 3. `measurement/build_indices.py` β€” D (PC1 of logged scale), K (four disjoint blocks; IRT alternative), P; invariance; bounds; a-priori power. 4. `econometrics/h1.py` β€” OLS/mixed (Seshat), Conley + ordered logit (EA), within/differences (modern). 5. `econometrics/h2_seshat.py` β€” fractional logit, baselines, placebo, 10Γ—5 CV + leave-region-out, hinge/spline, H5 blocks, Cox, succession. 6. `econometrics/h2_modern.py` β€” pooled/conditional logit and LPM, forward chaining, LORO, negative control, placebo, Oster/Cinelli–Hazlett. 7. `simulations/*` β€” ABM with five imposed regimes; factorial 6,048 + 584 ablation runs; Shannon quantities where defined. 8. `visualization/make_all.py` β€” all 26 table fragments and 15 figures from results. ## πŸ–Ό Figures & tables inventory | Figure | Content | |---|---| | `fig_seshat_temporal_coverage`, `fig_seshat_missingness` | polity spans, crisis years, coded/missing indicators | | `fig_measurement_DK`, `fig_irt_invariance` | D vs K, block vs latent K, item difficulties, Old/New World invariance | | `fig_h2_coefplot`, `fig_h5_forest`, `fig_h4_curve`, `fig_calibration_modern`, `fig_trajectories` | main estimates, held-out blocks, shape, OOS calibration, P over time | | `fig_sim_scaling`, `fig_sim_phase`, `fig_sim_breakeven`, `fig_sim_shocks` | SIMULATED scaling, saturation, break-even, shock responses | ## ⚠️ Limitations Crisis-selected outcome; 94% of Seshat facts undated; presence codes; D is scale only; corr(D,K) = 0.84; modern K correlates 0.75 with democracy and is expert-coded ex post; no causal identification; Equinox-2020 replication not executed. Full list: `research/limitations.md`. ## πŸ“š Citation ```bibtex @techreport{boucher2026wp35, author = {Boucher, Simon-Pierre}, title = {The Social Compression Hypothesis: A Pre-Registered Test of Coordination Demand, Institutional Capacity, and Instability in Historical and Modern Societies}, institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives}, type = {UQO Working Paper}, number = {35}, year = {2026}, month = {November} } ``` ## πŸ‘€ Author & contact Simon-Pierre Boucher β€” simon-pierre.boucher@uqo.ca β€” DΓ©partement des sciences administratives, UQO. ## πŸ“ Notes Numbering: WP 35 (next free number after WP 34). Category folder `economie/` created for this paper. Adversarial reviews and responses: `docs/reviews/`. Final audit: `results/logs/final_research_audit.md`.