# sanjeevsub21/portfolio-analytics architecture

> Architecture diagram of the GitHub repository sanjeevsub21/portfolio-analytics, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sanjeevsub21/portfolio-analytics
- Repository: https://github.com/sanjeevsub21/portfolio-analytics

## Overview

This is a notebook-based portfolio analysis project with an interactive Power BI dashboard. The workflow gathers historical stock and benchmark prices, stores and queries them, computes investment metrics, optimizes allocations, validates weights on unseen data, and presents findings. The README documents these capabilities, but no notebook source was available to confirm internal call structure; stage-to-stage edges therefore represent documented data flow, not verified function calls.

Main entry points: [`Portfolio Analysis.ipynb`](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb) (Risk-Return Metrics), [`PowerBI_Dashboard.pbix`](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/PowerBI_Dashboard.pbix) (Power BI Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Market Data"]
  node_history["Historical Prices"]
  node_sqlite[("SQLite Store")]
end

subgraph group_analysis["Portfolio Analysis"]
  node_metrics["Risk-Return Metrics"]
  node_correlation["Correlation Matrix"]
  node_optimization["Monte Carlo Optimization"]
  node_training["Training Period"]
  node_test["Unseen Test Period"]
  node_backtest["Backtest Results"]
end

subgraph group_presentation["Results"]
  node_findings["Analysis Findings"]
  node_dashboard["Power BI Dashboard"]
end

node_analyst(("Analyst"))
node_market_data["Price Data"]

node_analyst -->|"initiates"| node_history
node_market_data -->|"provides prices"| node_history
node_history -->|"stores prices"| node_sqlite
node_sqlite -->|"supplies prices"| node_metrics
node_metrics -->|"price returns"| node_correlation
node_metrics -->|"return inputs"| node_optimization
node_metrics -->|"training data"| node_training
node_training -->|"fits weights"| node_optimization
node_optimization -->|"optimized weights"| node_backtest
node_test -->|"evaluates returns"| node_backtest
node_metrics -->|"produces metrics"| node_findings
node_correlation -->|"produces correlations"| node_findings
node_optimization -->|"produces allocation"| node_findings
node_backtest -->|"produces comparison"| node_findings
node_findings -->|"visualizes findings"| node_dashboard

click node_history "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_sqlite "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_metrics "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_correlation "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_optimization "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_training "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_test "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_backtest "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_findings "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb"
click node_dashboard "https://github.com/sanjeevsub21/portfolio-analytics/blob/main/PowerBI_Dashboard.pbix"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_history,node_sqlite toneBlue
class node_metrics,node_correlation,node_optimization,node_training,node_test,node_backtest toneAmber
class node_findings,node_dashboard toneMint
class node_analyst,node_market_data toneIndigo
```

## Components

### Market Data

- [Historical Prices](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [SQLite Store](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`

### Portfolio Analysis

- [Risk-Return Metrics](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [Correlation Matrix](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [Monte Carlo Optimization](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [Training Period](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [Unseen Test Period](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [Backtest Results](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`

### Results

- [Analysis Findings](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/Portfolio%20Analysis.ipynb): `Portfolio Analysis.ipynb`
- [Power BI Dashboard](https://github.com/sanjeevsub21/portfolio-analytics/blob/main/PowerBI_Dashboard.pbix): `PowerBI_Dashboard.pbix`

### Other components

- **Analyst**
- **Price Data**

## Connections

- Analyst → Historical Prices: initiates
- Price Data → Historical Prices: provides prices
- Historical Prices → SQLite Store: stores prices
- SQLite Store → Risk-Return Metrics: supplies prices
- Risk-Return Metrics → Correlation Matrix: price returns
- Risk-Return Metrics → Monte Carlo Optimization: return inputs
- Risk-Return Metrics → Training Period: training data
- Training Period → Monte Carlo Optimization: fits weights
- Monte Carlo Optimization → Backtest Results: optimized weights
- Unseen Test Period → Backtest Results: evaluates returns
- Risk-Return Metrics → Analysis Findings: produces metrics
- Correlation Matrix → Analysis Findings: produces correlations
- Monte Carlo Optimization → Analysis Findings: produces allocation
- Backtest Results → Analysis Findings: produces comparison
- Analysis Findings → Power BI Dashboard: visualizes findings
