# erickyegon/insurancepremiummodel architecture

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

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

## Overview

This is a health-insurance premium prediction application with an ML training lifecycle, prediction API, monitoring views, and retraining support. The principal user flow is request data through the FastAPI app, prediction pipeline, and model deployment component to a premium result. Training is separately orchestrated through ingestion, validation, transformation, model training, and evaluation. Monitoring and retraining capabilities are documented and partly visible in the app excerpts; their deeper integration is uncertain. The graph uses the supplied source excerpts and tree, not unsampled implementations.

Main entry points: [`app.py`](https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py) (FastAPI App), [`InsurancePremiumPrediction/pipeline/training_pipeline.py`](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/pipeline/training_pipeline.py) (Training Pipeline), [`InsurancePremiumPrediction/pipeline/prediction_pipeline.py`](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/pipeline/prediction_pipeline.py) (Prediction Pipeline), [`InsurancePremiumPrediction/components/model_deployment.py`](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_deployment.py) (Model Deployment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_serving["Prediction Serving"]
  node_api["FastAPI App<br/>[app.py]"]
  node_prediction["Prediction Pipeline"]
  node_deployment["Model Deployment"]
end

subgraph group_training["Model Training"]
  node_trainer["Training Pipeline"]
  node_configuration["Configuration<br/>[configuration.py]"]
  node_ingestion["Data Ingestion<br/>[data_ingestion.py]"]
  node_validation["Data Validation<br/>[data_validation.py]"]
  node_transformation["Data Transformation"]
  node_model_training["Model Trainer<br/>[model_trainer.py]"]
  node_evaluation["Model Evaluation"]
end

subgraph group_ops["Monitoring Retraining"]
  node_monitoring["Monitoring Metrics<br/>[app.py]"]
  node_drift["Drift Detection<br/>[data_drift.py]"]
  node_alerting["Alerting<br/>[alerting.py]"]
  node_retraining["Retraining Task<br/>[app.py]"]
end

subgraph group_integration["Deployment Integration"]
  node_azure["Azure Deployment<br/>[azure_deploy.py]"]
  node_azure_score["Azure Scoring<br/>[score.py]"]
end

node_user(("Business User"))
node_premium["Premium Result"]
node_source_data["Source Data"]

node_user -->|"submits request"| node_api
node_api -->|"calls prediction"| node_prediction
node_prediction -->|"loads and predicts"| node_deployment
node_deployment -->|"returns premium"| node_premium
node_api -->|"returns response"| node_premium
node_trainer -->|"gets settings"| node_configuration
node_trainer -->|"starts ingestion"| node_ingestion
node_source_data -->|"provides data"| node_ingestion
node_trainer -->|"validates splits"| node_validation
node_trainer -->|"transforms splits"| node_transformation
node_trainer -->|"trains model"| node_model_training
node_trainer -->|"evaluates model"| node_evaluation
node_api -->|"builds dashboard metrics"| node_monitoring
node_api -.->|"drift route integration unclear"| node_drift
node_api -.->|"alert integration unclear"| node_alerting
node_api -->|"queues background task"| node_retraining
node_retraining -->|"ingests retraining data"| node_source_data
node_retraining -.->|"validates retraining data"| node_validation
node_azure -->|"deploys scoring"| node_azure_score
node_azure_score -.->|"serves predictions"| node_prediction

click node_api "https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py"
click node_prediction "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/pipeline/prediction_pipeline.py"
click node_deployment "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_deployment.py"
click node_trainer "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/pipeline/training_pipeline.py"
click node_configuration "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/config/configuration.py"
click node_ingestion "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/data_ingestion.py"
click node_validation "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/data_validation.py"
click node_transformation "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/data_transformation.py"
click node_model_training "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_trainer.py"
click node_evaluation "https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_evaluation.py"
click node_monitoring "https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py"
click node_drift "https://github.com/erickyegon/insurancepremiummodel/blob/main/mlops/monitoring/data_drift.py"
click node_alerting "https://github.com/erickyegon/insurancepremiummodel/blob/main/mlops/monitoring/alerting.py"
click node_retraining "https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py"
click node_azure "https://github.com/erickyegon/insurancepremiummodel/blob/main/deployment/azure/azure_deploy.py"
click node_azure_score "https://github.com/erickyegon/insurancepremiummodel/blob/main/deployment/azure/score.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_api,node_prediction,node_deployment,node_user toneBlue
class node_trainer,node_configuration,node_ingestion,node_validation,node_transformation,node_model_training,node_evaluation toneAmber
class node_monitoring,node_drift,node_alerting,node_retraining toneMint
class node_azure,node_azure_score toneRose
class node_premium,node_source_data toneIndigo
```

## Components

### Prediction Serving

- [FastAPI App](https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py): `app.py`
- [Prediction Pipeline](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/pipeline/prediction_pipeline.py): `InsurancePremiumPrediction/pipeline/prediction_pipeline.py`
- [Model Deployment](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_deployment.py): `InsurancePremiumPrediction/components/model_deployment.py`

### Model Training

- [Training Pipeline](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/pipeline/training_pipeline.py): `InsurancePremiumPrediction/pipeline/training_pipeline.py`
- [Configuration](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/config/configuration.py): `InsurancePremiumPrediction/config/configuration.py`
- [Data Ingestion](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/data_ingestion.py): `InsurancePremiumPrediction/components/data_ingestion.py`
- [Data Validation](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/data_validation.py): `InsurancePremiumPrediction/components/data_validation.py`
- [Data Transformation](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/data_transformation.py): `InsurancePremiumPrediction/components/data_transformation.py`
- [Model Trainer](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_trainer.py): `InsurancePremiumPrediction/components/model_trainer.py`
- [Model Evaluation](https://github.com/erickyegon/insurancepremiummodel/blob/main/InsurancePremiumPrediction/components/model_evaluation.py): `InsurancePremiumPrediction/components/model_evaluation.py`

### Monitoring Retraining

- [Monitoring Metrics](https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py): `app.py`
- [Drift Detection](https://github.com/erickyegon/insurancepremiummodel/blob/main/mlops/monitoring/data_drift.py): `mlops/monitoring/data_drift.py`
- [Alerting](https://github.com/erickyegon/insurancepremiummodel/blob/main/mlops/monitoring/alerting.py): `mlops/monitoring/alerting.py`
- [Retraining Task](https://github.com/erickyegon/insurancepremiummodel/blob/main/app.py): `app.py`

### Deployment Integration

- [Azure Deployment](https://github.com/erickyegon/insurancepremiummodel/blob/main/deployment/azure/azure_deploy.py): `deployment/azure/azure_deploy.py`
- [Azure Scoring](https://github.com/erickyegon/insurancepremiummodel/blob/main/deployment/azure/score.py): `deployment/azure/score.py`

### Other components

- **Business User**
- **Premium Result**
- **Source Data**

## Connections

- Business User → FastAPI App: submits request
- FastAPI App → Prediction Pipeline: calls prediction
- Prediction Pipeline → Model Deployment: loads and predicts
- Model Deployment → Premium Result: returns premium
- FastAPI App → Premium Result: returns response
- Training Pipeline → Configuration: gets settings
- Training Pipeline → Data Ingestion: starts ingestion
- Source Data → Data Ingestion: provides data
- Training Pipeline → Data Validation: validates splits
- Training Pipeline → Data Transformation: transforms splits
- Training Pipeline → Model Trainer: trains model
- Training Pipeline → Model Evaluation: evaluates model
- FastAPI App → Monitoring Metrics: builds dashboard metrics
- FastAPI App → Drift Detection: drift route integration unclear
- FastAPI App → Alerting: alert integration unclear
- FastAPI App → Retraining Task: queues background task
- Retraining Task → Source Data: ingests retraining data
- Retraining Task → Data Validation: validates retraining data
- Azure Deployment → Azure Scoring: deploys scoring
- Azure Scoring → Prediction Pipeline: serves predictions
