Skip to content

ZurichParis/Bond-Recommander

Repository files navigation

Bond Recommender App

Overview

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.

Features

  • 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)

Prerequisites

CRITICAL: Place data file as RFQ_Data_Challenge_HEC_Mock.csv in the project root before starting.

Requirements:

  • Docker

Usage Options

Option 1: Docker Development

docker compose up --build
  • Live code reloading enabled
  • Access at http://localhost:8501
  • Query example: XS1985806600

Option 2: Jupyter Notebook Analysis

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.

Architecture

Modern Structure (src/)

  • src/data/: Data loading and preprocessing
  • src/models/: BondSimilarityEngine and ClientAnalyzer classes
  • src/utils/: Bond utilities and rating mappings
  • src/ui/: Streamlit application

Legacy Structure (legacy/)

  • Contains original implementation files
  • Used by Jupyter notebook for backwards compatibility

Docker Development Features

  • Live Code Reloading: Changes automatically reload
  • Volume Mounts: Source code and data mounted from host
  • Development Tools: Container management and debugging commands

Useful Docker Commands

# Container management
docker compose up --build    # Start with build
docker compose down         # Stop and delete

# Troubleshooting
docker compose build --no-cache  # Clean rebuild

Example Queries

Web App: Enter ISIN in the interface (e.g., XS1985806600, BE0002977586, XS2717309855)

About

Bond recommender for credit sales: Bond data -> Potential Buyer or Similar alter Bond

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors