Skip to main content

homeostat-live

Take part in the Homeostat Live benchmark from the command line. Each week, predict the lab results of a simulated process plant from its sensor data.

homeostat_live register alice                # once: your token is kept in ~/.config/homeostat-live
homeostat_live benchmarks                    # the benchmarks, the open one first
homeostat_live benchmark                     # download the open benchmark and every earlier week
homeostat_live submit 2026-10-09 isidis-01 homeostat-live-data/isidis-01/benchmarks/2026-10-09/predictions.csv --note "v1"
homeostat_live history                       # your submissions and scores
homeostat_live leaderboard                   # the ranking of the last frozen week, and over weeks
homeostat_live score my.csv --week 2026-10-09 --plant isidis-01   # backtest on a released week

A benchmark opens every Friday at 17:00 UTC with the week that has just closed. It asks for every lab result of that week, and it freezes a week later, when those lab results are released and every submission is scored. Your last submission before the freeze counts. A prediction for a sample may use only data up to the time the sample was taken: sensor data up to then, and the lab results of earlier, released weeks.

homeostat_live benchmark writes a folder with a README that explains its layout. Every command takes --json, which prints the API's answer as it is, for scripts and AI assistants. --server (or HOMEOSTAT_LIVE_SERVER) points the command at another site.

The command needs Python 3.10 or later and nothing beyond the standard library; building models with it (below) needs NumPy and pandas.

Building a model, with an AI coding agent or without

pip install 'homeostat-live[models]'
homeostat_live init my-model                 # AGENTS.md, model.py and the plant's data
cd my-model
homeostat_live backtest model.py             # score it on the last 4 released weeks, next to the reference models
homeostat_live backtest model.py --all       # on every released week; --week <date> for one week with every metric
homeostat_live predict model.py              # predictions for the open benchmark, checked, ready to submit
homeostat_live check <predictions.csv>       # what the API would refuse, and what looks wrong
homeostat_live data                          # bring the data up to date (backtest and predict do it themselves)

init writes a project that coding agents such as Claude Code, Codex or Cursor can work in: AGENTS.md explains the task, the files, the model interface, the commands, the rules and the scoring (CLAUDE.md points to it), and model.py is a working model to improve: a copy of the reference model ref-linear.

A model is a class with up to four methods; the harness (homeostat_live.harness) makes one per lab analysis and per predicted week:

class Model:
    def __init__(self, plant, tag): ...   # the plant's metadata, and the lab analysis to predict
    def features(self, sensors): ...      # optional: sensor rows (a column per tag, indexed by time) -> features
    def fit(self, X, y): ...              # the features at the sample times of the released results, and the results
    def predict(self, X): ...             # one sample's row of features -> one value

The harness keeps the causal rule by construction: fit gets only the lab results released before the predicted week, predict is called once per sample with the features at its time, and the features must be causal: at a few sample times, the harness computes them again without the data after the sample and stops with an error that names the columns if they change (a centred window, shift(-1), bfill, a mean of the whole frame). A backtest predicts each released week as the benchmark would have and scores it with the official metrics, next to the reference models, which run through the same code on the leaderboard:

  • ref-last-lab (naive): the last released result of the same grade.
  • ref-linear (linear): a ridge regression on the sensor values at the sample time, predicting the distance from the grade's target in half tolerances around each grade's level, trained on the last eight released weeks. It ignores the process' dynamics on purpose.

Scoring

Every submission is scored when its benchmark freezes, with the code in homeostat_live.metrics; homeostat_live score runs the same code on any released week, so a model can be backtested with exactly the metrics it is ranked by.

  • Normalised error: |prediction − lab| divided by half the width of the range of the grade being made when the sample was taken, so that both lab analyses and every grade count alike; each sample counts at most 5. The ranking is its mean over every target of the week (lower is better).
  • Accuracy, per analysis: mean absolute error, root mean square error, bias, median, 90th-percentile and worst absolute error, in the analysis' units; the shares within a quarter and within half of the tolerance.
  • Grade changes: a change's window runs from the start of its ramp to 12 hours after its end. Inside the windows: the normalised error and its ratio to steady state; the time until the lab and the prediction reach the new grade's range and stay there, and the difference between the two; the worst error of each change.
  • Off spec: off spec being the positive class, precision, recall, F1 and balanced accuracy, per analysis and for the product (off spec when either analysis is), overall and inside the windows.
  • Dynamics: the share of the lab's moves between consecutive samples that the prediction follows in direction, and the correlation of their changes.
  • Skill: 1 − MAE / the reference model's MAE, against ref-last-lab and ref-linear (above).
  • Per grade: the normalised error and each analysis' error, grade by grade.

The leaderboard ranks every participant (from the first scored week on; a user who breaks the rules is removed) and the reference models by a frozen week, by the last four weeks and by all weeks.

Metadata

Release files for homeostat-live 0.3.1

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

Source distribution (sdist)

Source distribution for homeostat-live 0.3.1
File Size Uploaded Provenance
homeostat_live-0.3.1.tar.gz 43.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for homeostat-live 0.3.1
File Interpreter ABI Platform
homeostat_live-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 81.9 kB

Release files / homeostat_live-0.3.1.tar.gz

Download URL homeostat_live-0.3.1.tar.gz
Size 43.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dce8d98955ba4ea8f10f6c1b19affa697b716c98f5a9b97b60295f9275178403
BLAKE2b-256 checksum
How to use checksums
ceaf0333aad8dbbd915e33cb1d1e81514c0bcea1eac1f88a8376b3ae6c46c7da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 1, 2026.

Transparency log

Release files / homeostat_live-0.3.1-py3-none-any.whl

Download URL homeostat_live-0.3.1-py3-none-any.whl
Size 38.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
efd3ff168872c93a40a1476fe3cc76619d853ac64880dc185616674ef63b37d9
BLAKE2b-256 checksum
How to use checksums
2f3886dd753a4c609c1c211674d09ae5a854194cb3c537aafd59ccb2e1fa7745
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 1, 2026.

Transparency log

Security for homeostat-live 0.3.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for homeostat_live-0.3.1.tar.gz

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 Oct 1, 2026.

Transparency log

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.

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