# key1lee/ups-pricing-deployment architecture

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

- Interactive diagram: https://gitdiagram.com/key1lee/ups-pricing-deployment
- Repository: https://github.com/key1lee/ups-pricing-deployment

## Overview

This repository is a local synthetic shipping-price optimization demo, not a real carrier integration. Its main workflow generates historical quote data, trains and evaluates acceptance models, approves a model, then scores daily quotes and stores price recommendations. An API can serve the approved model and produce recommendations; delayed simulated outcomes and monitoring provide a separate feedback branch. The excerpts show several direct calls, while some Dagster asset wiring and outcome behavior are only described in the README or module index, so uncertain links are omitted.

Main entry points: [`src/shipping/definitions.py`](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/definitions.py) (Dagster jobs), [`src/shipping/api.py`](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/api.py) (Pricing API), [`src/shipping/validation.py`](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/validation.py) (Quote validation), [`src/shipping/cli.py`](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/cli.py) (CLI commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Workflow orchestration"]
  node_cli["CLI commands<br/>[cli.py]"]
  node_dagster["Dagster jobs<br/>[definitions.py]"]
  node_synthetic["Synthetic quotes<br/>[data.py]"]
end

subgraph group_ml["Model and pricing"]
  node_validation["Quote validation<br/>[validation.py]"]
  node_features["Quote features<br/>[features.py]"]
  node_modeling["Model training<br/>[modeling.py]"]
  node_pricing["Price search<br/>[pricing.py]"]
  node_registry["Model registry<br/>[registry.py]"]
end

subgraph group_serving["Serving and outcomes"]
  node_api["Pricing API<br/>[api.py]"]
  node_smoke["HTTP smoke checks<br/>[smoke.py]"]
  node_outcomes["Simulated outcomes<br/>[outcomes.py]"]
end

subgraph group_state["Persistence and monitoring"]
  node_database[("SQLite records<br/>[storage.py]")]
  node_monitoring["Batch monitoring<br/>[monitoring.py]"]
end

node_operator(("Operator"))

node_operator -->|"runs commands"| node_cli
node_cli -->|"executes jobs"| node_dagster
node_synthetic -->|"validates quotes"| node_validation
node_features -->|"validates input"| node_validation
node_pricing -->|"validates quote"| node_validation
node_dagster -->|"generates daily"| node_synthetic
node_dagster -->|"checks data"| node_validation
node_dagster -->|"builds features"| node_features
node_dagster -->|"trains and evaluates"| node_modeling
node_dagster -->|"promotes model"| node_registry
node_dagster -->|"requests recommendations"| node_pricing
node_dagster -->|"persists results"| node_database
node_api -->|"loads approved model"| node_registry
node_api -->|"computes recommendation"| node_pricing
node_api -->|"validates prediction"| node_validation
node_api -->|"records requests"| node_database
node_smoke -->|"checks HTTP endpoints"| node_api
node_outcomes -.->|"stores delayed labels"| node_database
node_monitoring -->|"reads saved records"| node_database
node_monitoring -->|"compares feature drift"| node_features
node_cli -.->|"simulates outcomes"| node_outcomes
node_cli -->|"runs monitoring"| node_monitoring

click node_cli "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/cli.py"
click node_dagster "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/definitions.py"
click node_synthetic "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/data.py"
click node_validation "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/validation.py"
click node_features "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/features.py"
click node_modeling "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/modeling.py"
click node_pricing "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/pricing.py"
click node_registry "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/registry.py"
click node_api "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/api.py"
click node_smoke "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/smoke.py"
click node_outcomes "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/outcomes.py"
click node_database "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/storage.py"
click node_monitoring "https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/monitoring.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_cli,node_dagster,node_synthetic toneBlue
class node_validation,node_features,node_modeling,node_pricing,node_registry toneAmber
class node_api,node_smoke,node_outcomes toneMint
class node_database,node_monitoring toneRose
class node_operator toneIndigo
```

## Components

### Workflow orchestration

- [CLI commands](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/cli.py): `src/shipping/cli.py`
- [Dagster jobs](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/definitions.py): `src/shipping/definitions.py`
- [Synthetic quotes](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/data.py): `src/shipping/data.py`

### Model and pricing

- [Quote validation](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/validation.py): `src/shipping/validation.py`
- [Quote features](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/features.py): `src/shipping/features.py`
- [Model training](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/modeling.py): `src/shipping/modeling.py`
- [Price search](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/pricing.py): `src/shipping/pricing.py`
- [Model registry](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/registry.py): `src/shipping/registry.py`

### Serving and outcomes

- [Pricing API](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/api.py): `src/shipping/api.py`
- [HTTP smoke checks](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/smoke.py): `src/shipping/smoke.py`
- [Simulated outcomes](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/outcomes.py): `src/shipping/outcomes.py`

### Persistence and monitoring

- [SQLite records](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/storage.py): `src/shipping/storage.py`
- [Batch monitoring](https://github.com/key1lee/ups-pricing-deployment/blob/main/src/shipping/monitoring.py): `src/shipping/monitoring.py`

### Other components

- **Operator**

## Connections

- Operator → CLI commands: runs commands (evidence: `README.md`)
- CLI commands → Dagster jobs: executes jobs (evidence: `src/shipping/cli.py`)
- Synthetic quotes → Quote validation: validates quotes (evidence: `src/shipping/data.py`)
- Quote features → Quote validation: validates input (evidence: `src/shipping/features.py`)
- Price search → Quote validation: validates quote (evidence: `src/shipping/pricing.py`)
- Dagster jobs → Synthetic quotes: generates daily (evidence: `src/shipping/definitions.py`)
- Dagster jobs → Quote validation: checks data (evidence: `src/shipping/definitions.py`)
- Dagster jobs → Quote features: builds features (evidence: `src/shipping/definitions.py`)
- Dagster jobs → Model training: trains and evaluates (evidence: `src/shipping/definitions.py`)
- Dagster jobs → Model registry: promotes model (evidence: `src/shipping/definitions.py`)
- Dagster jobs → Price search: requests recommendations (evidence: `README.md`)
- Dagster jobs → SQLite records: persists results (evidence: `src/shipping/definitions.py`)
- Pricing API → Model registry: loads approved model (evidence: `src/shipping/api.py`)
- Pricing API → Price search: computes recommendation (evidence: `src/shipping/api.py`)
- Pricing API → Quote validation: validates prediction (evidence: `src/shipping/api.py`)
- Pricing API → SQLite records: records requests (evidence: `src/shipping/api.py`)
- HTTP smoke checks → Pricing API: checks HTTP endpoints (evidence: `src/shipping/smoke.py`)
- Simulated outcomes → SQLite records: stores delayed labels (evidence: `src/shipping/outcomes.py`)
- Batch monitoring → SQLite records: reads saved records (evidence: `src/shipping/monitoring.py`)
- Batch monitoring → Quote features: compares feature drift (evidence: `src/shipping/monitoring.py`)
- CLI commands → Simulated outcomes: simulates outcomes (evidence: `src/shipping/cli.py`)
- CLI commands → Batch monitoring: runs monitoring (evidence: `src/shipping/cli.py`)
