### Changelogs » Chainladder

PyUp Safety actively tracks 262,873 Python packages for vulnerabilities and notifies you when to upgrade.

# Chainladder

### 0.7.7

Enhancements * 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, Fix for TailBase transform * 94, `n_periods` with asymmetric triangles fixed

### 0.7.6

Enhancements * Four Dimensional slicing is now supported. python clrd = cl.load_sample('clrd') clrd.iloc[[0,10, 3], 1:8, :5, :] clrd.loc[:'Aegis Grp', 'CumPaidLoss':, '1990':'1994', :48] * 92 to_frame() now takes optional `origin_as_datetime` argument for better compatibility with various plotting libraries (Thank you johalnes ) python 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 Bug fix to `MackChainladder` which errored on asymmetric triangles (Thank you johalnes for reporting)

### 0.7.5

Enhancements * Enabled multi-index broadcasting. python 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/en/latest/tutorials/large-datasets.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

### 0.7.4

Tiny release. 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

### 0.7.3

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.

### 0.7.2

Bug fixes: * Index slicing not compatible with pandas 84 fixed * arithmetic fail 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

### 0.7.1

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 Other * Moved `BootstrapODPSample` to workflow section as it is not a development estimator.

### 0.7.0

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/en/latest/modules/tails.htmltails) on Tails. * Introduced the deterministic components of [ClarkLDF](https://chainladder-python.readthedocs.io/en/latest/modules/generated/chainladder.ClarkLDF.htmlchainladder.ClarkLDF) and [TailClark](https://chainladder-python.readthedocs.io/en/latest/modules/generated/chainladder.TailClark.htmlchainladder.TailClark) estimators to allow for growth curve selection of development patterns.

### 0.6.3

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.

### 0.6.2

### 0.6.1

Bug fixes: * Corrected a bug where `TailConstant` couldn't decay when the contant is set to 1.0 * 71 Fixed issue where ``Pipeline.predict` would not honor the `sample_weight` argument Enhancements: * 72 Added `drop` method to `Triangle` similar to `pd.DataFrame.drop` for dropping columns * Added `xlcompose` yaml templating * 74 Dropped link ratios now show as ommitted when callinng `link_ratio` on a `Development` transformed triangle * 73 `Triangle.grain` now has a `trailing` argument that will aggregate triangle on a trailing basis

### 0.6.0

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 where `datetime` was being mishandled when ingested into `Triangle`.

### 0.5.5

Bug fixes * resolves 62 Slicing cdf not working correctly * resolves 61 groupby not consistent with pandas * resolves 60 Development.drop_high and drop_low. `drop_high` and `drop_low` only drop one observation even if multiple observations match the criteria. * resolves a bug in `TailCurve` where the `fit_period` slicer was not indexing properly * Better support for the `loc` property of a `Triangle`. Enhancements: * Resolves 64 support pandas>=1.0.0. `chainladder` now works with `pandas>=1.0.0` * New feature 63 fill values for undefined link ratio. `fillna` is a new parameter of the `Development` estimator * New feature 58 Attachment age support in Tail methods. `attachment_age` is a new parameter of the `TailCurve` estimator. * New feature 59 Add `cl.concat` functionality * Added ability to perform arithmetic between a `Triangle` and an `np.ndarray`

### 0.5.4

Enhancements * Resolves 31 Propagate bootstrap process risk. This should make the `BootstrapODPSample` estimator fully functional. * Enhanced `Benktander` and `BornhuetterFerguson` methods to allow for stochastic apriori picks.

### 0.5.3

Bug fixes * `MackChainladder` was incorrectly calculating MSE when dropping link ratios * Fixed issue where using `grain` always returned a development triangle even when fed a valuation triangle Enhancements * Added `__round__` and `__pow__` dunder methods * Warn on triangles with invalid `origin`/`development` combinations

### 0.5.2

Bug fix * patch to column slicers.

### 0.5.1

Enhancements: * Substantial speed up in triangle initialization for larger triangles * Fancy loc/iloc indexing now honors the order the user chooses Bug fixes: * Mack Std Err for tail fix xonsistent with R v0.2.11 fix * Valuation triangles should now be JSON serializable * Bug in expected loss method `predict` that wasn't rendering prediction results correctly

### 0.5.0

Enhancements: * Full GPU-support using `cupy`.

### 0.4.10

### 0.4.9

Bugfix * quick patch for `Pipeline`

### 0.4.8

Bug fixes: * Fixed an inappropriate mutation in the `Benktander` estimator when calls to `predict` are made * Allow for `sample_weight` argument to be directly passed to a `Pipeline`

### 0.4.7

Enhancements: * Added `broadcast_axis` for better `BootstrapODPSample` support

### 0.4.6

Bug fixes: * Eliminated a side-effect in `Development` when using `drop` * Improved dropping capabilities of `BootstrapODPSample`

### 0.4.5

Bug Fixes: * Fixed TailCurve shape misaligned 57 * Fixed triangle json serializers to include all data necessary to recreate triangle * Fixed various edge case issues when `len(development) == 1` * Fixed `MackChainladder` assymentric triangle support (e.g. `OYDQ`) * Fixed `MunichAdjustment` assymentric triangle support (e.g. `OYDQ`) * Fixed datetime flexibility on dataframe ingestion into triangle Enhancements: * aligned `append` method with pandas Other: * Moved excel exhibit functionality to a separate [xlcomose](https://xlcompose.readthedocs.io/en/latest/index.html) package.

### 0.4.4

Bug fixes: * patched a defect in `Triangle.grain()` * patched a defect in exhibits.py pertaining to titles

### 0.4.3

Bug Fix: * Fixed issues in asymmetric triangles Enhancement: * Replaced `Exhibit` API with `Row`, `Column`, `Tabs`, and `DataFrame`

### 0.4.2

Bug Fixes: Minor release to improved commutative properties of triangle functions (`grain`, `val_to_dev`, `dev_to_val`, `cum_to_incr`, `incr_to_cum`, `latest_diagonal`) for all types of triangles (development triangles, valuation triangles, complerte triangles)

### 0.4.1

Bug fix * patch to asymmetric LDF fix in release 0.4.0 Enhancement * Added `Triangle.dropna()` method that allows shaving off origins/development vectors that are all 0/NA

### 0.4.0

Enhancements: * Added better datetime management when instantiating a triangle * Added json serializers for `Triangle` as well as the estimators and `Pipeline`. These can be accessed with the `to_json` method and `cl.read_json` * Added `DevelopmentConstant` estimator that takes LDF or CDF patterns as a dictionary instead of calculating from a triangle. This is useful for incorporating industry patterns into an analysis * General improved functionality for malformed triangles * improved memory management by eliminating unnecessary usage of `deepcopy` Bug Fixes: * Fixed an issue where LDFs were calculated incorrectly for asymmetric triangles * Fixed a bug where slicers weren't working properly after particular mutations (e.g. adding a new column) * Arithmetic on triangles with different origin ranges will now take the union of the origin periods. Previously the intersection was taken.

### 0.3.0

Enhancements: * Added predict functionality IBNR methods Bug fixes: * Fixed mutation in `TriangleGroupBy` aggregate methods * Fixed bug in `Triangle.grain` method * Fixed issue 43 User-Specified columns should be honored * Fixed issue 44 cdf_ labels should be 'xx-Ult' * Fixed issue 45 MackChainladder.total_mack_std_error_ TypeError