What a Co-occurrence Graph Found When It Compared 7,132 Russian Prosecutions to 12,264 Chinese Political Prisoner Records

What a Co-occurrence Graph Found When It Compared 7,132 Russian Prosecutions to 12,264 Chinese Political Prisoner Records
Structural Signatures of Political Prosecution: Russia and China
Trace Origin LLC · Comparative Structural Analysis · Revised
12,264 Chinese records · 7,132 Russian records · 4 methods reported

Two prosecution datasets return similar modularity scores, but their graphs are built differently.

Russia and China have different Criminal Codes, different languages, and different modern legal traditions. They share Soviet institutional influence, which is not the same as a common ancestor. China's 1979 Criminal Law incorporated Soviet legal architecture, including a "counter-revolutionary" offense category whose lineage runs through the 1951 Regulations on Punishing Counter-revolutionaries and 1950s drafting modeled on Soviet state-crimes law (the RSFSR's 1926 Art. 58, later the 1958 Law on State Crimes as codified in Arts. 64 to 70 of the 1960 RSFSR Criminal Code). Chinese socialist criminal law was a hybrid of Soviet models, Republican-era Chinese law, indigenous political practice, and older Chinese legal traditions. Imperial Chinese law criminalized heterodox religious teachings centuries before the National People's Congress enacted Article 300 in the 1997 Criminal Law, although the continuity between those categories is contested (see challenge 4 below). Russian political criminalization runs through its own imperial and Soviet lineage.

Both legal systems changed substantially after the 1990s, on separate tracks. I built a charge co-occurrence graph from each source's records of what it classifies as political prosecution and measured it with modularity (Q). Q measures how strongly a graph's nodes divide into groups that connect densely inside and sparsely between. Here the nodes are Criminal Code article numbers, and an edge means two article numbers appear in the same source record. The two sources define a record differently: an OVD-Info record is a case, while a CECC record is a person, whose summary may narrate several detentions over many years. The edges in the two graphs therefore do not mean exactly the same thing (limitation 10). High Q means charges tend to co-occur within distinct groups; low Q means they mix. I use Q as a candidate indicator of charge differentiation. Whether it measures anything about the state, rather than about each dataset, is one of the questions this piece cannot yet settle.

The Russian graph has Q=0.473. The Chinese graph has Q=0.451 (bootstrap 95% CI [0.40, 0.60]). The point estimates differ by 0.022. I make no inferential claim about that difference. A defensible comparison would bootstrap the paired difference QR−QC at matched sample sizes, and test each Q against a degree-preserving null model. Neither has been run yet. I treat the similarity descriptively.

The two graphs also appear to differ in how concentrated betweenness is. In the Russian graph, the highest betweenness values are spread across several articles. In the Chinese graph, they are concentrated in Art. 293 ("picking quarrels and provoking trouble"). That within-graph contrast is large, but it has not yet been expressed as a normalized centralization measure or tested against null models, so it is not yet a more robust finding than the Q comparison. It is plausibly related to the doctrinal breadth that Chinese legal critics describe by calling Art. 293 a koudai zui, or "pocket crime," although that literature predicts frequent and flexible use, not co-charging centrality. This piece describes what each dataset's graph looks like. It does not establish that either state designed its prosecutions to produce that shape.

I report four computational methods: Louvain community detection, betweenness centrality, spectral gap analysis, and closed-triangle counts. Two further methods run during the analysis (spectral embedding and a cross-system permutation test) are not reported here; they will be reported alongside the null-model reanalysis described at the end. The data comes from OVD-Info (Russia: 7,132 records of politically motivated prosecution, of which 7,111 entered the graph) and the U.S. Congressional-Executive Commission on China's Political Prisoner Database (12,264 records, of which 876 yielded extractable Criminal Law article numbers).

0.318
Art. 293 betweenness
highest in the Chinese graph
not yet null-tested
876 / 12,264
Chinese records with
extractable article numbers (7.1%)
extraction not yet audited
pending
Null-model comparison
for Q and centralization
the decisive test
the reported values

Two datasets on one scale. Three earlier values shown apart.

The figure below plots only the Russian and Chinese values on a shared axis, together with Russia's value at China's sample size. Three values from earlier Trace Origin analyses are listed separately because they were not produced from commensurable units: the Belarus figure counts cases, the Myanmar figure counts arrests (many never charged), and the Soviet figure comes from Memorial records of political repression, a large share of which are sentences issued by extrajudicial bodies (NKVD troikas, the Special Board) rather than courts, across union republics that each had their own criminal code. Placing them on the same axis would imply a comparability the data does not have.

LOUVAIN MODULARITY (Q): RUSSIA AND CHINA China (n=876) 0.451 bootstrap 95% CI Russia (n=7,111) 0.473 Russia at n=876 0.490 1,000 subsamples 0.350.400.45 0.500.550.600.65 Earlier analyses, different units, not on the axis above Belarus Q=0.16 (12,199 cases) Myanmar Q=0.25 (31,824 arrests) Soviet Q=0.29 (1,056,670 Memorial records, largely extrajudicial sentences)
Fig. 1 Louvain modularity (Q) for the Russian and Chinese graphs. China's value (0.451) and Russia's full-sample value (0.473) fall close together, and Russia's value lies inside China's bootstrap interval: a failure to reject a difference, not evidence of equivalence. At China's sample size, Russia's mean Q is 0.490, which is the like-for-like comparison. Neither value has yet been compared against a degree-preserving null model. The three earlier values are listed in a separate panel because they rest on non-commensurable units and pipelines; they describe different kinds of records and imply no trajectory.
The modularity scores are similar. The way connectivity is distributed is not. Whether the similar scores mean anything beyond these two datasets is an open question.
the architecture

