skillfed

properscoring

Proper scoring rules in Python

properscoring v0.1 167.2K downloads/30d#10,478 on PyPI188
Permissive license Apache Abandoned released

What it is and what it does

Properscoring is a Python library for computing strictly proper scoring rules—evaluation metrics that cannot be artificially improved through hedging—making them fair and reliable for assessing the accuracy of probabilistic forecasts. It implements Continuous Ranked Probability Score (CRPS) and Brier Score in multiple forms: CRPS can be calculated exactly for Gaussian distributions, via numerical integration for arbitrary distributions, from finite ensemble samples, or weighted by probability density values; Brier Score is provided for binary forecasts and threshold exceedances. All functions handle multi-dimensional arrays and missing values (NaN).

The library was created by researchers at The Climate Corporation and is particularly useful in weather forecasting and other domains where probabilistic predictions need rigorous evaluation. It requires external dependencies and optional Numba support for performance improvements on ensemble-based calculations. However, the package is no longer actively maintained—the last release and commit occurred years ago—so compatibility with recent Python versions may be limited.

Use it for:

  • Evaluate weather forecast model accuracy by computing CRPS scores across many observations and comparing to baseline forecasts.
  • Calculate skill scores to measure forecast improvement relative to a baseline, normalized to a 0–1 scale.
  • Score ensemble forecasts from climate or weather models using finite samples without requiring the underlying distribution.
  • Compute Brier scores for binary probabilistic predictions or threshold exceedances.
  • Batch-process large arrays of forecast–observation pairs to generate aggregate performance metrics.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Properscoring provides strictly proper scoring rules for evaluating probabilistic forecasts, including Continuous Ranked Probability Score (CRPS) and Brier Score methods that work with ensemble forecasts, Gaussian distributions, and arbitrary cumulative distribution functions.

Yes, if you need strictly proper scoring rules for probabilistic forecast evaluation and can tolerate an abandoned package. The core algorithms are scientifically sound and the library has no known vulnerabilities. However, verify compatibility with your Python version before relying on it in production; consider seeking an actively maintained alternative if you need ongoing support or updates.

Install

properscoring on PyPI

pip

pip install properscoring

uv

uv add properscoring

poetry

poetry add properscoring

Installing properscoring

Before you install

Installation is straightforward with no runtime dependencies, though the package is abandoned—last release was 2015-11-12 and last commit 2023-03-09. It targets Python 2 and early Python 3 versions; compatibility with modern Python is unverified.

License in practice

Licensed under Apache License 2.0 (permissive), allowing commercial and private use with minimal restrictions, though you must include a copy of the license and state any modifications.

Quickstart

pip install properscoring

import properscoring as ps

# Calculate CRPS for a Gaussian forecast
ps.crps_gaussian(0, mu=0, sig=1)

Requires NumPy (1.8 or later) and SciPy; Numba is optional but highly encouraged for performance on crps_ensemble and threshold_brier_score.

Verify before relying

  • Whether the package works reliably on Python 3.6 and later versions despite classifiers only listing up to 3.5.
  • Current performance characteristics and whether Numba speedups (e.g., 20x) still apply with modern versions.
  • Whether the package's core algorithms remain scientifically current for modern forecast evaluation workflows.

Package facts

License Apache (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 3,928 days since the last release
Last repo commit
First released
Downloads 167,190/month — #10,478 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: properscoring-0.1-py2.py3-none-any.whl

Development Status :: 3 - AlphaIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Topic :: Scientific/Engineering

Tags

probabilistic forecast evaluationproper scoring rulesCRPS continuous ranked probability scorebrier score calculationforecast verification metricsensemble forecast scoringweather forecast evaluation
forecast-evaluationproper-scoring-rulesprobabilistic-metrics

More Scientific/Engineering packages