This is a tool that tries to answer a simple question: "Why did Tata Technologies' stock price move like that?"
Instead of guessing or predicting what the stock will do next, it looks backward at real evidence — the actual price history, recent news articles, and facts from the company's official annual reports — and connects the dots between them. It then explains, in plain language, what evidence lines up with a given price move.
This tool does not predict stock prices, and it does not give investment advice. It's an explanation tool, not a forecasting tool. Think of it like a research assistant that reads the news and the annual report for you, and shows its work.
- Price data — Pulls historical stock price and volume data for Tata Technologies.
- News — Pulls recent news headlines/articles about the company.
- Annual reports — Reads PDF annual reports (you drop these in yourself) and pulls out relevant facts.
- Knowledge graph — Connects all of this together into a graph, e.g. "price dropped on this date" → linked to → "news article about X" → linked to → "report mentions related risk factor Y."
- Explanation — When you ask about a price move, it looks at what's connected to it in the graph and generates a plain-language explanation, citing that evidence — using Groq's free-tier AI model.
Everything shown to you should be traceable back to a real piece of evidence (a price data point, a news article, or a line from a report) — not made up by the AI.
This project is built to run at zero cost — it only uses free tools and free tiers of services (free stock data, free news feeds, and the free tier of Groq's AI models — no credit card required). No subscriptions or paid API keys required.
- Run the setup script to create a local Python environment and install
everything needed:
./setup_venv.sh
- Turn on the environment:
source venv/bin/activate - Get a free Groq API key (no credit card required) from
console.groq.com, then copy the example
settings file and paste your key in:
cp .env.example .env
- If you have any annual report PDFs, drop them into
data/raw/reports/. - Launch the app:
streamlit run app/main.py
data/raw/reports/— Where you manually place annual report PDFs.data/processed/— Cleaned-up data the tool generates from the raw sources.src/— The core logic (fetching prices, fetching news, reading PDFs, building the knowledge graph, generating explanations).app/— The Streamlit web app you actually interact with.eval/— Scripts for checking that explanations are accurate and well-grounded in evidence.