Changelogs » Chainladder

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



  * 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


  * 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 to_frame() now takes optional `origin_as_datetime` argument for better compatibility with various plotting libraries (Thank you johalnes )
  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)


  * 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]( tutorial for details
  Bug fixes
  * Fixed cupy backend which had previously been neglected
  * Fixed xlcompose issue where Period fails when included as column header


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
  * Added `head` and `tail` methods to Triangle
  * Prepped Triangle class to support sparse backend
  * Added prism sample dataset for sparse demonstrations and unit tests


  * 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.


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
  * 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.
  * 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


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


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
  * 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]( on Tails.
  * Introduced the deterministic components of [ClarkLDF]( and [TailClark]( estimators to allow for growth curve selection of development patterns.


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.




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
  * 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


  * 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`.


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`.
  * 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`


  * 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.


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
  * Added `__round__` and `__pow__` dunder methods
  * Warn on triangles with invalid `origin`/`development` combinations


Bug fix
  * patch to column slicers.


  * 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


  * Full GPU-support using `cupy`.




  * quick patch for `Pipeline`


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`


  * Added `broadcast_axis` for better `BootstrapODPSample` support


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


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
  * aligned `append` method with pandas
  * Moved excel exhibit functionality to a separate [xlcomose]( package.


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


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


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)


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


  * 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.


  * 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