WP35 — Pre-registration of the empirical tests
Status: FROZEN on 2026-11-01 before any predictor–outcome association was computed. The SHA-256 of this file at
freeze time is recorded in research/decisions.md (D-003). Any later change is an amendment, numbered in
research/decisions.md, with its date, reason, and whether it was made before or after seeing the corresponding results.
Author of the plan: the autonomous executor (Claude Code), under the PI's mandate (docs/MANDATE_VERBATIM.txt).
What was inspected before writing this plan (and nothing else): the structure of every raw file (sheet names, variable
names, row counts, value vocabularies, date coverage, outcome code frequencies) — see results/logs/feasibility_report.md
and the execution log. No cross-tabulation or correlation between any candidate predictor and any outcome was
examined.
1. Research question and hypotheses as they will be tested
The theoretical object is the gap between a society's coordination demand $D$ (how much has to be coordinated: people, territory, settlements, hierarchy of settlements) and its coordination capacity $K$ (administrative institutions, standardized rules and money, communication infrastructure, record-keeping). The coordination pressure is $P = z(\log D) - z(K)$. The Social Compression Hypothesis (SCH) says that institutions are compression devices in the ordinary (not Shannon) sense: they lower the communication and verification cost per coordinated task, which lets a society sustain larger $D$ at bounded cost, and that sustained high $P$ precedes instability.
| ID | Testable statement (EMPIRICAL unless noted) | Datasets | Pre-specified falsifier |
|---|---|---|---|
| H1 | Polities/societies with higher $K$ have larger scale ($\log$ population, $\log$ territory, settlement hierarchy), conditional on era, region, subsistence/production infrastructure and military technology. Direction of causality is not claimed. | Seshat (polity), D-PLACE EA (society), V-Dem+Maddison (country-year) | The partial association of $K$ with $\log D$ is not positive (95% CI includes 0 or is negative) in the primary Seshat specification, or its sign is not stable across the three datasets. |
| H2 | Higher pre-crisis $P$ predicts more severe / more likely subsequent instability than conventional baselines. | Seshat CrisisDB (severity among crisis cases), Seshat polity duration (hazard), V-Dem (onset panel) | $\beta_P$ not positive at the Holm-adjusted 5% level or the $P$ model does not beat every baseline in out-of-sample log-likelihood (forward-chaining and leave-region-out). |
| H3 (SIMULATED) | In agent-based experiments, shared protocols / standardized records / administration lower the number of messages and bytes per successfully coordinated task relative to no-institution baselines, at the price of fixed overhead. | Simulation (Phase 5) | Institutional regimes do not reduce cost-per-success in the majority of the factorial cells, or only do so in cells with implausible parameters. |
| H4 | The relation between $P$ and instability is non-linear (threshold). | Seshat, V-Dem | A hinge/spline model does not improve out-of-sample log-likelihood over the linear-in-$P$ model in $\ge 80%$ of folds. If so, H4 is rejected and only the smooth form is reported. |
| H5 | H1/H2 estimates generalise across held-out macro-regions and eras. | Seshat, V-Dem | In any held-out macro-region or era block, the sign of $\beta_P$ reverses with a CI excluding the pooled estimate → the domain of the claim is narrowed to the blocks where it holds, and this is stated in the abstract. |
Competing explanations recorded as covariates or rival models (never dropped): military competition (warfare technology index), environmental/epidemic shock (CrisisDB epidemic flag used as covariate, never as outcome), geography (region, UTM zone/latitude band), resource base (agricultural/production infrastructure index, subsistence type in EA), inequality/stratification (EA class differentiation; Seshat has no direct measure → stated limitation), coercion (professional soldiers/military officers), elite conflict (not directly measurable in Polaris → limitation), cultural diffusion and non-independence (region/NGA random effects, language family in EA), selection (CrisisDB is a crisis-selected sample → §3.2).
2. Units, samples and exclusions (fixed before analysis)
2.1 Historical panel A — Seshat Polaris-2026
- Unit: polity (
polity_id, 626 in thePolitiessheet). Reason: 24,401 of 26,033 social-complexity facts carry noyear_from; they describe the whole polity period. A polity-year panel would be an interpolation that the data do not support. Within-polity dated facts (1,632) are used only (i) to build "pre-crisis" versions of $D$ when a dated value exists before the crisis start, and (ii) for descriptive trajectories. - Time stamp of a polity: midpoint $(start_year + end_year)/2$; era blocks: $<-1000$, $-1000$ to $0$, $1$–$1000$,
$1001$–$1500$, $1501$–$1800$, $>1800$ (CE). Region:
seshat_region(42) nested in 10 macro-regions defined inconfigs/regions.yaml(fixed before analysis; continents/sub-continents). - Exclusions: a polity enters a $P$-based model only if it has at least one coded $D$ scale variable
(population or territory) and at least 50% of the $K$ indicators coded (non-missing after §4 rules). Polities coded
quasi-polityinpolity_degree_of_centralizationare kept but flagged; a sensitivity analysis drops them. - Duplicate entities:
polity_idis unique inPolities; chained polities (e.g.cn_qing_dyn_1/2) are separate units and share an NGA random effect.
2.2 Ethnographic cross-section B — D-PLACE Ethnographic Atlas v3.3
- Unit: society (1,291 in
societies.csv). Variables: EA031 (mean size of local communities), EA202 (population size), EA030 (settlement pattern) as $D$; EA033 (jurisdictional hierarchy beyond the local community), EA032 (local jurisdictional hierarchy), EA072/EA073 (political succession), EA090 (political integration) as $K$-side political organisation; EA066/EA067/EA068 (class/caste) as inequality covariates; EA005/EA028/EA042 subsistence covariates. No instability outcome exists in the EA → B is used for H1 only. - Galton's problem: language family (Glottocode → family via Glottolog mapping included in D-PLACE),
region, and spatial coordinates (Conley-type spatial HAC standard errors with 500 km and 1,000 km cut-offs).
2.3 Modern panel C — V-Dem v16 + Maddison 2023
- Unit: country-year, 1789–2025 (V-Dem). Country identifiers: V-Dem
country_id/country_text_id; Maddisoncountrycode(ISO3) crosswalk by ISO3 — documented indata/metadata/crosswalk_vdem_maddison.csv; unmatched countries stay in V-Dem with population frome_poponly if its codebook source is Maddison-compatible (to be verified in the data dictionary; otherwise excluded). - Exclusions: country-years with missing population; years before the first year a country's $K$ indicators are coded.
- No link between C and A. The two panels answer the same hypotheses separately.
3. Variables (names are the original source names)
3.1 Coordination demand $D$ (strictly positive scale measures, logged)
Seshat: polity_population (persons), polity_territory (km²), population_of_the_largest_settlement (persons),
settlement_hierarchy (levels). Primary $D$ = first principal component of the available logged scale variables
fit on the full Seshat sample without any outcome information; secondary $D$ = log polity_population alone.
Range values (value_from ≠ value_to) → geometric midpoint, with the bounds carried as a measurement-error
sensitivity (§6). Modern: pop (Maddison, thousands) and e_area (V-Dem, km², 1886+) → primary $D$ = log population;
secondary adds log area when available. EA: EA031/EA202 ordinal categories → midpoints of the category ranges on a log scale.
3.2 Coordination capacity $K$ (indicator sets are disjoint from $D$ and from $Y$)
Seshat, four blocks, each the share of indicators coded present (P or IP = 1; A or IA = 0; see §4):
- Administration:
full_time_bureaucrat,specialized_government_building,merit_promotion,examination_system,administrative_level(levels; rescaled 0–1 by rank within the sample). - Standard rules and money:
formal_legal_code,judge,court,professional_lawyer,indigenous_coin,foreign_coin,paper_currency,token,precious_metal,article; measurement systems (length_,area_,volume_,weight_,time_measurement_system) enter only the latent model because they are coded for ≤ 139 polities. - Communication infrastructure:
courier,postal_station,general_postal_service,road,bridge,canal,port. - Record-keeping / information:
written_record,script,phonetic_alphabetic_writing,non_phonetic_writing,lists_tables_and_classification,calendar,practical_literature,nonwritten_record,mnemonic_device.
Primary $K$ = unweighted mean of the four block scores (each block requires ≥ 50% of its indicators coded; a polity needs
≥ 3 blocks). Alternative $K$s (reported side by side, pre-specified): (a) 2-parameter logistic IRT latent score estimated
on all indicators of the four blocks; (b) first principal component of block scores; (c) block-by-block.
Explicitly excluded from $K$: military (professional_soldier, professional_military_officer, military_level,
Warfare sheet), religion (professional_priesthood, religious_level, Religion sheet), production infrastructure
(irrigation_system, drinking_water_supply_system, market, food_storage_site, mines_or_quarry), buildings,
literature genres other than practical literature. These form the rival-explanation covariates (§3.4).
Modern $K$ (V-Dem, none of them a democracy index): v2clrspct (rigorous and impartial public administration),
v2stcritrecadm (meritocratic appointment criteria), v2cltrnslw (transparent laws with predictable enforcement),
v2stfisccap (fiscal capacity source), v2svstterr (state authority over territory), v2elembcap (EMB capacity).
Primary = mean of standardized items with ≥ 4 coded; alternative = first PC. v2x_polyarchy is a covariate, never a
$K$ item.
EA $K$-side: EA033 levels (0–4) as the political-integration measure (ordinal, not logged).
3.3 Coordination pressure $P$
$P = z(\log D) - z(K)$, standardization within dataset (Seshat: over all polities with both; modern: over all country-years). $K$ is bounded and can be 0, so the $\log K$ form of the mandate is not used (documented deviation, D-004). Sensitivities: standardize within era; within macro-region; use ranks.
3.4 Covariates $X$ (rival explanations)
Seshat: warfare technology index (share of Warfare sheet indicators present), production infrastructure index,
moralizing-religion indicator (moralizing_supernatural_punishment_and_reward), polity_degree_of_centralization,
era block, macro-region, polity_utm_zone. Modern: log GDP per capita (Maddison gdppc), v2x_polyarchy,
year fixed effects, country fixed effects (within specifications), e_regionpol_6C, prior-instability indicator
(persistence). EA: subsistence (EA042), agriculture intensity (EA028), class differentiation (EA066), region, language family.
3.5 Outcomes $Y$ (coded independently of $D$ and $K$)
- Y1 (Seshat, primary for H2-A) — crisis severity in CrisisDB "Crisis consequences": count of consequences coded
P or IP among the 13 instability items {
decline,collapse,downward_mobility,extermination,uprising,revolution,successful_revolution,civil_war,century_plus,fragmentation,capital,conquest,assassination,depose}, divided by the number of items coded P/IP/A/IA (SU, DIS, blank = missing, never zero). Binary version Y1b = any of {collapse,fragmentation,century_plus,conquest,civil_war} coded P/IP, defined only when all five are coded.epidemicis a covariate. Reform items (constitution,labor,unfree_labor,suffrage,public_goods,religion) are a separate exploratory outcome. Selection caveat fixed in advance: CrisisDB records exist for 150 of 626 polities and are a crisis-selected sample; the absence of a record is not "no crisis". Y1 therefore tests whether $P$ predicts how badly a crisis unfolds, conditional on a crisis being recorded, not crisis occurrence. Crisis records for the same polity (16 duplicates) are separate crisis episodes; models cluster by polity. - Y2 (Seshat, secondary) — polity duration $end_year - start_year$ with event = polity end; right-censored if
end_year≥ 1900 (coding boundary of the databank). Cox proportional hazards stratified by macro-region. - Y3 (Seshat, secondary) — discontinuous succession: for polity $i$, the successor's
polity_relationship_to_preceding_entity∉ {continuity, continuation}; missing when no successor is in the databank. - Y4–Y6 (modern) — onset within $(t, t+h]$, $h = 5$: Y4 civil-war onset (
e_civil_war0→1), Y5 coup (e_coups≥ 1), Y6 regime end by non-constitutional means (v2regendtypecategories to be read from the codebook and fixed in the data dictionary before estimation; documented inresearch/measurement.md). Primary modern outcome = composite Y456 = any of Y4–Y6 within the window. Persistence baseline uses the same outcome lagged.
3.6 Temporal precedence (lag)
Seshat Y1: predictors use only facts whose year_to < crisis year_from or undated whole-polity facts
(unavoidable; flagged). A "strict" sensitivity uses dated-only facts (expected small N). Modern: $P_{it}$ with
outcomes in $(t, t+5]$; no contemporaneous terms; the persistence baseline uses $Y_{i,t-5..t}$.
4. Missing data, uncertainty, coding rules
- Seshat codes:
P=1,IP=1 (flag inferred),A=0,IA=0,A~P/P~A= 0.5 (disputed; sensitivity: drop),SU,U,unknown, blank = missing. Missing is never zero. No forward-filling across polities or time (the Beheim et al. 2021 critique). - Numeric ranges: midpoint (geometric for logged variables) with [
value_from,value_to] as bounds;is_uncertainandis_disputedrows are flagged; sensitivity re-estimates with lower and upper bounds (two extra runs) and with flagged rows dropped. - Dates:
year_from/year_tokept as intervals; crisis start =year_from; no event is interpolated. - Indices: an index is missing when fewer than 50% of its indicators are coded. Latent IRT model handles item missingness by likelihood (no imputation of the latent score for polities with < 3 coded items).
- Outcomes are never imputed.
5. Models (estimation commands live in src/wp35/econometrics/; seeds fixed at 20261101)
5.1 H1
- Seshat: $\log D_i = a + b,K_i + \gamma' X_i + \mu_{region} + \tau_{era} + e_i$, OLS, cluster-robust SE by
seshat_region; also region random effects. Report $b$ with 95% CI. - EA: ordinal logit of EA033 on $\log$ community size (EA031 midpoint) and covariates; spatial HAC SE; language-family clustered SE.
- Modern: within-country regression of $\log pop$ on $K$ with year FE (association only).
5.2 H2 — Seshat Y1 (primary A)
Fractional logit (quasi-binomial) of Y1 on $P$ (pre-crisis) with macro-region FE and era block FE, SE clustered by
seshat_region. Binary Y1b: logit. Baselines fitted with identical samples: (B0) intercept + FE; (B1) population
only; (B2) $K$ only; (B3) Turchin-style single complexity PC1 (all SC indicators) ; (B4) persistence (prior crisis in the
same NGA). Model comparison: leave-one-region-out log-likelihood and AUC (Y1b), 10×5-fold CV; a model "beats" a
baseline if its mean OOS log-lik is higher in ≥ 80% of folds.
5.3 H2 — Seshat Y2/Y3 (secondary)
Cox PH of duration on $P$, $X$, stratified by macro-region, Efron ties, robust SE by seshat_region; Schoenfeld test;
logistic for Y3.
5.4 H2 — modern panel (primary C)
$\Pr(Y_{i,t+1..t+5}=1) = \Lambda(\alpha + \beta P_{it} + \gamma' X_{it} + \mu_i + \tau_t)$. Pooled logit with region and
year FE and country-clustered SE (primary, because country FE drop never-event countries), conditional (fixed-effects)
logit as secondary, linear probability with two-way FE as tertiary. Cubic polynomial of time-since-last-event (Carter &
Signorino 2010). Forward-chaining: train ≤ 1945 → test 1946–1975; train ≤ 1975 → test 1976–2005; train ≤ 2005 → test 2006+.
Leave-one-region-out on e_regionpol_6C. Metrics: OOS log-lik, AUC, Brier, calibration slope. Negative controls:
(i) outcome before $t$ regressed on $P_{t}$ with the same spec must not show a stronger association than the
forward spec; (ii) placebo $P$ built from the production/religion indicators excluded from $K$.
5.5 H4
Linear-in-$P$ vs. hinge ($P$ and $(P-c)_+$, $c$ chosen by profile likelihood on the training fold only) vs. natural cubic spline (3 df). Decision rule in §1.
5.6 H5
Report $\beta_P$ per held-out macro-region and era block; a claim is retained only for blocks where the CI excludes zero in the pooled direction; otherwise the domain statement is narrowed.
5.7 Multiple testing
Three primary tests: H1-Seshat ($b$), H2-A ($\beta_P$ on Y1), H2-C ($\beta_P$ on Y456). Holm correction at family-wise 5%. All other estimates are labelled secondary or exploratory in every table.
5.8 Power
Before estimation, a simulation-based minimum detectable effect (MDE, 80% power) will be computed for H2-A with the actual
$N$ and the actual distribution of $P$ (random outcome assignment, no real outcome values). Recorded in
research/measurement.md. If the MDE exceeds a standardized coefficient of 0.5, the Seshat H2 test is declared
underpowered a priori in the paper, whatever its result.
6. Robustness set (all pre-specified, all reported even when unfavorable)
- $D$ alternatives (population only; territory only; PC1). 2. $K$ alternatives (mean of blocks; IRT; PC1; each block).
- Standardization window (whole sample; within era; within macro-region). 4. Bounds of ranges (lower/upper).
- Drop inferred codes (IP/IA → missing). 6. Drop quasi-polities. 7. Drop polities whose crisis starts within 25 years of
start_year(predictors may post-date). 8. Equinox-2020 release instead of Polaris-2026. 9. Modern: $h \in {1, 3, 10}$; component outcomes; country FE logit; drop years < 1900. 10. Oster (2019) / Cinelli–Hazlett (2020) sensitivity to unobservables for the primary coefficients.
7. What would make us abandon the universal framing
If H2 fails in both A and C, the paper reports the SCH as not supported as a predictor of instability and keeps only what survived (possibly H1 as an association and H3 as a SIMULATED result), with the title and abstract adjusted accordingly. If H2 holds in one panel only, the claim is restricted to that panel's domain (H5).