@actuarial-ts/core 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -4
- package/dist/berquist.d.ts.map +1 -1
- package/dist/berquist.js +4 -12
- package/dist/berquist.js.map +1 -1
- package/dist/caseOutstanding.d.ts.map +1 -1
- package/dist/caseOutstanding.js +2 -9
- package/dist/caseOutstanding.js.map +1 -1
- package/dist/casualtyDiagnostics.d.ts +53 -0
- package/dist/casualtyDiagnostics.d.ts.map +1 -0
- package/dist/casualtyDiagnostics.js +122 -0
- package/dist/casualtyDiagnostics.js.map +1 -0
- package/dist/fisherLange.d.ts.map +1 -1
- package/dist/fisherLange.js +2 -9
- package/dist/fisherLange.js.map +1 -1
- package/dist/freqSev.d.ts.map +1 -1
- package/dist/freqSev.js +3 -10
- package/dist/freqSev.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/mack.d.ts.map +1 -1
- package/dist/mack.js +58 -18
- package/dist/mack.js.map +1 -1
- package/dist/metricDiagnostics.d.ts +212 -0
- package/dist/metricDiagnostics.d.ts.map +1 -0
- package/dist/metricDiagnostics.js +627 -0
- package/dist/metricDiagnostics.js.map +1 -0
- package/dist/munichChainLadder.d.ts.map +1 -1
- package/dist/munichChainLadder.js +2 -7
- package/dist/munichChainLadder.js.map +1 -1
- package/dist/odpBootstrap.d.ts +8 -2
- package/dist/odpBootstrap.d.ts.map +1 -1
- package/dist/odpBootstrap.js +11 -2
- package/dist/odpBootstrap.js.map +1 -1
- package/dist/periods.d.ts +46 -0
- package/dist/periods.d.ts.map +1 -0
- package/dist/periods.js +121 -0
- package/dist/periods.js.map +1 -0
- package/dist/util.d.ts +8 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +15 -0
- package/dist/util.js.map +1 -1
- package/package.json +3 -1
- package/src/benktander.ts +90 -0
- package/src/berquist.ts +338 -0
- package/src/bf.ts +129 -0
- package/src/canonical.ts +122 -0
- package/src/capping.ts +295 -0
- package/src/caseOutstanding.ts +268 -0
- package/src/casualtyDiagnostics.ts +202 -0
- package/src/chainladder.ts +101 -0
- package/src/clark.ts +719 -0
- package/src/diagnostics.ts +435 -0
- package/src/discounting.ts +417 -0
- package/src/elrMethods.ts +257 -0
- package/src/factors.ts +147 -0
- package/src/fisherLange.ts +372 -0
- package/src/freqSev.ts +148 -0
- package/src/ilf.ts +567 -0
- package/src/index.ts +32 -0
- package/src/mack.ts +329 -0
- package/src/merzWuthrich.ts +147 -0
- package/src/metricDiagnostics.ts +876 -0
- package/src/munichChainLadder.ts +392 -0
- package/src/odpBootstrap.ts +337 -0
- package/src/onlevel.ts +155 -0
- package/src/periods.ts +177 -0
- package/src/salvageSubro.ts +205 -0
- package/src/stochastic.ts +151 -0
- package/src/tail.ts +156 -0
- package/src/trend.ts +150 -0
- package/src/triangle.ts +235 -0
- package/src/triangleAlgebra.ts +111 -0
- package/src/types.ts +357 -0
- package/src/ulae.ts +326 -0
- package/src/util.ts +88 -0
package/dist/freqSev.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ReservingError } from "./types.js";
|
|
2
|
-
import { isNum, lastObservedIndex, safeRatio } from "./util.js";
|
|
2
|
+
import { assertSameShape, isNum, lastObservedIndex, safeRatio } from "./util.js";
|
|
3
3
|
import { runChainLadder } from "./chainladder.js";
|
|
4
4
|
/**
|
|
5
5
|
* Average-severity triangle: cell-wise losses / counts. Null-safe: a
|
|
6
6
|
* missing, zero, or negative count yields a null severity cell.
|
|
7
7
|
*/
|
|
8
8
|
export function severityTriangle(lossTri, countTri) {
|
|
9
|
-
assertSameShape(lossTri, countTri);
|
|
9
|
+
assertSameShape(lossTri, countTri, "The loss and count triangles must share identical origins and development ages");
|
|
10
10
|
return {
|
|
11
11
|
kind: lossTri.kind,
|
|
12
12
|
origins: [...lossTri.origins],
|
|
@@ -14,15 +14,8 @@ export function severityTriangle(lossTri, countTri) {
|
|
|
14
14
|
values: lossTri.values.map((row, i) => row.map((loss, j) => safeRatio(loss ?? null, countTri.values[i][j] ?? null))),
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
function assertSameShape(a, b) {
|
|
18
|
-
const sameOrigins = a.origins.length === b.origins.length && a.origins.every((o, i) => o === b.origins[i]);
|
|
19
|
-
const sameAges = a.ages.length === b.ages.length && a.ages.every((v, i) => v === b.ages[i]);
|
|
20
|
-
if (!sameOrigins || !sameAges) {
|
|
21
|
-
throw new ReservingError("SHAPE", "The loss and count triangles must share identical origins and development ages");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
17
|
export function runFrequencySeverity(lossTri, countTri, options) {
|
|
25
|
-
assertSameShape(lossTri, countTri);
|
|
18
|
+
assertSameShape(lossTri, countTri, "The loss and count triangles must share identical origins and development ages");
|
|
26
19
|
const warnings = [];
|
|
27
20
|
const countCl = runChainLadder(countTri, {
|
|
28
21
|
selected: options.countSelected,
|
package/dist/freqSev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freqSev.js","sourceRoot":"","sources":["../src/freqSev.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"freqSev.js","sourceRoot":"","sources":["../src/freqSev.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAmDlD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAiB,EAAE,QAAkB;IACpE,eAAe,CACb,OAAO,EACP,QAAQ,EACR,gFAAgF,CACjF,CAAC;IACF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACpC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAC9E;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAiB,EACjB,QAAkB,EAClB,OAAiC;IAEjC,eAAe,CACb,OAAO,EACP,QAAQ,EACR,gFAAgF,CACjF,CAAC;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,OAAO,CAAC,aAAa;QAC/B,UAAU,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;KACzC,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE;QACnC,QAAQ,EAAE,OAAO,CAAC,gBAAgB;QAClC,UAAU,EAAE,OAAO,CAAC,kBAAkB,IAAI,CAAC;KAC5C,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEhE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CACX,UAAU,MAAM,yEAAyE,CAC1F,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,UAAU,MAAM,qDAAqD,CAAC,CAAC;YACrF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;YACR,MAAM;YACN,WAAW;YACX,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,gBAAgB,EAAE,GAAG,CAAC,QAAQ;YAC9B,QAAQ;YACR,MAAM,EAAE,QAAQ,GAAG,WAAW;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,cAAc,CACtB,SAAS,EACT,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,OAAO,CAAC,IAAI;QACnB,IAAI;QACJ,MAAM,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/C;QACD,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ export * from "./tail.js";
|
|
|
14
14
|
export * from "./berquist.js";
|
|
15
15
|
export * from "./clark.js";
|
|
16
16
|
export * from "./diagnostics.js";
|
|
17
|
+
export * from "./periods.js";
|
|
18
|
+
export * from "./metricDiagnostics.js";
|
|
19
|
+
export * from "./casualtyDiagnostics.js";
|
|
17
20
|
export * from "./mack.js";
|
|
18
21
|
export * from "./capping.js";
|
|
19
22
|
export * from "./ilf.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,9 @@ export * from "./tail.js";
|
|
|
14
14
|
export * from "./berquist.js";
|
|
15
15
|
export * from "./clark.js";
|
|
16
16
|
export * from "./diagnostics.js";
|
|
17
|
+
export * from "./periods.js";
|
|
18
|
+
export * from "./metricDiagnostics.js";
|
|
19
|
+
export * from "./casualtyDiagnostics.js";
|
|
17
20
|
export * from "./mack.js";
|
|
18
21
|
export * from "./capping.js";
|
|
19
22
|
export * from "./ilf.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
package/dist/mack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mack.d.ts","sourceRoot":"","sources":["../src/mack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAW,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIhE,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG;IAC7C,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CAC3B,CAgDA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAqBV;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"mack.d.ts","sourceRoot":"","sources":["../src/mack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAW,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIhE,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG;IAC7C,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CAC3B,CAgDA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAqBV;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CAoM5E"}
|
package/dist/mack.js
CHANGED
|
@@ -174,11 +174,23 @@ export function runMack(tri, options = {}) {
|
|
|
174
174
|
const ultimate = projected[i][K - 1] * tail;
|
|
175
175
|
// mse(R_i) accumulated over the projected development range plus tail.
|
|
176
176
|
let mse = 0;
|
|
177
|
+
let droppedColumns = 0;
|
|
177
178
|
for (let k = last; k < K - 1; k++) {
|
|
178
179
|
const cik = projected[i][k];
|
|
179
|
-
if (!(cik > 0))
|
|
180
|
+
if (!(cik > 0)) {
|
|
181
|
+
// Mack's 1/C_ik is undefined for a non-positive cumulative. Skipping
|
|
182
|
+
// the column is the only defensible arithmetic, but it removes real
|
|
183
|
+
// variance from the estimate, so the result must not present what
|
|
184
|
+
// remains as if it were the whole story.
|
|
185
|
+
droppedColumns++;
|
|
180
186
|
continue;
|
|
181
|
-
|
|
187
|
+
}
|
|
188
|
+
mse += (sigma2[k] / fEff[k] ** 2) * (1 / cik + 1 / denomSums[k]);
|
|
189
|
+
}
|
|
190
|
+
if (droppedColumns > 0) {
|
|
191
|
+
warnings.push(`Origin ${tri.origins[i]} has a non-positive projected cumulative at ` +
|
|
192
|
+
`${droppedColumns} development step(s); those columns are excluded from its ` +
|
|
193
|
+
`standard error, which is therefore understated`);
|
|
182
194
|
}
|
|
183
195
|
if (tail !== 1 && projected[i][K - 1] > 0) {
|
|
184
196
|
mse += (sigma2Tail / tail ** 2) * (1 / projected[i][K - 1] + 1 / denomTail);
|
|
@@ -195,30 +207,58 @@ export function runMack(tri, options = {}) {
|
|
|
195
207
|
cv: reserve !== 0 ? Math.sqrt(mse) / reserve : null,
|
|
196
208
|
});
|
|
197
209
|
}
|
|
198
|
-
// Total mse: sum of row mse plus cross
|
|
199
|
-
// tail step participates like one
|
|
210
|
+
// Total mse: sum of row mse plus the cross-covariance between every PAIR of
|
|
211
|
+
// accident years (Mack 1993 corollary). The tail step participates like one
|
|
212
|
+
// more development column.
|
|
213
|
+
//
|
|
214
|
+
// Two accident years share estimation error only over the columns they have
|
|
215
|
+
// BOTH yet to traverse, so each pair's sum starts at the maturity of the more
|
|
216
|
+
// developed of the two. That floor is per-pair: aggregating the later rows'
|
|
217
|
+
// ultimates before choosing it would assume maturity falls with row index —
|
|
218
|
+
// true of a tidy run-off triangle, false of a ragged or unsorted one, and the
|
|
219
|
+
// resulting total moved by up to 65% purely with row order.
|
|
200
220
|
let totalMse = 0;
|
|
201
221
|
for (let i = 0; i < n; i++)
|
|
202
222
|
totalMse += mseByRow[i];
|
|
223
|
+
const maturity = tri.values.map((row) => lastObservedIndex(row));
|
|
224
|
+
const ultimateOf = (i) => projected[i][K - 1] * tail;
|
|
203
225
|
for (let i = 0; i < n; i++) {
|
|
204
|
-
|
|
205
|
-
if (lastI < 0 || (tail === 1 && lastI >= K - 1))
|
|
226
|
+
if (maturity[i] < 0)
|
|
206
227
|
continue;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
if (laterUltimates <= 0)
|
|
228
|
+
// Mack's 1/C terms are undefined for a non-positive ultimate; the row
|
|
229
|
+
// estimate skips such columns for the same reason (see above).
|
|
230
|
+
const ui = ultimateOf(i);
|
|
231
|
+
if (!(ui > 0))
|
|
213
232
|
continue;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
233
|
+
// Partners are grouped by the floor their pair uses, and each group's
|
|
234
|
+
// ultimates are summed BEFORE multiplying. On a triangle whose maturity
|
|
235
|
+
// falls with row index every partner shares one floor, so this collapses
|
|
236
|
+
// to a single product in the original operand order — the arithmetic is
|
|
237
|
+
// then identical to the last bit, which is what keeps the frozen
|
|
238
|
+
// conformance corpus reproducible.
|
|
239
|
+
const partnerUltimatesByFloor = new Map();
|
|
240
|
+
for (let j = i + 1; j < n; j++) {
|
|
241
|
+
if (maturity[j] < 0)
|
|
242
|
+
continue;
|
|
243
|
+
const uj = ultimateOf(j);
|
|
244
|
+
if (!(uj > 0))
|
|
245
|
+
continue;
|
|
246
|
+
const floor = Math.max(maturity[i], maturity[j]);
|
|
247
|
+
partnerUltimatesByFloor.set(floor, (partnerUltimatesByFloor.get(floor) ?? 0) + uj);
|
|
217
248
|
}
|
|
218
|
-
|
|
219
|
-
|
|
249
|
+
for (const [floor, partnerUltimates] of partnerUltimatesByFloor) {
|
|
250
|
+
// Both years already run off: no shared development remains.
|
|
251
|
+
if (tail === 1 && floor >= K - 1)
|
|
252
|
+
continue;
|
|
253
|
+
let shared = 0;
|
|
254
|
+
for (let k = floor; k < K - 1; k++) {
|
|
255
|
+
shared += (2 * sigma2[k]) / fEff[k] ** 2 / denomSums[k];
|
|
256
|
+
}
|
|
257
|
+
if (tail !== 1) {
|
|
258
|
+
shared += (2 * sigma2Tail) / tail ** 2 / denomTail;
|
|
259
|
+
}
|
|
260
|
+
totalMse += ui * partnerUltimates * shared;
|
|
220
261
|
}
|
|
221
|
-
totalMse += projected[i][K - 1] * tail * laterUltimates * inner;
|
|
222
262
|
}
|
|
223
263
|
const totals = rows.reduce((acc, r) => ({
|
|
224
264
|
latest: acc.latest + r.latest,
|
package/dist/mack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mack.js","sourceRoot":"","sources":["../src/mack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mack.js","sourceRoot":"","sources":["../src/mack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { type DiagnosticFinding } from "./types.js";
|
|
2
|
+
export type SparseValuePolicy = "preserve-null" | "zero-fill";
|
|
3
|
+
export type DiagnosticMeasureMap = Readonly<Record<string, number | null | undefined>>;
|
|
4
|
+
export type MeasureExpression = {
|
|
5
|
+
op: "measure";
|
|
6
|
+
measure: string;
|
|
7
|
+
} | {
|
|
8
|
+
op: "add";
|
|
9
|
+
terms: readonly MeasureExpression[];
|
|
10
|
+
} | {
|
|
11
|
+
op: "subtract";
|
|
12
|
+
left: MeasureExpression;
|
|
13
|
+
right: MeasureExpression;
|
|
14
|
+
};
|
|
15
|
+
export interface DiagnosticWarning {
|
|
16
|
+
code: "MISSING_COMPONENT" | "NON_FINITE_COMPONENT" | "NON_FINITE_NUMERATOR" | "NON_FINITE_RESULT" | "INVALID_DENOMINATOR" | "INCOMPLETE_EXPOSURE" | "CONFLICTING_EXPOSURE" | "DUPLICATE_EXPOSURE_KEY" | "PAID_EXCEEDS_INCURRED" | (string & {});
|
|
17
|
+
message: string;
|
|
18
|
+
component?: string;
|
|
19
|
+
exposureKey?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Adapts structured metric warnings to the existing core diagnostic finding vocabulary. */
|
|
22
|
+
export declare function diagnosticWarningToFinding(warning: DiagnosticWarning): DiagnosticFinding;
|
|
23
|
+
export interface MetricWarningRule {
|
|
24
|
+
code: "PAID_EXCEEDS_INCURRED";
|
|
25
|
+
when: "numerator-greater-than-denominator";
|
|
26
|
+
message: string;
|
|
27
|
+
tolerance?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface MetricDefinition {
|
|
30
|
+
id: string;
|
|
31
|
+
version: string;
|
|
32
|
+
displayName: string;
|
|
33
|
+
description: string;
|
|
34
|
+
unit: "count-per-million" | "ratio" | "currency-per-exposure" | "currency-per-claim" | (string & {});
|
|
35
|
+
scale: number;
|
|
36
|
+
numerator: MeasureExpression;
|
|
37
|
+
denominator: MeasureExpression;
|
|
38
|
+
numeratorLabel: string;
|
|
39
|
+
denominatorLabel: string;
|
|
40
|
+
basis: string;
|
|
41
|
+
requiredComponents: readonly string[];
|
|
42
|
+
warningRules?: readonly MetricWarningRule[];
|
|
43
|
+
/** Optional pure caller rule for domain warnings beyond the built-in comparisons. */
|
|
44
|
+
evaluateWarnings?: (context: MetricWarningContext) => readonly DiagnosticWarning[];
|
|
45
|
+
}
|
|
46
|
+
export interface MetricWarningContext {
|
|
47
|
+
definition: MetricDefinition;
|
|
48
|
+
components: Readonly<Record<string, number | null>>;
|
|
49
|
+
rawNumerator: number | null;
|
|
50
|
+
rawDenominator: number | null;
|
|
51
|
+
value: number | null;
|
|
52
|
+
}
|
|
53
|
+
export interface MetricEvaluation {
|
|
54
|
+
metricId: string;
|
|
55
|
+
metricVersion: string;
|
|
56
|
+
value: number | null;
|
|
57
|
+
rawNumerator: number | null;
|
|
58
|
+
rawDenominator: number | null;
|
|
59
|
+
numeratorLabel: string;
|
|
60
|
+
denominatorLabel: string;
|
|
61
|
+
unit: MetricDefinition["unit"];
|
|
62
|
+
scale: number;
|
|
63
|
+
basis: string;
|
|
64
|
+
rawComponents: Record<string, number | null>;
|
|
65
|
+
warnings: DiagnosticWarning[];
|
|
66
|
+
}
|
|
67
|
+
export interface MeasureAggregateCell {
|
|
68
|
+
sum: number;
|
|
69
|
+
observed: number;
|
|
70
|
+
missing: number;
|
|
71
|
+
nonFinite: number;
|
|
72
|
+
}
|
|
73
|
+
/** Mergeable sufficient statistics: grouping in stages gives the same result. */
|
|
74
|
+
export interface MeasureAggregate {
|
|
75
|
+
components: Record<string, MeasureAggregateCell>;
|
|
76
|
+
}
|
|
77
|
+
export declare function aggregateMeasures(rows: readonly DiagnosticMeasureMap[]): MeasureAggregate;
|
|
78
|
+
export declare function mergeMeasureAggregates(aggregates: readonly MeasureAggregate[]): MeasureAggregate;
|
|
79
|
+
export interface FinalizedMeasures {
|
|
80
|
+
measures: Record<string, number | null>;
|
|
81
|
+
warnings: DiagnosticWarning[];
|
|
82
|
+
}
|
|
83
|
+
export declare function finalizeMeasureAggregate(aggregate: MeasureAggregate, sparsePolicy?: SparseValuePolicy): FinalizedMeasures;
|
|
84
|
+
export declare function measureExpressionComponents(expression: MeasureExpression): string[];
|
|
85
|
+
export declare function evaluateMetric(definition: MetricDefinition, components: DiagnosticMeasureMap, inheritedWarnings?: readonly DiagnosticWarning[]): MetricEvaluation;
|
|
86
|
+
export type LayerExpression = {
|
|
87
|
+
op: "measure";
|
|
88
|
+
measure: string;
|
|
89
|
+
} | {
|
|
90
|
+
op: "add";
|
|
91
|
+
terms: readonly LayerExpression[];
|
|
92
|
+
} | {
|
|
93
|
+
op: "claim-cap";
|
|
94
|
+
measure: string;
|
|
95
|
+
limit: number;
|
|
96
|
+
};
|
|
97
|
+
export interface AmountLayerDefinition {
|
|
98
|
+
id: string;
|
|
99
|
+
displayName: string;
|
|
100
|
+
paidMeasure: string;
|
|
101
|
+
incurredMeasure: string;
|
|
102
|
+
paid: LayerExpression;
|
|
103
|
+
incurred: LayerExpression;
|
|
104
|
+
/** Documents whether inputs are already limited or this layer caps claim rows. */
|
|
105
|
+
basis: "pre-capped-additive" | "claim-level-cap" | "unlimited-additive";
|
|
106
|
+
}
|
|
107
|
+
export interface DiagnosticClaimRow<T = unknown> {
|
|
108
|
+
dimensions: T;
|
|
109
|
+
measures: DiagnosticMeasureMap;
|
|
110
|
+
}
|
|
111
|
+
/** Applies claim caps before aggregation; this function intentionally accepts claim rows, not aggregates. */
|
|
112
|
+
export declare function deriveAmountLayers<T>(rows: readonly DiagnosticClaimRow<T>[], layers: readonly AmountLayerDefinition[]): DiagnosticClaimRow<T>[];
|
|
113
|
+
export interface DiagnosticLossRow<TDimensions = unknown> {
|
|
114
|
+
id: string;
|
|
115
|
+
group: string;
|
|
116
|
+
origin: string;
|
|
117
|
+
valuation: string;
|
|
118
|
+
ageMonths: number;
|
|
119
|
+
/** Optional caller-mapped policy/fiscal period (for example a Q3-Q2 year). */
|
|
120
|
+
policyPeriod?: string;
|
|
121
|
+
/** Optional caller-owned grouping metadata; `group` remains the stable key. */
|
|
122
|
+
dimensions?: TDimensions;
|
|
123
|
+
measures: DiagnosticMeasureMap;
|
|
124
|
+
}
|
|
125
|
+
export interface DiagnosticExposureRow<TDimensions = unknown> {
|
|
126
|
+
/** Stable exposure identity. Repeated snapshots with the same key count once. */
|
|
127
|
+
key: string;
|
|
128
|
+
group: string;
|
|
129
|
+
origin: string;
|
|
130
|
+
valuation?: string;
|
|
131
|
+
measures: DiagnosticMeasureMap;
|
|
132
|
+
complete?: boolean;
|
|
133
|
+
dimensions?: TDimensions;
|
|
134
|
+
}
|
|
135
|
+
export interface DiagnosticsFilter {
|
|
136
|
+
groups?: readonly string[];
|
|
137
|
+
origins?: readonly string[];
|
|
138
|
+
originFrom?: string;
|
|
139
|
+
originThrough?: string;
|
|
140
|
+
valuations?: readonly string[];
|
|
141
|
+
valuationFrom?: string;
|
|
142
|
+
valuationThrough?: string;
|
|
143
|
+
policyPeriods?: readonly string[];
|
|
144
|
+
minAgeMonths?: number;
|
|
145
|
+
maxAgeMonths?: number;
|
|
146
|
+
}
|
|
147
|
+
export interface DiagnosticEmergencePoint<TDimensions = unknown> {
|
|
148
|
+
group: string;
|
|
149
|
+
dimensions?: TDimensions;
|
|
150
|
+
origin: string;
|
|
151
|
+
valuation: string;
|
|
152
|
+
ageMonths: number;
|
|
153
|
+
components: Record<string, number | null>;
|
|
154
|
+
componentWarnings: DiagnosticWarning[];
|
|
155
|
+
metrics: Record<string, MetricEvaluation>;
|
|
156
|
+
}
|
|
157
|
+
export interface DiagnosticMetricTriangle {
|
|
158
|
+
group: string;
|
|
159
|
+
metricId: string;
|
|
160
|
+
origins: string[];
|
|
161
|
+
ages: number[];
|
|
162
|
+
values: (number | null)[][];
|
|
163
|
+
cells: (MetricEvaluation | null)[][];
|
|
164
|
+
}
|
|
165
|
+
export interface MetricDiagnosticsResult<TDimensions = unknown> {
|
|
166
|
+
emergence: DiagnosticEmergencePoint<TDimensions>[];
|
|
167
|
+
triangles: DiagnosticMetricTriangle[];
|
|
168
|
+
latestDiagonal: DiagnosticEmergencePoint<TDimensions>[];
|
|
169
|
+
}
|
|
170
|
+
export interface RunMetricDiagnosticsInput<TDimensions = unknown> {
|
|
171
|
+
losses: readonly DiagnosticLossRow<TDimensions>[];
|
|
172
|
+
exposures?: readonly DiagnosticExposureRow<TDimensions>[];
|
|
173
|
+
metrics: readonly MetricDefinition[];
|
|
174
|
+
sparsePolicy?: SparseValuePolicy;
|
|
175
|
+
filter?: DiagnosticsFilter;
|
|
176
|
+
/** Maps source group keys to requested aggregate keys before summation. */
|
|
177
|
+
groupMap?: Readonly<Record<string, string>>;
|
|
178
|
+
/** Metadata for mapped/combined output groups. */
|
|
179
|
+
groupDimensions?: Readonly<Record<string, TDimensions>>;
|
|
180
|
+
}
|
|
181
|
+
export interface DiagnosticExposureReconciliationFinding {
|
|
182
|
+
code: "DUPLICATE_EXPOSURE_KEY" | "CONFLICTING_EXPOSURE";
|
|
183
|
+
exposureKey: string;
|
|
184
|
+
group: string;
|
|
185
|
+
origin: string;
|
|
186
|
+
message: string;
|
|
187
|
+
}
|
|
188
|
+
export interface ReconciledDiagnosticExposures<TDimensions = unknown> {
|
|
189
|
+
exposures: DiagnosticExposureRow<TDimensions>[];
|
|
190
|
+
findings: DiagnosticExposureReconciliationFinding[];
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Reconciles stable exposure keys before aggregation. Identical valuation
|
|
194
|
+
* copies collapse to one row. Conflicting copies become one incomplete/null
|
|
195
|
+
* row so exposure-based metrics fail closed rather than using a partial base.
|
|
196
|
+
*/
|
|
197
|
+
export declare function reconcileDiagnosticExposureKeys<TDimensions = unknown>(rows: readonly DiagnosticExposureRow<TDimensions>[]): ReconciledDiagnosticExposures<TDimensions>;
|
|
198
|
+
/**
|
|
199
|
+
* Generic quarterly diagnostics engine. Loss rows aggregate by
|
|
200
|
+
* group/origin/valuation; exposure rows aggregate once by stable exposure key;
|
|
201
|
+
* every metric then divides the aggregated expressions exactly once.
|
|
202
|
+
*/
|
|
203
|
+
export declare function runMetricDiagnostics<TDimensions = unknown>(input: RunMetricDiagnosticsInput<TDimensions>): MetricDiagnosticsResult<TDimensions>;
|
|
204
|
+
export declare function metricTriangleFromEmergence(points: readonly DiagnosticEmergencePoint<unknown>[], metricId: string): DiagnosticMetricTriangle;
|
|
205
|
+
export declare function sameMaturity<TDimensions>(result: MetricDiagnosticsResult<TDimensions>, ageMonths: number, groups?: readonly string[]): DiagnosticEmergencePoint<TDimensions>[];
|
|
206
|
+
export interface CommonMaturityResult<TDimensions = unknown> {
|
|
207
|
+
ageMonths: number | null;
|
|
208
|
+
points: DiagnosticEmergencePoint<TDimensions>[];
|
|
209
|
+
}
|
|
210
|
+
/** Latest maturity present in every selected group; selection is caller-defined. */
|
|
211
|
+
export declare function commonMaturity<TDimensions>(result: MetricDiagnosticsResult<TDimensions>, groups: readonly string[]): CommonMaturityResult<TDimensions>;
|
|
212
|
+
//# sourceMappingURL=metricDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metricDiagnostics.d.ts","sourceRoot":"","sources":["../src/metricDiagnostics.ts"],"names":[],"mappings":"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"}
|