# vitalialexeev/ai_sustainablefinance_2026 architecture

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

- Interactive diagram: https://gitdiagram.com/vitalialexeev/ai_sustainablefinance_2026
- Repository: https://github.com/vitalialexeev/ai_sustainablefinance_2026
- Video tour (about a minute): https://gitdiagram.com/vitalialexeev/ai_sustainablefinance_2026/video

## Overview

This repository is a notebook-based sustainable-finance course, not a deployed application. A learner works through examples that fetch or load financial, ESG, climate, and geospatial data, apply analysis and modelling methods, and examine outputs such as forecasts, peer groups, and portfolios. The graph preserves the major lecture branches visible in the tree and the shared helpers documented in sampled source. Notebook internals were not sampled, so connections between individual lessons and unsampled implementation details are intentionally limited.

Main entry points: [`esgdata.py`](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgdata.py) (ESG Data Loaders), [`helpers/esgsat.py`](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/helpers/esgsat.py) (Satellite Helpers), [`Lecture03a - Data - ESG Risk Analysis - Insights from SP500 Companies.ipynb`](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03a%20-%20Data%20-%20ESG%20Risk%20Analysis%20-%20Insights%20from%20SP500%20Companies.ipynb) (ESG Data Analysis), [`Lecture02a - Example - YahooFinance - Introduction.ipynb`](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture02a%20-%20Example%20-%20YahooFinance%20-%20Introduction.ipynb) (Yahoo Finance)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_finance["Finance and ESG"]
  node_market_data[("Market Data")]
  node_yahoo_lessons["Yahoo Finance"]
  node_esg_lessons["ESG Data Analysis"]
  node_esg_sources["ESG Source Examples"]
  node_pca["ESG PCA"]
  node_forecast["ESG Forecasting"]
  node_kyc["Robo-advisor KYC"]
  node_portfolio["Portfolio Construction"]
  node_optimisation["Portfolio Optimisation"]
  node_esg_constraints["ESG Constraints"]
  node_portfolio_approaches["ESG Portfolio Approaches"]
end

subgraph group_data_methods["Data Methods"]
  node_geocoding["Geocoding and Mapping"]
  node_missingness["Missingness and Imputation"]
  node_peer_groups["Peer Group Clustering"]
  node_quake["Earthquake Warm-up"]
  node_climate_data[("Climate and ESG Data")]
end

subgraph group_earth["Earth Observation"]
  node_satellite["Satellite Analytics"]
  node_spectral["Spectral Indices"]
  node_embeddings["Satellite Embeddings"]
  node_imagery[("Satellite Imagery")]
end

subgraph group_shared["Shared Helpers"]
  node_esgdata_helper["ESG Data Loaders<br/>[esgdata.py]"]
  node_timeseries_helper["Time-series Helpers<br/>[esgts6.py]"]
  node_cluster_helper["Clustering Helpers<br/>[esgclust.py]"]
  node_satellite_helper["Satellite Helpers<br/>[esgsat.py]"]
  node_quake_helper["Earthquake Data Helper<br/>[quakedata.py]"]
end

node_learner(("Learner"))
node_worldbank{{"World Bank"}}
node_edgar{{"SEC EDGAR"}}
node_usgs{{"USGS Feed"}}
node_stac{{"Earth Search STAC"}}
node_alphaearth{{"AlphaEarth Storage"}}

node_learner -->|"works through"| node_yahoo_lessons
node_learner -->|"works through"| node_esg_lessons
node_learner -->|"works through"| node_forecast
node_learner -->|"works through"| node_peer_groups
node_learner -->|"works through"| node_satellite
node_learner -->|"works through"| node_portfolio
node_yahoo_lessons -->|"analyzes"| node_market_data
node_esg_lessons -->|"analyzes"| node_market_data
node_esg_sources -->|"uses loaders"| node_esgdata_helper
node_geocoding -->|"uses loaders"| node_esgdata_helper
node_missingness -->|"uses loaders"| node_esgdata_helper
node_esgdata_helper -->|"reads snapshot"| node_climate_data
node_esgdata_helper -.->|"fetches data"| node_worldbank
node_esgdata_helper -.->|"loads filings"| node_edgar
node_forecast -->|"uses helpers"| node_timeseries_helper
node_peer_groups -->|"uses helpers"| node_cluster_helper
node_quake -->|"uses data helper"| node_quake_helper
node_quake_helper -.->|"fetches feed"| node_usgs
node_satellite -->|"uses helpers"| node_satellite_helper
node_spectral -->|"uses helpers"| node_satellite_helper
node_embeddings -->|"uses helpers"| node_satellite_helper
node_satellite_helper -->|"loads local bands"| node_imagery
node_satellite_helper -.->|"searches scenes"| node_stac
node_satellite_helper -.->|"reads tiles"| node_alphaearth
node_pca -->|"analyzes ESG scores"| node_esg_lessons
node_kyc -->|"applies ESG analysis"| node_esg_lessons
node_portfolio -->|"introduces optimization"| node_optimisation
node_optimisation -->|"extends with constraints"| node_esg_constraints
node_esg_constraints -->|"compares approaches"| node_portfolio_approaches

