Skip to main content

CDM Overview

CreditNexus is fully compliant with the FINOS Common Domain Model (CDM), ensuring interoperability with other financial systems and adherence to industry standards. Code Reference: app/models/cdm.py, app/models/cdm_events.py, .cursor/rules/cdm-compliance.mdc

CDM Models

All financial data is represented using CDM models:

CreditAgreement

Represents credit facility agreements with parties, facilities, and terms. Code Reference: app/models/cdm.py (CreditAgreement model)

Party

Represents counterparties (borrowers, lenders, guarantors). Code Reference: app/models/cdm.py (Party model)

LoanFacility

Represents individual loan facilities within a credit agreement. Code Reference: app/models/cdm.py (LoanFacility model)

TradeExecution

Represents trade execution events with CDM-compliant structure. Code Reference: app/models/cdm_events.py (generate_cdm_trade_execution)

PolicyEvaluation

Represents policy decision events with evaluation trace. Code Reference: app/models/cdm_events.py (generate_cdm_policy_evaluation)

Policy Validation

Policy validation is embedded at the point of data creation using Pydantic model validators:
Code Reference: app/models/cdm.py (model validators), .cursor/rules/cdm-compliance.mdc

CDM Events

All state changes and policy decisions are stored as CDM events:

TradeExecution Events

Record trade executions with CDM-compliant structure:
Code Reference: app/models/cdm_events.py (generate_cdm_trade_execution)

PolicyEvaluation Events

Record policy decisions with evaluation trace:
Code Reference: app/models/cdm_events.py (generate_cdm_policy_evaluation)

Observation Events

Record observations and verifications:
  • Loan default observations
  • Recovery action observations
  • Verification results
Code Reference: app/models/cdm_events.py (generate_cdm_observation, generate_cdm_loan_default)

Event Structure

CDM events include required fields:
  • eventType: Type of event (e.g., “TradeExecution”, “PolicyEvaluation”, “Observation”)
  • eventDate: ISO 8601 timestamp
  • meta.globalKey: Unique identifier with issuer and assignedIdentifier
  • relatedEventIdentifier: Links to related events
Code Reference: app/models/cdm_events.py (all event generators)

CDM Compliance Principles

1. Validation at Creation

All CDM models validate policy compliance at the point of creation:
Code Reference: .cursor/rules/cdm-compliance.mdc

2. Event Generation

All policy decisions generate CDM events:
Code Reference: app/services/policy_service.py, app/models/cdm_events.py

3. State Machine Pattern

All state transitions use CDM-compliant state machine pattern:
  • States are CDM-compliant
  • Transitions generate CDM events
  • State history is maintained
Code Reference: .cursor/rules/cdm-compliance.mdc

CDM Event Storage

CDM events are stored in the database as JSONB:
Code Reference: app/db/models.py (PolicyDecision, LoanDefault, RecoveryAction models)

Compliance Checklist

  • ✅ CDM model definitions (CreditAgreement, Party, LoanFacility)
  • ✅ CDM event generation (TradeExecution, PolicyEvaluation, Observation)
  • ✅ Policy validation at creation point
  • ✅ Event storage in database (JSONB)
  • ✅ ISO 8601 date formatting
  • ✅ Global key generation
  • ✅ Related event linking

Additional Resources


Last Updated: 2026-01-14
Standard: FINOS CDM
Code Reference: app/models/cdm.py, app/models/cdm_events.py, .cursor/rules/cdm-compliance.mdc