EMS Suppliers, Verified
Home  ·  PCB  ·  Wire harness  ·  Cluster  ·  Guides  ·  About & Methodology

The directory, as a download

Every number on this site, extracted into six files. Free, machine-readable, and checkable field by field — because a figure you cannot download is a figure you have to take on trust.

What is in it

Records
28 — 25 profiled factories and 3 entities measured but screened out
Coverage
20 PCB fabricators, 5 wire-harness plants, across 4 clusters in Guangdong, Jiangsu and Sichuan
Field-level rows
408 — every published field of every record, each with its source note
Sources
124 external URLs cited by the profiles
Format
CSV plus one JSON object; a Frictionless datapackage.json describes every column's type
Release
2026.11.03 — regenerated whenever a profile is added or a source is re-checked
Licence
CC BY 4.0 — free to use, including commercially, with attribution to emssuppliersverified.com
Hosted at
github.com/wzhi36535-code/china-pcb-supplier-data

The six files

FileRowsWhat it is
plants.csv25One row per profiled factory, 29 columns. Start here.
screened_out.csv3The 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.csv408Long 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.csv124Every external URL the profiles cite, keyed to the record that cites it.
clusters.csv4Cluster totals — with a coverage ratio on every total, so a sum of a partial column is never mistaken for a cluster figure.
dataset.json28The whole set as one object, for anything that would rather parse JSON than CSV.

Two headcounts, never merged

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:

PlantInsuredGroupGroup ÷ insured
DSBJ / 东山精密 (Suzhou)1,49539,24526.3×
Huguang / 沪光 (Kunshan)1,09912,23611.1×
Wanyuantong / 万源通 (Kunshan)2341,4096.0×
Shennan / 深南电路 (Shenzhen)6,15221,2113.4×
WUS / 沪电股份 (Kunshan)7,05216,5122.3×
Shengyi / 生益电子 (Dongguan)6,2697,6471.2×
Yingchuangli / 英创力 (Suining)1,7061,8291.1×
Luxshare / 立讯 (Suining)1,2249800.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.

Registry codes do not describe the product

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:

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.

What a blank means

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:

FieldFilledWhy the rest are blank
Unified social credit code25 / 25Every legal person has one, and it appears on every filing.
Founding date25 / 25Registry record. Note that several company websites state a different year than the registry.
Social-insurance headcount19 / 25Five large plants publish only a group or registry employee count; one filed zero because its first filing predates production.
Revenue15 / 2513 at 2025, one at 2024, one at 2022. The rest publish capacity or output value instead — different measures, not revenue.
Group headcount13 / 25Single-site plants have no group to consolidate.
Registry industry code10 / 25Fifteen profiles do not print one.
Stock exchange code10 / 25Ten 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.

Cluster totals carry a coverage ratio

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:

ClusterPlantsInsuredGroupRevenue
Suining135,857——
Kunshan27,28617,921¥20.125bn
Yangtze Delta38,78157,166¥60.25bn
Pearl River Delta8——¥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.

How to cite it

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.

Corrections

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.

What is not in it

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.