Recent Releases of Scores
Scores - 2.0.0
Release Notes (What's New)
Version 2.0.0 (December 7, 2024)
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.
Breaking Changes
- The function
scores.probability.tw_crps_for_ensemble
previously took an optional (mis-spelled) argumentchainging_func_kwargs
. The spelling has been corrected and the argument is nowchaining_func_kwargs
. See PR #780 and PR #772. - For those who develop on
scores
, you will need to update your installation of thescores
package withpip install -e .[all]
, to get updated versions ofblack
,pylint
andmypy
. See PR #768, PR #769 and PR #771.
Features
- Added three new metrics:
- Brier score for ensembles:
scores.probability.brier_score_for_ensemble
. See PR #735. - Negative predictive value:
scores.categorical.BasicContingencyManager.negative_predictive_value
. See PR #759. - Positive predictive value:
scores.categorical.BasicContingencyManager.positive_predictive_value
. See PR #761 and PR #756.
- Brier score for ensembles:
- Also added one new emerging metric and two supporting functions:
- A new method called
format_table
was added to the classBasicContingencyManager
to improve visualisation of 2x2 contingency tables. The tutorialBinary_Contingency_Scores
was updated to demonstrate the use of this function. See PR #775. - The functions
scores.processing.comparative_discretise
,scores.processing.binary_discretise
andscores.processing.binary_discretise_proportion
now accept either a string indicating the choice of operator to be used, or an operator from the Python core libraryoperator
module. Using one of the operators from the Python core module is recommended, as doing so is more reliable for a variety of reasons. Support for the use of a string may be removed in future. See PR #740 and PR #758.
Documentation
- Added "The Risk Matrix Score" tutorial. See PR #724 and PR #794.
- Updated the "Brier Score" tutorial to include a new section about the Brier score for ensembles. See PR #735.
- Updated the "Binary Categorical Scores and Binary Contingency Tables (Confusion Matrices)"
tutorial: - Updated the “Contributing Guide”:
- Added a new section: "Creating Your Own Fork of
scores
for the First Time". - Updated the section: "Workflow for Submitting Pull Requests".
- Added a new section: "Pull Request Etiquette".
See PR #787.
- Added a new section: "Creating Your Own Fork of
- Updated the README:
- Added
Scoringrules
to "Related Works". See PR #746, PR #766 and PR #789.
Internal Changes
- Removed scikit-learn as a dependency.
scores
has replaced the use of scikit-learn with a similar function from SciPy (which was an existingscores
dependency). This change was manually tested and found to be faster. See PR #774. - Version pinning of dependencies in release files (the wheel and sdist files used by PyPI and conda-forge) is now managed and set by the
hatch_build
script. This allows development versions to be free-floating, while being more specific about dependencies in releases. The previous process also aimed to do this, but was error-prone. A new entry calledpinned_dependencies
was added to pyproject.toml to specify the release dependencies. See PR #760.
Contributors to this Release
Arshia Sharma* (@arshiaar), A.J. Fisher* (@AJTheDataGuy), Liam Bluett* (@lbluett), Jinghan Fu* (@JinghanFu), Sam Bishop* (@techdragon), Robert J. Taggart (@rob-taggart), Tennessee Leeuwenburg (@tennlee), Stephanie Chong (@Steph-Chong) and Nicholas Loveday (@nicholasloveday).
* indicates that this release contains their first contribution to scores
.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 5 months ago

Scores - 1.3.0
Release Notes (What's New)
Version 1.3.0 (November 15, 2024)
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.
Introduced Support for Python 3.13 and Dropped Support for Python 3.9
- In line with other scientific Python packages,
scores
has dropped support for Python 3.9 in this release.
scores
has added support for Python 3.13. See PR #710.
Features
- Added four new metrics:
- Quantile Interval Score:
scores.continuous.quantile_interval_score
. See PR #704, PR #733 and PR #738. - Interval Score:
scores.continuous.interval_score
. See PR #704, PR #733 and PR #738. - Kling-Gupta Efficiency (KGE):
scores.continuous.kge
. See PR #679, PR #700 and PR #734. - Interval threshold weighted continuous ranked probability score (twCRPS) for ensembles:
scores.probability.interval_tw_crps_for_ensemble
. See PR #682 and PR #734.
- Quantile Interval Score:
- Added an optional
include_components
argument to several continuous ranked probability score (CRPS) functions for ensembles. If supplied, theinclude_components
argument will return the underforecast penalty, the overforecast penalty and the forecast spread term, in addition to the overall CRPS value. This applies to the following CRPS functions:- continuous ranked probability score (CRPS) for ensembles:
scores.probability.crps_for_ensemble
- threshold weighted continuous ranked probability score (twCRPS) for ensembles:
scores.probability.tw_crps_for_ensemble
- tail threshold weighted continuous ranked probability score (twCRPS) for ensembles:
scores.probability.tail_tw_crps_for_ensemble
- interval threshold weighted continuous ranked probability score (twCRPS) for ensembles:
scores.probability.interval_tw_crps_for_ensemble
)
See PR #708 and PR #734.
- continuous ranked probability score (CRPS) for ensembles:
Documentation
- Added "Kling–Gupta Efficiency (KGE)" tutorial. See PR #679, PR #700 and PR #734.
- Added "Quantile Interval Score and Interval Score" tutorial. See PR #704, PR #736 and PR #738.
- Added "Threshold Weighted Continuous Ranked Probability Score (twCRPS) for ensembles" tutorial. See PR #706 and PR #722.
- Updated the title in the "Binary Categorical Scores and Binary Contingency Tables (Confusion Matrices)" tutorial and the description for the corresponding thumbnail in the tutorial gallery. See PR #741 and PR #743.
- Updated the pull request template. See PR #719.
Internal Changes
- Sped up (improved the computational efficiency of) the continuous ranked probability score (CRPS) for ensembles. This also addresses memory issues when a large number of ensemble members are present. See PR #694.
Contributors to this Release
Mohammadreza Khanarmuei (@reza-armuei), Nicholas Loveday (@nicholasloveday), Durga Shrestha (@durgals), Tennessee Leeuwenburg (@tennlee), Stephanie Chong (@Steph-Chong) and Robert J. Taggart (@rob-taggart).
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 5 months ago

Scores - 1.2.0
Release Notes (What's New)
Version 1.2.0 (September 13, 2024)
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
- Added three new metrics:
- Percent bias (PBIAS):
scores.continuous.pbias
. See PR #639 and PR #655. - Threshold weighted continuous ranked probability score (twCRPS) for ensembles:
scores.probability.tw_crps_for_ensemble
. See PR #644. - Tail threshold weighted continuous ranked probability score (twCRPS) for ensembles:
scores.probability.tail_tw_crps_for_ensemble
. See PR #644.
- Percent bias (PBIAS):
- The FIxed Risk Multicategorical (FIRM) score (
scores.categorical.firm
) can now take a sequence of mulitdimensional arrays (xr.DataArray) of thresholds. This allows the FIRM score to be used with categorical thresholds that vary across the domain. See PR #661.
Documentation
- Added information about percent bias to the "Additive Bias and Multiplicative Bias" tutorial. See PR #639 and PR #656.
- Updated documentation to say there are now over 60 metrics, statistical techniques and data processing tools contained in
scores
. See PR #659. - In the "Contributing Guide", updated instructions for installing a conda-based virtual environment. See PR #654.
Internal Changes
- Modified automated tests to work with NumPy 2.1. Incorporated a union type of
array
andgeneric
in assert statements for Dask operations. See PR #643.
Contributors to this Release
Durga Shrestha* (@durgals), Maree Carroll (@mareecarroll), Nicholas Loveday (@nicholasloveday), Tennessee Leeuwenburg (@tennlee), Stephanie Chong (@Steph-Chong) and Robert J. Taggart (@rob-taggart).
* indicates that this release contains their first contribution to scores
.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 8 months ago

Scores - 1.1.0
Release Notes (What's New)
Version 1.1.0 (August 9, 2024)
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
scores
is now available on conda-forge.- Added five new metrics
- threshold weighted squared error:
scores.continuous.tw_squared_error
- threshold weighted absolute error:
scores.continuous.tw_absolute_error
- threshold weighted quantile score:
scores.continuous.tw_quantile_score
- threshold weighted expectile score:
scores.continuous.tw_expectile_score
- threshold weighted Huber loss:
scores.continuous.tw_huber_loss
.
See PR #609.
- threshold weighted squared error:
Documentation
- Added "Threshold Weighted Scores" tutorial. See PR #609.
- Removed nbviewer link from documentation. See PR #615.
Internal Changes
- Modified
numpy.trapezoid
call to work with either NumPy 1 or 2. See PR #610.
Contributors to this Release
Nicholas Loveday (@nicholasloveday), Tennessee Leeuwenburg (@tennlee), Stephanie Chong (@Steph-Chong) and Robert J. Taggart (@rob-taggart).
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 9 months ago

Scores - 1.0.0
Release Notes (What's New)
Version 1.0.0 (July 10, 2024)
We are happy to have reached the point of releasing “Version 1.0.0” of scores
. While we look forward to many version increments to come, version 1.0.0 represents a milestone. It signifies a stabilisation of the API, and marks a turning point from the initial construction period. We have also published a paper in the Journal of Open Source Software (see citation further below).
From this point forward, scores
will be following the Semantic Versioning Specification (SemVer) in its release management.
This is a good moment to acknowledge and thank the contributors that helped us reach this point. They are: Tennessee Leeuwenburg, Nicholas Loveday, Elizabeth E. Ebert, Harrison Cook, Mohammadreza Khanarmuei, Robert J. Taggart, Nikeeth Ramanathan, Maree Carroll, Stephanie Chong, Aidan Griffiths and John Sharples.
Please consider a citation of our paper if you use our code. The citation is:
Leeuwenburg, T., Loveday, N., Ebert, E. E., Cook, H., Khanarmuei, M., Taggart, R. J., Ramanathan, N., Carroll, M., Chong, S., Griffiths, A., & Sharples, J. (2024). scores: A Python package for verifying and evaluating models and predictions with xarray. Journal of Open Source Software, 9(99), 6889. https://doi.org/10.21105/joss.06889
BibTeX:
@article{Leeuwenburg_scores_A_Python_2024,
author = {Leeuwenburg, Tennessee and Loveday, Nicholas and Ebert, Elizabeth E. and Cook, Harrison and Khanarmuei, Mohammadreza and Taggart, Robert J. and Ramanathan, Nikeeth and Carroll, Maree and Chong, Stephanie and Griffiths, Aidan and Sharples, John},
doi = {10.21105/joss.06889},
journal = {Journal of Open Source Software},
month = jul,
number = {99},
pages = {6889},
title = {{scores: A Python package for verifying and evaluating models and predictions with xarray}},
url = {https://joss.theoj.org/papers/10.21105/joss.06889},
volume = {9},
year = {2024}
}
For the full details of all changes in this release, see the GitHub commit history.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 10 months ago

Scores - 0.9.3
Release Notes (What's New)
Version 0.9.3 (July 9, 2024)
For the full details of all changes in this release, see the GitHub commit history. Below are the changes we think users may wish to be aware of.
Breaking Changes
- Renamed and relocated function
scores.continuous.correlation
toscores.continuous.correlation.pearsonr
. See PR #583 by @nicholasloveday.
Documentation
- Added "Dimension Handling" tutorial, which describes reducing and preserving dimensions. See PR #589 by @nicholasloveday.
- Updated "Detailed Installation Guide" with information on installing kernels in a Jupyter environment. See PR #586 by @tennlee and PR #587 by @Steph-Chong.
Internal Changes
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 10 months ago

Scores - 0.9.2
What's Changed
- Add Badges to the README for CodeQL, code coverage, and binder link by @tennlee in https://github.com/nci/scores/pull/555
- Substantially update "Data Sources" page in documentation by @Steph-Chong in https://github.com/nci/scores/pull/544
- Add a Key Features page to docs by @Steph-Chong in https://github.com/nci/scores/pull/567
- Addition of consistent scoring rules by @nicholasloveday in https://github.com/nci/scores/pull/540
- Release 0.9.2 by @tennlee in https://github.com/nci/scores/pull/570
Full Changelog: https://github.com/nci/scores/compare/0.9.1...0.9.2
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 10 months ago

Scores - 0.9.1
What's Changed
- Citation file addition by @tennlee in https://github.com/nci/scores/pull/532
- Change function arguments 'forecast' and 'observed' to 'fcst' and 'obs' to improve consistency by @tennlee in https://github.com/nci/scores/pull/537
- 531 documentation uplift for contingency manager classes by @tennlee in https://github.com/nci/scores/pull/535
- Release 0.9.1 by @tennlee in https://github.com/nci/scores/pull/541
Full Changelog: https://github.com/nci/scores/compare/0.9.0...0.9.1
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores - 0.9.0
What's Changed
- Add mathjax for MSE and tidy up docstrings by @tennlee in https://github.com/nci/scores/pull/509
- Test the Heidke Skill Score and Gilbert Skill Score against a known complex example by @tennlee in https://github.com/nci/scores/pull/502
- Add mathjax for Pearson's Correlation Coefficient by @tennlee in https://github.com/nci/scores/pull/515
- 460 mathjax review request crps for ensemble by @tennlee in https://github.com/nci/scores/pull/504
- Remove testing and review notice by @tennlee in https://github.com/nci/scores/pull/521
- Relocate SEDI in included.md table by @Steph-Chong in https://github.com/nci/scores/pull/524
- Release 0.9.0 by @tennlee in https://github.com/nci/scores/pull/526
Full Changelog: https://github.com/nci/scores/compare/0.8.6...0.9.0
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores - 0.8.6
Largely a documentation release to improve consistency across versions
What's Changed
- Add mathjax for Heidke skill score (HSS) & Cohens Kappa by @nikeethr in https://github.com/nci/scores/pull/497
- Modify docstrings to place type hints into the description by @tennlee in https://github.com/nci/scores/pull/506
- Typehints not rendering correctly in api docstrings for
fss
by @nikeethr in https://github.com/nci/scores/pull/503 - Update latest links to stable links in README.md by @Steph-Chong in https://github.com/nci/scores/pull/510
- Updates API links in included.md to relative paths by @Steph-Chong in https://github.com/nci/scores/pull/514
- Update links to tutorials in included.md by @Steph-Chong in https://github.com/nci/scores/pull/516
Full Changelog: https://github.com/nci/scores/compare/0.8.5...0.8.6
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores - 0.8.5
What's Changed
- 424 add more binary contingency table metrics by @nicholasloveday in https://github.com/nci/scores/pull/479
- Bump tornado from 6.4 to 6.4.1 in /.binder by @dependabot in https://github.com/nci/scores/pull/485
- Fractions skill score by @nikeethr in https://github.com/nci/scores/pull/266
- Adds spatial category to README.md table by @Steph-Chong in https://github.com/nci/scores/pull/487
- Adds spatial and FSS to included.md by @Steph-Chong in https://github.com/nci/scores/pull/488
- mathjax for odds ratio by @nikeethr in https://github.com/nci/scores/pull/489
- mathjax for odds ratio skill score or yules q by @nikeethr in https://github.com/nci/scores/pull/493
- Minor release 0.8.5 by @tennlee in https://github.com/nci/scores/pull/498
Full Changelog: https://github.com/nci/scores/compare/0.8.4...0.8.5
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores - Release 0.8.4
What's Changed
- Adding reference to Gilbert Skill Score & Equitable Threat Score docstrings by @Steph-Chong in https://github.com/nci/scores/pull/420
- Update download links for data fetching by @tennlee in https://github.com/nci/scores/pull/434
- (one of five) Add mathjax and improved docstrings to several scores by @tennlee in https://github.com/nci/scores/pull/441
- Adds fraction correct (as alternative term to accuracy) to API and updates included.md table by @Steph-Chong in https://github.com/nci/scores/pull/437
- Renaming explanation to tutorial gallery by @Steph-Chong in https://github.com/nci/scores/pull/451
- Contributing Guide: adds (a) reference to providing feedback, (b) code of conduct section by @Steph-Chong in https://github.com/nci/scores* Minor release 0.8.4 by @tennlee in https://github.com/nci/scores/pull/452
Full Changelog: https://github.com/nci/scores/compare/0.8.3...0.8.4
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores -
Correction to Peirce Skill Score. Noted by maintainers during reveiw.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores - 0.8.2
Documentation updates
- Minor release 8 2 by @tennlee in https://github.com/nci/scores/pull/409
Full Changelog: https://github.com/nci/scores/compare/0.8.1...0.8.2
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 11 months ago

Scores - 0.8.1
What's Changed
- Adding GitHub button to top of readthedocs by @Steph-Chong in https://github.com/nci/scores/pull/372
- Related works page for docs by @Steph-Chong in https://github.com/nci/scores/pull/367
- Address various pylint concerns by @tennlee in https://github.com/nci/scores/pull/380
- Create new area for holding emerging scores by @tennlee in https://github.com/nci/scores/pull/382
- Various methods were not properly inheriting object defaults for the o… by @tennlee in https://github.com/nci/scores/pull/385
Full Changelog: https://github.com/nci/scores/compare/0.8...0.8.1
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 12 months ago

Scores - Version 0.8
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 12 months ago

Scores - Doc update to 0.7
Documentation update to version 0.7 following testing of final readthedocs page.
Updates to version identifiers in the code to match the git tag and release version
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 12 months ago

Scores - 0.7
What's Changed (Highlights)
- Added binary contingency tables and related scores by @tennlee
- scores.probability.functions onw public by @nicholasloveday in https://github.com/nci/scores/pull/226
- Add new table listing metrics, scores, etc in a single page by @Steph-Chong in https://github.com/nci/scores/pull/256
- Keyword-only arguments across codebase by @nikeethr in https://github.com/nci/scores/pull/194
New Contributors
- @nikeethr made their first contribution in https://github.com/nci/scores/pull/194
- @dependabot made their first contribution in https://github.com/nci/scores/pull/267
- @Steph-Chong made their first contribution, adding the table of scores and metrics
Full Changelog: https://github.com/nci/scores/compare/0.6...0.7
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee 12 months ago

Scores - Same as version v0.6 but without the v
It seems like it is more consistent to drop the 'v' from the version number in the tag.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee about 1 year ago

Scores -
Introduce the tutorial gallery and integration with binder
Fixing broken links from PyPI and ReadTheDocs
A fairly significant documentation tidyup
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee about 1 year ago

Scores - Release 0.5
Several new scores implemented
Expanded testing including dask testing
Created pandas API for simple scores
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee about 1 year ago

Scores - Release 0.4 - Initial usable alpha
This version of scores contains:
- Concrete implementation of a foundation set of scores
- 100% coverage unit testing
- Readthedocs website with all documentation
- Jupyter notebook tutorials for all scores
- PyPI installable
There are still required changes expected before this package is recommended for use beyond exploration of the scores.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee over 1 year ago

Scores - First functional PyPI build
Added MAE
Added MSE
Added CRPS
First version
Matching github documentation
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by tennlee almost 2 years ago
