# pricingfrontier/haute architecture

> Architecture diagram of the GitHub repository pricingfrontier/haute, 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/pricingfrontier/haute
- Repository: https://github.com/pricingfrontier/haute

## Overview

Haute is an open-source insurance pricing engine: teams compose a visual or code-backed pipeline, prepare data, build rating logic, train and score models, explore results, optimise prices, then trace and serve pricing results. The map includes the documented major capabilities, the browser-to-server pipeline path, execution, and project history/storage. Several capability modules are represented by their existing enclosing directory because the README documents them but their implementation was not sampled.

Main entry points: [`src/haute`](https://github.com/pricingfrontier/haute/tree/main/src/haute) (Rating pipeline), [`src/haute/routes/pipeline.py`](https://github.com/pricingfrontier/haute/blob/main/src/haute/routes/pipeline.py) (Pipeline API), [`frontend/src/App.tsx`](https://github.com/pricingfrontier/haute/blob/main/frontend/src/App.tsx) (Visual editor), [`frontend/src/hooks/usePipelineAPI.ts`](https://github.com/pricingfrontier/haute/blob/main/frontend/src/hooks/usePipelineAPI.ts) (Pipeline client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Pipeline authoring"]
  node_editor["Visual editor<br/>[App.tsx]"]
  node_pipeline_api["Pipeline client<br/>[usePipelineAPI.ts]"]
  node_document["Pipeline document"]
  node_editors["Node editors"]
  node_graph["Graph commits"]
  node_recovery["Document recovery"]
end

subgraph group_pricing["Pricing workflow"]
  node_data_inputs["Data inputs"]
  node_pipeline["Rating pipeline"]
  node_explore["Explore and profile"]
  node_training["Model training"]
  node_scoring["Model scoring"]
  node_optimise["Price optimisation"]
  node_trace["Price trace"]
end

subgraph group_runtime["Execution and serving"]
  node_route["Pipeline API<br/>[pipeline.py]"]
  node_engine["Lazy execution<br/>[_execute_lazy.py]"]
end

subgraph group_state["Project state"]
  node_git["Git history<br/>[_git.py]"]
  node_storage[("Project storage")]
end

node_team(("Pricing team"))
node_polars["Polars"]
node_mlflow["MLflow"]
node_deployment(("Pricing API consumer"))

node_team -->|"authors"| node_editor
node_editor -->|"requests pipeline"| node_pipeline_api
node_pipeline_api -->|"validates document"| node_document
node_editor -->|"configures nodes"| node_editors
node_editor -->|"commits edits"| node_graph
node_pipeline_api -->|"calls endpoints"| node_route
node_route -->|"recovers documents"| node_recovery
node_route -->|"runs pipeline"| node_engine
node_engine -->|"loads inputs"| node_data_inputs
node_engine -->|"executes plans"| node_polars
node_pipeline -->|"profiles data"| node_explore
node_pipeline -->|"trains models"| node_training
node_training -.->|"logs runs"| node_mlflow
node_pipeline -->|"scores models"| node_scoring
node_scoring -.->|"loads models"| node_mlflow
node_pipeline -->|"optimises prices"| node_optimise
node_pipeline -->|"explains calculations"| node_trace
node_route -->|"saves history"| node_git
node_git -.->|"publishes project"| node_storage
node_deployment -->|"requests pricing"| node_route

click node_editor "https://github.com/pricingfrontier/haute/blob/main/frontend/src/App.tsx"
click node_pipeline_api "https://github.com/pricingfrontier/haute/blob/main/frontend/src/hooks/usePipelineAPI.ts"
click node_document "https://github.com/pricingfrontier/haute/blob/main/frontend/src/types/pipelineDocument.ts"
click node_editors "https://github.com/pricingfrontier/haute/tree/main/frontend/src/panels/editors"
click node_graph "https://github.com/pricingfrontier/haute/blob/main/frontend/src/hooks/useGraphCommitController.ts"
click node_recovery "https://github.com/pricingfrontier/haute/blob/main/src/haute/_pipeline_recovery.py"
click node_data_inputs "https://github.com/pricingfrontier/haute/blob/main/src/haute/_input_providers.py"
click node_pipeline "https://github.com/pricingfrontier/haute/tree/main/src/haute"
click node_explore "https://github.com/pricingfrontier/haute/tree/main/src/haute"
click node_training "https://github.com/pricingfrontier/haute/tree/main/src/haute"
click node_scoring "https://github.com/pricingfrontier/haute/tree/main/src/haute"
click node_optimise "https://github.com/pricingfrontier/haute/tree/main/src/haute"
click node_trace "https://github.com/pricingfrontier/haute/tree/main/src/haute"
click node_route "https://github.com/pricingfrontier/haute/blob/main/src/haute/routes/pipeline.py"
click node_engine "https://github.com/pricingfrontier/haute/blob/main/src/haute/_execute_lazy.py"
click node_git "https://github.com/pricingfrontier/haute/blob/main/src/haute/_git.py"
click node_storage "https://github.com/pricingfrontier/haute/blob/main/src/haute/_project_storage.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_editor,node_pipeline_api,node_document,node_editors,node_graph,node_recovery toneBlue
class node_data_inputs,node_pipeline,node_explore,node_training,node_scoring,node_optimise,node_trace toneAmber
class node_route,node_engine,node_deployment toneMint
class node_git,node_storage toneRose
class node_team,node_polars,node_mlflow toneIndigo
```

## Components

### Pipeline authoring

- [Visual editor](https://github.com/pricingfrontier/haute/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Pipeline client](https://github.com/pricingfrontier/haute/blob/main/frontend/src/hooks/usePipelineAPI.ts): `frontend/src/hooks/usePipelineAPI.ts`
- [Pipeline document](https://github.com/pricingfrontier/haute/blob/main/frontend/src/types/pipelineDocument.ts): `frontend/src/types/pipelineDocument.ts`
- [Node editors](https://github.com/pricingfrontier/haute/tree/main/frontend/src/panels/editors): `frontend/src/panels/editors`
- [Graph commits](https://github.com/pricingfrontier/haute/blob/main/frontend/src/hooks/useGraphCommitController.ts): `frontend/src/hooks/useGraphCommitController.ts`
- [Document recovery](https://github.com/pricingfrontier/haute/blob/main/src/haute/_pipeline_recovery.py): `src/haute/_pipeline_recovery.py`

### Pricing workflow

- [Data inputs](https://github.com/pricingfrontier/haute/blob/main/src/haute/_input_providers.py): `src/haute/_input_providers.py`
- [Rating pipeline](https://github.com/pricingfrontier/haute/tree/main/src/haute): `src/haute`
- [Explore and profile](https://github.com/pricingfrontier/haute/tree/main/src/haute): `src/haute`
- [Model training](https://github.com/pricingfrontier/haute/tree/main/src/haute): `src/haute`
- [Model scoring](https://github.com/pricingfrontier/haute/tree/main/src/haute): `src/haute`
- [Price optimisation](https://github.com/pricingfrontier/haute/tree/main/src/haute): `src/haute`
- [Price trace](https://github.com/pricingfrontier/haute/tree/main/src/haute): `src/haute`

### Execution and serving

- [Pipeline API](https://github.com/pricingfrontier/haute/blob/main/src/haute/routes/pipeline.py): `src/haute/routes/pipeline.py`
- [Lazy execution](https://github.com/pricingfrontier/haute/blob/main/src/haute/_execute_lazy.py): `src/haute/_execute_lazy.py`

### Project state

- [Git history](https://github.com/pricingfrontier/haute/blob/main/src/haute/_git.py): `src/haute/_git.py`
- [Project storage](https://github.com/pricingfrontier/haute/blob/main/src/haute/_project_storage.py): `src/haute/_project_storage.py`

### Other components

- **Pricing team**
- **Polars**
- **MLflow**
- **Pricing API consumer**

## Connections

- Pricing team → Visual editor: authors
- Visual editor → Pipeline client: requests pipeline
- Pipeline client → Pipeline document: validates document
- Visual editor → Node editors: configures nodes
- Visual editor → Graph commits: commits edits
- Pipeline client → Pipeline API: calls endpoints
- Pipeline API → Document recovery: recovers documents
- Pipeline API → Lazy execution: runs pipeline
- Lazy execution → Data inputs: loads inputs
- Lazy execution → Polars: executes plans
- Rating pipeline → Explore and profile: profiles data
- Rating pipeline → Model training: trains models
- Model training → MLflow: logs runs
- Rating pipeline → Model scoring: scores models
- Model scoring → MLflow: loads models
- Rating pipeline → Price optimisation: optimises prices
- Rating pipeline → Price trace: explains calculations
- Pipeline API → Git history: saves history
- Git history → Project storage: publishes project
- Pricing API consumer → Pipeline API: requests pricing
