SOP-05 — Matching method and person-level rows
Owner: Owner-operator (Document Owner and Records Owner for every SOP; no delegate exists). Version 2026-10-08 · effective 2026-10-04 · reviewed every 90 days · last reviewed 2026-10-08 · next review due 2027-01-06.
Purpose
State on every line how the match was made, and keep the platform entity-focused.
Scope
All checks; public, partner and prebuilt receipts.
Procedure
- Official keys (UEI, NPI, EIN, CCN, CIK, LEI, CAGE) are exact matches and are labelled as such.
- A bare name matches only the exact printed name or alias as the file prints it (case/whitespace-normalised). Such rows are labelled candidates; the receipt says the identity question is the reader's.
- No fuzzy, phonetic or probabilistic matching is presented as a match. Where a source offers a 'like' search, its results are listed as candidates with that label.
- Person-level rows: no person search, index or profile exists. Agency-printed individual rows appear only under the exact queried name and are shown as same-printed-name rows, not as the subject. The UN list's individuals section is shown, not counted; NRC's individuals collection is not read.
- Parent-as-registered rows use only the hierarchy the registrant itself filed in SAM; they are labelled self-reported and are not a FOCI, affiliation or control finding.
- Similar printed names: after the exact-key and exact-printed-name reads, held-list entity rows whose name equals the queried name under the published normalisation (/api/public-record/similar-names/method) are listed as 'shown, not counted'. The normalisation is fixed and deterministic; no probability, similarity score or token overlap is computed or printed; individuals are never indexed; no row is counted, matched or merged on this account.
Records this procedure produces — and who keeps them current
| Record | Where | Updated by | Update trigger | Retention | Public |
|---|
| Match method per line | receipt body (each check's match_method) | system | every receipt | indefinite | True |
Evidence
/trust · /api/spec/receipt/v1
Change log
| Date | Change |
|---|
| 2026-10-06 | Written as SOP. |
| 2026-10-07 | Evidence link corrected: /api/receipts/spec (404) → /api/spec/receipt/v1. |
| 2026-10-08 | Owner reviewed an entity-resolution memo (Fellegi–Sunter, Splink). Probabilistic linkage declined: a match probability printed beside a name is a score. Adopted the deterministic alternative: 'rows under a similar printed name — shown, not counted' (backend/namewiden.py; /api/public-record/similar-names, /method publishes the full normalisation). A row is similar only when its name equals the queried name after a fixed normalisation (upper-case, &→AND, punctuation dropped, standard abbreviations expanded, trailing corporate suffixes removed, leading THE dropped). Entities only; individuals never indexed. Nothing is counted, matched or merged on its account; the block sits in the receipt's identity section and on the print page. |
Quality Manual · All SOPs · Records Register