{"schema":"https://ver.cy/schemas/card/1.0.0","id":"vr.profile.enterprise-counterparty-relationship","code":"enterprise-counterparty-relationship","url":"https://ver.cy/models/enterprise-counterparty-relationship/","name":"Enterprise Counterparty Relationship","alternateNames":["Counterparty Relationship Profile","Customer Supplier Partner Relationship","EM-COM-01"],"kind":"enterprise-profile","status":"published","version":"0.1.0","language":"en","classifiers":{"family":"Enterprise profiles","category":"Cross-cutting context","entryKind":"companion-contract","plane":"","domain":["Enterprise","Commercial","Counterparty","CRM","Procurement"],"industry":["Cross-industry"],"navPath":"NAV.XCT","tags":["EM-COM-01","counterparty","customer","supplier","partner","contact-assignment","segmentation","party-role"],"facets":{}},"whatItIs":"A companion profile for a Company Dimension that represents the commercial roles one party plays towards the company, as customer, supplier or partner, in a stated scope, while party identity and contact values stay in their own masters.","purpose":"Represent customer, supplier and partner roles for one Party without duplicating Party identity, upstream relationship records or contact endpoint values.","scope":{"in":[],"out":[],"boundaries":[]},"distinguishingFeatures":["Represents the customer, supplier and partner roles of one party without duplicating the party record.","Holds references to contact endpoints rather than copies of their values.","Separates the commercial relationship from the legal identity of the counterparty."],"structure":{"bundles":[{"id":"CPR-B1","name":"Identity and authority","description":"Govern identity and authority without duplicating upstream identity or authority.","layers":[{"id":"CPR-L1","name":"Party anchoring","description":"Make party anchoring explicit and testable.","findings":[{"id":"CPR-F1","name":"Set identity","description":"Validate set identity against the bounded profile contract.","questions":[{"text":"Which Party and observing Dimension identify this set?","id":"CPR-Q1","kind":"evidence"},{"text":"Can any role create another Party?","id":"CPR-Q2","kind":"decision"}]},{"id":"CPR-F2","name":"Party master","description":"Validate party master against the bounded profile contract.","questions":[{"text":"Which authority resolves partyRef?","id":"CPR-Q3","kind":"evidence"},{"text":"Is a split Party master held rather than hidden?","id":"CPR-Q4","kind":"decision"}]}]},{"id":"CPR-L2","name":"Commercial authorities","description":"Make commercial authorities explicit and testable.","findings":[{"id":"CPR-F3","name":"Role ownership","description":"Validate role ownership against the bounded profile contract.","questions":[{"text":"Which upstream model owns this role?","id":"CPR-Q5","kind":"evidence"},{"text":"Does customer resolve only to 014 and supplier/partner to 015?","id":"CPR-Q6","kind":"decision"}]},{"id":"CPR-F4","name":"Exact referent","description":"Validate exact referent against the bounded profile contract.","questions":[{"text":"Which versioned upstream record is bound?","id":"CPR-Q7","kind":"evidence"},{"text":"Is lifecycle copied into the profile?","id":"CPR-Q8","kind":"decision"}]}]}]},{"id":"CPR-B2","name":"Scope and roles","description":"Govern scope and roles without duplicating upstream identity or authority.","layers":[{"id":"CPR-L3","name":"Concurrent roles","description":"Make concurrent roles explicit and testable.","findings":[{"id":"CPR-F5","name":"Multi-role set","description":"Validate multi-role set against the bounded profile contract.","questions":[{"text":"Which roles are active at the requested time?","id":"CPR-Q9","kind":"evidence"},{"text":"Does adding a role preserve Party identity?","id":"CPR-Q10","kind":"decision"}]},{"id":"CPR-F6","name":"Role validity","description":"Validate role validity against the bounded profile contract.","questions":[{"text":"What half-open interval applies to each binding?","id":"CPR-Q11","kind":"evidence"},{"text":"How is upstream supersession surfaced?","id":"CPR-Q12","kind":"decision"}]}]},{"id":"CPR-L4","name":"Account scope","description":"Make account scope explicit and testable.","findings":[{"id":"CPR-F7","name":"Scope kind","description":"Validate scope kind against the bounded profile contract.","questions":[{"text":"Is the frame seller, buyer, legal entity or group?","id":"CPR-Q13","kind":"evidence"},{"text":"Which target resolves the scope?","id":"CPR-Q14","kind":"decision"}]},{"id":"CPR-F8","name":"Group boundary","description":"Validate group boundary against the bounded profile contract.","questions":[{"text":"Which group perimeter authority is referenced?","id":"CPR-Q15","kind":"evidence"},{"text":"Is membership inferred from tax ID or CRM hierarchy?","id":"CPR-Q16","kind":"decision"}]}]}]},{"id":"CPR-B3","name":"Contacts and classification","description":"Govern contacts and classification without duplicating upstream identity or authority.","layers":[{"id":"CPR-L5","name":"Contact assignment","description":"Make contact assignment explicit and testable.","findings":[{"id":"CPR-F9","name":"Endpoint reference","description":"Validate endpoint reference against the bounded profile contract.","questions":[{"text":"Which WM-PER-010 endpoint is assigned?","id":"CPR-Q17","kind":"evidence"},{"text":"Does the assignment copy an endpoint value?","id":"CPR-Q18","kind":"decision"}]},{"id":"CPR-F10","name":"Assignment context","description":"Validate assignment context against the bounded profile contract.","questions":[{"text":"Which purpose, role, scope and interval apply?","id":"CPR-Q19","kind":"evidence"},{"text":"Does assignment imply consent or reachability?","id":"CPR-Q20","kind":"decision"}]}]},{"id":"CPR-L6","name":"Segmentation assertions","description":"Make segmentation assertions explicit and testable.","findings":[{"id":"CPR-F11","name":"Sourced segment","description":"Validate sourced segment against the bounded profile contract.","questions":[{"text":"Which code, scheme, version and source support this assertion?","id":"CPR-Q21","kind":"evidence"},{"text":"Is a bare segment label rejected?","id":"CPR-Q22","kind":"decision"}]},{"id":"CPR-F12","name":"Assertion history","description":"Validate assertion history against the bounded profile contract.","questions":[{"text":"Which method and asserted time apply?","id":"CPR-Q23","kind":"evidence"},{"text":"Are conflicts retained and corrections appended?","id":"CPR-Q24","kind":"decision"}]}]}]},{"id":"CPR-B4","name":"Projection and controls","description":"Govern projection and controls without duplicating upstream identity or authority.","layers":[{"id":"CPR-L7","name":"Current projections","description":"Make current projections explicit and testable.","findings":[{"id":"CPR-F13","name":"rolesAt","description":"Validate rolesat against the bounded profile contract.","questions":[{"text":"Which bindings are active at time t?","id":"CPR-Q25","kind":"evidence"},{"text":"Does projection mint a relationship?","id":"CPR-Q26","kind":"decision"}]},{"id":"CPR-F14","name":"contactsFor","description":"Validate contactsfor against the bounded profile contract.","questions":[{"text":"Which assignments match purpose and time?","id":"CPR-Q27","kind":"evidence"},{"text":"Is current permission rechecked at endpoint authority?","id":"CPR-Q28","kind":"decision"}]}]},{"id":"CPR-L8","name":"Boundary controls","description":"Make boundary controls explicit and testable.","findings":[{"id":"CPR-F15","name":"Endpoint conflict","description":"Validate endpoint conflict against the bounded profile contract.","questions":[{"text":"Is the PER-010/XCT-024 conflict still visible?","id":"CPR-Q29","kind":"evidence"},{"text":"Can XCT-024 become a second party endpoint master?","id":"CPR-Q30","kind":"decision"}]},{"id":"CPR-F16","name":"Neighbor exclusion","description":"Validate neighbor exclusion against the bounded profile contract.","questions":[{"text":"Which contract, order, consent and event refs remain external?","id":"CPR-Q31","kind":"evidence"},{"text":"Does any profile field absorb their lifecycle?","id":"CPR-Q32","kind":"decision"}]}]}]}]},"agentConduct":{"may":["Run profile validation on counterparty roles.","Read which roles a party holds and in which scope."],"mustNot":["Create a second party identity for a party that already exists upstream.","Copy contact values into the relationship record.","Change the upstream party or CRM master while validating."],"requiresHuman":["Starting or ending a relationship with a counterparty.","Resolving which upstream record is the master when two disagree."]},"ethics":{"considerations":["Contact details of people at counterparties are personal data and must stay minimal and purpose-bound.","Role labels such as blocked supplier affect livelihoods and need evidence and review."],"affectedParties":["Contact persons at customers, suppliers and partners","Sales and procurement staff"]},"owners":{"steward":"The commercial operations owner stewards counterparty roles; party identity stays with the party master.","roles":[],"masterSystems":["Party or business partner master","CRM","Procurement or supplier management system"]},"relations":[{"target":"WM-ORG-014","type":"references","note":"0.3.0-research.1"},{"target":"WM-ORG-015","type":"references","note":"0.3.0-research.1"},{"target":"WM-PER-010","type":"references","note":"0.3.0-research.1"},{"target":"WM-XCT-024","type":"references","note":"0.3.0-research.1"},{"target":"vr.wm-org-014","type":"aligned"},{"target":"vr.wm-org-015","type":"aligned"},{"target":"vr.wm-per-010","type":"aligned"},{"target":"vr.wm-xct-024","type":"aligned"}],"interaction":{"identity":{"applicability":"required","items":["Party reference to the upstream master record.","Role and scope identifiers local to the Company Dimension."]},"properties":{"applicability":"not-applicable","items":[]},"recognition":{"applicability":"optional","items":["A counterparty role names one party, a role type (customer, supplier, partner) and a scope."]},"capabilities":{"applicability":"required","items":["Run the profile validation without changing an upstream master."]},"hazards":{"applicability":"required","items":["Duplicate counterparties that split history and limits.","Stale roles that keep blocked or ended partners active."]},"interfaces":{"applicability":"required","items":["GLEIF LEI for legal entity identification.","Party models in CRM and ERP systems."]},"context":{"applicability":"required","items":["Sales, procurement and partner management inside one company or group."]}},"sources":[{"title":"Research record EM-COM-01: independent provider studies, audits and reconciled findings","url":"https://ver.cy/enterprise/research/em-com-01/","note":"Evidence behind the release; claims in the card trace to it."},{"title":"Enterprise Counterparty Relationship 0.1.0 specification","url":"https://ver.cy/models/enterprise-counterparty-relationship/versions/0.1.0/spec.json","note":"Normative release, digest sha256:f6b101478d085ed109ef5ef24482353aadd92daa2b135618b9c32cfd746b3dc3"}],"openQuestions":["Use the pinned companion schema/validator and trusted-host binding. Native outer validation alone does not enforce nested semantics. Consult the released adoption limits. Use only with authoritative Party resolution, pinned upstream records and the semantic evaluator. The profile does not own Party identity, relationship lifecycle, endpoint values, consent or classification schemes. Required reading: https://ver.cy/models/enterprise-counterparty-relationship/versions/0.1.0/publication-addendum.md"],"resources":{"spec":"/models/enterprise-counterparty-relationship/versions/0.1.0/spec.json","agents":"/models/enterprise-counterparty-relationship/versions/0.1.0/AGENTS.md","package":"/models/enterprise-counterparty-relationship/versions/0.1.0/enterprise-counterparty-relationship-0.1.0.zip","source":"https://ver.cy/enterprise/research/em-com-01/"},"provenance":{"origin":"enterprise research","builtFrom":["models/enterprise-counterparty-relationship/versions/0.1.0/spec.json","models/enterprise-counterparty-relationship/catalogue-entry.json","ver-cy/world-models/card-supplements/enterprise-counterparty-relationship.json"],"providers":["Claude","Grok"],"researchStatus":"reviewable-draft","generatedAt":"","builder":"tools/build_cards.py@1.0.0"},"completeness":{"sections":{"classifiers":"filled","whatItIs":"filled","purpose":"filled","distinguishingFeatures":"filled","structure":"filled","agentConduct":"filled","ethics":"filled","owners":"filled","relations":"filled","interaction.identity":"filled","interaction.properties":"not-applicable","interaction.recognition":"filled","interaction.capabilities":"filled","interaction.hazards":"filled","interaction.interfaces":"filled","interaction.context":"filled","sources":"filled"},"notes":{"interaction.properties":"Institutional or informational subject: it has no physical body to measure.","_supplement":"Sections authored in card supplement 1.0.0 by Claude (Opus 5.5) (2026-10-05, unreviewed). Written from the published specification and established practice in the field; no new sources were read. Unreviewed."},"score":1.0}}