# [Financial Crime](../domain.md)
## Entities
### Agreement
An Agreement defines the formal contractual terms that govern relationships between party roles and financial products.
```mermaid
---
config:
layout: elk
---
classDiagram
class Agreement{
* Agreement Identifier : string
Agreement Number : string
Agreement Status : enum~AgreementStatus~
Effective Date : date
Maturity Date : date
}
TermDepositAgreement --|> Agreement
LoanAgreement --|> Agreement
Agreement "1" --> "0..*" PartyRole : governs
class AgreementStatus["Agreement Status"]{<>}
class TermDepositAgreement["Term Deposit Agreement"]
class LoanAgreement["Loan Agreement"]
class PartyRole["Party Role"]
```
```yaml
existence: independent
mutability: slowly_changing
attributes:
Agreement Identifier:
type: string
identifier: primary
description: Unique identifier of the agreement record.
Agreement Number:
type: string
description: Human-facing agreement reference number.
Agreement Status:
type: enum:Agreement Status
description: >
The current lifecycle state of the agreement. Active agreements govern current
obligations; Terminated and Matured agreements must be retained for audit. Used
as a dimension attribute in agreement-level analytics and regulatory reporting
of active product holdings.
Effective Date:
type: date
description: Date the agreement became enforceable.
Maturity Date:
type: date
description: Date the agreement is scheduled to mature, if applicable.
```
```yaml
governance:
retention_basis: Inherited from domain default retention of 10 years post relationship end for AML/CTF record-keeping
```
## Relationships
### Agreement Involves Party Roles
An Agreement governs and involves one or more Party Roles participating in the contract.
```yaml
source: Agreement
type: governs
target: Party Role
cardinality: one-to-many
granularity: atomic
ownership: Agreement
```