Data quality · measured

One Company Can Be 30 Per Cent of a Cause of Action: Mass-Filing Clusters, a Sampling Trap, and 19 Million Rulings That Call Themselves Judgments

Yesterday we reported that two basic-level courts hold almost half the judgments in one claim category of Chinese equity transfer litigation, because thousands of individuals sued over the same asset. That raised an obvious question about everything else we have published: how often does a single dispute, filed hundreds of times, masquerade as a body of case law?

So we built a detector and ran it over six company-law cause labels in our corpus. The answer is that clusters are rare but violent. Most categories are clean at any threshold we care about. In the ones that are not, a single company can supply 30 per cent of every appellate case in a cause of action nationwide. Along the way the audit turned up two defects in our own index that are worth more to a buyer than the clusters: a sampling method that silently drew from two of fifteen ingest batches, and 19.3 million rulings whose text opens by calling itself a judgment.

Everything below was measured on 18 September 2026 against our index of 160,291,678 records. Each number is followed by the filter that produces it, so you can re-run it on the same records.

The detector

A litigation cluster is not a large court. It is a burst: many case numbers, one court, one short window, one counterparty. We used a deliberately crude rule, because a crude rule is auditable:

for each cause label:
    composite aggregation over (court.keyword, date)
    fold date to YYYY-MM
    flag any (court, month) bucket holding >= 1% of the cause
    then read the documents in the flagged bucket

Two properties of the data make this work better than it should. Chinese case numbers inside a batch are close to sequential, and courts release batch decisions on one or two days, so a cluster lands in a single month bucket. The last step is not optional: the aggregation finds the burst, but only the text tells you whether it is one dispute or a busy month.

One caveat before the results. The date field is not the decision date everywhere; for part of the corpus it is closer to a publication date, which is why some bursts sit on two adjacent days in a month unrelated to the case numbers. We treat the month bucket as a detector, not as a fact about the court’s calendar.

Five clusters

The detector fired on five buckets across six cause labels. Every one of them turned out to be a genuine mass filing, and every one of them is the same kind of dispute: individuals — villagers or employees — who hold an interest in a company created out of a collective or state enterprise, suing together, represented by one firm, and losing on a threshold question rather than on the merits.

ClusterCause labelCourt & windowRecordsShare of the cause
Wuhan Chunsun请求公司收购股份纠纷 (buyout demand)Wuhan Intermediate, Dec 20221447.50% of 1,921 records; 30.1% of all 479 appellate case numbers in the cause
Jinan Chanfa股权转让纠纷 (equity transfer)Tianqiao District, Jinan, 2018–20206,575 (≈3,196 case numbers)4.43% of 148,500 records; 36.8% of the cause’s enforcement records
Taiyuan Jinying股东知情权纠纷 (inspection rights)Xiaodian District Sep 2016 + Taiyuan Intermediate Oct–Nov 20162721.36% of 20,000 records; 3.8% of appellate case numbers
Zhuhai Jiahao损害股东利益责任纠纷 (harm to shareholder interests)Doumen District, 22 Aug 20141022.09% of 4,884 records; 3.7% of first-instance case numbers
Qinghai water & power ESOP股东出资纠纷 (capital contribution)Qinghai High Court, 13 Nov 2014910.46% of 19,626 records; 11.6% of the 786 retrial-review case numbers

The Wuhan cluster is the sharpest illustration of why a record count is the wrong denominator. Filter the cause label 请求公司收购股份纠纷 to appellate procedure codes and you get 528 records covering roughly 479 case numbers, nationwide, for the entire corpus. 144 of them — 30.1 per cent — are appeals by individual shareholders of one wall-materials company in Wuhan, all docketed on 16 February 2022, all decided in the same month, all represented by the same two law firms on each side, and 142 of the 144 end with the same sentence: appeal dismissed, first-instance ruling upheld. A model asking “how often do appellate courts disturb a buyout ruling?” would be learning about one company.

The Jinan cluster is the largest by volume and the one we under-reported yesterday. We described 1,682 first-instance judgments about the same asset. Counting every record type at that court under the equity transfer label, the same matter runs to 6,575 records and roughly 3,196 distinct case numbers: about 2,021 first-instance, 1,392 third-party revocation suits (≈691 case numbers, consistent with the 695 we published yesterday), and 2,791 enforcement records dated over two days in February 2020. That enforcement tail is the part that matters. The whole equity transfer cause holds 7,591 enforcement records; this one matter supplies 36.8 per cent of them. Any statement of the form “equity transfer judgments are enforced X per cent of the time” computed over that label is, to more than a third, a statement about one creditor in Jinan.

