# Climval: lightweight Python library for climate model validation

**URL:** <https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516>\
**Category:** Science\
**Created:** [February 21, 2026, 8:08am UTC](https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516 "2026-02-21T08:08:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Northflow](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pangeo.io/northflow/32/3638_2.png) [@Northflow](https://discourse.pangeo.io/u/Northflow)\
**Post date:** [February 21, 2026, 8:08am UTC](https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516/1 "2026-02-21T08:08:10Z")

</div>

Hey! We’re Northflow, an AI-native infrastructure company working across climate, space, and research domains. Sharing this here first because we’re looking for the most relevant feedback.

**climval** is a typed Python library for composable climate model validation: comparing CMIP6 and CORDEX outputs against reference datasets like ERA5 and ERA5-Land.

`pip install climval`

We built it because the friction point kept coming up: reproducible validation metrics inside a Python pipeline, without ESMValTool’s configuration overhead for straightforward tasks. Saw the gap, built the tool and open-sourced it under Apache 2.0.

Out of the box: RMSE, MAE, Mean Bias, NRMSE, Pearson r, Taylor Skill Score, percentile bias (P5/P95). Custom metrics via subclass. HTML/JSON/Markdown export. Full CI on Python 3.10–3.12.

GitHub: [GitHub - northflowlabs/climval: Composable climate model validation in Python: ERA5, CMIP6, CORDEX. pip install climval](http://github.com/northflowlabs/climval) PyPI: [Client Challenge](http://pypi.org/project/climval/0.1.0)

We’d appreciate and value feedback from people working with real CMIP6/ERA5 data, particularly on xarray integration, variable handling, and gaps in the metric set. This is v0.1.0 and actively in development. And we’ll be going through our projects to share more going forward.

---

<div class="post-metadata">

**Author:** ![Northflow](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pangeo.io/northflow/32/3638_2.png) [@Northflow](https://discourse.pangeo.io/u/Northflow)\
**Post date:** [February 26, 2026, 7:49am UTC](https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516/2 "2026-02-26T07:49:03Z")

</div>

_ **Quick update on climval development** _

\*We’ve added a CMIP6 multi-model intercomparison example: 5 models vs ERA5 over Europe, including a Taylor diagram, metric scorecard, and report export.  
Runs in Binder with zero setup required.

> **[Run in Binder](https://mybinder.org/v2/gh/northflowlabs/climval/HEAD?filepath=examples/cmip6_taylor_diagram.ipynb)**\*

_We also submitted a validation notebook to the EOPF Zarr Community Notebook Competition, using climval against Sentinel-3 SLSTR LST data, a good stress test against real cloud-native Zarr products._

_Still early (v0.1.0), we’d genuinely welcome feedback on the metric set and xarray integration, especially from folks working with real CMIP6/ERA5 data._

---

<div class="post-metadata">

**Author:** ![rabernat](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pangeo.io/rabernat/32/22_2.png) [@rabernat](https://discourse.pangeo.io/u/rabernat)\
**Post date:** [February 26, 2026, 3:51pm UTC](https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516/3 "2026-02-26T15:51:43Z")

</div>

Extremely cool project! Thanks for sharing!

---

<div class="post-metadata">

**Author:** ![Northflow](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pangeo.io/northflow/32/3638_2.png) [@Northflow](https://discourse.pangeo.io/u/Northflow)\
**Post date:** [February 26, 2026, 4:08pm UTC](https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516/4 "2026-02-26T16:08:38Z")

</div>

Thanks so much Ryan, means a lot coming from you. We’re actively developing it and would welcome any feedback as it matures. All the best, Tom @ Northflow

---

<div class="post-metadata">

**Author:** ![Northflow](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pangeo.io/northflow/32/3638_2.png) [@Northflow](https://discourse.pangeo.io/u/Northflow)\
**Post date:** [February 28, 2026, 3:48pm UTC](https://discourse.pangeo.io/t/climval-lightweight-python-library-for-climate-model-validation/5516/5 "2026-02-28T15:48:52Z")

</div>

_ **climval + Earthmover Arraylake \> new notebook in northflow-notebooks** _

We added a notebook demonstrating climval validation on climate data stored in an Arraylake repository:

- Load CMIP6 data from Arraylake via xarray

- Validate 3 models against ERA5 using BenchmarkSuite

- Tag validated dataset versions in Arraylake after passing validation gates

- Runs in Binder with synthetic fallback, no credentials required

Run in Binder: [https://mybinder.org/v2/gh/northflowlabs/northflow-notebooks/HEAD?filepath=notebooks/climval\_arraylake\_integration.ipynb](https://mybinder.org/v2/gh/northflowlabs/northflow-notebooks/HEAD?filepath=notebooks/climval_arraylake_integration.ipynb)

Arraylake handles storage, versioning, and governance, climval adds scientific validation on top. Together they cover the full pipeline from raw data to validated, citable results.
