Atelier
Browser-based GLM workbench for actuarial pricing
Build, fit, diagnose, and iterate on Generalized Linear Models - without leaving your browser.
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:
- Upload - drag-and-drop a CSV or Parquet file, column types are auto-detected
- Configure - select the response variable, GLM family, link function, offset, weights, and train/test split
- 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
- Build - add terms from the factor sidebar: right-click any factor to choose categorical, linear, spline, target encoding, or other term types
- Fit - hit fit, review the results: coefficient table, A/E charts, lift, calibration, VIF, and model diagnostics
- 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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| atel-0.2.3.tar.gz | 684.2 kB | Without provenance | Details for atel-0.2.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| atel-0.2.3-py3-none-any.whl | Python 3 | none | any | Details for atel-0.2.3-py3-none-any.whl |
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}
|
Security for atel 0.2.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.