Reconciliation Models
This page documents the data models related to trustee reconciliation, tapes, loans, and discrepancy issues.
TrusteeTape
Represents an uploaded and parsed trustee tape.
Properties
| Property | Type | Description |
id | string | Tape identifier |
trustee_name | TrusteeName | Trustee that issued the tape |
statement_date | string (date) | Statement date |
file_name | string | Original uploaded filename |
loan_count | integer | Number of loans in tape |
total_par | number? | Total par value of all loans |
processing_status | string | Processing status |
error_message | string? | Error details if processing failed |
created_at | string (ISO 8601) | Upload timestamp |
Example
{
"id": "tape_abc123",
"trustee_name": "us_bank",
"statement_date": "2026-01-31",
"file_name": "trustee_tape_jan2026.xlsx",
"loan_count": 150,
"total_par": 450000000.00,
"processing_status": "completed",
"error_message": null,
"created_at": "2026-02-01T09:00:00Z"
}
TrusteeLoan
Represents a single loan record from a trustee tape.
Properties
| Property | Type | Description |
id | string | Loan record identifier |
tape_id | string | Parent tape ID |
cusip | string | CUSIP identifier |
loanx_id | string? | LoanX identifier |
primary_identifier | string? | Primary loan identifier |
borrower_name | string? | Borrower name |
par_value | number? | Par (face) value |
price | number? | Current price |
rating_moodys | string? | Moody's rating |
rating_sp | string? | S&P rating |
rating_fitch | string? | Fitch rating |
spread | number? | Spread in basis points |
base_rate | string? | Base rate (e.g., SOFR) |
all_in_rate | number? | All-in interest rate |
maturity_date | string (date)? | Maturity date |
industry | string? | Industry classification |
country | string? | Country of domicile |
days_past_due | integer | Days past due (default: 0) |
ReconciliationIssue
Represents a discrepancy found during reconciliation.
Properties
| Property | Type | Description |
id | string | Issue identifier |
tape_id | string | Source tape ID |
cusip | string? | Related CUSIP |
identifier_type | string? | Identifier type used for matching |
issue_type | string | Type of discrepancy |
severity | IssueSeverity | Severity level |
category | string | Rule category |
field_name | string? | Field with discrepancy |
trustee_value | string? | Value from trustee tape |
internal_value | string? | Value from internal data |
status | IssueStatus | Resolution status |
resolution_notes | string? | Notes about resolution |
created_at | string (ISO 8601) | Detection timestamp |
Example
{
"id": "issue_abc123",
"tape_id": "tape_abc123",
"cusip": "12345ABC",
"identifier_type": "cusip",
"issue_type": "value_mismatch",
"severity": "error",
"category": "calculation",
"field_name": "par_value",
"trustee_value": "5000000.00",
"internal_value": "4950000.00",
"status": "open",
"resolution_notes": null,
"created_at": "2026-02-01T09:05:00Z"
}
Enumerations
TrusteeName
| Value | Description |
us_bank | US Bank |
deutsche | Deutsche Bank |
wilmington | Wilmington Trust |
IssueStatus
| Value | Description |
open | Newly detected, awaiting review |
acknowledged | Reviewed, investigation in progress |
resolved | Issue has been resolved |
false_positive | Determined to not be a real issue |
IssueSeverity
| Value | Description | Criteria |
critical | Immediate attention required | Par value >5% difference, missing loan >$1M |
error | Significant discrepancy | Par value 1-5% difference, missing loan \(100K-\)1M |
warning | Notable difference | Rating mismatch, spread >10bps difference |
info | Minor difference | Non-material field differences |