# {octicon}`megaphone` Releases & Changelog

## Version 0.9

### Version 0.9.2

Release Date: May 11, 2026

**What's Changed**
* Bump nbconvert from 7.16.6 to 7.17.0 by @dependabot[bot] in [#672](https://github.com/casact/chainladder-python/pull/672)
* Adding dict support for renaming columns by @henrydingliu in [#671](https://github.com/casact/chainladder-python/pull/671)
* Drop python3.9 by @kennethshsu in [#675](https://github.com/casact/chainladder-python/pull/675)
* Bump pillow from 11.3.0 to 12.1.1 by @dependabot[bot] in [#673](https://github.com/casact/chainladder-python/pull/673)
* Various fix by @henrydingliu in [#676](https://github.com/casact/chainladder-python/pull/676)
* Build(deps): Bump tornado from 6.5.2 to 6.5.5 by @dependabot[bot] in [#677](https://github.com/casact/chainladder-python/pull/677)
* Build(deps): Bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in [#685](https://github.com/casact/chainladder-python/pull/685)
* Build(deps): Bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in [#688](https://github.com/casact/chainladder-python/pull/688)
* Build(deps): Bump pillow from 12.1.1 to 12.2.0 by @dependabot[bot] in [#697](https://github.com/casact/chainladder-python/pull/697)
* Build(deps): Bump pytest from 8.4.2 to 9.0.3 by @dependabot[bot] in [#698](https://github.com/casact/chainladder-python/pull/698)
* [#689](https://github.com/casact/chainladder-python/issues/689) by @kennethshsu in [#690](https://github.com/casact/chainladder-python/pull/690)
* Improve docstring for approximation_grain in ParallelogramOLF by @kennethshsu in [#687](https://github.com/casact/chainladder-python/pull/687)
* Addressed wheel vulnerability by @kennethshsu in [#699](https://github.com/casact/chainladder-python/pull/699)
* Build(deps): Bump nbconvert from 7.17.0 to 7.17.1 by @dependabot[bot] in [#703](https://github.com/casact/chainladder-python/pull/703)
* DOCS: Begin work on examples. by @genedan in [#700](https://github.com/casact/chainladder-python/pull/700)
* Build(deps): Bump lxml from 6.0.2 to 6.1.0 by @dependabot[bot] in [#705](https://github.com/casact/chainladder-python/pull/705)
* nan_triangle 1D logic overhaul by @danielfong-act in [#702](https://github.com/casact/chainladder-python/pull/702)
* Add links to object source code in API Reference section by @genedan in [#710](https://github.com/casact/chainladder-python/pull/710)
* [#707](https://github.com/casact/chainladder-python/issues/707) by @kennethshsu in [#711](https://github.com/casact/chainladder-python/pull/711)
* Pr template by @kennethshsu in [#712](https://github.com/casact/chainladder-python/pull/712)
* DOCS: Expand Triangle constructor examples (#704) by @EKtheSage in [#714](https://github.com/casact/chainladder-python/pull/714)
* FEAT: Initialize triangle from dict. by @genedan in [#706](https://github.com/casact/chainladder-python/pull/706)
* DOCS: Add examples to Triangle methods and properties (#704) by @EKtheSage in [#719](https://github.com/casact/chainladder-python/pull/719)
* DOCS: Add examples to deterministic IBNR methods (#704) by @EKtheSage in [#721](https://github.com/casact/chainladder-python/pull/721)
* Docs/issue 704 tailconstant examples by @priyam0k in [#722](https://github.com/casact/chainladder-python/pull/722)
* Add Friedland datasets to cl.load_sample() by @genedan in [#730](https://github.com/casact/chainladder-python/pull/730)
* CHORE: Update workflows to test docs examples. by @genedan in [#713](https://github.com/casact/chainladder-python/pull/713)
* Added an example and improved docstring for load_sample by @kennethshsu in [#715](https://github.com/casact/chainladder-python/pull/715)
* Missing testoutput by @kennethshsu in [#731](https://github.com/casact/chainladder-python/pull/731)
* Fix test indentation and add print statement by @kennethshsu in [#732](https://github.com/casact/chainladder-python/pull/732)
* Fixed doc site build fails by @kennethshsu in [#733](https://github.com/casact/chainladder-python/pull/733)
* ENH: Continue work on type hinting, add pyright to check type coverage. by @genedan in [#735](https://github.com/casact/chainladder-python/pull/735)
* Rtd branch fix by @henrydingliu in [#741](https://github.com/casact/chainladder-python/pull/741)
* fix(tests): use assert in test_n_periods so failures actually fail by @SaguaroDev in [#744](https://github.com/casact/chainladder-python/pull/744)
* Build(deps): Bump mistune from 3.1.4 to 3.2.1 by @dependabot[bot] in [#748](https://github.com/casact/chainladder-python/pull/748)
* Update pyproject.toml - Add numpy ([#738](https://github.com/casact/chainladder-python/issues/738)) by @wendy-w2029 in [#750](https://github.com/casact/chainladder-python/pull/750)
* Enhance docstrings and examples for improved clarity for many estimators by @kennethshsu in [#747](https://github.com/casact/chainladder-python/pull/747)
* Fix Adjustments API page linking to chainladder.workflow (#757) by @SaguaroDev in [#762](https://github.com/casact/chainladder-python/pull/762)
* Annotate matplotlib dependency as required for TriangleDisplay.heatmap() (#758) by @SaguaroDev in [#761](https://github.com/casact/chainladder-python/pull/761)
* REFACTOR: Reorganize type hierarchy of sparse.py. Move array-level fu… by @genedan in [#739](https://github.com/casact/chainladder-python/pull/739)
* Build(deps): Bump urllib3 from 2.6.3 to 2.7.0 by @dependabot[bot] in [#767](https://github.com/casact/chainladder-python/pull/767)

**New Contributors**
* @priyam0k made their first contribution in [#722](https://github.com/casact/chainladder-python/pull/722)
* @SaguaroDev made their first contribution in [#744](https://github.com/casact/chainladder-python/pull/744)
* @wendy-w2029 made their first contribution in [#750](https://github.com/casact/chainladder-python/pull/750)

**Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.9.1...v0.9.2

### Version 0.9.1

Release Date: Jan 30, 2026

**What's Changed**
* Release number fix and bump

### Version 0.9.0

Release Date: Jan 30, 2026

**What's Changed**
* Fix Issue 619 undelcared IPython dependency by @bayesflows in [#620](https://github.com/casact/chainladder-python/pull/620)
* Addresses #579 by @danielfong-act in [#624](https://github.com/casact/chainladder-python/pull/624)
* Adding BZ tests by @henrydingliu in [#625](https://github.com/casact/chainladder-python/pull/625)
* Update tails.ipynb by @henrydingliu in [#629](https://github.com/casact/chainladder-python/pull/629)
* Actually fixing #437 by @henrydingliu in [#631](https://github.com/casact/chainladder-python/pull/631)
* fixes grain error in learning.py by @danielfong-act in [#633](https://github.com/casact/chainladder-python/pull/633)
* removing feat_eng from developmentML by @henrydingliu in [#637](https://github.com/casact/chainladder-python/pull/637)
* Fix for #634 by @danielfong-act in [#638](https://github.com/casact/chainladder-python/pull/638)
* updating branch and adding another test by @henrydingliu in [#640](https://github.com/casact/chainladder-python/pull/640)
* Added the new WG info by @kennethshsu in [#641](https://github.com/casact/chainladder-python/pull/641)
* [Work in progress] BarnettZehnwirth formula helper (with some refactor) by @danielfong-act in [#642](https://github.com/casact/chainladder-python/pull/642)
* Enhancing BZ method to recreate BZ08 by @henrydingliu in [#643](https://github.com/casact/chainladder-python/pull/643)
* bump actions, simplify uv python setup by @hutch3232 in [#645](https://github.com/casact/chainladder-python/pull/645)
* Update CI Upstream workflow to remove branch triggers by @hutch3232 in [#646](https://github.com/casact/chainladder-python/pull/646)
* document 3.14 support, add to test matrix by @hutch3232 in [#649](https://github.com/casact/chainladder-python/pull/649)
* Update feature request template label for clarity by @hutch3232 in [#653](https://github.com/casact/chainladder-python/pull/653)
* Bump urllib3 from 2.5.0 to 2.6.3 by @dependabot[bot] in [#647](https://github.com/casact/chainladder-python/pull/647)
* Bump fonttools from 4.60.1 to 4.60.2 by @dependabot[bot] in [#648](https://github.com/casact/chainladder-python/pull/648)
* Grain test for learning.py by @danielfong-act in [#661](https://github.com/casact/chainladder-python/pull/661)
* FEAT: Add validation to TrianglePandas.rename. Also add tests to ensure cascading of rename to triangle.columns_label. by @genedan in [#659](https://github.com/casact/chainladder-python/pull/659)
* Update pyproject.toml by @henrydingliu in [#663](https://github.com/casact/chainladder-python/pull/663)
* Barnett Zehnwirth documentation and formulation rework by @danielfong-act in [#657](https://github.com/casact/chainladder-python/pull/657)
* Add nbmake to dependencies and update GitHub action to test notebooks. by @genedan in [#666](https://github.com/casact/chainladder-python/pull/666)
* Commit reconciliation request by @genedan in [#668](https://github.com/casact/chainladder-python/pull/668)
* Adding Fillzero by @henrydingliu in [#670](https://github.com/casact/chainladder-python/pull/670)

**New Contributors**
* @bayesflows made their first contribution in [#620](https://github.com/casact/chainladder-python/pull/620)
* @danielfong-act made their first contribution in [#624](https://github.com/casact/chainladder-python/pull/624)
* @hutch3232 made their first contribution in [#645](https://github.com/casact/chainladder-python/pull/645)
* @dependabot[bot] made their first contribution in [#647](https://github.com/casact/chainladder-python/pull/647)

**Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.8.26...v0.9.0

## Version 0.8

### Version 0.8.26

Release Date: Nov 5, 2025

**What's Changed**
* Add loss development patterns gallery example by @Hendrik240298 in [#602](https://github.com/casact/chainladder-python/pull/602)
* #532 by @kennethshsu in [#606](https://github.com/casact/chainladder-python/pull/606)
* Replaced deprecated lab_black with jupyter_black from issue #608 by @SRwcf in [#610](https://github.com/casact/chainladder-python/pull/610)
* fix for #609 by @henrydingliu in [#611](https://github.com/casact/chainladder-python/pull/611)
* Some words in the contribution guide by @kennethshsu in [#603](https://github.com/casact/chainladder-python/pull/603)
* Misc Clean Up by @henrydingliu in [#612](https://github.com/casact/chainladder-python/pull/612)
* adding a few tests by @henrydingliu in [#613](https://github.com/casact/chainladder-python/pull/613)
* Fix for #614 by @henrydingliu in [#616](https://github.com/casact/chainladder-python/pull/616)
* Addresses #617 by @jbogaardt in [#618](https://github.com/casact/chainladder-python/pull/618)

**New Contributors**
* [@Hendrik240298](https://github.com/Hendrik240298) made their first contribution in [#602](https://github.com/casact/chainladder-python/pull/602)

**Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.8.25...v0.8.26

### Version 0.8.25

Release Date: Sep 25, 2025

**What's Changed**
* Update pythonpublish.yml by @jbogaardt in [#550](https://github.com/casact/chainladder-python/pull/550)
* 553 by @cdietrich215 in [#555](https://github.com/casact/chainladder-python/pull/555)
* Adding annotations - triangle.py by @genedan in [#522](https://github.com/casact/chainladder-python/pull/522)
* Update pytest_upstream_nightly.yml by @jbogaardt in [#557](https://github.com/casact/chainladder-python/pull/557)
* Add annotations to triangle.py by @genedan in [#558](https://github.com/casact/chainladder-python/pull/558)
* #457 v2 by @kennethshsu in [#563](https://github.com/casact/chainladder-python/pull/563)
* Dangling commits? by @genedan in [#564](https://github.com/casact/chainladder-python/pull/564)
* fix-typo-in-notebooks by @EKtheSage in [#568](https://github.com/casact/chainladder-python/pull/568)
* Add annotations, minor validation. by @genedan in [#572](https://github.com/casact/chainladder-python/pull/572)
* Add support for Weibull curve in tail fitting methods by @andrewwilson201 in [#577](https://github.com/casact/chainladder-python/pull/577)
* Annotate TriangleDisplay.py by @genedan in [#576](https://github.com/casact/chainladder-python/pull/576)
* Sandbox tutorial by @kennethshsu in [#581](https://github.com/casact/chainladder-python/pull/581)
* Issues template by @kennethshsu in [#586](https://github.com/casact/chainladder-python/pull/586)
* Readme update by @kennethshsu in [#589](https://github.com/casact/chainladder-python/pull/589)
* Resolved merge conflict by @kennethshsu in [#590](https://github.com/casact/chainladder-python/pull/590)
* Adding a native read_csv function to Chainladder-python by @JoJo10Smith in [#587](https://github.com/casact/chainladder-python/pull/587)
* Fix package publishing warnings by @genedan in [#592](https://github.com/casact/chainladder-python/pull/592)
* 583 by @kennethshsu in [#593](https://github.com/casact/chainladder-python/pull/593)
* setup refactor by @jbogaardt in [#595](https://github.com/casact/chainladder-python/pull/595)
* Fix KeyError for semi-annual origins by @andrewwilson201 in [#597](https://github.com/casact/chainladder-python/pull/597)
* New contribution guideline by @kennethshsu in [#600](https://github.com/casact/chainladder-python/pull/600)
* FIX: Fix errors in friedland_uspp_auto_increasing_claim.csv. by @genedan in [#594](https://github.com/casact/chainladder-python/pull/594)

**New Contributors**
* @EKtheSage made their first contribution in [#568](https://github.com/casact/chainladder-python/pull/568)
* @andrewwilson201 made their first contribution in [#577](https://github.com/casact/chainladder-python/pull/577)
* @JoJo10Smith made their first contribution in [#587](https://github.com/casact/chainladder-python/pull/587)

**Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.8.24...v0.8.25

### Version 0.8.24

Release Date: Feb 13, 2025

**What's Changed**
* Compatibility fixes for numpy>2.0 and pandas>2.0. Pandas>=2.0 is a strict requirement.
* Fix for [#537](https://github.com/casact/chainladder-python/issues/537) by @cdietrich215 in [#546](https://github.com/casact/chainladder-python/issues/546)

**New Contributors**
* [@cdietrich215](https://github.com/cdietrich215) made their first contribution in [#546](https://github.com/casact/chainladder-python/issues/546)

### Version 0.8.23

Release Date: May 24, 2024

**Bug Fixes**
* [#524](https://github.com/casact/chainladder-python/issues/524) ParallelogramOlf fix
* [#525](https://github.com/casact/chainladder-python/issues/525) Unplanned Trend deprecations

### Version 0.8.22

Release Date: May 24, 2024

**What's Changed**
* Bump release number

### Version 0.8.21

Release Date: May 24, 2024

**What's Changed**
* Fix for compatibility between chainladder==0.8.20 and pandas<2.2.0

### Version 0.8.20

Release Date: Apr 10, 2024

**What's Changed**
* Fix for [\#509](https://github.com/casact/chainladder-python/issues/509) (triangle / core initialization and packaging metadata).

### Version 0.8.19

Release Date: Apr 8, 2024

**What's Changed**
* Documentation improvements by @kennethshsu in [#464](https://github.com/casact/chainladder-python/issues/464), [#466](https://github.com/casact/chainladder-python/issues/466), [#469](https://github.com/casact/chainladder-python/issues/469), [#470](https://github.com/casact/chainladder-python/issues/470), [#472](https://github.com/casact/chainladder-python/issues/472)
* Support for Polars and other dataframes by @johalnes in [#482](https://github.com/casact/chainladder-python/issues/482)
* Various documentation and test fixes by @MatthewCaseres in [#484](https://github.com/casact/chainladder-python/issues/484), [#485](https://github.com/casact/chainladder-python/issues/485), [#488](https://github.com/casact/chainladder-python/issues/488), [#492](https://github.com/casact/chainladder-python/issues/492), [#489](https://github.com/casact/chainladder-python/issues/489), [#493](https://github.com/casact/chainladder-python/issues/493)
* Addressed [#420](https://github.com/casact/chainladder-python/issues/420) and [#491](https://github.com/casact/chainladder-python/issues/491) by @kennethshsu in [#507](https://github.com/casact/chainladder-python/issues/507)

**Contributors**
* [@kennethshsu](https://github.com/kennethshsu)
* [@johalnes](https://github.com/johalnes)
* [@MatthewCaseres](https://github.com/MatthewCaseres)

### Version 0.8.18

Release Date: Sep 18, 2023

**Bug Fixes**
* [#456](https://github.com/casact/chainladder-python/issues/456) Fix trailing argument in grain method
* [#463](https://github.com/casact/chainladder-python/issues/463) Fix bug in sigma_ weight of Development estimator. Previous algorithm did not honor link ratio exclusions.
* [#446](https://github.com/casact/chainladder-python/issues/446) Addressed scipy solver changes

### Version 0.8.17

Release Date: Jun 17, 2023

**What's Changed**
* Relax the `pandas<2.0` upper bound in CI/deps metadata.
* Update `environment-latest.yaml` and `pytest_upstream_nightly.yml` ([#442](https://github.com/casact/chainladder-python/pull/442)).
* Adjust pytest-related dependency pins.

### Version 0.8.16

Release Date: Jun 17, 2023

**What's Changed**
* fix for [\#409](https://github.com/casact/chainladder-python/issues/409)  
* fix for [\#411](https://github.com/casact/chainladder-python/issues/411) 
* fix for [\#438](https://github.com/casact/chainladder-python/issues/438) 

**New Contributors**
* [@MatthewCaseres](https://github.com/MatthewCaseres) made their first contribution.
* [@andrejakobsen](https://github.com/andrejakobsen) made their first contribution.





### Version 0.8.15

Release Date: Apr 11, 2023

**What's Changed**
- revamping drop functions by @henrydingliu in [\#385](https://github.com/casact/chainladder-python/issues/385)
- Fixing link_ratio by @henrydingliu in [\#387](https://github.com/casact/chainladder-python/issues/387)
- adding some tests for the revamped drop function by @henrydingliu in [\#388](https://github.com/casact/chainladder-python/issues/388)
- Adding test wth CL and BF by @henrydingliu in [\#391](https://github.com/casact/chainladder-python/issues/391)
- Henrydingliu enhancement 1 2022 11 29 by @henrydingliu in [\#392](https://github.com/casact/chainladder-python/issues/392)
- w_v2_ and pipeline in Development by @henrydingliu in [\#394](https://github.com/casact/chainladder-python/issues/394)
- next step for #376 by @henrydingliu in [\#397](https://github.com/casact/chainladder-python/issues/397)
- consolidating weighted regression factor fit by @henrydingliu in [\#398](https://github.com/casact/chainladder-python/issues/398)
- cum_zeta_ by @henrydingliu in [\#401](https://github.com/casact/chainladder-python/issues/401)
- Expanded mappings to include semester sampling by @A108669 in [\#403](https://github.com/casact/chainladder-python/issues/403)
- fix one more ref to semiannual by @wleescor in [\#410](https://github.com/casact/chainladder-python/issues/410)
- TailCurve argument validation by @genedan in [\#414](https://github.com/casact/chainladder-python/issues/414)
- chore(version): specify version of numba by @pafechet in [\#418](https://github.com/casact/chainladder-python/issues/418)
- Add Friedland Sample - Auto BI Insurer (Expected Loss Method) by @genedan in [\#419](https://github.com/casact/chainladder-python/issues/419)
- Cas webinar by @kennethshsu in [\#424](https://github.com/casact/chainladder-python/issues/424)
- [BUG] Argument validation needed for TailCurve [\#413](https://github.com/casact/chainladder-python/issues/413)
- [BUG] origin_as_datetime does nothing [\#407](https://github.com/casact/chainladder-python/issues/407)
- [BUG] CapeCod predict at different index grain [\#400](https://github.com/casact/chainladder-python/issues/400)
- [BUG] Chainladder doesn't coerce valuation triangle correctly [\#399](https://github.com/casact/chainladder-python/issues/399)

**New Contributors**
[@A108669](https://github.com/A108669) made their first contribution in [\#403](https://github.com/casact/chainladder-python/issues/403)
[@pafechet](https://github.com/pafechet) made their first contribution in [\#418](https://github.com/casact/chainladder-python/issues/418)

### Version 0.8.14

Release Date: Nov 25, 2022

**What's Changed**
* Major documentation refresh for Jupyter Book and CAS Annual Meeting materials: user guide and gallery restructure, new exercises and demos, usage/Colab notes, and bibliography updates (including [#311](https://github.com/casact/chainladder-python/pull/311) and related annual-meeting prep PRs [#335](https://github.com/casact/chainladder-python/pull/335)–[#361](https://github.com/casact/chainladder-python/pull/361)).
* Additional Friedland and other sample datasets for `load_sample` ([#347](https://github.com/casact/chainladder-python/pull/347), [#353](https://github.com/casact/chainladder-python/pull/353), [#355](https://github.com/casact/chainladder-python/pull/355), [#357](https://github.com/casact/chainladder-python/pull/357), [#358](https://github.com/casact/chainladder-python/pull/358), [#359](https://github.com/casact/chainladder-python/pull/359), [#362](https://github.com/casact/chainladder-python/pull/362), [#363](https://github.com/casact/chainladder-python/pull/363)).
* `Development` transformer: `std_residuals_` ([#352](https://github.com/casact/chainladder-python/pull/352)).
* Four-dimensional triangles: extend `drop_high` / `drop_low` (including `drop_above` / `drop_below`) ([#375](https://github.com/casact/chainladder-python/pull/375), [#381](https://github.com/casact/chainladder-python/pull/381)).
* Semi-annual key for tail handling ([#384](https://github.com/casact/chainladder-python/pull/384)).
* Triangle `to_frame()` updates and reduced reliance on `origin_as_datetime` inside `to_frame()` ([#360](https://github.com/casact/chainladder-python/pull/360)).
* Bug fixes and hardening for `Development` and triangles ([#373](https://github.com/casact/chainladder-python/pull/373), [#371](https://github.com/casact/chainladder-python/pull/371), [#368](https://github.com/casact/chainladder-python/pull/368), [#366](https://github.com/casact/chainladder-python/pull/366)); follow-ups by @henrydingliu ([#370](https://github.com/casact/chainladder-python/pull/370)).
* `DevelopmentCorrelation` / valuation correlation: annotations, intermediate diagnostics, and `p_critical` validation ([#342](https://github.com/casact/chainladder-python/pull/342)).
* README, GitHub issue templates, and docs environment updates; reduce `to_datetime` deprecation noise.

**Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.8.13...v0.8.14

### Version 0.8.13

Release Date: Jun 27, 2022

**Bug Fixes**

- [\#270](https://github.com/casact/chainladder-python/issues/270) Fixed an issue affecting triangle instantiation
- [\#251](https://github.com/casact/chainladder-python/issues/251) Fixed a bug in `predict` method that failed to honor development ages appropriatly
- [\#274](https://github.com/casact/chainladder-python/issues/274) Addressed a pandas deprecation notice in the `heatmap` method.
- [\#258](https://github.com/casact/chainladder-python/issues/258) Addressed silent error when predicting on a Triangle that is larger than the underlying model.
- [\#288](https://github.com/casact/chainladder-python/issues/288) Addressed Bug in `to_frame` method
- [\#283](https://github.com/casact/chainladder-python/issues/283) Addressed Bug in the calculation of LDFs in `CaseOutstanding`

**Enhancements**

- [\#293](https://github.com/casact/chainladder-python/issues/293) Expanded functionality `drop_high` and `drop_low` arguments of `Development` estimator.
- [\#298, #299, #304, #305, #308](https://github.com/casact/chainladder-python/issues/298) Documentation clean-up.

### Version 0.8.12

Release Date: Mar 8, 2022

*Note:* There was no `0.8.11` stable release on PyPI; only pre-release tags `v0.8.11-alpha` and `v0.8.11-beta` were published.

**Bug Fixes**

- [\#254](https://github.com/casact/chainladder-python/issues/254) Fixed an undesired mutation when using cl.concat
- [\#257](https://github.com/casact/chainladder-python/issues/257) to_frame bug fix on empty triangles
- [\#248](https://github.com/casact/chainladder-python/issues/248) to_frame bug and deprecation notice in origin_as_datetime argument.
- [\#250](https://github.com/casact/chainladder-python/issues/250) Bug fix in triangle initialization
- [\#258](https://github.com/casact/chainladder-python/issues/258) Addressed silent error when predicting on a Triangle that is larger than the underlying model.
- [\#261](https://github.com/casact/chainladder-python/issues/261) Addressed a pandas>1.4.0 bug

**Enhancements**

- Introduced ExpectedLoss method
- [\#242](https://github.com/casact/chainladder-python/issues/242) Added threshold based dropping of link ratios to Development estimator
- [\#158](https://github.com/casact/chainladder-python/issues/158) Triangles can now be instantiated with only one data point.
- [\#250](https://github.com/casact/chainladder-python/issues/250) python 3.10 support
- [\#260](https://github.com/casact/chainladder-python/issues/260) fillna method added to Triangle class that supports filling with constants or other Triangles.

### Version 0.8.10

Release Date: Dec 4, 2021

**Enhancements**

- [\#225](https://github.com/casact/chainladder-python/issues/225) - Added support for mid-year triangles
- Remove `xlcompose` as a dependency
- [\#233](https://github.com/casact/chainladder-python/issues/233) and [\#219](https://github.com/casact/chainladder-python/issues/219) - Added more explicit warning when `is_cumulative` property of triangle is not set.
- [\#192](https://github.com/casact/chainladder-python/issues/192) Expanded `drop_high` and `drop_low` functionality to include integers and variable length lists. PR courtesy of @kennethshsu.

**Bug Fixes**

- [\#234](https://github.com/casact/chainladder-python/issues/234) Coerce `MackChainladder` to zero variance when `inbr_` and `cdf_` are 0.
- Fix bug in `BarnettZehnwirth.transform` that was previously not applying the log-transform correctly

### Version 0.8.9

Release Date: Oct 24, 2021

**Enhancements**

- [\#198](https://github.com/casact/chainladder-python/issues/198) Added `projection_period` to all Tail estimators. This allows for analyzing run-off beyond a one year time horizon.
- [\#214](https://github.com/casact/chainladder-python/issues/214) A refreshed docs theme using jupyter-book!
- [\#200](https://github.com/casact/chainladder-python/issues/200) Added more flexibility to `TailCurve.fit_period` to allow boolean lists - similar to `Development.drop_high`
- [kennethshsu](https://github.com/kennethshsu) further improved tutorials

**Bug Fixes**

- [\#210](https://github.com/casact/chainladder-python/issues/210) Fixed regression in triangle instantiation where `grain=='S'` is being interpreted as seconds and not semesters.
- [\#213](https://github.com/casact/chainladder-python/issues/213) Fixed an unintended Triangle mutation when reassigning columns on a sparse backend.
- [\#221](https://github.com/casact/chainladder-python/issues/221) Fixed `origin`/`development` broadcasting issue that was causing silent bugs in calculations on malformed triangles.

### Version 0.8.8

Release Date: Sep 13, 2021

**Enhancements**

- [\#140](https://github.com/casact/chainladder-python/issues/140) Improved test coverage
- [\#126](https://github.com/casact/chainladder-python/issues/126) Relaxed `BootstrapODPSample` column restriction
- [\#207](https://github.com/casact/chainladder-python/issues/207) Improved tutorials

**Bug Fixes**

- [\#204](https://github.com/casact/chainladder-python/issues/204) Fixed regression in `grain`
- [\#203](https://github.com/casact/chainladder-python/issues/203) Fixed regression in `slice`
- Fixed regression in `Benktander` index broadcasting
- [\#205](https://github.com/casact/chainladder-python/issues/205) Fixed CI/CD build

### Version 0.8.7

Release Date: Aug 29, 2021

Minor release to fix some `chainladder==0.8.6` regressions.

**Bug Fixes**

- Fixed [\#190](https://github.com/casact/chainladder-python/issues/190) - 0 values getting into `heatmap`
- Fixed [\#191](https://github.com/casact/chainladder-python/issues/191) regression that didn't support earlier versions of pandas
- Fixed [\#197](https://github.com/casact/chainladder-python/issues/197) Index broadcasting edge case
- Fixed `valuation_date` regression when instantiating Triangles as vectors

**Enhancements**

- [\#99 ](https://github.com/casact/chainladder-python/issues/99)Added Semester as an additional grain
- Added parallel support to `GridSearch` using `n_jobs` argument
- More tutorial improvements from [kennethshsu](https://github.com/kennethshsu)

### Version 0.8.6

Release Date: Aug 18, 2021

**Ehancements**

- [kennethshsu](https://github.com/kennethshsu) improved heatmap shading
- Support for numpy reductions, e.g. `np.sum(cl.load_sample('raa'))`
- [kennethshsu](https://github.com/kennethshsu) further improved tutorials

**Bug fixes**

- [\#186](https://github.com/casact/chainladder-python/issues/186) Fix bug that disallowed instantiating a full triangles
- [\#180](https://github.com/casact/chainladder-python/issues/180) Fix bug that mutated original DataFrame when instantiating Triangle
- [\#182](https://github.com/casact/chainladder-python/issues/182) Eliminate new deprecations warnings from pandas>=1.3
- [\#183](https://github.com/casact/chainladder-python/issues/183) Better alignment with pandas on index broadcasting
- [\#179](https://github.com/casact/chainladder-python/issues/179) Fixed nan behavior on `val_to_dev`
- implement `TriangleGroupby.__getitem__` to support column selection on groupby operations to align with pandas, e.g. `cl.load_sample('clrd').groupby('LOB')['CumPaidLoss']`

### Version 0.8.5

Release Date: Jul 11, 2021

**Enhancements**

- [\#154](https://github.com/casact/chainladder-python/issues/154) -
  Added groupby hyperparameter to several more estimators including
  the widely used Development estimator. This allows fitting
  development patterns at a higher grain than the Triangle all within
  the estiamtor or Pipeline.
- Improved index broadcasting for sparse arrays. Prior to 0.8.5, this
  code would inappropriately consume too much memory. For example:

> \>\>\> prism = cl.load_sample('prism') \>\>\> prism /
> prism.groupby('Line').sum()

- Arithmetic label matching improved for all axes to align more with
  pandas
- Added `model_diagnostics` utility function to be used on fitted
  estimators.
- Initial support for `dask` arrays. Current support is basic, but
  will eventually allow for distributed computations on massive
  triangles.
- added numpy array protocol support to the Triangle class. Now numpy
  functions can be called on Triangles. For example:

  \>\>\> np.sin(cl.load_sample('raa'))

- [\#169](https://github.com/casact/chainladder-python/issues/169) -
  Made Triangle tutorial more beginner friendly - courtesy of
  [kennethshsu](https://github.com/kennethshsu)

**Bug Fixes**

- Better Estimator pickling support when callables are included in
  estimators.
- Minor bug fix in grain estimator.

### Version 0.8.4

Release Date: May 9, 2021

**Enhancements**

- [\#153](https://github.com/casact/chainladder-python/issues/153) -
  Introduced CapeCod `groupby` parameter that allows for apriori
  computation at user-specified grain for granular triangles
- [\#154](https://github.com/casact/chainladder-python/issues/154) -
  Introduced `groupby` support in key development estimators

**Bug Fixes**

- [\#152](https://github.com/casact/chainladder-python/issues/152) -
  CapeCod apriori is not supporting nans effectively
- [\#157](https://github.com/casact/chainladder-python/issues/157) -
  `cum_to_incr()` not working as expected on `full_triangle_`
- [\#155](https://github.com/casact/chainladder-python/issues/155) -
  `full_triangle_` cdf broadcasting bug
- [\#156](https://github.com/casact/chainladder-python/issues/156) -
  Unable to inspect `sigma_` or `std_err_` properties after tail fit

### Version 0.8.3

Release Date: Apr 25, 2021

**Enhancements**

- [\#135](https://github.com/casact/chainladder-python/issues/135) -
  Added `.at` and `.iat` slicing and value assignment

**Bug Fixes**

- [\#144](https://github.com/casact/chainladder-python/issues/144) -
  Eliminated error when trying to assign a column from a different
  array backend.
- [\#134](https://github.com/casact/chainladder-python/issues/134) -
  Clearer error handling when attempting to instantiate a triangle
  with ages instead of date-likes
- [\#143](https://github.com/casact/chainladder-python/issues/143) -
  Reworked `full_triangle_` run-off for expected loss methods.

### Version 0.8.2

Release Date: Mar 27, 2021

**Enhancements**

- [\#131](https://github.com/casact/chainladder-python/issues/131) -
  Added a BarnettZenwirth development estimator
- [\#117](https://github.com/casact/chainladder-python/issues/117) -
  VotingChainladder enhancements to allow for more flexibility in
  defining weights (courtesy of @cbalona)

**Bug Fixes**

- [\#130](https://github.com/casact/chainladder-python/issues/130) -
  Fixed bug in triangle aggregation
- [\#134](https://github.com/casact/chainladder-python/issues/134) -
  Fixed a bug in triangle broadcasting
- [\#137](https://github.com/casact/chainladder-python/issues/137) -
  Fixed `valuation_date` bug occuring when partial year Triangle is
  instantiated as a vector.
- [\#138](https://github.com/casact/chainladder-python/issues/138) -
  Introduced fix for incompatibility with `sparse>=0.12.0`
- [\#122](https://github.com/casact/chainladder-python/issues/122) -
  Implemented nightly continuous integration to identify new bugs
  associated with verion bumps of dependencies.

### Version 0.8.1

Release Date: Feb 28, 2021

**Enhancements**

- Included a `truncation_age` in the `TailClark` estimator to
  replicate examples from the paper
- [\#129](https://github.com/casact/chainladder-python/issues/129)
  Included new development estimators `TweedieGLM` and `DevelopmentML`
  to take advantage of a broader set of (sklearn-compliant) regression
  frameworks.
- Included a helper Transformer `PatsyFormula` to make working with ML
  algorithms easier.

**Bug Fixes**

- [\#128](https://github.com/casact/chainladder-python/issues/128)
  Made `IncrementalAdditive` method comply with the rest of the
  package API

### Version 0.8.0

Release Date: Feb 15, 2021.

**Enhancements**

- [\#112](https://github.com/casact/chainladder-python/issues/112)
  Advanced `groupby` support.
- [\#113](https://github.com/casact/chainladder-python/issues/113)
  Added `reg_threshold` argument to `TailCurve` for finer control of
  fit. Huge thanks to [Brian-13](https://github.com/Brian-13) for the
  contribution.
- [\#115](https://github.com/casact/chainladder-python/issues/115)
  Introducing `VotingChainladder` workflow estimator to allow for
  averaging multiple IBNR estimators Huge thanks to
  [cbalona](https://github.com/cbalona) for the contribution.
- Introduced `CaseOutstanding` development estimator
- [\#124](https://github.com/casact/chainladder-python/issues/124)
  Standardized `CapCod` functionality to that of `Benktander` and
  `BornhuetterFerguson`

**Bug Fixes**

- [\#83](https://github.com/casact/chainladder-python/issues/83) Fixed
  `grain` issues when using the `trailing` argument
- [\#119](https://github.com/casact/chainladder-python/issues/119)
  Fixed pickle compatibility issue introduced in `v0.7.12`
- [\#120](https://github.com/casact/chainladder-python/issues/120)
  Fixed `Trend` estimator API
- [\#121](https://github.com/casact/chainladder-python/issues/121)
  Fixed numpy==1.20.1 compatibility issue
- [\#123](https://github.com/casact/chainladder-python/issues/123)
  Fixed `BerquistSherman` estimator
- [\#125](https://github.com/casact/chainladder-python/issues/125)
  Fixed various issues with compatibility of estimators in a
  `Pipeline`

**Deprecations**

- [\#118](https://github.com/casact/chainladder-python/issues/118)
  Deprecation warnings on `xlcompose`. Will be removed as a
  depdendency in v0.9.0

## Version 0.7

### Version 0.7.12

Release Date: Jan 19, 2021

No code changes from `0.7.11`. Bump release to fix conda packaging.

### Version 0.7.11

Release Date: Jan 18, 2021

**Enhancements**

- [\#110](https://github.com/casact/chainladder-python/issues/110)
  Added `virtual_column` functionality

**Bug Fixes**

- Minor bug fix on `sort_index` not accepting kwargs
- Minor bug fix in `DevelopmentConstant` when using a callable

**Misc**

- Bringing release up to parity with docs.

### Version 0.7.10

Release Date: Jan 16, 2021

**Bug Fixes**

- [\#108](https://github.com/casact/chainladder-python/issues/108)
  - `sample_weight` error handling on predict - thank you
    [cbalona](https://github.com/cbalona)
- [\#107](https://github.com/casact/chainladder-python/issues/107)
  - Latest diagonal of empty triangle now resolves
- [\#106](https://github.com/casact/chainladder-python/issues/106)
  - Improved `loc` consistency with pandas
- [\#105](https://github.com/casact/chainladder-python/issues/105)
  - Addressed broadcasting error during triangle arithmetic
- [\#103](https://github.com/casact/chainladder-python/issues/103)
  - Fixed Index alignment with triangle arithmetic consistent with
    `pd.Series`

### Version 0.7.9

Release Date: Nov 5, 2020

**Bug Fixes**

- [\#101](https://github.com/casact/chainladder-python/issues/101) Bug
  where LDF labels were not aligned with underlying LDF array

**Enhancements**

- [\#66](https://github.com/casact/chainladder-python/issues/66) Allow
  for onleveling with new `ParallelogramOLF` transformer
- [\#98](https://github.com/casact/chainladder-python/issues/98) Allow
  for more complex trends in estimators with `Trend` transformer Refer
  to this
  [example](https://chainladder-python.readthedocs.io/stable/gallery/plot_capecod_onlevel.html)
  on how to apply the new estimators.

### Version 0.7.8

Release Date: Oct 22, 2020

**Bug Fixes**

- Resolved
  [\#87](https://github.com/casact/chainladder-python/issues/87)
  val_to_dev with malformed triangle

**Enhancements**

- Major overhaul of Triangle internals for better code clarity and
  more efficiency
- Made sparse operations more efficient for larger triangles
- `to_frame` now works on Triangles that are 3D or 4D. For example
  `clrd.to_frame()`
- Advanced `groupby` operations supported. For (trivial) example:

> \>\>\> clrd = cl.load_sample('clrd') \>\>\> \# Split companies with
> names less than 15 characters vs those above: \>\>\>
> clrd.groupby(clrd.index['GRNAME'].str.len()\<15).sum()

### Version 0.7.7

Release Date: Sep 13, 2020

**Enhancements**

- [\#97](https://github.com/casact/chainladder-python/issues/97), loc
  and iloc now support Ellipsis
- `Development` can now take a float value for averaging. When float
  value is used, it corresponds to weight exponent (delta in
  Barnett/Zenwirth). Only special cases had previously existed -`{"regression": 0.0, "volume": 1.0, "simple": 2.0}`
- Major improvements in slicing performance.

**Bug Fixes**

- [\#96](https://github.com/casact/chainladder-python/issues/96), Fix
  for TailBase transform
- [\#94](https://github.com/casact/chainladder-python/issues/94),
  `n_periods` with asymmetric triangles fixed

### Version 0.7.6

Release Date: Aug 26, 2020

**Enhancements**

- Four Dimensional slicing is now supported.

> \>\>\> clrd = cl.load_sample('clrd') \>\>\> clrd.iloc[[0,10, 3], 1:8,
> :5, :] \>\>\> clrd.loc[:'Aegis Grp', 'CumPaidLoss':, '1990':'1994',
> > :48]

- [\#92](https://github.com/casact/chainladder-python/issues/92)
  to_frame() now takes optional `origin_as_datetime` argument for
  better compatibility with various plotting libraries (Thank you
  [johalnes](https://github.com/johalnes) )

  \>\>\> tri.to_frame(origin_as_datetime=True)

**Bug Fixes**

- Patches to the interaction between `sparse` and `numpy` arrays to
  accomodate more scenarios.
- Patches to multi-index broadcasting
- Improved performance of `latest_diagonal` for sparse backends
- [\#91](https://github.com/casact/chainladder-python/issues/91) Bug
  fix to `MackChainladder` which errored on asymmetric triangles
  (Thank you [johalnes](https://github.com/johalnes) for reporting)

### Version 0.7.5

Release Date: Aug 15, 2020

**Enhancements**

- Enabled multi-index broadcasting.

> \>\>\> clrd = cl.load_sample('clrd') \>\>\> clrd /
> clrd.groupby('LOB').sum() \# LOB alignment works now instead of
> throwing error

- Added sparse representation of triangles which substantially increases
  the size limit of in-memory triangles. Check out the new [Large
  Datasets](https://chainladder-python.readthedocs.io/stable/getting_started/tutorials/data-tutorial.html)
  tutorial for details

**Bug Fixes**

- Fixed cupy backend which had previously been neglected
- Fixed xlcompose issue where Period fails when included as column
  header

### Version 0.7.4

Release Date: Jul 26, 2020

**Bug Fixes**

- Fixed a bug where Triangle did not support full accident dates at
  creation
- Fixed an inappropriate index mutation in Triangle index

**Enhancements**

- Added `head` and `tail` methods to Triangle
- Prepped Triangle class to support sparse backend
- Added prism sample dataset for sparse demonstrations and unit tests

### Version 0.7.3

Release Date: Jul 11, 2020

**Enhancements**

- Improved performance of `valuation` axis
- Improved performance of `groupby`
- Added `sort_index` method to `Triangle` consistent with pandas
- Allow for `fit_predict` to be called on a `Pipeline` estimator

**Bug Fixes**

- Fixed issue with Bootstrap process variance where it was being
  applied more than once
- Fixed but where Triangle.index did not ingest numeric columns
  appropriately.

### Version 0.7.2

Release Date: Jul 1, 2020

**Bug Fixes**

- Index slicing not compatible with pandas
  [\#84](https://github.com/casact/chainladder-python/issues/84) fixed
- arithmetic fail
  [\#68](https://github.com/casact/chainladder-python/issues/68)
  - Substantial reworking of how arithmetic works.
- JSON IO on sub-triangles now works
- `predict` and `fit_predict` methods added to all IBNR models and now
  function as expected

**Enhancements**

- Allow `DevelopmentConstant` to take on more than one set of patterns
  by passing in a callable
- `MunichAdjustment`Allow \` does not work when P/I or I/P ratios
  cannot be calculated. You can now optionally back-fill zero values
  with expectaton from simple chainladder so that Munich can be
  performed on sparser triangles.

**Refactors**

- Performance optimized several triangle functions including slicing
  and `val_to_dev`
- Reduced footprint of `ldf_`, `sigma`, and `std_err_` triangles
- Standardized IBNR model methods
- Changed `cdf_`, `full_triangle_`, `full_expectation_`, `ibnr_` to
  function-based properties instead of in-memory objects to reduce
  memory footprint

### Version 0.7.1

Release Date: Jun 22, 2020

**Enhancements**

- Added heatmap method to Triangle - allows for conditionally
  formatting a 2D triangle. Useful for detecting `link_ratio` outliers
- Introduced BerquistSherman estimator
- Better error messaging when triangle columns are non-numeric
- Broadened the functionality of `Triangle.trend`
- Allow for nested estimators in `to_json`. Required addition for the
  new `BerquistSherman` method
- Docs, docs, and more docs.

**Bug Fixes**

- Mixed an inappropriate mutation in
  : `MunichAdjustment.transform`

- Triangle column slicing now supports pd.Index objects
  : instead of just lists

**Misc**

- Moved `BootstrapODPSample` to workflow section as it is not a
  development estimator.

### Version 0.7.0

Release Date: Jun 2, 2020

**Bug Fixes**

- `TailBondy` now works with multiple (4D) triangles
- `TailBondy` computes correctly when `earliest_age` is selected
- Sub-triangles now honor index and column slicing of the parent.
- `fit_transform` for all tail estimators now correctly propagate all
  estimator attributes
- `Bondy` decay now uses the generalized Bondy formula instead of
  exponential decay

**Enhancements**

- Every tail estimator now has a `tail_` attribute representing the
  point estimate of the tail
- Every tail estimator how has an `attachment_age` parameter to allow
  for attachment before the end of the triangle
- `TailCurve` now has `slope_` and `intercept_` attributes for a
  diagnostics of the estimator.
- `TailBondy` now has `earliest_ldf_` attributes to allow for
  diagnostics of the estimator.
- Substantial improvement to the
  [documents](https://chainladder-python.readthedocs.io/stable/user_guide/tails.html)
  on Tails.
- Introduced the deterministic components of
  [ClarkLDF](https://chainladder-python.readthedocs.io/stable/library/generated/chainladder.ClarkLDF.html)
  and
  [TailClark](https://chainladder-python.readthedocs.io/stable/library/generated/chainladder.TailClark.html)
  estimators to allow for growth curve selection of development
  patterns.

## Version 0.6

### Version 0.6.3

Release Date: May 21, 2020

**Enhancements (courtesy of gig67)**

- Added `Triangle.calendar_correlation` method and companion class
  `CalendarCorrelation` to support detecting calendar year
  correlations in triangles.
- Added `Triangle.developmen_correlation` method and companion class
  `DevelopmentCorrelation` to support detecting development
  correlations in triangles.

### Version 0.6.2

Release Date: Apr 27, 2020

patch to 0.6.1

### Version 0.6.1

Release Date: Apr 25, 2020

**Bug Fixes**

- Corrected a bug where `TailConstant` couldn't decay when the contant
  is set to 1.0
- [\#71](https://github.com/casact/chainladder-python/issues/71) Fixed
  issue where
  \`Pipeline.predict\\ would not honor the\\ sample_weight\\ argument

**Enhancements**

- [\#72](https://github.com/casact/chainladder-python/issues/72) Added
  `drop` method to `Triangle` similar to `pd.DataFrame.drop` for
  dropping columns
- Added `xlcompose` yaml templating
- [\#74](https://github.com/casact/chainladder-python/issues/74)
  Dropped link ratios now show as ommitted when callinng `link_ratio`
  on a `Development` transformed triangle
- [\#73](https://github.com/casact/chainladder-python/issues/73)
  `Triangle.grain` now has a `trailing` argument that will aggregate
  triangle on a trailing basis

### Version 0.6.0

Release Date: Mar 17, 2020

**Enhancements**

- Added `TailBondy` method
- Propagate `std_err_` and `sigma_` on determinsitic tails in line
  with Mack for better compatibility with `MackChainladder`
- Improved consistency between `to_frame` and `__repr__` for 2D
  triangles.

**Bug Fixes**

- Fixed a bug where the latest origin period was dropped from
  `Triangle` initialization when sure data was present
- resolves
  [\#69](https://github.com/casact/chainladder-python/issues/69) where
  `datetime` was being mishandled when ingested into `Triangle`.
