# pushpak1203/credit_ architecture

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

- Interactive diagram: https://gitdiagram.com/pushpak1203/credit_
- Repository: https://github.com/pushpak1203/credit_

## Overview

Credit Sense is an offline, synthetic-data credit decisioning prototype for community lenders. Its core workflow generates applicant data, builds governed feature matrices, trains temporal-split models, and scores an application for approval, decline, or human review with borrower-facing reasons. Applicants can enter through a local dashboard or API; the API also records decisions and accepts appeals. Separate analysis stages evaluate model performance, fairness, drift, shadow-mode disagreement, and a five-stage pilot comparison. The README documents several analysis capabilities whose implementations are not excerpted; their links are shown only where index references support them.

Main entry points: [`src/credit_sense/features.py`](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/features.py) (Feature registry), [`src/credit_sense/train.py`](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/train.py) (Model training), [`api/main.py`](https://github.com/pushpak1203/credit_/blob/main/api/main.py) (Scoring API), [`src/credit_sense/decision.py`](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/decision.py) (Decision engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_modeling["Data and modeling"]
  node_synthetic_data["Synthetic data"]
  node_feature_registry["Feature registry<br/>[features.py]"]
  node_trainer["Model training<br/>[train.py]"]
end

subgraph group_decisioning["Scoring and explanations"]
  node_scorer["Decision engine<br/>[decision.py]"]
  node_explanations["Explanations<br/>[explain.py]"]
  node_reason_codes["Reason codes<br/>[reason_codes.yaml]"]
  node_audit_log["Decision audit<br/>[audit.py]"]
  node_appeals["Appeals workflow<br/>[appeals.py]"]
  node_appeals_db[("Appeals database<br/>[appeals.py]")]
end

subgraph group_oversight["Monitoring and pilot"]
  node_evaluator["Model evaluation<br/>[evaluate.py]"]
  node_fairness["Fairness analysis<br/>[fairness.py]"]
  node_drift["Drift monitoring<br/>[drift.py]"]
  node_shadow["Shadow comparison<br/>[shadow.py]"]
  node_pilot["Pilot simulation"]
end

subgraph group_interfaces["Local interfaces"]
  node_api["Scoring API<br/>[main.py]"]
  node_dashboard["Local dashboard<br/>[dashboard.py]"]
end

node_applicant(("Applicant"))

node_applicant -->|"submits score"| node_api
node_applicant -->|"enters application"| node_dashboard
node_synthetic_data -->|"provides records"| node_feature_registry
node_feature_registry -->|"builds features"| node_trainer
node_api -->|"calls scoring"| node_scorer
node_dashboard -->|"calls scoring"| node_scorer
node_scorer -->|"builds features"| node_feature_registry
node_scorer -->|"requests reasons"| node_explanations
node_explanations -->|"builds features"| node_feature_registry
node_explanations -->|"reads codes"| node_reason_codes
node_api -->|"appends decision"| node_audit_log
node_api -->|"submits appeal"| node_appeals
node_dashboard -->|"lists appeals"| node_appeals
node_appeals -->|"reads and writes"| node_appeals_db
node_feature_registry -->|"builds features"| node_evaluator
node_trainer -->|"supplies models"| node_evaluator
node_feature_registry -->|"builds features"| node_fairness
node_trainer -->|"supplies models"| node_fairness
node_feature_registry -->|"builds features"| node_drift
node_feature_registry -->|"builds features"| node_shadow
node_trainer -->|"supplies models"| node_shadow
node_evaluator -->|"provides rule baseline"| node_pilot
node_feature_registry -->|"builds features"| node_pilot
node_trainer -->|"supplies models"| node_pilot

click node_synthetic_data "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/data/generate_synthetic.py"
click node_feature_registry "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/features.py"
click node_trainer "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/train.py"
click node_scorer "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/decision.py"
click node_explanations "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/explain.py"
click node_reason_codes "https://github.com/pushpak1203/credit_/blob/main/config/reason_codes.yaml"
click node_audit_log "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/audit.py"
click node_appeals "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/appeals.py"
click node_appeals_db "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/appeals.py"
click node_api "https://github.com/pushpak1203/credit_/blob/main/api/main.py"
click node_dashboard "https://github.com/pushpak1203/credit_/blob/main/app/dashboard.py"
click node_evaluator "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/evaluate.py"
click node_fairness "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/fairness.py"
click node_drift "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/drift.py"
click node_shadow "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/shadow.py"
click node_pilot "https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/pilot_simulation.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_synthetic_data,node_feature_registry,node_trainer toneBlue
class node_scorer,node_explanations,node_reason_codes,node_audit_log,node_appeals,node_appeals_db toneAmber
class node_evaluator,node_fairness,node_drift,node_shadow,node_pilot toneMint
class node_api,node_dashboard toneRose
class node_applicant toneIndigo
```

## Components

### Data and modeling

- [Synthetic data](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/data/generate_synthetic.py): `src/credit_sense/data/generate_synthetic.py`
- [Feature registry](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/features.py): `src/credit_sense/features.py`
- [Model training](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/train.py): `src/credit_sense/train.py`

### Scoring and explanations

- [Decision engine](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/decision.py): `src/credit_sense/decision.py`
- [Explanations](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/explain.py): `src/credit_sense/explain.py`
- [Reason codes](https://github.com/pushpak1203/credit_/blob/main/config/reason_codes.yaml): `config/reason_codes.yaml`
- [Decision audit](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/audit.py): `src/credit_sense/audit.py`
- [Appeals workflow](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/appeals.py): `src/credit_sense/appeals.py`
- [Appeals database](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/appeals.py): `src/credit_sense/appeals.py`

### Monitoring and pilot

- [Model evaluation](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/evaluate.py): `src/credit_sense/evaluate.py`
- [Fairness analysis](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/fairness.py): `src/credit_sense/fairness.py`
- [Drift monitoring](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/drift.py): `src/credit_sense/drift.py`
- [Shadow comparison](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/shadow.py): `src/credit_sense/shadow.py`
- [Pilot simulation](https://github.com/pushpak1203/credit_/blob/main/src/credit_sense/pilot_simulation.py): `src/credit_sense/pilot_simulation.py`

### Local interfaces

- [Scoring API](https://github.com/pushpak1203/credit_/blob/main/api/main.py): `api/main.py`
- [Local dashboard](https://github.com/pushpak1203/credit_/blob/main/app/dashboard.py): `app/dashboard.py`

### Other components

- **Applicant**

## Connections

- Applicant → Scoring API: submits score (evidence: `api/main.py`)
- Applicant → Local dashboard: enters application (evidence: `README.md`)
- Synthetic data → Feature registry: provides records (evidence: `README.md`)
- Feature registry → Model training: builds features (evidence: `src/credit_sense/train.py`)
- Scoring API → Decision engine: calls scoring (evidence: `api/main.py`)
- Local dashboard → Decision engine: calls scoring (evidence: `app/dashboard.py`)
- Decision engine → Feature registry: builds features (evidence: `src/credit_sense/decision.py`)
- Decision engine → Explanations: requests reasons (evidence: `src/credit_sense/decision.py`)
- Explanations → Feature registry: builds features (evidence: `src/credit_sense/explain.py`)
- Explanations → Reason codes: reads codes (evidence: `src/credit_sense/explain.py`)
- Scoring API → Decision audit: appends decision (evidence: `api/main.py`)
- Scoring API → Appeals workflow: submits appeal (evidence: `api/main.py`)
- Local dashboard → Appeals workflow: lists appeals (evidence: `app/dashboard.py`)
- Appeals workflow → Appeals database: reads and writes (evidence: `src/credit_sense/appeals.py`)
- Feature registry → Model evaluation: builds features (evidence: `src/credit_sense/evaluate.py`)
- Model training → Model evaluation: supplies models (evidence: `src/credit_sense/evaluate.py`)
- Feature registry → Fairness analysis: builds features (evidence: `src/credit_sense/fairness.py`)
- Model training → Fairness analysis: supplies models (evidence: `src/credit_sense/fairness.py`)
- Feature registry → Drift monitoring: builds features (evidence: `src/credit_sense/drift.py`)
- Feature registry → Shadow comparison: builds features (evidence: `src/credit_sense/shadow.py`)
- Model training → Shadow comparison: supplies models (evidence: `src/credit_sense/shadow.py`)
- Model evaluation → Pilot simulation: provides rule baseline (evidence: `src/credit_sense/pilot_simulation.py`)
- Feature registry → Pilot simulation: builds features (evidence: `src/credit_sense/pilot_simulation.py`)
- Model training → Pilot simulation: supplies models (evidence: `src/credit_sense/pilot_simulation.py`)
