Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ETF & Index Fund Research Dashboard

A personal research tool for long-term passive ETF investors. Descriptive analysis + factual context only — never recommendations, scores, or "sentiment."

This tool provides historical analysis and educational content only. It is not investment advice. Consult a licensed financial advisor before making investment decisions. Past performance does not predict future results.


What it does

Feature Status
Watchlist of curated broad-market ETFs (US + UCITS) ✅ Phase 0
Historical analysis (returns, vol, Sharpe, drawdown, correlations) 🚧
Risk dashboard (rolling vol, beta, recovery time) 🚧
DCA backtest simulator 🚧
Monte Carlo projection (with full assumption disclosure) 🚧
Headline summariser + sandboxed LLM tagger → portfolio exposure mapping 🚧
Historical-event viewer (Fed decisions etc.) 🚧
Glossary 🚧

What it deliberately doesn't do

  • No "what should I buy" feature.
  • No "sentiment score" or "market outlook."
  • No ranking funds as "safer," "better," "lower risk."
  • LLM never speculates on price direction or recommends action — it only summarises and tags from a fixed taxonomy. Funds-affected mapping is done in deterministic code reading actual sector breakdowns. See docs/llm-guardrails.md for details.

Setup

python -m venv .venv
.venv\Scripts\activate        # Windows
pip install -r requirements.txt
copy .env.example .env        # fill in API keys (optional for Phase 0/1)
streamlit run app/main.py

App opens at http://localhost:8501.


Tech stack

Python 3.11 · Streamlit · yfinance · pandas / numpy / scipy · plotly · SQLAlchemy + SQLite · Anthropic SDK (LLM) · pytest

Tests

pytest -q

All financial formulas are tested against known values. The LLM-output validator has tests covering rejection of out-of-taxonomy tags and malformed JSON.


Concepts implemented

  • Annualised return / volatility (252-day convention)
  • Sharpe ratio (configurable risk-free rate)
  • Max drawdown + recovery duration
  • Rolling volatility / beta vs benchmark
  • DCA backtest using actual historical prices
  • Monte Carlo via geometric Brownian motion with explicit normality-assumption disclosure

License

MIT.

About

Streamlit ETF research dashboard with deterministic financial-formula calculations and a sandboxed LLM tagger. Anthropic SDK + pytest coverage.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages