diff --git a/docs/modules/generated/chainladder.Development.examples b/docs/modules/generated/chainladder.Development.examples
index 5b933f10..04dbd091 100644
--- a/docs/modules/generated/chainladder.Development.examples
+++ b/docs/modules/generated/chainladder.Development.examples
@@ -3,42 +3,6 @@
Examples using ``chainladder.Development``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_development_periods_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_development_periods.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_development_periods.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_mack_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_mack.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_mack.py`
-
.. raw:: html
@@ -56,57 +20,3 @@ Examples using ``chainladder.Development``
.. only:: not html
* :ref:`sphx_glr_auto_examples_plot_bootstrap.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_benktander_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_benktander.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_benktander.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_munich.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_munich.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_exhibits_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_exhibits.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_exhibits.py`
diff --git a/docs/modules/generated/chainladder.Image.__init__.examples b/docs/modules/generated/chainladder.Image.__init__.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Image.examples b/docs/modules/generated/chainladder.Image.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Image.rst b/docs/modules/generated/chainladder.Image.rst
new file mode 100644
index 00000000..5127e37f
--- /dev/null
+++ b/docs/modules/generated/chainladder.Image.rst
@@ -0,0 +1,16 @@
+
+:mod:`chainladder`.Image
+===============================
+
+.. currentmodule:: chainladder
+
+.. autoclass:: Image
+
+
+ .. automethod:: __init__
+
+
+.. include:: chainladder.Image.examples
+.. raw:: html
+
+
\ No newline at end of file
diff --git a/docs/modules/generated/chainladder.Image.to_excel.examples b/docs/modules/generated/chainladder.Image.to_excel.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.RSpacer.__init__.examples b/docs/modules/generated/chainladder.RSpacer.__init__.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.RSpacer.examples b/docs/modules/generated/chainladder.RSpacer.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.RSpacer.format_validation.examples b/docs/modules/generated/chainladder.RSpacer.format_validation.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.RSpacer.get_column_widths.examples b/docs/modules/generated/chainladder.RSpacer.get_column_widths.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.RSpacer.rst b/docs/modules/generated/chainladder.RSpacer.rst
new file mode 100644
index 00000000..2086bcc9
--- /dev/null
+++ b/docs/modules/generated/chainladder.RSpacer.rst
@@ -0,0 +1,16 @@
+
+:mod:`chainladder`.RSpacer
+=================================
+
+.. currentmodule:: chainladder
+
+.. autoclass:: RSpacer
+
+
+ .. automethod:: __init__
+
+
+.. include:: chainladder.RSpacer.examples
+.. raw:: html
+
+
\ No newline at end of file
diff --git a/docs/modules/generated/chainladder.RSpacer.to_excel.examples b/docs/modules/generated/chainladder.RSpacer.to_excel.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Series.__init__.examples b/docs/modules/generated/chainladder.Series.__init__.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Series.column_widths.examples b/docs/modules/generated/chainladder.Series.column_widths.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Series.examples b/docs/modules/generated/chainladder.Series.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Series.rst b/docs/modules/generated/chainladder.Series.rst
new file mode 100644
index 00000000..1cad9a50
--- /dev/null
+++ b/docs/modules/generated/chainladder.Series.rst
@@ -0,0 +1,16 @@
+
+:mod:`chainladder`.Series
+================================
+
+.. currentmodule:: chainladder
+
+.. autoclass:: Series
+
+
+ .. automethod:: __init__
+
+
+.. include:: chainladder.Series.examples
+.. raw:: html
+
+
\ No newline at end of file
diff --git a/docs/modules/generated/chainladder.Series.to_excel.examples b/docs/modules/generated/chainladder.Series.to_excel.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Title.__init__.examples b/docs/modules/generated/chainladder.Title.__init__.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Title.column_widths.examples b/docs/modules/generated/chainladder.Title.column_widths.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Title.rst b/docs/modules/generated/chainladder.Title.rst
new file mode 100644
index 00000000..1dd5d52e
--- /dev/null
+++ b/docs/modules/generated/chainladder.Title.rst
@@ -0,0 +1,16 @@
+
+:mod:`chainladder`.Title
+===============================
+
+.. currentmodule:: chainladder
+
+.. autoclass:: Title
+
+
+ .. automethod:: __init__
+
+
+.. include:: chainladder.Title.examples
+.. raw:: html
+
+
\ No newline at end of file
diff --git a/docs/modules/generated/chainladder.Title.to_excel.examples b/docs/modules/generated/chainladder.Title.to_excel.examples
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/modules/generated/chainladder.Triangle.broadcast_axis.examples b/docs/modules/generated/chainladder.Triangle.broadcast_axis.examples
new file mode 100644
index 00000000..949db819
--- /dev/null
+++ b/docs/modules/generated/chainladder.Triangle.broadcast_axis.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.Triangle.broadcast_axis``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.Triangle.cum_to_incr.examples b/docs/modules/generated/chainladder.Triangle.cum_to_incr.examples
index e69de29b..10d1fc74 100644
--- a/docs/modules/generated/chainladder.Triangle.cum_to_incr.examples
+++ b/docs/modules/generated/chainladder.Triangle.cum_to_incr.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.Triangle.cum_to_incr``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ibnr_runoff_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_ibnr_runoff.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_ibnr_runoff.py`
diff --git a/docs/modules/generated/chainladder.Triangle.dev_to_val.examples b/docs/modules/generated/chainladder.Triangle.dev_to_val.examples
index e69de29b..f8387dd5 100644
--- a/docs/modules/generated/chainladder.Triangle.dev_to_val.examples
+++ b/docs/modules/generated/chainladder.Triangle.dev_to_val.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.Triangle.dev_to_val``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ibnr_runoff_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_ibnr_runoff.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_ibnr_runoff.py`
diff --git a/docs/modules/generated/chainladder.Triangle.examples b/docs/modules/generated/chainladder.Triangle.examples
index 3d479aaa..6e4fe457 100644
--- a/docs/modules/generated/chainladder.Triangle.examples
+++ b/docs/modules/generated/chainladder.Triangle.examples
@@ -3,114 +3,6 @@
Examples using ``chainladder.Triangle``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_industry_to_company_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_industry_to_company.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_industry_to_company.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_triangle_slicing_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_triangle_slicing.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_triangle_slicing.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_development_periods_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_development_periods.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_development_periods.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_mack_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_mack.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_mack.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bf_apriori_from_cl_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ave_analysis_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
-
.. raw:: html
@@ -131,85 +23,13 @@ Examples using ``chainladder.Triangle``
.. raw:: html
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_benktander_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_benktander.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_benktander.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_triangle_from_pandas_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_triangle_from_pandas.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_triangle_from_pandas.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_munich.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_munich.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_capecod_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_capecod.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_capecod.py`
-
-.. raw:: html
-
-
+
.. only:: html
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_exhibits_thumb.png
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
- :ref:`sphx_glr_auto_examples_plot_exhibits.py`
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
.. raw:: html
@@ -217,4 +37,4 @@ Examples using ``chainladder.Triangle``
.. only:: not html
- * :ref:`sphx_glr_auto_examples_plot_exhibits.py`
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.Triangle.latest_diagonal.examples b/docs/modules/generated/chainladder.Triangle.latest_diagonal.examples
index 844fb25e..1c4aacda 100644
--- a/docs/modules/generated/chainladder.Triangle.latest_diagonal.examples
+++ b/docs/modules/generated/chainladder.Triangle.latest_diagonal.examples
@@ -5,13 +5,13 @@ Examples using ``chainladder.Triangle.latest_diagonal``
.. raw:: html
-
+
.. only:: html
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ave_analysis_thumb.png
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
- :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
.. raw:: html
@@ -19,4 +19,4 @@ Examples using ``chainladder.Triangle.latest_diagonal``
.. only:: not html
- * :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.Triangle.origin.examples b/docs/modules/generated/chainladder.Triangle.origin.examples
index b6d80ff5..801ee3cf 100644
--- a/docs/modules/generated/chainladder.Triangle.origin.examples
+++ b/docs/modules/generated/chainladder.Triangle.origin.examples
@@ -5,13 +5,13 @@ Examples using ``chainladder.Triangle.origin``
.. raw:: html
-
+
.. only:: html
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ave_analysis_thumb.png
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bootstrap_thumb.png
- :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
+ :ref:`sphx_glr_auto_examples_plot_bootstrap.py`
.. raw:: html
@@ -19,17 +19,17 @@ Examples using ``chainladder.Triangle.origin``
.. only:: not html
- * :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
+ * :ref:`sphx_glr_auto_examples_plot_bootstrap.py`
.. raw:: html
-
+
.. only:: html
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bootstrap_thumb.png
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
- :ref:`sphx_glr_auto_examples_plot_bootstrap.py`
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
.. raw:: html
@@ -37,4 +37,4 @@ Examples using ``chainladder.Triangle.origin``
.. only:: not html
- * :ref:`sphx_glr_auto_examples_plot_bootstrap.py`
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.Triangle.to_frame.examples b/docs/modules/generated/chainladder.Triangle.to_frame.examples
index e2995a8b..d1ba1c5e 100644
--- a/docs/modules/generated/chainladder.Triangle.to_frame.examples
+++ b/docs/modules/generated/chainladder.Triangle.to_frame.examples
@@ -21,6 +21,24 @@ Examples using ``chainladder.Triangle.to_frame``
* :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py`
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bootstrap_comparison_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_bootstrap_comparison.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_bootstrap_comparison.py`
+
.. raw:: html
diff --git a/docs/modules/generated/chainladder.core.triangle.Triangle.origin.max.examples b/docs/modules/generated/chainladder.core.triangle.Triangle.origin.max.examples
index f3e78355..ad39aaa2 100644
--- a/docs/modules/generated/chainladder.core.triangle.Triangle.origin.max.examples
+++ b/docs/modules/generated/chainladder.core.triangle.Triangle.origin.max.examples
@@ -20,3 +20,21 @@ Examples using ``chainladder.core.triangle.Triangle.origin.max``
.. only:: not html
* :ref:`sphx_glr_auto_examples_plot_bootstrap.py`
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.core.triangle.Triangle.values.examples b/docs/modules/generated/chainladder.core.triangle.Triangle.values.examples
new file mode 100644
index 00000000..11bb0a83
--- /dev/null
+++ b/docs/modules/generated/chainladder.core.triangle.Triangle.values.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.core.triangle.Triangle.values``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.examples b/docs/modules/generated/chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.examples
new file mode 100644
index 00000000..78302168
--- /dev/null
+++ b/docs/modules/generated/chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.index.examples b/docs/modules/generated/chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.index.examples
new file mode 100644
index 00000000..7964f53d
--- /dev/null
+++ b/docs/modules/generated/chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.index.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.development.bootstrap.BootstrapODPSample.resampled_triangles_.index``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.load_dataset.examples b/docs/modules/generated/chainladder.load_dataset.examples
index f521e416..4762125a 100644
--- a/docs/modules/generated/chainladder.load_dataset.examples
+++ b/docs/modules/generated/chainladder.load_dataset.examples
@@ -3,114 +3,6 @@
Examples using ``chainladder.load_dataset``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_industry_to_company_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_industry_to_company.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_industry_to_company.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_triangle_slicing_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_triangle_slicing.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_triangle_slicing.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_development_periods_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_development_periods.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_development_periods.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_mack_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_mack.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_mack.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bf_apriori_from_cl_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ave_analysis_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_ave_analysis.py`
-
.. raw:: html
@@ -131,67 +23,13 @@ Examples using ``chainladder.load_dataset``
.. raw:: html
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_benktander_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_benktander.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_benktander.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_munich.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_munich.py`
-
-.. raw:: html
-
-
-
-.. only:: html
-
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_capecod_thumb.png
-
- :ref:`sphx_glr_auto_examples_plot_capecod.py`
-
-.. raw:: html
-
-
-
-.. only:: not html
-
- * :ref:`sphx_glr_auto_examples_plot_capecod.py`
-
-.. raw:: html
-
-
+
.. only:: html
- .. figure:: /auto_examples/images/thumb/sphx_glr_plot_exhibits_thumb.png
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
- :ref:`sphx_glr_auto_examples_plot_exhibits.py`
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
.. raw:: html
@@ -199,4 +37,4 @@ Examples using ``chainladder.load_dataset``
.. only:: not html
- * :ref:`sphx_glr_auto_examples_plot_exhibits.py`
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.methods.bornferg.BornhuetterFerguson.X_.examples b/docs/modules/generated/chainladder.methods.bornferg.BornhuetterFerguson.X_.examples
new file mode 100644
index 00000000..6a98f011
--- /dev/null
+++ b/docs/modules/generated/chainladder.methods.bornferg.BornhuetterFerguson.X_.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.methods.bornferg.BornhuetterFerguson.X_``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.methods.bornferg.BornhuetterFerguson.full_triangle_.examples b/docs/modules/generated/chainladder.methods.bornferg.BornhuetterFerguson.full_triangle_.examples
new file mode 100644
index 00000000..6f4d24b1
--- /dev/null
+++ b/docs/modules/generated/chainladder.methods.bornferg.BornhuetterFerguson.full_triangle_.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.methods.bornferg.BornhuetterFerguson.full_triangle_``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py`
diff --git a/docs/modules/generated/chainladder.methods.chainladder.Chainladder.full_triangle_.cum_to_incr.examples b/docs/modules/generated/chainladder.methods.chainladder.Chainladder.full_triangle_.cum_to_incr.examples
new file mode 100644
index 00000000..b5c4140f
--- /dev/null
+++ b/docs/modules/generated/chainladder.methods.chainladder.Chainladder.full_triangle_.cum_to_incr.examples
@@ -0,0 +1,22 @@
+
+
+Examples using ``chainladder.methods.chainladder.Chainladder.full_triangle_.cum_to_incr``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. raw:: html
+
+
+
+.. only:: html
+
+ .. figure:: /auto_examples/images/thumb/sphx_glr_plot_ibnr_runoff_thumb.png
+
+ :ref:`sphx_glr_auto_examples_plot_ibnr_runoff.py`
+
+.. raw:: html
+
+
+
+.. only:: not html
+
+ * :ref:`sphx_glr_auto_examples_plot_ibnr_runoff.py`
diff --git a/examples/plot_bootstrap_comparison.py b/examples/plot_bootstrap_comparison.py
new file mode 100644
index 00000000..3415d21f
--- /dev/null
+++ b/examples/plot_bootstrap_comparison.py
@@ -0,0 +1,34 @@
+"""
+========================
+ODP Bootstrap Comparison
+========================
+
+This example demonstrates how you can drop the outlier link ratios from the
+BootstrapODPSample to reduce reserve variability estimates.
+
+"""
+import chainladder as cl
+
+import seaborn as sns
+sns.set_style('whitegrid')
+
+# Load triangle
+triangle = cl.load_dataset('raa')
+
+# Use bootstrap sampler to get resampled triangles
+s1 = cl.BootstrapODPSample(
+ n_sims=5000, random_state=42).fit(triangle).resampled_triangles_
+
+## Alternatively use fit_transform() to access resampled triangles dropping
+# outlier link-ratios from resampler
+s2 = cl.BootstrapODPSample(
+ drop_high=True, drop_low=True,
+ n_sims=5000, random_state=42).fit_transform(triangle)
+
+# Summarize results of first model
+results = cl.Chainladder().fit(s1).ibnr_.sum('origin').rename('columns', ['Original'])
+# Add another column to triangle with second set of results.
+results['Dropped'] = cl.Chainladder().fit(s2).ibnr_.sum('origin')
+
+# Plot both IBNR distributions
+results.to_frame().plot(kind='hist', bins=50, alpha=0.5)
diff --git a/examples/plot_exposure_triangle.py b/examples/plot_exposure_triangle.py
new file mode 100644
index 00000000..4a2d5701
--- /dev/null
+++ b/examples/plot_exposure_triangle.py
@@ -0,0 +1,34 @@
+"""
+=================
+Exposure Triangle
+=================
+
+Although triangles have both origin and development attributes, it is often
+convenient to create premium or exposure vectors that can work with loss
+triangles. The `Triangle` class treats the development parameter as
+optional. This example instantiates a 'premium' triangle as a single vector.
+"""
+
+import chainladder as cl
+import pandas as pd
+import seaborn as sns
+sns.set_style('whitegrid')
+
+import chainladder as cl
+
+# Raw premium data in pandas
+premium_df = pd.DataFrame(
+ {'AccYear':[item for item in range(1977, 1988)],
+ 'premium': [3000000]*11})
+
+# Create a premium 'triangle' with no development
+premium = cl.Triangle(premium_df, origin='AccYear', columns='premium')
+
+# Create some loss triangle
+loss = cl.load_dataset('abc')
+ultimate = cl.Chainladder().fit(loss).ultimate_
+
+# Plot
+(ultimate / premium).plot(
+ kind='area', title='Loss Ratio by Accident Year',
+ alpha=0.7, color='darkgreen', legend=False);
diff --git a/examples/plot_ibnr_runoff.py b/examples/plot_ibnr_runoff.py
new file mode 100644
index 00000000..70fedf59
--- /dev/null
+++ b/examples/plot_ibnr_runoff.py
@@ -0,0 +1,31 @@
+"""
+============
+IBNR Runoff
+============
+
+All IBNR models spin off several results triangles including `inbr_`,
+`ultimate_`, `full_expectation`, and `full_triangle_`. These can be
+manipulated into a variety of formats. This example demonstrates how to
+create a calendar year runoff of IBNR.
+"""
+
+import chainladder as cl
+import seaborn as sns
+sns.set_style('whitegrid')
+
+# Create a triangle
+triangle = cl.load_dataset('GenIns')
+
+# Fit a model
+model = cl.Chainladder().fit(triangle)
+
+# Develop IBNR runoff triangle
+runoff = (model.full_triangle_.cum_to_incr() - triangle.cum_to_incr())
+
+# Convert to calendar period and aggregate across all accident years
+cal_yr_runoff = runoff.dev_to_val().dropna().sum(axis='origin')
+
+# Plot results
+cal_yr_runoff.T.plot(kind='bar', legend=False, color='red',
+ title='GenIns: IBNR Run-off', alpha=0.7) \
+ .set(xlabel='Calendar Year', ylabel='IBNR');
diff --git a/examples/plot_stochastic_bornferg.py b/examples/plot_stochastic_bornferg.py
new file mode 100644
index 00000000..7136c752
--- /dev/null
+++ b/examples/plot_stochastic_bornferg.py
@@ -0,0 +1,53 @@
+"""
+================================
+Stochastic Bornhuetter Ferguson
+================================
+
+There are several aspects of the chainladder module that are demonstrated with
+this example.
+
+1. We see how to use the `BootstrapODPSample` and `BornhuetterFerguson` to come
+ up with a stochastic view of the Bornhuetter-Ferguson method.
+2. We see how we can use the `Triangle.values` property `numpy` to modify the
+ the data underlying the Triangle
+3. We use the `broadcast_axis` method of the triangle class (new in 0.4.7)
+
+"""
+import chainladder as cl
+import numpy as np
+
+# Simulation parameters
+random_state = 42
+n_sims = 1000
+
+# Get data
+loss = cl.load_dataset('genins')
+premium = loss.latest_diagonal*0+8e6
+
+# Simulate loss triangles
+sim = cl.BootstrapODPSample(random_state=random_state, n_sims=n_sims)
+sim.fit(loss, sample_weight=premium)
+
+# Repeat the premium triangle to align with simulated losses
+sim_p = premium.broadcast_axis('index', sim.resampled_triangles_.index)
+
+# Simulate aprioris using numpy
+apriori_mu = 0.65
+apriori_sigma = .10
+aprioris = np.random.normal(apriori_mu, apriori_sigma, n_sims)
+sim_p.values = (sim_p.values * aprioris.reshape(n_sims,-1)[..., np.newaxis, np.newaxis])
+
+# Fit Bornhuetter-Ferguson to stochastically generated data
+model = cl.BornhuetterFerguson().fit(sim.resampled_triangles_, sample_weight=sim_p)
+
+# Grab completed triangle replacing simulated known data with actual known data
+full_triangle = model.full_triangle_ - model.X_ + \
+ loss.broadcast_axis('index', sim.resampled_triangles_.index)
+
+# Limiting to the current year for plotting
+current_year = full_triangle[full_triangle.origin==full_triangle.origin.max()].to_frame().T
+
+# Plot the data
+current_year.reset_index(drop=True).plot(
+ color='orange', legend=False, alpha=0.1,
+ title='Current Accident Year BornFerg Distribution', grid=True);
diff --git a/examples/plot_triangle_from_pandas.py b/examples/plot_triangle_from_pandas.py
index 14714a12..bde2efc0 100644
--- a/examples/plot_triangle_from_pandas.py
+++ b/examples/plot_triangle_from_pandas.py
@@ -24,10 +24,9 @@
data = data[data['DevelopmentYear']<=1997]
# Create a triangle
-triangle = cl.Triangle(data, origin='AccidentYear',
- development='DevelopmentYear',
- index=['GRNAME'],
- columns=['IncurLoss_D','CumPaidLoss_D','EarnedPremDIR_D'])
+triangle = cl.Triangle(
+ data, origin='AccidentYear', development='DevelopmentYear',
+ index=['GRNAME'], columns=['IncurLoss_D','CumPaidLoss_D','EarnedPremDIR_D'])
# Output
print('Raw data:')
@@ -39,11 +38,9 @@
print('Aggregate Paid Triangle:')
print(triangle['CumPaidLoss_D'].sum())
+# Plot data
+ax = triangle['CumPaidLoss_D'].sum().T.plot(
+ marker='.', title='CAS Loss Reserve Database: Workers Compensation');
+ax.set(xlabel='Development Period', ylabel='Cumulative Paid Loss')
-plot_data = triangle['CumPaidLoss_D'].sum().to_frame().unstack().reset_index()
-plot_data.columns = ['Development Period', 'Accident Year', 'Cumulative Paid Loss']
-
-sns.set_style('whitegrid')
-plt.title('CAS Loss Reserve Database: Workers'' Compensation')
-g = sns.pointplot(x='Development Period', y='Cumulative Paid Loss',
- hue='Accident Year', data=plot_data, markers='.')
+plt.show()
diff --git a/examples/plot_value_at_risk.py b/examples/plot_value_at_risk.py
new file mode 100644
index 00000000..12ca3ca1
--- /dev/null
+++ b/examples/plot_value_at_risk.py
@@ -0,0 +1,30 @@
+"""
+======================
+Value at Risk example
+======================
+
+This example uses the `BootstrapODPSample` to simulate new triangles that
+are then used to simulate an IBNR distribution from which we can do
+Value at Risk percentile lookups.
+"""
+
+import chainladder as cl
+import seaborn as sns
+sns.set_style('whitegrid')
+
+# Load triangle
+triangle = cl.load_dataset('genins')
+
+# Create 1000 bootstrap samples of the triangle
+resampled_triangles = cl.BootstrapODPSample().fit_transform(triangle)
+
+# Create 1000 IBNR estimates
+sim_ibnr = cl.Chainladder().fit(resampled_triangles).ibnr_.sum('origin')
+
+# X - mu
+sim_ibnr = (sim_ibnr - sim_ibnr.mean()).to_frame().sort_values()
+
+# Plot data
+sim_ibnr.index = [item/1000 for item in range(1000)]
+sim_ibnr.loc[0.90:].plot(
+ title='Bootstrap VaR (90% and above)', color='red').set(xlabel='VaR');
diff --git a/setup.py b/setup.py
index 3f0bccc6..a4ca7124 100644
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@
descr = "Chainladder Package - P&C Loss Reserving package "
name = 'chainladder'
url = 'https://github.com/casact/chainladder-python'
-version='0.4.5' # Put this in __init__.py
+version='0.4.7' # Put this in __init__.py
data_path = ''
setup(