How resolution works.
59.6M+ entities from 27 sources become one cited graph through four stages — ingest, resolve, score, publish. Here's the pipeline, the life of a single record, and the hard rules we hold to.
Many records, one identityIngest registries
Every source is loaded as-is — company registers, beneficial-ownership filings, leaks and sanctions lists — with its licence recorded alongside it.
- Rows become typed entities and edges, nothing invented.
- Each record keeps a pointer back to the source filing.
- Commercial-safe sources served openly; restricted ones gated.
Resolve to one entity
The same real-world party, seen across sources, is collapsed into a single cross-source cluster — precision-ordered, never fuzzy-by-default.
- 1 · Strong-identifier join (LEI, company no., UEN, SEC CIK, sanctions id).
- 2 · Name + jurisdiction block, only where it spans ≥2 registries.
- 3 · Sanctions bridge for null-jurisdiction sanctioned parties.
Score & flag
A heuristic risk level is derived from the graph — an investigative lead, never a legal determination. What isn't scored is shown as Unscored.
- Graph connectivity (degree) + secrecy-jurisdiction presence.
- Sanctions and PEP signals surfaced as an Exposure snapshot.
- No silent default-to-low; absence is stated, not hidden.
Publish cited
The resolved entity becomes a dossier where every claim links back to the record behind it — readable on the web, and machine-read by agents.
- Web, Markdown, JSON and MCP views of the same facts.
- Every edge and flag carries its provenance link.
- Free public REST API — agent-callable, no key to read.
- 01SOURCE ROW
OpenOwnership emits a PSC statement — “Person X significantly controls Company Y (company no. …)”. It arrives as a raw row, licence attached.
- 02NORMALISE
The row becomes a person entity, a company entity and a control edge, each keyed on its strongest identifier — company number, LEI or sanctions id.
- 03RESOLVE
Identifier and name-block passes fold that same company across GLEIF, ICIJ, SEC and the sanctions lists into one cluster_id — one entity, many records.
- 04SCORE
Graph degree, secrecy-jurisdiction presence and any sanctions or PEP hit set a heuristic risk level for the cluster — or leave it labelled Unscored.
- 05CITE
Every edge and flag in the cluster keeps a link back to the exact source record it was derived from. Nothing is asserted without that pointer.
- 06PUBLISH
The entity surfaces as a cited dossier across web, Markdown, JSON and MCP — searchable, traversable and fully traceable to source.
Every entity, ownership edge and risk flag links to the registry or leak record behind it. If we can't cite it, we don't publish it.
Risk levels are heuristic investigative leads to prioritise review — never a legal determination of ownership, sanction status or wrongdoing.
We never synthesise entities, edges or figures to fill a gap. A missing link means “not yet observed in our sources”, not “does not exist”.
Spot a sourced error or need a lawful removal? Email us with the entity id — we correct it and the fix propagates on the next ingest.
Follow any claim to its source.
Open an entity, or read where every source comes from and how it's licensed.