Similar modularity. Different distribution of connectivity.

In the Russian graph, the highest betweenness values are spread across five articles in a narrow range. In the Chinese graph, one article's betweenness is far above the rest. Two cautions apply. First, normalized betweenness depends on graph order and density, and the Russian graph contains considerably more article nodes than the Chinese one, so the raw ratio between the two maxima is not a like-for-like comparison. The meaningful contrast is within each graph: how concentrated betweenness is, not how large it is. Second, betweenness measures how often a node lies on shortest paths, which is not the same as bridging between Louvain communities. A participation coefficient computed against each partition would measure bridging directly; it has not yet been run. Third, the figure labels articles at integer level. Russian decimal articles (for example 282, 282.1, and 282.2, which are incitement, organizing an extremist community, and participating in an extremist organization) are distinct offenses, as is PRC Art. 291-1 relative to Art. 291. Whether each node is a single offense or several merged ones depends on whether the extraction preserved those distinctions, which the reanalysis will verify and report.

BETWEENNESS CONCENTRATION: RUSSIA (DISTRIBUTED) vs CHINA (CONCENTRATED) Russia Distributed (mesh) 239 Associations b=0.047 222 Weapons b=0.043 159 Fraud b=0.036 280 Public calls b=0.031 275 Treason b=0.025 Top five articles within 0.025 to 0.047 No single dominant article 513 closed triangles China Concentrated (hub-and-spoke) Art. 293 Picking quarrels b = 0.318 300 105 290 103 291 One article far above the rest Max betweenness 0.318 (not directly comparable to Russia) 9 closed triangles, 7 including Art. 293
Fig. 2 Betweenness concentration within each graph. In the Russian graph, the five highest-betweenness articles fall within 0.025 to 0.047. In the Chinese graph, Art. 293 ("picking quarrels and provoking trouble") reaches 0.318, far above any other Chinese article. Because normalized betweenness is sensitive to graph size, the comparison that matters is the shape of each distribution, not the ratio between the two maxima. A node-removal analysis (how the graph's connected components change when each article is removed) has not been run, so this figure makes no claim about the topological fragility of either graph.
closed triangles

Most closed triangles in the Chinese graph pass through one article.

A closed triangle in a pairwise co-occurrence graph is a set of three articles in which each pair has been recorded together against at least one defendant. It does not require that any single defendant faced all three. Articles A and B may co-occur in one case, B and C in another, and A and C in a third. Closed triangles therefore describe the connectivity of the pairwise graph. They are not a count of three-charge prosecutions. Counting those requires treating each charging event as a single multi-article record (a hyperedge), which is part of the pending reanalysis.

The Russian graph contains 513 closed triangles, spread across dozens of articles with no single article dominating. After removing article numbers 1 to 101, which in the 1997 PRC Criminal Law are General Part provisions governing attempt, complicity, and sentencing rather than defining offenses, the Chinese graph contains 9 closed triangles. That integer-range filter has known defects (limitation 11): in the 1979 Criminal Law the General Part ends at Art. 89, so pre-1997 counter-revolutionary offenses (Arts. 90 to 104) would be removed with it, and Hong Kong provisions numbered below 102 would be removed too. Seven include Art. 293. Two do not. Raw triangle counts also scale with graph size and edge density, so the 513 vs 9 contrast reflects the much larger Russian graph as well as any difference in structure; a motif analysis against a null model would separate the two.

CLOSED TRIANGLES IN THE PAIRWISE CO-OCCURRENCE GRAPHS Russia: 513 closed triangles Hooliganism + Vandalism + Extremist org Religious insult + Hooliganism + Extremism Bodily harm + Battery + Hooliganism Bodily harm + Hooliganism + Extremism Battery + Hooliganism + Extremism + 508 more Many articles, no single dominant article China: 9 closed triangles Picking quarrels + Defamation + Extortion Picking quarrels + Crowd disorder + Public order Picking quarrels + Obstruction + Network crimes Picking quarrels + Obstruction + Illegal assembly + 5 more (3 with Art. 293, 2 without) Art. 293 appears in 7 of 9 A closed triangle requires three pairwise co-occurrences. It does not mean one defendant faced all three articles.
Fig. 3 Closed triangles in each pairwise co-occurrence graph, after removing PRC Criminal Law General Part provisions (Art. 1 to 101) from the Chinese graph. Russia: 513 closed triangles across dozens of articles. China: 9, of which 7 include Art. 293. Triangle counts are not normalized for graph size and do not represent three-charge prosecutions of a single defendant. Both limitations will be addressed in the hyperedge and null-model reanalysis.
the separation

The Russian graph shows less cross-group co-occurrence.

The Fiedler value (the second-smallest eigenvalue of the normalized Laplacian) is a graph-theoretic measure of how easily a graph can be cut into separate parts. A lower value is consistent with weaker connectivity between groups. The Russian graph's Fiedler value is 0.043; the Chinese graph's is 0.085. Two cautions apply: the Fiedler value is sensitive to graph order, and it is zero for any disconnected graph, so it describes the connected portion of each graph rather than the whole. The value is consistent with the observed pattern below, but it does not establish it by itself.

In the observed records, Russian defendants charged under speech-cluster articles rarely also face terrorism-cluster articles. In the Chinese records, Art. 293 co-occurs with articles in all three identified clusters. This may reflect prosecutorial discretion, institutional routing through the procuratorate, or simply the broad statutory language of Art. 293. The graph shows the pattern of recorded co-occurrence. It does not observe the decisions that produce it, and it does not show that either state intends its prosecution categories to stay separate.

The separation has not yet been computed directly as a conditional share (of the records containing a speech-cluster article, how many also contain a terrorism-cluster article, with an interval). It also pools charges at every procedural stage, including charges later requalified or dropped during investigation, which is common in Russian practice. And a substantial share of Russian terrorism-cluster cases come from occupied Crimea, a distinct forum (limitation 12). Until those are addressed, the pattern describes the records and should not be read as guidance for defense practice.

SPECTRAL GAP (FIEDLER VALUE, NORMALIZED LAPLACIAN) Russia Fiedler = 0.043 Weaker between-group connectivity China Fiedler = 0.085 Stronger between-group connectivity Lower Fiedler is consistent with weaker between-group connectivity. Sensitive to graph size; computed on connected structure.
Fig. 4 Spectral gap comparison. The Russian graph's Fiedler value (0.043) is lower than the Chinese graph's (0.085), consistent with weaker connectivity between groups in Russia. In the observed records, Russian speech-cluster defendants rarely also face terrorism-cluster charges; in the Chinese records, Art. 293 co-occurs with articles in all three identified clusters. Because the Fiedler value depends on graph size, this comparison should be read alongside the direct co-occurrence pattern rather than on its own.
the robustness tests

Does China's smaller sample explain the similarity?

China's co-occurrence graph is built from 876 records with extractable Criminal Law articles. Russia's is built from 7,111. Three tests address sampling variance. They do not address whether either Q reflects structure beyond what a random graph of the same size and degree sequence would produce, and they do not address differences in how the two datasets were collected.

THREE SAMPLING TESTS: DOES SAMPLE SIZE EXPLAIN THE SIMILARITY? Test 1: Bootstrap China (1,000 resamples) Resample China's 876 records with replacement. How much does China's Q vary? 0.398 0.597 China 95% CI (asymmetric) Russia Q=0.473 inside; not a test Test 2: Subsample Russia to n=876 (1,000 draws) Shrink Russia to China's size. What is Russia's Q at matched n? 0.422 0.562 Russia at n=876, mean Q=0.490 China Q=0.451 inside; Q rises at small n Test 3: Rarefaction (Russia Q at increasing sample size) Q is inflated at small samples and declines toward a plateau as n grows. Observed points: n = 50 Q ≈ 0.60 n = 876 mean Q = 0.490 (China's sample size) n = 2,067 Q stabilizes n = 7,111 Q = 0.473 (full sample) These tests bound sampling variance. They do not test structure against a null model.
Fig. 5 Three sampling tests. Test 1: bootstrap resampling of China's 876 records (1,000 iterations) gives a 95% CI of [0.40, 0.60]; Russia's 0.473 falls inside. The interval is asymmetric around the point estimate, which is consistent with upward bias from resampling (duplicated records create artificially strong edges); a bias-corrected interval has not been computed. Test 2: subsampling Russia to n=876 (1,000 draws) gives mean Q=0.490, 95% CI [0.42, 0.56], higher than Russia's full-sample 0.473. China's 0.451 falls inside. At matched sample size, the relevant comparison is 0.490 vs 0.451. Test 3: Russia's Q declines as sample size grows and stabilizes near n=2,067. China's n=876 is below that point, so China's estimate is likely inflated relative to its large-sample value as well as imprecise. The similarity is not obviously produced by sample size alone, but these tests cannot show that it reflects anything beyond sampling and graph size.
the validation

China has what Russia doesn't: occupation data. That makes part of the SDG mapping checkable.

The weakest part of the Russia SDG analysis is that the charge-to-SDG mapping is an analyst judgment: Art. 280 maps to SDG 4 (education) because I decided it does, not because the data shows the defendants work in education. China's CECC data records occupation for 53% of defendants, so one version of the mapping can be checked at the person level: do the people charged under articles mapped to a given SDG work in that domain?

That check tests something narrower than the mapping itself. An SDG mapping claims that a prosecution harms a development domain. The occupation check asks whether the defendant personally works in that domain. A prosecution can damage free inquiry without its defendant being a teacher. The check is still useful, because claims about "educators prosecuted" should be supported by occupation, but its results should be read as testing that narrower claim.

PERSON-LEVEL CHECK: DOES THE DEFENDANT'S OCCUPATION MATCH THE SDG DOMAIN? SDG DOMAIN WITH OCCUPATION MATCHED RATE RESULT Inequality (SDG 10) n/a n/a n/a SEE NOTE* Innovation (SDG 9) 9 4 44.4% TOO SMALL SDG 4 + 16.10.1 roles 105 of 273 19 18.1% OVERSTATED Partnerships (SDG 17) 29 0 0% NOT SUPPORTED Growth (SDG 8) 44 0 0% NOT SUPPORTED * Occupation is not a meaningful check for SDG 10. Recorded religious affiliations fit the mapping, but partly by construction: defendants charged under Art. 300 are religious-group members by definition, so that check cannot fail for them. Match for the SDG 4 row = teacher, journalist, writer, or lawyer. Only teachers are education roles; the others belong under SDG 16.10.1. Split pending.
Fig. 6 Person-level occupation check using CECC occupation data. For the 273 records mapped to SDG 4, 105 have a recorded occupation, and 19 of those (18.1%) are teachers, journalists, writers, or lawyers; occupation is unknown for the other 168. That 19 combines education-sector roles with roles that SDG indicator 16.10.1 covers (journalists, associated media personnel, trade unionists, and human rights advocates); the split has not yet been computed. SDG 10 is not tested by occupation, and its religion-field consistency follows from the Art. 300 charge definition rather than confirming the mapping independently. SDG 17 and SDG 8: no occupation matches. The check does not support the SDG 4, SDG 17, or SDG 8 mappings as claims about who was prosecuted.

What the religion field shows, and what it cannot show

For SDG 10, occupation is the wrong check. A Falun Gong practitioner whose occupation is "farmer" is prosecuted for her religious practice, not her farming. The religion field records 221 Falun Gong practitioners, 61 Eastern Lightning members, 18 Jehovah's Witnesses, 16 unregistered Protestants, 11 Local Church members, 8 Tibetan Buddhists, and 7 Muslims. That is consistent with the mapping. It is not an independent confirmation of it: when the mapping runs through Art. 300 (organizing or using a xiejiao organization), the people captured are religious-group members because that is what the article criminalizes. The check would be informative only for SDG 10 records mapped through other articles.

What the SDG 4 check shows

273 records map to SDG 4 at the charge level, mostly through Art. 293 and Art. 105(2). Art. 105(2) is an incitement offense defined by expressive conduct: it criminalizes inciting subversion of state power by spreading rumors, slander, or other means. Art. 293 is a public-order offense, extended to online expression by the September 2013 interpretation of the Supreme People's Court and Supreme People's Procuratorate on criminal cases involving defamation and other offenses committed through information networks. Both are frequently used against expression, which is the basis for the mapping.

Of the 273 records, 105 have an occupation recorded. Of those 105, 19 are teachers, journalists, writers, or lawyers. Only teachers are education-sector roles. Journalists, and writers and lawyers acting as rights defenders, belong more naturally under SDG 16, whose indicator 16.10.1 counts killings, enforced disappearances, arbitrary detention, and torture of journalists, associated media personnel, trade unionists, and human rights advocates. The 19 have not yet been split between the two. The existence of 16.10.1 also qualifies the premise of the earlier SDG piece in this series: SDG monitoring does count the detention of some of these professional groups, though not political prisoners in general. Recorded occupations among the other 86 include farmers (11), unemployed people (9), monks (6), truck drivers (3), and retired workers (3). Among defendants with a known occupation, expression-related charges reach ordinary citizens far more often than knowledge workers. For the 168 records with no occupation recorded, the share is unknown. The defensible statement is therefore a range: between 19 (7%) and 187 (68%) of the 273 could be knowledge workers, with 18.1% the rate among those whose occupation is known. A claim of "273 educators prosecuted" is not supported. A claim of "273 prosecutions under articles frequently used against expression" is.

I previously framed 831 Russian prosecutions as an upper bound for SDG 4. The Chinese rate cannot be transferred to Russia: the two datasets differ in collection method, and this piece's own finding is that the two graphs are structured differently. Testing the Russian figure requires Russian occupation data, which OVD-Info's case pages could provide.

Gender in two charge categories

GENDER COMPOSITION IN TWO NON-ANALOGOUS CHARGE CATEGORIES Russia: terrorism-cluster charges 288 men, 0 women In the OVD-Info records mapped here China: Art. 300 (xiejiao organizations) 218 women 138 men 61.2% women in the CECC records mapped here Not a like-for-like comparison. Gender composition follows the targeted community. The comparable Russian category (religious-organization cases) is not shown.
Fig. 7 Gender composition in two charge categories that are not analogous. In the OVD-Info records mapped to terrorism-cluster articles, all 288 defendants are recorded as male. Many of these cases involve alleged Hizb ut-Tahrir membership, and a substantial share are prosecutions of Crimean Tatars in occupied Crimea, tried by the Southern District Military Court in Rostov-on-Don (limitation 12). In the CECC records mapped to Art. 300, 218 of 356 defendants (61.2%) are recorded as female. Both patterns appear to follow the demographics of the community targeted, but neither has been checked against an independent source on those communities. A like-for-like comparison would set Art. 300 against Russian prosecutions of religious organizations, such as the cases against Jehovah's Witnesses, which include many women.

Sentence length by SDG domain

AVERAGE SENTENCE LENGTH BY SDG DOMAIN (CHINA, YEARS) Innovation (SDG 9) 10.3 yrs (max 15) Inequality (SDG 10) 5.0 yrs (max 20) Growth (SDG 8) 4.8 yrs (max 16) Education (SDG 4) 2.8 yrs (max 14)
Fig. 8 Average sentence length by SDG domain in the CECC records. The SDG 9 category (mapped from treason and state-secrets articles) has the highest average at 10.3 years but rests on very few records, so its average is unstable. SDG 10 (largely Art. 300) averages 5.0 years and includes the longest sentence in the dataset: 20 years for a Falun Gong practitioner. SDG 4 (expression-related articles) averages 2.8 years, roughly a quarter of the SDG 9 average. The SDG labels are analyst mappings; the underlying comparison is between charge categories.
what this graph does not see

Thirteen limitations that must be stated before the findings are read.

1. China's graph uses 7.1% of the data

Only 876 of 12,264 CECC records (7.1%) yielded Criminal Law article numbers extractable from the case summary text. The co-occurrence graph and Louvain analysis are built on those 876 records. The remaining 11,388 people are in the knowledge graph (with occupation, ethnicity, religion, and the CECC's pre-classified "Issues" field), but they do not contribute to the co-occurrence structure. Russia's extraction rate is substantially higher because OVD-Info records charge articles as structured data. The extraction itself has not been audited against a hand-coded sample, so its error rate is unknown, and errors may not be random: summaries of multi-charge cases may be more or less likely to name every article. The Issues-based SDG mapping covers all 12,264 records; the Louvain structure covers 876.

2. Much of China's coercion operates outside the criminal process

Several forms of detention generate no criminal charges and therefore no co-occurrence edges. Some fall outside criminal procedure entirely, such as administrative detention under the Public Security Administration Punishments Law. Others sit inside criminal procedure but may never reach indictment, such as Residential Surveillance at a Designated Location (RSDL), a compulsory measure under the Criminal Procedure Law (Art. 73 of the 2012 revision; Art. 75 after the 2018 revision). Some are extralegal: "black jails" and enforced disappearances. Xinjiang's mass detention system was given a regional regulatory basis by the Xinjiang Uyghur Autonomous Region Regulations on De-extremification (2017, amended 2018), whose lawfulness under Chinese and international law is contested. The same exclusion applies to Russia: OVD-Info's administrative cases (protest offenses, "discreditation" of the armed forces) are outside a criminal co-occurrence graph too. The Q=0.451 characterizes the criminal cases that reached Chinese courts and were documented by CECC. It does not characterize Chinese repression as a whole, and the analysis does not show that Russia's repression is more "legalistic" overall.

3. The Xinjiang gap

The detention of Uyghurs and other Turkic Muslims in Xinjiang (estimates range from around one million, the figure the UN Committee on the Elimination of Racial Discrimination cited in 2018, to higher figures in later research) is largely absent from this dataset at the individual level, a limitation the CECC database itself acknowledges. That absence is partly a coverage property of the database, not only a property of the legal process: many Uyghurs were also formally tried and sentenced during the 2017 to 2018 surge, and those criminal cases are largely missing too. Any finding about China's prosecution structure here excludes the largest repression campaign in contemporary China.

4. Hong Kong cases are in the graph

Since 2020, Hong Kong's National Security Law has created a separate prosecution regime inside a common law system. The CECC data includes Hong Kong cases charged under NSL provisions and Hong Kong ordinances. Those provisions are not PRC Criminal Law articles, so if they were extracted as bare article numbers, they share a namespace with mainland articles and may collide with them. Several also carry numbers below 102 (NSL Arts. 20, 22, and 29; Crimes Ordinance ss. 9 and 10), so the General Part filter may have silently deleted them (limitation 11). They are also adjudicated by different courts under different procedure. A mainland-only rerun is required. The residence field is an imperfect filter, because a defendant's residence is not the forum of prosecution; a jurisdiction field derived from the court or the charging statute is better.

5. Shared Soviet influence, not shared descent

China's 1979 Criminal Law incorporated significant Soviet elements, including a "counter-revolutionary" category developed from Soviet state-crimes law. But the Soviet value in Fig. 1 (Q=0.29) comes from a different kind of record, much of it extrajudicial sentencing, and from a union in which each republic had its own criminal code and numbering (Art. 58 was the RSFSR's provision), so it is not a baseline either modern system can be measured against. The modern values are two cross-sections. They do not show either system moving from 0.29 toward its current value, and they do not establish that the two systems arrived independently at anything. The similarity is a present-day observation about two datasets.

6. Single-charge prosecutions and the co-occurrence graph

A co-occurrence edge requires two or more articles on the same defendant. In China, most routine political prosecutions appear to be single-charge cases: a Falun Gong practitioner charged only under Art. 300, or a netizen charged only under Art. 293. These appear as isolated nodes, contributing to article frequency but not to co-occurrence structure. The modularity score therefore describes how charges combine in multi-charge cases, not how charges are applied individually. Multi-charge cases are where charging combinations become visible, but they may not be representative of political prosecution as a whole.

7. Data collection methods and inclusion criteria differ

OVD-Info documents politically motivated prosecutions it identifies in Russia through monitoring, hotlines, and legal aid. The CECC database records "political prisoners" from media reports, NGO documentation, the Dui Hua Foundation, and other open sources. These are different inclusion concepts as well as different collection methods, and both are shaped by each organization's mission. Coverage rate, selection criteria, and completeness are not equivalent. The direction of bias from missing data is unknown: losing within-group edges would depress apparent modularity, and losing between-group edges would inflate it. The comparison describes what each dataset captures, not two underlying prosecution systems with known equivalent coverage.

8. Legal provisions change over time

Each node is an article number pooled across the full time window, but articles change. Russian Art. 282 was partially decriminalized in December 2018 (Federal Law No. 519-FZ of 27 December 2018), moving first offenses to administrative liability under Art. 20.3.1 of the Code of Administrative Offences; Arts. 207.3 and 280.3 were created in 2022. On the Chinese side the problem is larger. The 1997 recodification renumbered the entire Special Part, so a bare number extracted from a pre-1997 summary (for example "105" or "160") names a different provision than the same number under the 1997 code. That is namespace collision, not only amendment drift. Within the 1997 code, Amendment VIII (2011) changed Art. 293, and Amendment IX (2015) changed Art. 300 and added a second paragraph to Art. 291-1, which Amendment III created in 2001. A pooled node treats an article before and after amendment as one entity, even when its content and the population it reaches have changed. A rerun with version-specific nodes, or with time slices aligned to major amendments, is required before the pooled values can be read as describing any single legal regime.

9. No null model

Sparse graphs can show substantial modularity even when their edges are placed at random, because Louvain finds the best partition the fluctuations allow. Neither Q has been compared against a distribution of Q values from degree-preserving randomizations of the same graph. Until that comparison is run, neither 0.473 nor 0.451 has been shown to reflect structure beyond what each graph's size and degree sequence would produce on their own. This is the single most important pending test. Louvain is also stochastic. Run-to-run variance, edge weighting, and the resolution parameter are not reported here; they will be reported in the reanalysis, alongside a comparison with the Leiden algorithm, which avoids Louvain's known tendency to produce internally disconnected communities.

10. Edges do not mean the same thing in both graphs

An edge links two article numbers that appear in the same source record. An OVD-Info record is a case: Russia's 7,111 graph records correspond to 6,702 people. A CECC record is a person, and many CECC summaries narrate successive detentions, which is common in repeat Falun Gong and rights-defense cases. Where a summary covers two separate prosecutions, the graph links charges that were never brought together. Person, source record, prosecution, and charging event are different entities with different identity criteria, and the two graphs are built on different ones. The reanalysis will rebuild edges from single charging events and report how many edges change.

11. The General Part filter is defined by integer range

The Chinese filter removed article numbers 1 to 101. That matches the 1997 code's General Part but not the 1979 code's, which ends at Art. 89, so any pre-1997 counter-revolutionary offense (Arts. 90 to 104) would be removed as if it were a sentencing rule. It would also remove Hong Kong provisions numbered below 102. The Russian Criminal Code's General Part (Arts. 1 to 104, including Art. 30 on preparation and attempt and Art. 33 on complicity, both routinely cited in Russian charge descriptions) must be handled by the same rule and reported. Filtering should operate on versioned provisions qualified by code and jurisdiction, not on integers.

12. Occupied Crimea is in the Russian graph

A substantial share of OVD-Info's terrorism-cluster cases, especially those alleging Hizb ut-Tahrir membership, are prosecutions of Crimean Tatars in occupied Crimea, typically tried in Rostov-on-Don by the Southern District Military Court. Under international law, Russia's application of its criminal code in Crimea is the conduct of an occupying power. That is the same class of problem as Hong Kong on the Chinese side: a distinct forum pooled into a national graph. Treating these cases as simply "Russian" also models a contested sovereignty claim as settled. The Russian graph needs a forum attribute and a rerun with Crimea separated, which may affect both the all-male terrorism cluster and the speech/terrorism separation.

13. Procedural stage is not modeled

OVD-Info follows cases from opening through investigation and trial, including charges later requalified or dropped. CECC includes people detained but not yet sentenced alongside those sentenced. An edge therefore mixes co-occurrence at the allegation, indictment, and conviction stages, which are different legal facts. Sentence lengths (Fig. 8) use only adjudicated outcomes; the graph does not. The two graphs may partly measure investigative charging practice in Russia and sentencing outcomes in China. The reanalysis will build stage-specific graphs where the sources allow.

what this means

Why a similar Q does not mean the same system.

A human rights lawyer reading this should take away three things, and they are not "look, the numbers match."

The two datasets produce similar modularity scores from differently shaped graphs. Both graphs separate articles into groups that correspond roughly to speech, religious, organizational, and separatism or terrorism charges. Their point estimates are close (Russia 0.473, China 0.451), and at matched sample size the comparison is 0.490 vs 0.451. No paired test or null-model comparison has been run, so the similarity is descriptive. The distribution of connectivity differs more clearly: betweenness is spread across several articles in the Russian graph and concentrated in Art. 293 in the Chinese graph. For cross-border advocacy, this suggests that a legal strategy developed against one system's speech prosecutions may not transfer directly to the other's: articles that look like counterparts on paper sit in differently connected positions in the observed records.

In the Chinese graph, Art. 293 holds a uniquely central position. Art. 293 ("picking quarrels and provoking trouble") is widely described in Chinese legal scholarship as a koudai zui, or "pocket crime," because its elements are broad enough to cover a wide range of conduct. In the graph, it co-occurs with articles across all three identified clusters and appears in 7 of the 9 closed triangles. That is plausibly related to the breadth the scholarly account describes. But the pocket-crime literature predicts frequent and flexible use, which implies high frequency and possibly high degree, not betweenness; a pocket crime can equally be charged alone, and most Chinese cases are single-charge (limitation 6). The consistency is suggestive, not confirmatory. Whether this centrality makes Art. 293 a point of leverage is a separate question. Art. 293 is itself one of the provisions created when the 1997 recodification divided the former hooliganism offense (Art. 160 of the 1979 Criminal Law) into several narrower articles, and scholars have argued that after Re-education Through Labor (laojiao) was abolished in 2013, some of its function shifted to Art. 293 and to administrative penalties. If that account is right, the institutional demand behind Art. 293's breadth would persist through reform of the article itself. Procuratorates and courts also operate under very low acquittal rates and performance-evaluation pressures that favor charges with flexible elements (see Ng and He, Embedded Courts). For advocacy, that suggests reform of Art. 293 alone would likely be insufficient. This is an interpretation drawn from the legal literature; the cross-sectional graph does not test it.

Modularity is a candidate indicator, not yet a validated one. I propose Q as a possible indicator of charge differentiation within a dataset. Its relationship to how a state organizes prosecution is untested: it has not been validated against any independent measure of governance, and the cross-sectional comparison here cannot show that Belarus (0.16) or Myanmar (0.25) are moving toward the Russian and Chinese values. A testable version would track Q within a single system over time, rebuilt from the same source with the same pipeline. If such a series showed sustained increases, Q could serve as an indicator of a shift from broad, interchangeable charging toward differentiated charging, which would change what defense strategies fit. An undifferentiated pattern favors systemic challenges to the prosecution apparatus; a differentiated pattern favors arguments tailored to each charge group. Whether any of this holds across authoritarian systems generally requires far more cases than the five shown here. To make the indicator falsifiable, I state the test in advance. Part VI of this series computed year-by-year Q for Russia from 2012 to 2026 from a single source and pipeline. If those annual values do not exceed their null-model distributions in most years, or do not move with an independent measure of charging differentiation coded from legislation (such as the number of distinct political offenses in force each year), the indicator fails.

For human rights advocates If the patterns hold up under the pending reanalysis, the practical implication is that different datasets suggest different advocacy emphases. Where charges mix freely across groups (low Q), arguments aimed at the prosecution system as a whole may fit best. Where charges cluster (higher Q), arguments can be matched to the cluster: freedom of expression for the speech cluster, freedom of religion or belief for the religious cluster, minority rights for the separatism cluster. The graph suggests which argument may fit which prosecution; it does not replace case-level legal judgment.
what I tested and what I could not

Six objections drawn from the China studies literature. Two were testable. Neither was conclusive.

I stress-tested the comparison against six objections I constructed from the published arguments of China scholars. These scholars did not review this analysis; the objections are mine, framed in the spirit of their work. Two were empirically testable with this data. Neither produced conclusive results.

1. Is Q=0.451 national, or an average of different provincial systems? (after Lieberthal and Oksenberg)

The "fragmented authoritarianism" model (Lieberthal and Oksenberg, 1988; Lieberthal and Lampton, 1992) describes policy-making as bargaining among fragmented bureaucracies. Extended to criminal justice, it suggests that charging patterns could vary across province-level units: Xinjiang's security apparatus does not operate like Guangdong's. I ran Louvain separately by province-level unit (provinces, autonomous regions such as Xinjiang and Tibet, and municipalities such as Beijing). That run was performed before General Part provisions were filtered out, and its reported subgroup counts are internally inconsistent, so I have withdrawn the provincial figures pending a rerun on the filtered graph. The underlying obstacle is clear regardless: no province-level unit has more than a few dozen records with extractable articles, which is in the range where the rarefaction curve shows inflated Q (around 0.60 at n=50 for Russia). The 7.1% extraction rate also raises a deeper problem than sample size. Records with formal criminal proceedings may be better documented, high-profile cases may have richer summaries, and administrative sanctions are absent, so the 876 records may differ systematically from the 11,388 without articles. This is selection on the process that generates the data, not merely a small n. The provincial hypothesis is neither confirmed nor refuted.

2. Is the pattern specific to the Xi era? (after Economy and Fu Hualing)

Elizabeth Economy's work on structural shifts under Xi Jinping, together with Fu Hualing's scholarship on xunxin zishi (picking quarrels) as a pocket crime, suggests that prosecution before and after Xi's accession could look different. Xi became General Secretary in November 2012 and State President in March 2013; I split the data at 2013 using a single record date; the rerun will state which event that date represents and split on the date of the charging decision where the source provides it. Pre-2013: Q=0.601 (n=97). Post-2013: Q=0.519 (n=838). These values come from the graph before General Part provisions were filtered (the two subsets sum to 935 records, not 876), so they are not comparable to the headline 0.451 and must be rerun. Even taken at face value, the pre-2013 subset is in the range where small samples inflate Q, so the apparent difference is more likely a sample-size artifact than evidence of structural change. The hypothesis is neither confirmed nor refuted.

3. The institutional process gap (after Shambaugh, and Ng and He)

David Shambaugh's work on the CCP as an organization, and Kwai Hang Ng and Xin He's Embedded Courts (on how court funding and bureaucratic metrics shape case handling), point to an asymmetry this analysis cannot resolve. Politically sensitive Chinese cases are coordinated through the Party's Political-Legal Commissions (zhengfawei) before and during formal proceedings. The graph sees only what exits that coordination as criminal charges. Russia has its own extra-procedural layer: the FSB's investigative bodies handle treason and much terrorism and extremism casework, and Interior Ministry counter-extremism units shape which cases are opened, alongside the Investigative Committee and the Prosecutor General's Office. The two layers differ in kind (Party organs in China, security services in Russia), which means the two graphs may observe different stages of different pipelines even when they produce similar modularity scores.

4. Is the lineage deeper than 1979? (after Kuhn, ter Haar, and Alford)

Scholarship on late-imperial China (Philip Kuhn, Soulstealers; Barend ter Haar, The White Lotus Teachings; William Alford on Chinese legal tradition) shows that associational liability, collective punishment, and the criminalization of heterodox teachings long predate Soviet contact. The Qing Code prohibited heterodox teachings and sorcery, and the term xiejiao appears in late-imperial official usage. That does not make Article 300 an inheritance of Qing law. Between the two lie Republican-era law, early PRC campaigns against huidaomen (sectarian and secret societies), the 1979 Criminal Law's provision on reactionary sects, the 1997 Criminal Law, and the 1999 NPC Standing Committee decision on xiejiao organizations. Ter Haar's own argument cuts against a simple continuity reading: he shows that "White Lotus" was largely a label officials and literati projected onto diverse groups, so continuity of a stigmatizing label is not continuity of the phenomenon it names. Russian imperial law likewise criminalized political speech and religious dissent before Article 58. The charge groups Louvain detects may reflect long-running state practices of categorizing dissent in both countries, but whether those practices are continuous, revived, or only lexically similar is a question for historians, and this analysis cannot settle it.

5. Is n=5 enough for a general claim? (after Pei)

An earlier draft of this analysis described Q around 0.46 as a possible "structural attractor" for authoritarian prosecution. Minxin Pei's work on the internal mechanics of authoritarian control suggests why that claim is too strong. Five datasets, built from non-commensurable units, cannot establish a general property of authoritarianism. The regime types also differ: Belarus and contemporary Russia are typically classed as personalist autocracies, while China is a Leninist party-state in which the CCP occupies an institutional position United Russia does not. Grouping Russia and China as a single regime type would be a category error. I withdraw the attractor framing. The similarity of the Russian and Chinese point estimates is a hypothesis generated by this analysis, not a finding about regime type or developmental trajectory.

6. The Mao-era gap (after Dikötter)

Frank Dikötter's archival work on the Mao era (whose quantitative estimates other historians of the period contest) highlights the missing baseline. The Soviet side has the 1,056,670 Memorial records used in the earlier analysis, a subset of Memorial's larger databases. I am not aware of a comparable structured, charge-level dataset for the Anti-Rightist Campaign (roughly 550,000 people labeled "rightists"), the Great Leap Forward, or the Cultural Revolution, though databases of Cultural Revolution documents and victims exist. Mao-era persecution also ran largely through campaign labels and administrative sanctions rather than criminal charges, so even a full dataset might not produce a charge co-occurrence graph comparable to the modern ones. The historical comparison remains incomplete.

what would change these findings

Twelve tests that could overturn or confirm the comparison.

Each of the following has been specified but not yet run. Each could weaken or overturn a finding above. Results will be published as a follow-up regardless of direction.

  • Null model. Compare each Q against Q values from degree-preserving randomizations of the same graph. If the observed values sit near the null mean, the "specialization" reading fails for both countries.
  • Paired difference at matched n. Bootstrap QR−QC with both samples drawn at n=876, using bias-corrected intervals. An interval that excludes zero would undermine "similar."
  • Hyperedge recount. Count three-article combinations within single charging events rather than closed triangles in the pairwise graph. This is the only basis for any claim about three-charge prosecutions.
  • Participation coefficient, centralization, and node removal. Measure bridging relative to each Louvain partition, express betweenness concentration as a centralization index compared against null models, and measure how each graph's components change when each article is removed. This is the test of the Art. 293 hub finding.
  • Time slices aligned with amendments. Rebuild the Russian graph before December 2018, from 2019 to February 2022, and after, and the Chinese graph around the 2011 and 2015 amendments.
  • Mainland-only China. Remove Hong Kong cases using a jurisdiction field and rerun.
  • Extraction audit. Hand-code a random sample of CECC summaries and measure how often the extraction misses or invents articles, especially in multi-charge cases.
  • Filtered reruns of the provincial and Xi-era splits. Replace the withdrawn and pre-filter values.
  • Event-scoped and stage-scoped edges. Rebuild edges from single charging events at a stated procedural stage, and report how many edges change relative to record-level construction.
  • Versioned, jurisdiction-qualified nodes. Replace integer article numbers with provisions qualified by code version and forum, preserve decimal articles and sub-articles, and apply the General Part rule symmetrically to both codes.
  • Forum separation. Rerun Russia with occupied Crimea separated, alongside the mainland-only China rerun.
  • Direct conditional co-occurrence. Report the share of speech-cluster charging events that also include a terrorism-cluster article in each country, with intervals.