Release Notes (What's New)
Version 2.5.0 (February 14, 2026)
For a list of all changes in this release, see the full changelog. Below are the changes we think users may wish to be aware of.
Features
scoreshas introduced support for Python 3.14. See PR #989.- Added probability integral transform (PIT) classes:
- PIT for ensembles or cumulative distribution functions (CDFs):
scores.probability.Pit - PIT for predictive CDFs evaluated at observations:
scores.probability.PitFcstAtObs.
See PR #919.
- PIT for ensembles or cumulative distribution functions (CDFs):
- Added a new function for generating data for rank histograms:
Deprecations
- Support for
include_componentswill be removed from threshold-weighted continuous ranked probability score (twCRPS) functions in a future version ofscores. Thescoresdevelopment team believe usinginclude_components=Truemay lead to misleading results when used with twCRPS functions. As such, the following are now deprecated:- support for
include_componentsinscores.probability.tw_crps_for_ensemble, - support for
include_componentsinscores.probability.tail_tw_crps_for_ensembleand - support for
include_componentsinscores.probability.interval_tw_crps_for_ensemble.
See PR #991.
- support for
Bug Fixes
- Fixed an
IndexErrorin receiver (relative) operating characteristic (ROC). As such, mutlidimensional input arrays are now supported when using automatic thresholds. See PR #963. - Fixed a situation where receiver (relative) operating characteristic (ROC) calculations could trigger a
NotImplementedErrorwithinDask.scores.probability.roc_curve_dataandscores.plotdata.rochave been updated so that iffcstorobsis an xarray object backed by a dask array, andcheck_argsisTrue, the min and max of the arrays will be calcuated immediately, which triggers computation. This can be avoided by settingcheck_args=False.See PR #987.
Documentation
- Added two new tutorials:
- Updated documentation to say there are now over 75 metrics, statistical techniques and data processing tools contained in
scores. See PR #1014. - Updated "Acknowledging or Citing
scores" to include citation details for both our Journal of Open Source Software paper and the Zenodo record for the version ofscoresbeing used. See PR #1003. - Updated the "Contributing Guide" to include additional information about running pre-commit checks. See PR #977 and PR #1010.
- Corrected a function name in an example in the
scores.stats.statistical_tests.diebold_marianodocstring. See PR #978. - Pinned version of
Sphinxto prior to version 8 (i.e.sphinx<8), due to a change in symlink handling. This will need to be resolved beforescorescan migrate to more recent versions ofSphinx. See commit f60ae0c.
Internal Changes
- Fixed
Numbawarnings in fast Continuous Ranked Probability Score (CRPS) implementation when NaNs are present in input data. See PR #957. - Set join explicity to "outer" to be compatible with upcoming changes in
Xarray. See PR #964. - Replaced implementations of
SciPy'slegacy functioninterpolate.interp1dwith a wrapper function. See PR #971. - Removed the use of
NetCDFdata on disk from tests. Data is now created on the fly. See PR #966. - Added
Ruff.Ruffis now included in pre-commit and replacesPylint,Black,Banditandisort. See PR #967, PR #972, PR #979 and PR #990. - Replaced
mypywithty. Addedtyto pre-commit for type checking. PR #984 and PR #993. - Updated CI/CD and pre-commit hooks to treat warnings as test failures. See commit a28042d.
- The directory name
tests/probabilty/was spelled incorrectly and has been renamed totests/probability/. See PR #1021.
Contributors to this Release
Felix Esperson* (@fesperson), Jurian Beunk* (@jurianbeunk), Xiaoxi Wu* (@wuxx66), Robert J. Taggart (@rob-taggart), John Sharples (@John-Sharples), Belinda Trotta (@btrotta-bom), Tennessee Leeuwenburg (@tennlee), Nicholas Loveday (@nicholasloveday), Stephanie Chong (@Steph-Chong), Durga Shrestha (@durgals), Mohammadreza Khanarmuei (@reza-armuei) and Nikeeth Ramanathan (@nikeethr).
* indicates that this release contains their first contribution to scores.