India's AI services sector is a structural multi-year opportunity. This is the investment case — built on live market data, not consensus.
- Best risk-adjusted name: Run the notebook to generate live findings
- Highest compounder: Data generated at runtime — no hard-coded values
- Correlation watch: Universe-wide concentration risk surfaced on every run
- Valuation flag: Per-stock PE/PB percentile vs own 3-year history
(Values above are regenerated automatically when the notebook is run)
- A live thematic pitch on 20+ Indian AI/tech equities, built entirely on public market data
- A scoring engine that ranks names differently depending on client risk profile (growth, income, thematic)
- A full analytics suite: Sharpe/Sortino, drawdown tracking, portfolio optimization, valuation percentile
This project is open to contributions from equity researchers, quants, and engineers.
- Browse the Issues tab for items labelled
good first issueorhelp wanted - Read CONTRIBUTING.md for setup, coding style, and PR guidelines
- Open an issue before working on something large — it helps avoid duplicated effort
Contribution tracks: track:data · track:analytics · track:app · track:infra
→ Full thematic pitch (HTML) → Visual gallery → Top 5 tearsheets (PDF)
The stock universe in data/ai_india_universe.csv covers 20+ Indian publicly-listed companies across five segments: large-cap IT enablers (TCS, Infosys, HCL Tech, Wipro), ER&D/digital-engineering specialists (Tata Elxsi, LTTS, Persistent, Cyient), analytics and platform names (Affle, RateGain, eClerx, Saksoft), AI infrastructure (Netweb), and enterprise software (OFSS, KPIT, Bosch). All market data is fetched live from Yahoo Finance at runtime — no hard-coded prices.
- Live market data via yfinance at runtime — no hard-coded prices, returns, or valuations
- Risk-adjusted metrics: Sharpe ratio (6.5% India risk-free rate), Sortino ratio, max drawdown with date and recovery tracking
- Portfolio construction: mean-variance optimization via
scipy.optimize— minimum volatility and maximum Sharpe portfolios - Valuation context: each stock ranked against its own 3-year PE/PB history (percentile 0–100)
Python 3.11+ recommended.
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txtRun the thematic pitch notebook:
jupyter lab
# Open notebooks/01_ai_india_landscape.ipynb and run all cellsThis will:
- Pull live market data
- Compute all metrics including Sharpe, Sortino, drawdown duration, valuation percentile, efficient frontier
- Refresh
reports/ai_india_thematic_pitch.mdandreports/ai_india_thematic_pitch.html - Generate all charts (PNG + JPG) in
reports/figures/ - Write PDF tearsheets to
reports/tearsheets/ - Auto-update the key findings in this README
Generate the visual pack directly:
python src/visuals.pyRun the Streamlit advisor engine:
streamlit run src/app.pyRun tests:
pytest tests/ -vdata/ Universe CSV and runtime caches
notebooks/ Analysis notebooks (run top-to-bottom)
src/ Python modules: analysis, visuals, reporting, scoring, app
reports/ Generated markdown, HTML report, tearsheets, and chart figures
tests/ pytest test suite for all new analytics and reporting functions
This repository is for educational and portfolio-use purposes only. It is not investment advice, not a research product. All data sourced from public APIs at runtime.


