Releases & Changelog#
Version 0.8#
Version 0.8.16#
Release Date: Jun 17, 2023
What’s Changed
New Contributors#
@MatthewCaseres made their first contribution.
@andrejakobsen made their first contribution.
Version 0.8.15#
Release Date: Apr 11, 2023
What’s Changed
revamping drop functions by @henrydingliu in #385
Fixing link_ratio by @henrydingliu in #387
adding some tests for the revamped drop function by @henrydingliu in #388
Adding test wth CL and BF by @henrydingliu in #391
Henrydingliu enhancement 1 2022 11 29 by @henrydingliu in #392
w_v2_ and pipeline in Development by @henrydingliu in #394
next step for #376 by @henrydingliu in #397
consolidating weighted regression factor fit by @henrydingliu in #398
cum_zeta_ by @henrydingliu in #401
Expanded mappings to include semester sampling by @A108669 in #403
fix one more ref to semiannual by @wleescor in #410
TailCurve argument validation by @genedan in #414
chore(version): specify version of numba by @pafechet in #418
Add Friedland Sample - Auto BI Insurer (Expected Loss Method) by @genedan in #419
Cas webinar by @kennethshsu in #424
[BUG] Argument validation needed for TailCurve #413
[BUG] origin_as_datetime does nothing #407
[BUG] CapeCod predict at different index grain #400
[BUG] Chainladder doesn’t coerce valuation triangle correctly #399
New Contributors @A108669 made their first contribution in #403 @pafechet made their first contribution in #418
Version 0.8.14#
Release Date: Nov 25, 2022
Version 0.8.13#
Release Date: Jun 27, 2022
Bug Fixes
#270 Fixed an issue affecting triangle instantiation
#251 Fixed a bug in
predict
method that failed to honor development ages appropriatly#274 Addressed a pandas deprecation notice in the
heatmap
method.#258 Addressed silent error when predicting on a Triangle that is larger than the underlying model.
#288 Addressed Bug in
to_frame
method#283 Addressed Bug in the calculation of LDFs in
CaseOutstanding
Enhancements
#293 Expanded functionality
drop_high
anddrop_low
arguments ofDevelopment
estimator.#298, #299, #304, #305, #308 Documentation clean-up.
Version 0.8.12#
Release Date: Mar 8, 2022
Bug Fixes
#254 Fixed an undesired mutation when using cl.concat
#257 to_frame bug fix on empty triangles
#248 to_frame bug and deprecation notice in origin_as_datetime argument.
#250 Bug fix in triangle initialization
#258 Addressed silent error when predicting on a Triangle that is larger than the underlying model.
#261 Addressed a pandas>1.4.0 bug
Enhancements
Version 0.8.10#
Release Date: Dec 4, 2021
Enhancements
#225 - Added support for mid-year triangles
Remove
xlcompose
as a dependency#233 and #219 - Added more explicit warning when
is_cumulative
property of triangle is not set.#192 Expanded
drop_high
anddrop_low
functionality to include integers and variable length lists. PR courtesy of @kennethshsu.
Bug Fixes
#234 Coerce
MackChainladder
to zero variance wheninbr_
andcdf_
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 Added
projection_period
to all Tail estimators. This allows for analyzing run-off beyond a one year time horizon.#214 A refreshed docs theme using jupyter-book!
#200 Added more flexibility to
TailCurve.fit_period
to allow boolean lists - similar toDevelopment.drop_high
kennethshsu further improved tutorials
Bug Fixes
#210 Fixed regression in triangle instantiation where
grain=='S'
is being interpreted as seconds and not semesters.#213 Fixed an unintended Triangle mutation when reassigning columns on a sparse backend.
#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 Improved test coverage
#126 Relaxed
BootstrapODPSample
column restriction#207 Improved tutorials
Bug Fixes
Version 0.8.7#
Release Date: Aug 29, 2021
Minor release to fix some chainladder==0.8.6
regressions.
Bug Fixes
Fixed #190 - 0 values getting into
heatmap
Fixed #191 regression that didn’t support earlier versions of pandas
Fixed #197 Index broadcasting edge case
Fixed
valuation_date
regression when instantiating Triangles as vectors
Enhancements
#99 Added Semester as an additional grain
Added parallel support to
GridSearch
usingn_jobs
argumentMore tutorial improvements from kennethshsu
Version 0.8.6#
Release Date: Aug 18, 2021
Ehancements
kennethshsu improved heatmap shading
Support for numpy reductions, e.g.
np.sum(cl.load_sample('raa'))
kennethshsu further improved tutorials
Bug fixes
#186 Fix bug that disallowed instantiating a full triangles
#180 Fix bug that mutated original DataFrame when instantiating Triangle
#182 Eliminate new deprecations warnings from pandas>=1.3
#183 Better alignment with pandas on index broadcasting
#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 - 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 - Made Triangle tutorial more beginner friendly - courtesy of 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 - Introduced CapeCod
groupby
parameter that allows for apriori computation at user-specified grain for granular triangles#154 - Introduced
groupby
support in key development estimators
Bug Fixes
Version 0.8.3#
Release Date: Apr 25, 2021
Enhancements
#135 - Added
.at
and.iat
slicing and value assignment
Bug Fixes
Version 0.8.2#
Release Date: Mar 27, 2021
Enhancements
#131 - Added a BarnettZenwirth development estimator
#117 - VotingChainladder enhancements to allow for more flexibility in defining weights (courtesy of @cbalona)
Bug Fixes
#130 - Fixed bug in triangle aggregation
#134 - Fixed a bug in triangle broadcasting
#137 - Fixed
valuation_date
bug occuring when partial year Triangle is instantiated as a vector.#138 - Introduced fix for incompatibility with
sparse>=0.12.0
#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 theTailClark
estimator to replicate examples from the paper#129 Included new development estimators
TweedieGLM
andDevelopmentML
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 Made
IncrementalAdditive
method comply with the rest of the package API
Version 0.8.0#
Release Date: Feb 15, 2021.
Enhancements
#112 Advanced
groupby
support.#113 Added
reg_threshold
argument toTailCurve
for finer control of fit. Huge thanks to Brian-13 for the contribution.#115 Introducing
VotingChainladder
workflow estimator to allow for averaging multiple IBNR estimators Huge thanks to cbalona for the contribution.Introduced
CaseOutstanding
development estimator#124 Standardized
CapCod
functionality to that ofBenktander
andBornhuetterFerguson
Bug Fixes
#83 Fixed
grain
issues when using thetrailing
argument#119 Fixed pickle compatibility issue introduced in
v0.7.12
#120 Fixed
Trend
estimator API#121 Fixed numpy==1.20.1 compatibility issue
#123 Fixed
BerquistSherman
estimator#125 Fixed various issues with compatibility of estimators in a
Pipeline
Deprecations
#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 Added
virtual_column
functionality
Bug Fixes
Minor bug fix on
sort_index
not accepting kwargsMinor 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
Version 0.7.9#
Release Date: Nov 5, 2020
Bug Fixes
#101 Bug where LDF labels were not aligned with underlying LDF array
Enhancements
Version 0.7.8#
Release Date: Oct 22, 2020
Bug Fixes
Resolved #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 exampleclrd.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, 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
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 to_frame() now takes optional
origin_as_datetime
argument for better compatibility with various plotting libraries (Thank you johalnes )>>> tri.to_frame(origin_as_datetime=True)
Bug Fixes
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 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
andtail
methods to TrianglePrepped 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
axisImproved performance of
groupby
Added
sort_index
method toTriangle
consistent with pandasAllow for
fit_predict
to be called on aPipeline
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 fixed
arithmetic fail #68
Substantial reworking of how arithmetic works.
JSON IO on sub-triangles now works
predict
andfit_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 callableMunichAdjustment
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
, andstd_err_
trianglesStandardized 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
outliersIntroduced 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 newBerquistSherman
methodDocs, 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) trianglesTailBondy
computes correctly whenearliest_age
is selectedSub-triangles now honor index and column slicing of the parent.
fit_transform
for all tail estimators now correctly propagate all estimator attributesBondy
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 tailEvery tail estimator how has an
attachment_age
parameter to allow for attachment before the end of the triangleTailCurve
now hasslope_
andintercept_
attributes for a diagnostics of the estimator.TailBondy
now hasearliest_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.
Version 0.6#
Version 0.6.3#
Release Date: May 21, 2020
Enhancements (courtesy of gig67)
Added
Triangle.calendar_correlation
method and companion classCalendarCorrelation
to support detecting calendar year correlations in triangles.Added
Triangle.developmen_correlation
method and companion classDevelopmentCorrelation
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 Fixed issue where `Pipeline.predict\ would not honor the\ sample_weight\ argument
Enhancements
#72 Added
drop
method toTriangle
similar topd.DataFrame.drop
for dropping columnsAdded
xlcompose
yaml templating#74 Dropped link ratios now show as ommitted when callinng
link_ratio
on aDevelopment
transformed triangle#73
Triangle.grain
now has atrailing
argument that will aggregate triangle on a trailing basis
Version 0.6.0#
Release Date: Mar 17, 2020
Enhancements
Added
TailBondy
methodPropagate
std_err_
andsigma_
on determinsitic tails in line with Mack for better compatibility withMackChainladder
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 presentresolves #69 where
datetime
was being mishandled when ingested intoTriangle
.