This repository has been archived on 2026-07-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
identity-canon/research/commercial-identity/commercial-identity-nuance-settlement.md
tegwick 08361f6fb7 Settle commercial identity nuances with consolidated enums and linking rules
Add commercial-identity-nuance-settlement.md resolving control_basis,
binding_trigger, cross-registry Synonymity strengths, OPI branch modeling,
escrow commitment type, reputation portability, payment edge cases, CRM renewal
rules, Person Account adapters, and eIDAS wallet scope. Update canon, OpenQuestions,
and all commercial-identity source notes.
2026-06-21 23:21:21 +02:00

240 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Commercial Identity Nuance Settlement (2026)
## Source Type
identity-canon adjudication note — resolves remaining open questions and
"remaining nuance" items across the commercial-identity research stack.
## Domain
Standard enums, cross-registry linking rules, regulatory layering, and adapter
guidance for commercial identity edge cases.
## Beneficial Ownership Nuances
### `control_basis` enum (settled)
Use a **jurisdiction-neutral role code** on Beneficial Ownership Relationship,
plus `regulatory_basis` for program-specific rules.
| `control_basis` | Typical sources |
| --- | --- |
| `senior_managing_official` | FATF generic; US CDD control prong when no other role fits |
| `chief_executive` | CEO, managing director, president, executive director |
| `chief_financial` | CFO, treasurer with control |
| `managing_member` | LLC managing member |
| `general_partner` | Partnership general partner |
| `board_chair` | Chair with operational control |
| `trustee` | Trust with management control |
| `settlor_with_control` | Settlor retaining control over trust |
| `other_control` | Catch-all — require `control_basis_detail` free text |
`regulatory_basis` values: `us_cdd`, `us_boi_cta`, `eu_amld`, `fatf_r24`, `national_statute`.
US CDD "significant responsibility to control, manage, or direct" maps to the
most specific code available, else `senior_managing_official`. EU AMLD "senior
managing official" maps directly. Store **one** control-prong person per US CDD
rule; multiple ownership-prong persons allowed.
### FinCEN ID (settled)
FinCEN ID for BOI filers maps to **Registry Identifier**:
- `authority_class: government_registry`
- `scheme: fincen_individual_id` (or jurisdiction-specific extension)
- `jurisdiction: US`
- Attached to **Natural Person**, not Organization.
### Exempt legal entity customers (settled)
Do not rely on absence of Beneficial Ownership Relationships. Record explicit
**Beneficial Ownership Exemption** as **Evidence Source** on the Legal Entity /
Organization with:
- `exemption_type`: `publicly_traded`, `government_entity`, `regulated_financial_institution`, `subsidiary_of_exempt_parent`, `other`
- `regulatory_basis`, `evidence_reference`, `lifecycle_state`
Absence alone is ambiguous (not collected vs. exempt vs. not applicable).
### BOI filing volatility vs. CDD (settled)
Separate regulatory layers in canon — do not merge:
| Layer | Canon artifact | Volatility |
| --- | --- | --- |
| CDD beneficial ownership | Beneficial Ownership Relationship | Stable for covered FIs; collection obligation endures |
| BOI registry filing | Evidence Source (`evidence_type: boi_filing`) | Jurisdiction-dependent; track lifecycle downstream |
| Transparency registry | Evidence Source (`evidence_type: bo_registry_extract`) | Per national register |
Canon does not prescribe legal outcomes; downstream adapters apply current statute.
CDD relationships remain even when BOI filing requirements change.
## Registry Identifier Nuances
### `authority_class` extension (settled)
Add `industry_association` for identifiers issued by trade, standards, or
procurement bodies without government incorporation authority:
- NCAGE / CAGE (defense supplier ID)
- GS1 GLN when used as organization/location key in supply chain
Retain `government_registry`, `regulatory_global`, `commercial_proxy`, `tax`.
### Cross-registry Synonymity strength (settled)
| Link | Default strength | Notes |
| --- | --- | --- |
| LEI ↔ national company reg / ALEI | **strong** | Same legal entity when LOU or government register confirms |
| LEI ↔ UEI | **strong** | When SAM.gov or authoritative crosswalk confirms |
| LEI ↔ DUNS | **medium** | D&B may assign per location; proxy authority |
| DUNS ↔ UEI | **medium** | Historical procurement migration |
| DUNS ↔ company reg | **medium** | Branch/location mismatch common |
| company reg ↔ ALEI | **authoritative** | Same register encoding |
Use `relation_type: same_as` when strength is strong or authoritative;
`linked_to` for medium. Require `evidence_reference` (crosswalk, operator verify).
### ISO 6523 OPI / branch modeling (settled)
ISO 6523 **organization part identifier (OPI)** models a **branch or org unit**,
not a separate legal entity by default:
- Store OPI on **Registry Identifier** as optional `organization_part_id`.
- Map branch to **Organization Unit** (Group specialization) or child **Organization**
when operationally distinct.
- Branch DUNS + parent LEI: link branch Proxy Commercial Identifier to parent
Organization via structural relationship; Synonymity Assertion (medium) between
branch DUNS and parent LEI when same legal entity confirmed.
## Reputation and Assurance Nuances
### `assurance_tier` vs. numeric score (settled)
**Primary:** `assurance_tier` enum (`opinion` | `observed` | `committed` | `adjudicated`).
**Optional:** `numeric_score` + `score_scale` on Evidence Source for downstream
(e.g., PAYDEX 0100, star rating 15). Downstream maps score ranges to tiers;
canon does not merge tiers from scores alone.
### Platform escrow without separate contract (settled)
Segregated escrow with defined release conditions is **committed** tier:
- Model **Commercial Commitment** `commitment_type: escrow`
- Evidence Source: platform escrow terms, payment-provider escrow object, or
marketplace buyer-protection policy accepted at transaction time
- Funds segregation + conditional release = commitment, not merely observed metric
### Cross-platform reputation portability (settled)
Portable reputation uses **Synonymity Assertion** between **Reputation Signal**
Evidence Sources:
- Default `relation_type: linked_to` (not `same_as`)
- Default strength: **weak**
- Upgrade to medium only with verified identity bridge (same Natural Person proof,
verified purchase on both platforms, operator confirmation)
- Require `portability_evidence` reference; scope must list both platforms
### Smart-contract / oracle outcomes (settled)
| Outcome type | Tier | Canon |
| --- | --- | --- |
| On-chain condition check (oracle, escrow release) | observed | Performance Evidence |
| Binding ADR with identified parties (incl. on-chain tribunal with published rules) | adjudicated | Adjudication Outcome |
| Court judgment enforced on-chain | adjudicated | Adjudication Outcome |
Automation alone does not elevate to adjudicated without identifiable dispute
authority and parties.
## Payment Nuances
### Network tokens e.g. Visa VTS (settled)
Network tokens map to **Payment Instrument Reference**:
- `instrument_type: network_token`
- `network_token_service` (e.g., `visa_vts`, `mastercard_mdes`)
- Same lifecycle and PCI boundary as `pm_xxx` references
### Shared payment methods across org customers (settled)
One Payment Instrument Reference may attach to **multiple Commercial Records**
within the same payment-provider org **Scope**:
- `sharing_scope: payment_provider_org`
- `shared_across_records: [commercial_record_ids]`
- Do not Synonymity-merge Commercial Records — only share the instrument reference
### Customer wallet balance (settled)
Provider ledger balance (Stripe Customer balance) is a **Commercial Record**
attribute `provider_ledger_balance` — not a Credential, not a Commercial Commitment.
Currency and provider scope required.
## CRM and Pipeline Nuances
### `binding_trigger` enum (settled)
| Value | Commitment state | Typical evidence |
| --- | --- | --- |
| `quote_accepted` | proposed | CPQ acceptance, e-sign |
| `loi_signed` | proposed | Signed LOI |
| `purchase_order_executed` | active | PO record |
| `contract_executed` | active | Signed agreement |
| `subscription_activated` | active | Billing webhook |
| `regulatory_onboarding_complete` | active | KYC/KYB completion |
| `org_policy_closed_won` | active only if org maps Closed Won → executed contract **and** policy documented as Evidence |
`org_policy_closed_won` is downstream-configured; canon requires explicit Evidence.
### Renewal Opportunity (settled)
| Situation | Canon treatment |
| --- | --- |
| Renewal on existing contract (same agreement extended) | **Commitment amendment** Evidence on existing Commercial Commitment; optional Pipeline Pursuit for forecast tracking |
| Competitive rebid / new agreement cycle | New **Pipeline Pursuit** |
| Material term change | Commitment amendment + may create Pipeline Pursuit |
Rule: if `amends_commitment_id` is set and change type is `renewal` or `amendment`,
do not create a new root Commercial Commitment unless terms are net-new contract.
### Partner vs. customer Opportunity (settled)
Same **Pipeline Pursuit** type with `pursuit_role`:
- `customer` (default)
- `partner` (channel, alliance)
- `vendor` (reverse sourcing)
Role affects **Commercial Relationship** typing, not Pipeline Pursuit structure.
### Person Account adapter guidance (settled)
Salesforce Person Account and similar B2C shortcuts:
- **Canon storage:** Natural Person + Commercial Record (split layers)
- **Adapter projection:** `projection_mode: person_account_combined` on export only
- Do not introduce Person Account as canonical root; discourage unified tables in
downstream schema without layer tags
## eIDAS / EUDI Nuances (commercial stack)
### Qualified electronic seal (settled)
Maps to **Credential** with `credential_type: qualified_seal`, bound to
**Organization** / **Legal Entity** through **Representation Relationship**
(signing officer or mandated agent). Distinct from login Credential.
### EUDI organizational wallet Scope (settled)
Organizational wallet is a **Scope** specialization (`wallet_scope`) holding
wallet-hosted **Credentials** and **Claims** — not a **Tenant** (no admin
isolation semantics). Link wallet Scope to **Commercial Record** and Organization
actor via Commercial Relationship.
## References
All prior commercial-identity source notes. This note supersedes their Open
Questions sections where marked settled below.