Investigating when and why Black-Scholes misprices options using real market data and ML.
Core question: When does the market know something Black-Scholes doesn't?
# Install dependencies with uv
uv sync
# Copy and fill in your API keys
cp .env.example .env
# Run tests
uv run pytestsrc/data/- Data fetching (yfinance, FRED)src/pricing/- Black-Scholes implementation, volatility calculationssrc/features/- Feature engineering for MLsrc/models/- XGBoost/LightGBM training, evaluation, SHAP analysissrc/viz/- Plotting utilitiesnotebooks/- Research notebooks (EDA, analysis, interpretation)tests/- Pipeline testsdata/- Raw, processed, and feature data (git-ignored)
See AGENTS.md for full project specification.