Skip to main content

Atelier

Browser-based GLM workbench for actuarial pricing

Build, fit, diagnose, and iterate on Generalized Linear Models - without leaving your browser.

Python 3.13+ License: EPL-2.0 Powered by rustystats

Atelier Screenshot


Why Atelier?

Traditional actuarial pricing tools like Emblem are expensive, opaque, and tied to legacy platforms. Atelier is a modern, open-source alternative that wraps rustystats - a high-performance Rust-backed GLM engine - in a clean, interactive UI. It runs locally, stores everything on your machine, and follows the same explore-build-fit-iterate workflow actuaries already know.

Installation

uv add atel
# or
pip install atel

Installs everything - backend, frontend, engine. No separate build steps.

Quick start

atel                  # starts server, opens browser
atel --port 9000      # custom port
atel --no-browser     # start server only

The atelier command works too - atel is just shorter.


How it works

Workflow

Atelier follows the standard actuarial modelling workflow:

  1. Upload - drag-and-drop a CSV or Parquet file, column types are auto-detected
  2. Configure - select the response variable, GLM family, link function, offset, weights, and train/test split
  3. Explore - pre-fit analysis runs automatically: response distribution, score tests ranking every candidate factor by expected deviance contribution, and a null (intercept-only) baseline model
  4. Build - add terms from the factor sidebar: right-click any factor to choose categorical, linear, spline, target encoding, or other term types
  5. Fit - hit fit, review the results: coefficient table, A/E charts, lift, calibration, VIF, and model diagnostics
  6. Iterate - modify terms and re-fit. Every fit is auto-versioned so you can compare metrics across iterations and restore any previous version

Architecture

┌─────────────────────────────────────────────┐
│  Browser (React 19 + Tailwind + shadcn/ui)  │
└──────────────────┬──────────────────────────┘
                   │ HTTP/JSON
┌──────────────────▼──────────────────────────┐
│  FastAPI backend                             │
│  ├── /api/datasets   upload, validate        │
│  ├── /api/explore    EDA + null model        │
│  ├── /api/fit        GLM fitting             │
│  ├── /api/models     save, history, restore  │
│  └── /api/projects   project CRUD            │
├──────────────────────────────────────────────┤
│  rustystats          Rust GLM engine         │
├──────────────────────────────────────────────┤
│  SQLite (async)      projects, models, specs │
└──────────────────────────────────────────────┘

All data stays local at ~/.atelier/ - the database, uploaded datasets, and serialized models.


Features

Model building

  • 8 GLM families - Gaussian, Poisson, Binomial, Gamma, Tweedie, Quasi-Poisson, Quasi-Binomial, Negative Binomial
  • Rich term types - categorical, linear, B-splines, natural splines, target encoding, frequency encoding, expressions
  • Monotonic constraints - enforce increasing/decreasing effects on splines and linear terms
  • Interactions - standard product terms, target-encoded interactions, frequency-encoded interactions
  • Regularization - Ridge, Lasso, Elastic Net with cross-validated alpha selection
  • Train/test split - holdout validation with stratified splitting

Diagnostics

  • Factor-level A/E - actual vs expected charts for every factor, fitted or not
  • Score tests - chi-squared significance for candidate factors before fitting
  • Lift charts - Gini, AUC, KS statistics with decile breakdown
  • Calibration - Hosmer-Lemeshow test, decile calibration with confidence intervals
  • Residual analysis - deviance, Pearson, and working residuals
  • VIF & multicollinearity - variance inflation factors with severity coloring
  • Model comparison - side-by-side train/test metrics against a base model

Data exploration

  • Pre-fit analysis - response distribution, zero inflation, overdispersion detection
  • Correlation matrix - numeric correlations and Cramer's V for categoricals
  • Interaction detection - greedy residual-based search for potential interactions

Version control

  • Auto-versioning - every fit is saved as a new version with full spec, coefficients, and diagnostics
  • Change tracking - history panel shows terms added, removed, or modified between versions
  • Restore - click any version to restore its terms and results, then continue iterating

License

Eclipse Public License 2.0

Release files for atel 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atel 0.2.3
File Size Uploaded
atel-0.2.3.tar.gz 684.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atel 0.2.3
File Interpreter ABI Platform
atel-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 981.0 kB

Release files / atel-0.2.3.tar.gz

Download URL atel-0.2.3.tar.gz
Size 684.2 kB
Tags Source
SHA-256 checksum
How to use checksums
642c5cb9b6af1f9e17f2d9273e12d02c60b28e69e7b9771284883fbf7098b0c0
BLAKE2b-256 checksum
How to use checksums
5b223bb336590618b55491ad525def7568e0d96e21c32162b4b4d9f1eb0edab7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / atel-0.2.3-py3-none-any.whl

Download URL atel-0.2.3-py3-none-any.whl
Size 296.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1a67e60af363efc0c7fffc337d97ff143340f7b528ae1fcb2d1e6660a1fdcd1
BLAKE2b-256 checksum
How to use checksums
d615b65f1bcd6aa0ec5eb61059a072ceaba8d0d03ed39a5346d0d6b66dfda175
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page