click node_market_data "https://github.com/vitalialexeev/ai_sustainablefinance_2026/tree/main/data"
click node_yahoo_lessons "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture02a%20-%20Example%20-%20YahooFinance%20-%20Introduction.ipynb"
click node_esg_lessons "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03a%20-%20Data%20-%20ESG%20Risk%20Analysis%20-%20Insights%20from%20SP500%20Companies.ipynb"
click node_esg_sources "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03b%20-%20Example%20-%20B%20-%20ESG_Data_Sources_(Static_WorldBank_EDGAR).ipynb"
click node_pca "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03c%20-%20Example%20-%20PCA%20of%20ESG%20scores%20(simplified).ipynb"
click node_forecast "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture06b%20-%20Forecasting%20and%20Nowcasting%20ESG%20Series.ipynb"
click node_kyc "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture09a%20-%20Example%20-%20Robo-advisor's%20KYC.ipynb"
click node_portfolio "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10a%20-%20Example%20-%20Portfolio%20Construction.ipynb"
click node_optimisation "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10b%20-%20Example%20-%20Portfolio%20Optimisation%20-%20Intro.ipynb"
click node_esg_constraints "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10c%20-%20Example%20-%20Portfolio%20Optimisation%20-%20ESG%20constraints.ipynb"
click node_portfolio_approaches "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10d%20-%20Example%20-%20ESG%20Portfolio%20Optimisation%20Approaches.ipynb"
click node_geocoding "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07a%20-%20Geocoding%2C%20Mapping%20and%20the%20Attribution%20Gap.ipynb"
click node_missingness "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07b%20-%20Missingness%20and%20Imputation.ipynb"
click node_peer_groups "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07c%20-%20Clustering%20as%20Peer-Group%20Construction.ipynb"
click node_quake "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07%20(warm-up)%20-%20Where%20Does%20the%20Earth%20Shake.ipynb"
click node_climate_data "https://github.com/vitalialexeev/ai_sustainablefinance_2026/tree/main/data/processed"
click node_satellite "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture08b%20-%20Change%20Disturbance%20and%20Carbon.ipynb"
click node_spectral "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture08a%20-%20Bands%20Indices%20and%20the%20Reflectance%20Trap.ipynb"
click node_embeddings "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture08c%20-%20Satellite%20Embeddings%20From%20Words%20to%20Places.ipynb"
click node_imagery "https://github.com/vitalialexeev/ai_sustainablefinance_2026/tree/main/data"
click node_esgdata_helper "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgdata.py"
click node_timeseries_helper "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgts6.py"
click node_cluster_helper "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgclust.py"
click node_satellite_helper "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/helpers/esgsat.py"
click node_quake_helper "https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/quakedata.py"

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_market_data,node_yahoo_lessons,node_esg_lessons,node_esg_sources,node_pca,node_forecast,node_kyc,node_portfolio,node_optimisation,node_esg_constraints,node_portfolio_approaches toneBlue
class node_geocoding,node_missingness,node_peer_groups,node_quake,node_climate_data,node_alphaearth toneAmber
class node_satellite,node_spectral,node_embeddings,node_imagery toneMint
class node_esgdata_helper,node_timeseries_helper,node_cluster_helper,node_satellite_helper,node_quake_helper toneRose
class node_learner,node_worldbank,node_edgar,node_usgs,node_stac toneIndigo
```

## Components

### Finance and ESG

- [Market Data](https://github.com/vitalialexeev/ai_sustainablefinance_2026/tree/main/data): `data`
- [Yahoo Finance](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture02a%20-%20Example%20-%20YahooFinance%20-%20Introduction.ipynb): `Lecture02a - Example - YahooFinance - Introduction.ipynb`
- [ESG Data Analysis](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03a%20-%20Data%20-%20ESG%20Risk%20Analysis%20-%20Insights%20from%20SP500%20Companies.ipynb): `Lecture03a - Data - ESG Risk Analysis - Insights from SP500 Companies.ipynb`
- [ESG Source Examples](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03b%20-%20Example%20-%20B%20-%20ESG_Data_Sources_(Static_WorldBank_EDGAR).ipynb): `Lecture03b - Example - B - ESG_Data_Sources_(Static_WorldBank_EDGAR).ipynb`
- [ESG PCA](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture03c%20-%20Example%20-%20PCA%20of%20ESG%20scores%20(simplified).ipynb): `Lecture03c - Example - PCA of ESG scores (simplified).ipynb`
- [ESG Forecasting](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture06b%20-%20Forecasting%20and%20Nowcasting%20ESG%20Series.ipynb): `Lecture06b - Forecasting and Nowcasting ESG Series.ipynb`
- [Robo-advisor KYC](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture09a%20-%20Example%20-%20Robo-advisor's%20KYC.ipynb): `Lecture09a - Example - Robo-advisor's KYC.ipynb`
- [Portfolio Construction](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10a%20-%20Example%20-%20Portfolio%20Construction.ipynb): `Lecture10a - Example - Portfolio Construction.ipynb`
- [Portfolio Optimisation](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10b%20-%20Example%20-%20Portfolio%20Optimisation%20-%20Intro.ipynb): `Lecture10b - Example - Portfolio Optimisation - Intro.ipynb`
- [ESG Constraints](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10c%20-%20Example%20-%20Portfolio%20Optimisation%20-%20ESG%20constraints.ipynb): `Lecture10c - Example - Portfolio Optimisation - ESG constraints.ipynb`
- [ESG Portfolio Approaches](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture10d%20-%20Example%20-%20ESG%20Portfolio%20Optimisation%20Approaches.ipynb): `Lecture10d - Example - ESG Portfolio Optimisation Approaches.ipynb`

