This project automates the reconciliation of fixed income corporate action events, specifically validating cash entitlements against actual payments received. It uses pure SQL to perform the full entitlement calculation, exception detection, and output generation simulating real-world financial operations workflow.
In capital markets operations, when coupon or redemption payments are due, discrepancies can arise between:
- What clients are entitled to (based on positions and event details)
- What was actually paid by the issuer or agent
This automation identifies those mismatches upfront using structured logic.
- SQL (tested on MySQL-compatible engines via DbGate)
- CSV input/output for real-world simulation
- Manual or GUI-based SQL execution (no Python dependencies)
├── input_data/ # CSVs with entitlements, events, and cash received
├── output_data/ # CSVs for exception and release results
├── sql/ # Modular SQL scripts
│ ├── create_tables.sql
│ ├── data_load.sql
│ ├── reconciliation_logic.sql
│ ├── generate_outputs.sql
│ └── review_final_outputs.sql
└── README.md
-
Create Tables
Runcreate_tables.sqlto set up the required tables. -
Load Data
Import the CSVs using the DbGate GUI (or similar SQL tool):ca_notifications.csv→ca_notificationsentitled_positions.csv→entitled_positionsactual_cash.csv→actual_cash
-
Run Reconciliation Logic
Executereconciliation_logic.sqlto calculate expected entitlements and match them with actuals. -
Generate Outputs
Rungenerate_outputs.sqlto separate:- Exceptions → unmatched payments
- Clean records → eligible for release
-
Review (Optional)
Usereview_final_outputs.sqlfor counts, filters, and exception summaries.
exceptions_report.csv→ All mismatches needing reviewrelease_instructions.csv→ Clean payments ready for release
#fixed-income #reconciliation #cash-entitlement #sql-automation #corporate-actions #banking-operations #data-quality
MIT License
Paras Rathod
GitHub Profile
LinkedIn