ScorePilot
Build, compare, and interrogate PCA and PLS models in your browser. ScorePilot is a point-and-click workbench for multivariate data analysis and chemometrics: load a table, clean it up, fit a model, and explore the scores, loadings, and diagnostics that explain your process - no code required.
It runs as a single, self-contained app you launch with one command. Standard chemometrics terms keep their established names throughout: scores (T), loadings (P), Hotelling's T², SPE/DModX, contributions, VIP, R²X / R²Y, Q².
See it in action
Explore your data - a fast spreadsheet-style grid with a live inspector for every column (distribution, sequence, summary, transform preview), data-quality flags, and one-click roles and exclusions:
Fit a model and read it - scores with the Hotelling's T² confidence ellipse, loadings, T² and SPE with control limits, and VIP, all interactive:
What you can do
- Bring in data your way - upload a CSV or Excel file, paste a public URL, or start from one of the bundled example datasets (LDPE, food consumption, solvents, NIR tablet spectra, and more).
- Understand each variable - click any column to see its histogram, run-order sequence, and summary statistics, and preview a transform (log, logit, ...) before you commit to it. Toggle the whole grid between raw and autoscaled values.
- Clean and shape the workset - set the primary identifier (auto-detected, with a synthetic row id when needed), mark X / Y variables, and exclude outlying samples or unwanted variables - all without altering your original data.
- Catch problems early - duplicate identifiers, non-numeric values in numeric columns, and missing data are flagged as you go.
- Fit PCA and PLS - choose the number of components and fit. For one-component models the plots collapse to a single, readable axis automatically.
- Interrogate the model - plot any pair of components (or sequence order), hover a score to read its SPE and T², and double-click or long-press any point to open its contribution plot and see which variables drive it. Long-press a loadings point to jump straight to that variable's raw data.
- Select and link across every plot - switch a plot into arrow or lasso mode and pick out points; the selection lights up the same rows (or variables) in every other plot - scores, loadings, T², SPE, VIP, and contributions - so a cluster you spot in one view is instantly visible everywhere. The lasso is forgiving on touch: a partial ring closes itself.
- Colour and size by what matters - shade or scale the score points by SPE or Hotelling's T² to make outliers jump out.
- Act on a selection - fork a new model variant straight from a brushed set: exclude the selected samples (or keep only them) and refit in one click, with the lineage recorded automatically.
- Keep a history - every model variant lands in the Hangar, and each one carries a Logbook recording its preprocessing, exclusions, and lineage, so you can branch a new variant from an existing one and compare. The running version is always shown, faint, in the top-right corner so you know exactly what you are looking at.
Your datasets and models are saved, so they survive a restart and are there when you come back.
Quick start
You need Python 3.12+ and uv. Then:
uv run scorepilot
That boots the app and opens your browser at http://127.0.0.1:8000. Load a sample
dataset from the home page and start exploring.
Handy flags:
uv run scorepilot --host 0.0.0.0 --port 8080 --no-browser
The packaged app is a single process with no Node required at runtime: the Python server hosts both the API and the web UI.
The assistant (optional)
ScorePilot has an optional in-app assistant, T²-D2, for help interpreting a model. It is off by default, bring-your-own-key, and the analysis never depends on it - the tool is fully usable without it.
For developers
ScorePilot is a FastAPI + SQLAlchemy backend with a SvelteKit (Svelte 5) + ECharts
frontend, wrapping the process-improve
chemometrics library for the numerics. The numerical core/ is pure and has no web or
database imports.
The frontend ships two standalone, domain-agnostic libraries that know nothing about
chemometrics and can be reused elsewhere: frontend/src/lib/grid/ (a dependency-free
data grid) and frontend/src/lib/plots/ (a linked-plots collection with
brushing-and-linking; see frontend/src/lib/plots/README.md).
- Architecture, the dataset / preprocessing-spec model, and the reusable data grid:
docs/ARCHITECTURE.md - A from-scratch local setup walkthrough:
docs/DEVELOPMENT.md - Deployment and publishing:
docs/DEPLOYMENT.md,docs/PUBLISHING.md
Common tasks:
uv sync # set up the environment
uv run scorepilot # run the app
uv run pytest # tests
uv run ruff check . # lint
uv run pyright # type check
cd frontend && npm install && npm run dev # frontend dev server (proxies /api)
License
MIT. See LICENSE.
Metadata
Release files for scorepilot 0.22.36
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scorepilot-0.22.36-py3-none-any.whl | Python 3 | none | any | Details |
Release files / scorepilot-0.22.36-py3-none-any.whl
| Download URL | scorepilot-0.22.36-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f52fc426d71b5cbcd9284ccfbce6754427fe12176aa9566cba96c0ff227eef8d
|
|
BLAKE2b-256 checksum How to use checksums |
fcc49023bcc102a504405f2174c6605294d9ff71d5750a6d9b3c39c1e55fab94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.
Transparency log