# philo-r76/project-portfolio architecture

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

- Interactive diagram: https://gitdiagram.com/philo-r76/project-portfolio
- Repository: https://github.com/philo-r76/project-portfolio

## Overview

This repository is a synthetic-data portfolio case study about whether AI-assisted work’s modeled labor capacity value justifies token spend. The documented workflow is to generate task and rate data, load it into SQLite, analyze unit economics by month, department, workflow, model, and user concentration, then present an interactive dashboard and executive readout to inform a controlled-pilot decision. The generation and dashboard-build scripts are omitted as build machinery. No source excerpts were available, so relationships below rely on README documentation only.

Main entry points: [`reports/dashboard.html`](https://github.com/philo-r76/project-portfolio/blob/main/reports/dashboard.html) (Interactive dashboard), [`index.html`](https://github.com/philo-r76/project-portfolio/blob/main/index.html) (Executive readout), [`data/usage_events.csv`](https://github.com/philo-r76/project-portfolio/blob/main/data/usage_events.csv) (Usage events), [`data/model_rates.csv`](https://github.com/philo-r76/project-portfolio/blob/main/data/model_rates.csv) (Model rates)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Reader experience"]
  node_site["Executive readout<br/>[index.html]"]
  node_dashboard["Interactive dashboard<br/>[dashboard.html]"]
end

subgraph group_analysis["Analysis"]
  node_schema["SQLite schema<br/>[schema.sql]"]
  node_sql_analysis["Segmented SQL analysis<br/>[analysis.sql]"]
  node_sqlite[("SQLite database")]
end

subgraph group_inputs["Synthetic inputs"]
  node_usage["Usage events<br/>[usage_events.csv]"]
  node_model_rates["Model rates<br/>[model_rates.csv]"]
  node_department_rates["Department rates"]
end

node_reader(("Portfolio reader"))

node_reader -->|"views"| node_site
node_site -->|"embeds"| node_dashboard
node_dashboard -->|"reads"| node_usage
node_dashboard -->|"reads"| node_model_rates
node_dashboard -->|"reads"| node_department_rates
node_schema -->|"defines tables"| node_sqlite
node_usage -->|"imports"| node_sqlite
node_model_rates -->|"imports"| node_sqlite
node_department_rates -->|"imports"| node_sqlite
node_sqlite -->|"analyzes tables"| node_sql_analysis

click node_site "https://github.com/philo-r76/project-portfolio/blob/main/index.html"
click node_dashboard "https://github.com/philo-r76/project-portfolio/blob/main/reports/dashboard.html"
click node_schema "https://github.com/philo-r76/project-portfolio/blob/main/sql/schema.sql"
click node_sql_analysis "https://github.com/philo-r76/project-portfolio/blob/main/sql/analysis.sql"
click node_usage "https://github.com/philo-r76/project-portfolio/blob/main/data/usage_events.csv"
click node_model_rates "https://github.com/philo-r76/project-portfolio/blob/main/data/model_rates.csv"
click node_department_rates "https://github.com/philo-r76/project-portfolio/blob/main/data/department_rates.csv"

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_site,node_dashboard toneBlue
class node_schema,node_sql_analysis,node_sqlite toneAmber
class node_usage,node_model_rates,node_department_rates toneMint
class node_reader toneIndigo
```

## Components

### Reader experience

- [Executive readout](https://github.com/philo-r76/project-portfolio/blob/main/index.html): `index.html`
- [Interactive dashboard](https://github.com/philo-r76/project-portfolio/blob/main/reports/dashboard.html): `reports/dashboard.html`

### Analysis

- [SQLite schema](https://github.com/philo-r76/project-portfolio/blob/main/sql/schema.sql): `sql/schema.sql`
- [Segmented SQL analysis](https://github.com/philo-r76/project-portfolio/blob/main/sql/analysis.sql): `sql/analysis.sql`
- **SQLite database**

### Synthetic inputs

- [Usage events](https://github.com/philo-r76/project-portfolio/blob/main/data/usage_events.csv): `data/usage_events.csv`
- [Model rates](https://github.com/philo-r76/project-portfolio/blob/main/data/model_rates.csv): `data/model_rates.csv`
- [Department rates](https://github.com/philo-r76/project-portfolio/blob/main/data/department_rates.csv): `data/department_rates.csv`

### Other components

- **Portfolio reader**

## Connections

- Portfolio reader → Executive readout: views (evidence: `README.md`)
- Executive readout → Interactive dashboard: embeds (evidence: `README.md`)
- Interactive dashboard → Usage events: reads (evidence: `README.md`)
- Interactive dashboard → Model rates: reads (evidence: `README.md`)
- Interactive dashboard → Department rates: reads (evidence: `README.md`)
- SQLite schema → SQLite database: defines tables (evidence: `README.md`)
- Usage events → SQLite database: imports (evidence: `README.md`)
- Model rates → SQLite database: imports (evidence: `README.md`)
- Department rates → SQLite database: imports (evidence: `README.md`)
- SQLite database → Segmented SQL analysis: analyzes tables (evidence: `README.md`)
