Discrepancies¶
Discrepancies are differences detected between trustee tape data and internal portfolio data during reconciliation.
Rule Engine¶
The reconciliation engine uses a rule-based architecture with pluggable rule implementations.
flowchart TD
ENGINE["Reconciliation\nEngine"]
ENGINE --> REGISTRY["Rule Registry"]
REGISTRY --> COMP["Completeness\nRules"]
REGISTRY --> CALC["Calculation\nRules"]
REGISTRY --> TIME["Timing\nRules"]
REGISTRY --> REF["Reference\nRules"]
REGISTRY --> BIZ["Business\nRules"]
COMP --> DETECT["Severity\nCalculator"]
CALC --> DETECT
TIME --> DETECT
REF --> DETECT
BIZ --> DETECT
DETECT --> ISSUES["Issue\nStore"] Rule Categories¶
Completeness Rules¶
Detect loans present in one data source but missing from the other.
| Rule | Description |
|---|---|
| MissingInInternal | Loan in trustee tape but not in internal data |
| MissingInTrustee | Loan in internal data but not in trustee tape |
Calculation Rules¶
Detect numeric value differences between sources.
| Rule | Description |
|---|---|
| ParValueMismatch | Par value differs beyond tolerance |
| AccruedInterestMismatch | Accrued interest calculation differs |
| MarketValueMismatch | Market value differs |
Timing Rules¶
Detect date-related discrepancies.
| Rule | Description |
|---|---|
| MaturityDateMismatch | Maturity dates differ |
| SettlementDateMismatch | Settlement dates differ |
Reference Rules¶
Detect reference data differences.
| Rule | Description |
|---|---|
| RatingMismatch | Credit rating differs (Moody's, S&P, Fitch) |
| SpreadMismatch | Spread differs beyond tolerance |
| IndustryMismatch | Industry classification differs |
Business Rules¶
Detect business logic violations.
| Rule | Description |
|---|---|
| DefaultStatus | Default status inconsistency |
| Concentration | Concentration limit exceeded |
| RatingDistribution | Rating distribution anomaly |
Severity Classification¶
Severity is automatically calculated based on materiality:
| Severity | Criteria | Action Required |
|---|---|---|
| Critical | Par >5% diff, missing >$1M | Immediate investigation |
| Error | Par 1-5% diff, missing \(100K-\)1M | Review before reporting |
| Warning | Rating/spread diff | Investigate when possible |
| Info | Minor differences | Log for reference |
Issue Lifecycle¶
stateDiagram-v2
[*] --> open: Issue Detected
open --> acknowledged: Analyst Reviews
acknowledged --> resolved: Fix Applied
acknowledged --> false_positive: Not Real Issue
open --> false_positive: Dismissed
resolved --> [*]
false_positive --> [*] Status Descriptions¶
| Status | Description |
|---|---|
open | Newly detected, awaiting review |
acknowledged | Under investigation |
resolved | Root cause identified and corrected |
false_positive | Determined to not be a real discrepancy |
Tolerance Configuration¶
Default reconciliation tolerances:
| Field | Warning | Error | Critical |
|---|---|---|---|
| Price | 0.5% | 1% | 2% |
| Spread | 10bps | 25bps | 50bps |
| Par Value | - | 1% | 5% |
Related Documentation¶
- Trustee Tapes - Tape upload and parsing
- Reconciliation API - REST endpoints