### Data Methods

- [Geocoding and Mapping](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07a%20-%20Geocoding%2C%20Mapping%20and%20the%20Attribution%20Gap.ipynb): `Lecture07a - Geocoding, Mapping and the Attribution Gap.ipynb`
- [Missingness and Imputation](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07b%20-%20Missingness%20and%20Imputation.ipynb): `Lecture07b - Missingness and Imputation.ipynb`
- [Peer Group Clustering](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07c%20-%20Clustering%20as%20Peer-Group%20Construction.ipynb): `Lecture07c - Clustering as Peer-Group Construction.ipynb`
- [Earthquake Warm-up](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture07%20(warm-up)%20-%20Where%20Does%20the%20Earth%20Shake.ipynb): `Lecture07 (warm-up) - Where Does the Earth Shake.ipynb`
- [Climate and ESG Data](https://github.com/vitalialexeev/ai_sustainablefinance_2026/tree/main/data/processed): `data/processed`

### Earth Observation

- [Satellite Analytics](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture08b%20-%20Change%20Disturbance%20and%20Carbon.ipynb): `Lecture08b - Change Disturbance and Carbon.ipynb`
- [Spectral Indices](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture08a%20-%20Bands%20Indices%20and%20the%20Reflectance%20Trap.ipynb): `Lecture08a - Bands Indices and the Reflectance Trap.ipynb`
- [Satellite Embeddings](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/Lecture08c%20-%20Satellite%20Embeddings%20From%20Words%20to%20Places.ipynb): `Lecture08c - Satellite Embeddings From Words to Places.ipynb`
- [Satellite Imagery](https://github.com/vitalialexeev/ai_sustainablefinance_2026/tree/main/data): `data`

### Shared Helpers

- [ESG Data Loaders](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgdata.py): `esgdata.py`
- [Time-series Helpers](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgts6.py): `esgts6.py`
- [Clustering Helpers](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/esgclust.py): `esgclust.py`
- [Satellite Helpers](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/helpers/esgsat.py): `helpers/esgsat.py`
- [Earthquake Data Helper](https://github.com/vitalialexeev/ai_sustainablefinance_2026/blob/main/quakedata.py): `quakedata.py`

### Other components

- **Learner**
- **World Bank**
- **SEC EDGAR**
- **USGS Feed**
- **Earth Search STAC**
- **AlphaEarth Storage**

## Connections

- Learner → Yahoo Finance: works through
- Learner → ESG Data Analysis: works through
- Learner → ESG Forecasting: works through
- Learner → Peer Group Clustering: works through
- Learner → Satellite Analytics: works through
- Learner → Portfolio Construction: works through
- Yahoo Finance → Market Data: analyzes
- ESG Data Analysis → Market Data: analyzes
- ESG Source Examples → ESG Data Loaders: uses loaders
- Geocoding and Mapping → ESG Data Loaders: uses loaders
- Missingness and Imputation → ESG Data Loaders: uses loaders
- ESG Data Loaders → Climate and ESG Data: reads snapshot
- ESG Data Loaders → World Bank: fetches data
- ESG Data Loaders → SEC EDGAR: loads filings
- ESG Forecasting → Time-series Helpers: uses helpers
- Peer Group Clustering → Clustering Helpers: uses helpers
- Earthquake Warm-up → Earthquake Data Helper: uses data helper
- Earthquake Data Helper → USGS Feed: fetches feed
- Satellite Analytics → Satellite Helpers: uses helpers
- Spectral Indices → Satellite Helpers: uses helpers
- Satellite Embeddings → Satellite Helpers: uses helpers
- Satellite Helpers → Satellite Imagery: loads local bands
- Satellite Helpers → Earth Search STAC: searches scenes
- Satellite Helpers → AlphaEarth Storage: reads tiles
- ESG PCA → ESG Data Analysis: analyzes ESG scores
- Robo-advisor KYC → ESG Data Analysis: applies ESG analysis
- Portfolio Construction → Portfolio Optimisation: introduces optimization
- Portfolio Optimisation → ESG Constraints: extends with constraints
- ESG Constraints → ESG Portfolio Approaches: compares approaches