The Qinghai cluster shows the same effect on a tiny denominator. Retrial review is a rare procedural posture: 786 case numbers in the whole capital-contribution cause. 91 of them are former employees of one provincial water and power bureau, all rejected on the same day, represented by the same two lawyers. Any retrial-success statistic in that cause is 11.6 per cent one matter.

What the clusters have in common

That signature is what a de-duplication pass will not catch. These are genuinely distinct case numbers, genuinely distinct plaintiffs, genuinely distinct documents. They are one dispute.

The categories that are clean

Three of our published datasets came through without a single bucket over the threshold, and that is worth stating as plainly as the failures. In 公司解散纠纷 (judicial dissolution, 15,343 records), the largest court-month bucket holds 20 records — 0.13 per cent of the cause. In 股东出资纠纷, outside the Qinghai retrial cluster the next largest bucket is 42 records. In 损害股东利益责任纠纷, outside Zhuhai the largest is 12.

So the grant-rate work we published on judicial dissolution and on the three names for contribution acceleration does not need a cluster correction. We have added a note to the shareholder inspection and equity transfer posts instead, and a link from each to this audit.

One incidental finding from the same aggregation: 3,817,051 records (2.4 per cent of the corpus) carry an empty string in the court field, which is why an “empty court” bucket appears near the top of several causes. Empty is not missing — a must_not exists filter finds only 7,000 records, because an empty string exists. Any per-court statistic silently drops those four million records, or gathers them into one phantom court, depending on how the query is written.

The sampling trap we walked into

Halfway through this audit we did what we always do to check a hypothesis against the whole corpus: draw a random sample with a seeded random_score, so the draw is reproducible. The result said the defect we were chasing did not exist: 0 hits in 1,500 records.

It did exist. The sample was not random. Printing the ingest batch of each sampled record showed that all 1,500 came from two of the fifteen batches in the index (977 from one, 523 from another). The cause is that random_score was seeded on _seq_no, and _seq_no is assigned per shard. Two documents on different shards can share a sequence number, hence an identical random score, and the coordinating node’s top-k merge then resolves the ties in a stable shard order. The sample is a slice of the shards, not of the corpus. Changing the seed did not help; dropping the field is rejected outright, because scoring on _id requires field data that is disabled by default.

The fix is stratification, not a better seed: sample within each ingest batch, then weight each batch’s rate by its population. That is what produced the numbers in the next section. If you have ever validated a Chinese case-law corpus with a random sample drawn this way — ours or anyone’s — the sample may describe two loading runs rather than the data you licensed. Check the batch distribution of your sample before you trust its verdict.

19.3 million rulings that open by calling themselves judgments

The defect that the bad sample hid is this. In Chinese practice a 判决书 (judgment) resolves the claim; a 裁定书 (ruling) disposes of a procedural question. The distinction decides whether a document belongs in an outcome statistic at all. Our records carry it twice: in the title, and in the document-type line at the top of the text.

In one ingest batch, internally named ws and holding 39,341,140 records, 24.5 per cent of the corpus, the two disagree systematically. We drew 600 records from that batch whose title ends in 裁定书 and read the first line of each body:

BatchRecords titled 裁定书SampleBody line says 判决书
ws19,316,065600600 (100%)
ws_new17,963,4976002 (0.3%)
12 other batches38,100,220120 each0

The ws batch writes “judgment” into the header unconditionally: a second sample of 600 records from the same batch titled 判决书 also reads 判决书, so the field is not swapped, it is constant. The title is the reliable signal; the body’s first line, in a quarter of the corpus, is not a signal at all.

Weighted by batch population, 19.3 million of the 75.4 million ruling-titled records in our index — 25.6 per cent — carry a body header that contradicts their title. If your pipeline classifies document type by reading the head of the text, which is the obvious thing to do because the head of the text is where a Chinese court prints it, you will label roughly 19 million rulings as judgments and fold them into outcome rates where they do not belong.

Four of the five clusters above sit in that batch, which is how we found the defect: 465 procedural rulings that a naive type classifier would score as merits judgments, every one of them a refusal to hear the case. The Wuhan cluster, loaded in a later batch, has a correct header.

We have not repaired this. The batch would have to be re-derived from source, and until it is, the documented behaviour is the product: trust the title, ignore the body header, and ask any vendor which of the two their document-type field was built from.

One number we cannot explain

