# mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard- architecture

> Architecture diagram of the GitHub repository mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-, 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/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-
- Repository: https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-

## Overview

Vantage is a browser-based credit decision and post-disbursement monitoring platform. Credit staff enter or edit an application in the analysis screen, which persists borrower records; the documented engine evaluates eligibility, weighted scores, benchmark gaps and safe loan sizing. Portfolio, borrower-list, detail and settings screens provide review and configuration. The app dispatches screens, while detail-screen EWS updates are judged and saved. README capabilities are included where source wiring is not shown; those uncertain connections are intentionally omitted.

Main entry points: [`src/app.js`](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/app.js) (App router), [`src/data/store.js`](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/data/store.js) (Borrower store), [`src/screens/detail.js`](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/detail.js) (Borrower detail), [`src/core/scoring.js`](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/scoring.js) (Pillar scoring)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Credit Workflow"]
  node_app["App router<br/>[app.js]"]
  node_analysis["Credit analysis<br/>[analysis.js]"]
  node_borrowers["Borrower directory<br/>[borrowers.js]"]
  node_detail["Borrower detail<br/>[detail.js]"]
end

subgraph group_engine["Decision Engine"]
  node_scoring["Pillar scoring<br/>[scoring.js]"]
  node_ratios["Financial ratios<br/>[ratios.js]"]
  node_eligibility["Eligibility decision<br/>[eligibility.js]"]
  node_gap["Benchmark gap<br/>[gap.js]"]
  node_nominal["Safe loan sizing<br/>[nominal.js]"]
  node_weights["Dynamic weights<br/>[weights.js]"]
end

subgraph group_monitoring["Portfolio Monitoring"]
  node_dashboard["Portfolio dashboard<br/>[dashboard.js]"]
  node_ews["EWS evaluation<br/>[ews-monitor.js]"]
end

subgraph group_data["Data and Configuration"]
  node_benchmark["Sector benchmarks<br/>[benchmark.js]"]
  node_settings["Platform settings<br/>[settings.js]"]
  node_store[("Borrower store<br/>[store.js]")]
end

node_analyst(("Credit staff"))
node_localstorage[("Browser localStorage")]

node_analyst -->|"uses screens"| node_app
node_app -->|"renders"| node_analysis
node_app -->|"renders"| node_borrowers
node_app -->|"renders"| node_detail
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_settings
node_analysis -->|"reads and saves"| node_store
node_borrowers -->|"reads borrowers"| node_store
node_dashboard -->|"reads borrowers"| node_store
node_detail -->|"reads and saves"| node_store
node_detail -->|"requests judgement"| node_ews
node_ews -->|"returns judgement"| node_detail
node_settings -->|"reads and saves"| node_store
node_store -->|"persists data"| node_localstorage
node_scoring -->|"uses weights"| node_weights
node_scoring -->|"reads benchmarks"| node_benchmark
node_eligibility -->|"checks override"| node_gap

click node_app "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/app.js"
click node_analysis "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/analysis.js"
click node_borrowers "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/borrowers.js"
click node_detail "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/detail.js"
click node_dashboard "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/dashboard.js"
click node_ews "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/ews-monitor.js"
click node_scoring "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/scoring.js"
click node_ratios "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/ratios.js"
click node_eligibility "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/eligibility.js"
click node_gap "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/gap.js"
click node_nominal "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/nominal.js"
click node_weights "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/weights.js"
click node_benchmark "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/data/benchmark.js"
click node_settings "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/settings.js"
click node_store "https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/data/store.js"

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_app,node_analysis,node_borrowers,node_detail toneBlue
class node_scoring,node_ratios,node_eligibility,node_gap,node_nominal,node_weights,node_localstorage toneAmber
class node_dashboard,node_ews toneMint
class node_benchmark,node_settings,node_store toneRose
class node_analyst toneIndigo
```

## Components

### Credit Workflow

- [App router](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/app.js): `src/app.js`
- [Credit analysis](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/analysis.js): `src/screens/analysis.js`
- [Borrower directory](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/borrowers.js): `src/screens/borrowers.js`
- [Borrower detail](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/detail.js): `src/screens/detail.js`

### Decision Engine

- [Pillar scoring](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/scoring.js): `src/core/scoring.js`
- [Financial ratios](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/ratios.js): `src/core/ratios.js`
- [Eligibility decision](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/eligibility.js): `src/core/eligibility.js`
- [Benchmark gap](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/gap.js): `src/core/gap.js`
- [Safe loan sizing](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/nominal.js): `src/core/nominal.js`
- [Dynamic weights](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/weights.js): `src/core/weights.js`

### Portfolio Monitoring

- [Portfolio dashboard](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/dashboard.js): `src/screens/dashboard.js`
- [EWS evaluation](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/core/ews-monitor.js): `src/core/ews-monitor.js`

### Data and Configuration

- [Sector benchmarks](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/data/benchmark.js): `src/data/benchmark.js`
- [Platform settings](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/screens/settings.js): `src/screens/settings.js`
- [Borrower store](https://github.com/mynameanonim43-ship-it/de-core-credit-decision-engine-dashboard-/blob/main/src/data/store.js): `src/data/store.js`

### Other components

- **Credit staff**
- **Browser localStorage**

## Connections

- Credit staff → App router: uses screens
- App router → Credit analysis: renders
- App router → Borrower directory: renders
- App router → Borrower detail: renders
- App router → Portfolio dashboard: renders
- App router → Platform settings: renders
- Credit analysis → Borrower store: reads and saves
- Borrower directory → Borrower store: reads borrowers
- Portfolio dashboard → Borrower store: reads borrowers
- Borrower detail → Borrower store: reads and saves
- Borrower detail → EWS evaluation: requests judgement
- EWS evaluation → Borrower detail: returns judgement
- Platform settings → Borrower store: reads and saves
- Borrower store → Browser localStorage: persists data
- Pillar scoring → Dynamic weights: uses weights
- Pillar scoring → Sector benchmarks: reads benchmarks
- Eligibility decision → Benchmark gap: checks override
