This Bond Recommender App provides a recommendation system for bonds based on historical client RFQ data from Natixis GFS Team. It leverages cosine similarity analysis to suggest bonds similar to a given bond and recommends clients who may be interested in a new bond.
- Bond-to-Bond Similarity: Find similar alternative bonds for sales team
- Bond-to-Client Matching: Recommend clients who might be interested in a bond based on client analysis
- Historical & Recent Analysis: Client preference (Maturity, Industry, Rating...) based on all transactions vs. last 100 transactions, weighted by transaction value (amount * price)
CRITICAL: Place data file as RFQ_Data_Challenge_HEC_Mock.csv in the project root before starting.
Requirements:
- Docker
docker compose up --build- Live code reloading enabled
- Access at
http://localhost:8501 - Query example:
XS1985806600
The notebook provides:
- Complete data preprocessing pipeline
- Custom bond and client analysis
- Visualization capabilities (word clouds, charts)
- New bond vectorizing, hence it will be possible to match new bond with alternative bonds and cutomers.
src/data/: Data loading and preprocessingsrc/models/: BondSimilarityEngine and ClientAnalyzer classessrc/utils/: Bond utilities and rating mappingssrc/ui/: Streamlit application
- Contains original implementation files
- Used by Jupyter notebook for backwards compatibility
- Live Code Reloading: Changes automatically reload
- Volume Mounts: Source code and data mounted from host
- Development Tools: Container management and debugging commands
# Container management
docker compose up --build # Start with build
docker compose down # Stop and delete
# Troubleshooting
docker compose build --no-cache # Clean rebuildWeb App: Enter ISIN in the interface (e.g., XS1985806600, BE0002977586, XS2717309855)