The cause label 股东知情权纠纷 matches exactly 20,000 records. Round numbers in a corpus are usually a cap, so we tried to break it: the total is the sum of twelve separate ingest batches (7,495 + 2,527 + 1,879 + …), it survives splitting the query by year, and no other label we have measured lands on a round number. We have no explanation, and we would rather publish the anomaly than round it into a sentence that sounds settled. Treat the inspection-rights count as approximate until we can account for it.

What a buyer should ask

Four questions come out of this audit, and none of them is about coverage:

  1. Is there a cluster flag? Ask whether the data carries a same-court, same-counterparty, same-window marker. Ours does not yet. Without it, every outcome rate you compute is exposed to a single docket, and the smaller the category the worse the exposure — 30 per cent in one cause here.
  2. Which field is the document type built from? Title or body. If the vendor does not know, that answer is itself informative.
  3. How was the validation sample drawn? If it was a random sample over the whole index, ask for the batch distribution of the sample. Ours looked fine and was drawn from two batches out of fifteen.
  4. Are enforcement records inside the cause label? In equity transfer they are: 7,591 of them, more than a third belonging to one creditor.

What we are not claiming

We did not measure any other provider’s data. We did not examine the merits of any clustered dispute, and we name companies only where the court’s own published caption does; we do not name the individual plaintiffs. The detector is a floor, not a census: it finds bursts that land in one court-month, so clusters spread across many courts, or across years, are invisible to it, and we ran it over six company-law labels rather than the whole corpus. Records are not cases — where both are given, the case-number count is approximate, computed with a cardinality aggregation. Nothing here is a statement about all suits filed in China, only about documents that were published. And none of the defects described above have been fixed: the clusters are unflagged, the header is still wrong in 19.3 million records, and the four million empty court values are still empty.

Ask for the cluster list before you ask for the row count.

SinoVerdict licenses PRC judgment data to teams building legal AI through bulk delivery, a REST API and an MCP endpoint over a 160M+ record corpus, indexed in English, with known defects documented before signature — including the two in this post. Every record carries the court’s own case number, so every count above can be re-run on the same records. Write to chenjiaxin@wenshucha.com for the cluster audit queries or a sample slice.

Request trial access

Frequently asked questions

What is a mass-filing cluster in Chinese case law data?

A cluster is one dispute filed as hundreds of separate cases: many case numbers, one court, one short window, one counterparty, usually one law firm. Measured 18 September 2026, a burst detector over six company-law cause labels found five. The largest by share is 144 appeals by individual shareholders of one Wuhan company, which is 30.1 per cent of all 479 appellate case numbers in the 请求公司收购股份纠纷 cause nationwide. De-duplication does not remove them, because the case numbers, plaintiffs and documents are genuinely distinct.

How do you detect litigation clusters in a judgment corpus?

Run a composite aggregation over court and date, fold the date to a month, and flag any court-month bucket holding at least 1 per cent of the cause label. Then read the documents in the flagged bucket, because the aggregation cannot tell a mass filing from a busy month. The signature of a real cluster is same-day decisions, contiguous case numbers, shared counsel and an identical operative sentence.

Why did a random sample of our corpus draw from only two ingest batches?

Because random_score was seeded on _seq_no, which Elasticsearch assigns per shard. Documents on different shards can share a sequence number and therefore an identical random score, and the coordinating node resolves those ties in a stable shard order, so the top-k merge returns a slice of the shards. Our 1,500-record sample came from two of fifteen ingest batches and reported zero hits for a defect present in 19.3 million records. The fix is to stratify the sample by batch and weight each batch by its population.

Do Chinese judgment texts state their own document type correctly?

Not always. In one ingest batch holding 39,341,140 records, 24.5 per cent of our index, the document-type line at the head of the text reads 判决书 regardless of the real type: 600 of 600 sampled records whose title ends in 裁定书 have a body header saying judgment. Weighted by batch population, 19.3 million of the 75.4 million ruling-titled records in the index, 25.6 per cent, contradict their own title. The title is the reliable field; a classifier that reads the head of the text mislabels those rulings as merits judgments.

Does one cluster change enforcement statistics for equity transfer disputes?

Yes. The 股权转让纠纷 label holds 7,591 enforcement records, and 2,791 of them, 36.8 per cent, belong to a single creditor's enforcement campaign in one district court in Jinan, dated over two days in February 2020. Across all record types that one matter runs to 6,575 records and roughly 3,196 case numbers, 4.43 per cent of the cause. Any enforcement rate computed over the label is, to more than a third, a statement about that one matter.

Further reading