datapackage.json describes every column's type| File | Rows | What it is |
|---|---|---|
| plants.csv | 25 | One row per profiled factory, 29 columns. Start here. |
| screened_out.csv | 3 | The entities we measured and will not profile, with the reason in status_note — one ST-flagged listed company, one plant with production equipment in judicial auction, one declared bankrupt in 2024. |
| fields.csv | 408 | Long format: one row per published field, with the exact source note and URL. This is where a number can be traced back to a document. |
| sources.csv | 124 | Every external URL the profiles cite, keyed to the record that cites it. |
| clusters.csv | 4 | Cluster totals — with a coverage ratio on every total, so a sum of a partial column is never mistaken for a cluster figure. |
| dataset.json | 28 | The whole set as one object, for anything that would rather parse JSON than CSV. |
Chinese company data carries two unrelated headcounts, and they differ by an order of magnitude. One is the number of people the legal entity pays social insurance for — an administrative figure, filed annually, comparable across factories. The other is the employee count of the listed group or the consolidated entity — larger, and not comparable to the first. A supplier shortlist built on one column is not the same shortlist as one built on the other.
Of the 25 profiled factories, 19 publish the first figure and 13 publish the second. Eight publish both, and this is the gap:
| Plant | Insured | Group | Group ÷ insured |
|---|---|---|---|
| DSBJ / 东山精密 (Suzhou) | 1,495 | 39,245 | 26.3× |
| Huguang / 沪光 (Kunshan) | 1,099 | 12,236 | 11.1× |
| Wanyuantong / 万源通 (Kunshan) | 234 | 1,409 | 6.0× |
| Shennan / 深南电路 (Shenzhen) | 6,152 | 21,211 | 3.4× |
| WUS / 沪电股份 (Kunshan) | 7,052 | 16,512 | 2.3× |
| Shengyi / 生益电子 (Dongguan) | 6,269 | 7,647 | 1.2× |
| Yingchuangli / 英创力 (Suining) | 1,706 | 1,829 | 1.1× |
| Luxshare / 立讯 (Suining) | 1,224 | 980 | 0.8× |
The last row is the useful one: the insured figure exceeds the "employee" figure a commercial database carries, because they were counted in different years for different purposes. Both are published; neither is corrected to fit the other. Column definitions are in the methodology.
The industry code a factory is registered under is what its licence said on the day it was issued, and several of these licences predate the business the plant now runs. The dataset keeps the registry code and, where a second record disagrees, the disagreement:
33, 金属制品业 (metal products), the stamping-shop licence from 1998; a second record carries C3982 电子电路制造. The group's 2025 revenue was ¥40.125bn.2319 包装装潢及其他印刷 (packaging and other printing) on one record, C3982 on another, on the same USCC.C3911 计算机制造 (computer manufacturing) for a plant whose output is cable and connectors.3824 电力电子元器件制造 (power electronic components) for a PCB maker.A buyer filtering a supplier database by industry code therefore gets a different shortlist depending on which record the database read. Ten of the 25 profiles print a registry code at all.
A field is empty because the factory does not publish it, not because it was not looked for. The rates below are the honest ones, and they are among the more citable things here:
| Field | Filled | Why the rest are blank |
|---|---|---|
| Unified social credit code | 25 / 25 | Every legal person has one, and it appears on every filing. |
| Founding date | 25 / 25 | Registry record. Note that several company websites state a different year than the registry. |
| Social-insurance headcount | 19 / 25 | Five large plants publish only a group or registry employee count; one filed zero because its first filing predates production. |
| Revenue | 15 / 25 | 13 at 2025, one at 2024, one at 2022. The rest publish capacity or output value instead — different measures, not revenue. |
| Group headcount | 13 / 25 | Single-site plants have no group to consolidate. |
| Registry industry code | 10 / 25 | Fifteen profiles do not print one. |
| Stock exchange code | 10 / 25 | Ten are listed on their own account; one more is a subsidiary of a listed group and its parent's code is kept in a separate column so it cannot be mistaken for the plant's. |
Four clusters are published as pages: Suining, Kunshan, the Yangtze Delta and the Pearl River Delta. Each row in clusters.csv states how many members contributed to each total, because adding up the members that happen to publish a figure produces a number that looks authoritative and is not:
| Cluster | Plants | Insured | Group | Revenue |
|---|---|---|---|---|
| Suining | 13 | 5,857 | — | — |
| Kunshan | 2 | 7,286 | 17,921 | ¥20.125bn |
| Yangtze Delta | 3 | 8,781 | 57,166 | ¥60.25bn |
| Pearl River Delta | 8 | — | — | ¥71.1bn |
The dashes are the point. Suining's 13 profiles publish nine insured figures and two group figures, so a group total would be a sum of two factories presented as a cluster total; the cluster page's own published headcount is 5,857 insured, which is used instead. The Pearl River Delta publishes a mixed-basis staff total of 83,482 — seven registry headcounts, one insured figure and one annual-report group count — and that number is labelled as such wherever it appears, never compared to an insured total.
Plain text: emssuppliersverified.com, "Verified Chinese PCB and wire-harness supplier records", release 2026.11.03, CC BY 4.0.
@misc{emssuppliersverified2026,
title = {Verified Chinese PCB and wire-harness supplier records},
author = {{emssuppliersverified.com}},
year = {2026},
note = {Release 2026.11.03. CC BY 4.0},
url = {https://emssuppliersverified.com/dataset}
}
If you quote a single figure, quote the field with it: "1,495 social-insurance contributors at the Suzhou legal person, 2025 filing" is checkable; "1,495 employees" is not, because it is a different number.
If what you need is one number rather than a file, the same figures are indexed on the measured facts index — 27 counts and ratios, each with its sweep date and a link to the page that derives it. The CSV is the source; that page is the shortcut.
If a value here disagrees with the primary source, the primary source wins. Send the record's slug, the column, and the document with its page or section number — to hello@emssuppliersverified.com or as an issue on the repository. The record is corrected or blanked; nothing is quietly re-rounded to look better.
No prices, no MOQ, no lead times, no capacity in square metres for the plants that do not publish one — those are absent from the source records, and this dataset does not model them. No customer lists. No ranking: the rows are ordered alphabetically by slug, and presence in this file is not an endorsement. And no audited figures: every number is a published number, matched to the sentence it came from, which is a narrower claim than it sounds and the only one we can defend.
Want the same treatment for a factory that is not here? Send the company name and product category to hello@emssuppliersverified.com — we reply with the exact list of public records we need. Free to be listed, and free to be screened out in public.