A complete end-to-end macro-finance and data-science project studying how RBI repo-rate changes relate to Nifty 50 volatility from 2012 to 2025.
This repository brings together policy data, market data, and quantitative analysis to answer a focused question:
Are RBI repo-rate changes informative about future volatility regimes in the Indian equity market, and can they improve short-horizon prediction beyond simple persistence-based baselines?
The work combines data preparation, exploratory analysis, event studies, model benchmarking, and a GJR-GARCH volatility framework. The final conclusion is that repo-rate moves are informative about regime context and market conditions, but they are not strong enough on their own to produce precise short-term forecasting power. Volatility persistence and market structure dominate the dynamics.
This project is complete and includes:
- a reproducible data preparation pipeline
- an exploratory analysis notebook
- an interactive Streamlit dashboard
- a formal written report with methodology and results
- prepared data files for downstream analysis
00_data_preparation.py— prepares the master dataset by merging RBI repo-rate data with Nifty realized volatility.01_analysis.ipynb— contains the main exploratory work, event-study analysis, predictive benchmarking, and volatility modeling.app.py— Streamlit application for visual exploration of repo-rate and volatility dynamics.REPORT.md— final narrative report summarizing the research and conclusions.data/— cleaned and processed datasets used across the project.requirements.txt— Python dependency list.
- RBI repo-rate records from the official RBI data portal
- Nifty 50 daily market data from Yahoo Finance using
yfinance
- Load RBI repo-rate records and standardize dates.
- Resample the policy series to month-end frequency using forward fill.
- Download Nifty 50 daily data and compute daily log returns.
- Convert daily returns to monthly realized volatility using a 21-trading-day scaling factor.
- Merge policy and market data into a monthly benchmark dataset.
- Run exploratory statistics, event studies, predictive benchmarks, and GJR-GARCH analysis.
- measurement of correlation between repo-rate changes and realized volatility
- interpretation of policy versus market regime dynamics
- comparison of volatility before and after hikes and cuts
- abnormal volatility analysis around policy decisions
- naive persistence benchmark
- Logistic Regression and Random Forest comparisons
- walk-forward validation to preserve temporal ordering
- GJR-GARCH applied to daily Nifty returns
- analysis of persistence, asymmetry, and heavy-tailed behavior
The final evidence from the project is consistent across methods:
- Repo-rate changes display a moderate inverse relationship with subsequent realized volatility.
- Cuts are associated with elevated pre-event volatility and normalization after the policy move.
- Hikes often occur in calmer volatility environments.
- Volatility regimes are highly persistent and typically outperform policy-based models in short-horizon prediction.
- Standard machine learning models do not reliably beat naive persistence baselines.
- GJR-GARCH confirms strong clustering, asymmetry, and fat-tailed behavior in Nifty returns.
RBI policy is most informative as a regime and context indicator rather than as a standalone short-horizon forecasting signal. The project shows that Nifty volatility is driven substantially by its own persistence and market structure, while repo-rate actions provide useful but not dominant explanatory power.
pip install -r requirements.txtpython 00_data_preparation.pyOpen and run the notebook in 01_analysis.ipynb.
streamlit run app.pydata/master_data.csv— combined monthly RBI and Nifty datasetdata/rbi_rates.csvanddata/rbi_rates_raw.csv— source policy dataREPORT.md— detailed project reportapp.py— interactive policy and volatility dashboard
This project is a complete, evidence-based macro-finance study. It demonstrates a realistic workflow for turning policy data and market prices into a coherent analytical narrative, and it reaches careful conclusions instead of overpromising predictive power. The repository is intentionally framed as a benchmark study of policy-volatility interaction, not as a claim of a highly predictive trading model.

