# alexochoki/solarops architecture

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

- Interactive diagram: https://gitdiagram.com/alexochoki/solarops
- Repository: https://github.com/alexochoki/solarops

## Overview

This repository is a Power BI business-intelligence product for monitoring a customer-to-service lifecycle: leads and sales, financing and payments, installations, asset usage, and service tickets. Users consume the report, which queries a semantic model over the supplied dimensional and fact data. The tree supports the product boundaries and domain coverage, but no README or source excerpts document refresh mechanics or detailed table relationships; those connections are therefore kept at the subsystem level.

Main entry points: [`report/sc.SemanticModel/definition`](https://github.com/alexochoki/solarops/tree/main/report/sc.SemanticModel/definition) (Power BI Model), [`report/sc.Report/definition`](https://github.com/alexochoki/solarops/tree/main/report/sc.Report/definition) (Report Definition), [`data`](https://github.com/alexochoki/solarops/tree/main/data) (CSV Data), [`report/sc.SemanticModel/definition/relationships.tmdl`](https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/relationships.tmdl) (Model Relationships)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Data Inputs"]
  node_source_data[("CSV Data")]
  node_leads["Lead Facts<br/>[fact_leads.csv]"]
  node_sales["Sales Facts"]
  node_installation["Installation Facts"]
  node_finance["Finance Facts<br/>[fact_payments.csv]"]
  node_loans["Loan Snapshots"]
  node_asset_usage["Asset Usage"]
  node_service["Service Tickets"]
  node_dimensions["Business Dimensions"]
end

subgraph group_model["Semantic Model"]
  node_semantic_model["Power BI Model<br/>[definition]"]
  node_relationships["Model Relationships<br/>[relationships.tmdl]"]
  node_measures["Measures<br/>[ZMeasures.tmdl]"]
  node_funnel["Funnel Stages<br/>[Funnel_Stage.tmdl]"]
  node_aging["Stage Aging<br/>[Stage_Aging.tmdl]"]
end

subgraph group_report["Analytics Report"]
  node_report_definition["Report Definition<br/>[definition]"]
  node_report_pages["Report Pages<br/>[pages]"]
end

node_stakeholder(("Business User"))

node_stakeholder -->|"views"| node_report_definition
node_report_definition -->|"queries"| node_semantic_model
node_source_data -->|"model inputs"| node_semantic_model
node_semantic_model -->|"defines links"| node_relationships
node_semantic_model -->|"defines measures"| node_measures
node_semantic_model -->|"includes stages"| node_funnel
node_semantic_model -->|"includes aging"| node_aging
node_report_definition -->|"organizes pages"| node_report_pages

click node_source_data "https://github.com/alexochoki/solarops/tree/main/data"
click node_leads "https://github.com/alexochoki/solarops/blob/main/data/fact_leads.csv"
click node_sales "https://github.com/alexochoki/solarops/blob/main/data/fact_sales_orders.csv"
click node_installation "https://github.com/alexochoki/solarops/blob/main/data/fact_installations.csv"
click node_finance "https://github.com/alexochoki/solarops/blob/main/data/fact_payments.csv"
click node_loans "https://github.com/alexochoki/solarops/blob/main/data/fact_loan_snapshot_monthly.csv"
click node_asset_usage "https://github.com/alexochoki/solarops/blob/main/data/fact_asset_usage_daily.csv"
click node_service "https://github.com/alexochoki/solarops/blob/main/data/fact_service_tickets.csv"
click node_dimensions "https://github.com/alexochoki/solarops/tree/main/data"
click node_semantic_model "https://github.com/alexochoki/solarops/tree/main/report/sc.SemanticModel/definition"
click node_relationships "https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/relationships.tmdl"
click node_measures "https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/tables/ZMeasures.tmdl"
click node_funnel "https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/tables/Funnel_Stage.tmdl"
click node_aging "https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/tables/Stage_Aging.tmdl"
click node_report_definition "https://github.com/alexochoki/solarops/tree/main/report/sc.Report/definition"
click node_report_pages "https://github.com/alexochoki/solarops/tree/main/report/sc.Report/definition/pages"

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_source_data,node_leads,node_sales,node_installation,node_finance,node_loans,node_asset_usage,node_service,node_dimensions,node_stakeholder toneBlue
class node_semantic_model,node_relationships,node_measures,node_funnel,node_aging toneAmber
class node_report_definition,node_report_pages toneMint
```

## Components

### Data Inputs

- [CSV Data](https://github.com/alexochoki/solarops/tree/main/data): `data`
- [Lead Facts](https://github.com/alexochoki/solarops/blob/main/data/fact_leads.csv): `data/fact_leads.csv`
- [Sales Facts](https://github.com/alexochoki/solarops/blob/main/data/fact_sales_orders.csv): `data/fact_sales_orders.csv`
- [Installation Facts](https://github.com/alexochoki/solarops/blob/main/data/fact_installations.csv): `data/fact_installations.csv`
- [Finance Facts](https://github.com/alexochoki/solarops/blob/main/data/fact_payments.csv): `data/fact_payments.csv`
- [Loan Snapshots](https://github.com/alexochoki/solarops/blob/main/data/fact_loan_snapshot_monthly.csv): `data/fact_loan_snapshot_monthly.csv`
- [Asset Usage](https://github.com/alexochoki/solarops/blob/main/data/fact_asset_usage_daily.csv): `data/fact_asset_usage_daily.csv`
- [Service Tickets](https://github.com/alexochoki/solarops/blob/main/data/fact_service_tickets.csv): `data/fact_service_tickets.csv`
- [Business Dimensions](https://github.com/alexochoki/solarops/tree/main/data): `data`

### Semantic Model

- [Power BI Model](https://github.com/alexochoki/solarops/tree/main/report/sc.SemanticModel/definition): `report/sc.SemanticModel/definition`
- [Model Relationships](https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/relationships.tmdl): `report/sc.SemanticModel/definition/relationships.tmdl`
- [Measures](https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/tables/ZMeasures.tmdl): `report/sc.SemanticModel/definition/tables/ZMeasures.tmdl`
- [Funnel Stages](https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/tables/Funnel_Stage.tmdl): `report/sc.SemanticModel/definition/tables/Funnel_Stage.tmdl`
- [Stage Aging](https://github.com/alexochoki/solarops/blob/main/report/sc.SemanticModel/definition/tables/Stage_Aging.tmdl): `report/sc.SemanticModel/definition/tables/Stage_Aging.tmdl`

### Analytics Report

- [Report Definition](https://github.com/alexochoki/solarops/tree/main/report/sc.Report/definition): `report/sc.Report/definition`
- [Report Pages](https://github.com/alexochoki/solarops/tree/main/report/sc.Report/definition/pages): `report/sc.Report/definition/pages`

### Other components

- **Business User**

## Connections

- Business User → Report Definition: views
- Report Definition → Power BI Model: queries
- CSV Data → Power BI Model: model inputs
- Power BI Model → Model Relationships: defines links
- Power BI Model → Measures: defines measures
- Power BI Model → Funnel Stages: includes stages
- Power BI Model → Stage Aging: includes aging
- Report Definition → Report Pages: organizes pages
