@actuarial-ts/core 0.6.0 → 0.6.1
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 +3 -3
- package/dist/capping.d.ts.map +1 -1
- package/dist/capping.js +39 -6
- package/dist/capping.js.map +1 -1
- package/dist/diagnosticAggregation.d.ts +3 -0
- package/dist/diagnosticAggregation.d.ts.map +1 -1
- package/dist/diagnosticAggregation.js +30 -7
- package/dist/diagnosticAggregation.js.map +1 -1
- package/dist/diagnosticDefinitions.d.ts +3 -0
- package/dist/diagnosticDefinitions.d.ts.map +1 -1
- package/dist/diagnosticDefinitions.js +844 -182
- package/dist/diagnosticDefinitions.js.map +1 -1
- package/dist/diagnosticDerivations.d.ts +23 -0
- package/dist/diagnosticDerivations.d.ts.map +1 -1
- package/dist/diagnosticDerivations.js +187 -43
- package/dist/diagnosticDerivations.js.map +1 -1
- package/dist/diagnosticExposure.d.ts +2 -2
- package/dist/diagnosticExposure.d.ts.map +1 -1
- package/dist/diagnosticExposure.js +228 -20
- package/dist/diagnosticExposure.js.map +1 -1
- package/dist/diagnosticExpressions.d.ts +1 -1
- package/dist/diagnosticExpressions.d.ts.map +1 -1
- package/dist/diagnosticExpressions.js +35 -15
- package/dist/diagnosticExpressions.js.map +1 -1
- package/dist/diagnosticFormulas.d.ts +3 -0
- package/dist/diagnosticFormulas.d.ts.map +1 -1
- package/dist/diagnosticFormulas.js +160 -26
- package/dist/diagnosticFormulas.js.map +1 -1
- package/dist/diagnosticIdentity.d.ts +15 -1
- package/dist/diagnosticIdentity.d.ts.map +1 -1
- package/dist/diagnosticIdentity.js +318 -51
- package/dist/diagnosticIdentity.js.map +1 -1
- package/dist/diagnosticOrdering.d.ts +8 -0
- package/dist/diagnosticOrdering.d.ts.map +1 -0
- package/dist/diagnosticOrdering.js +73 -0
- package/dist/diagnosticOrdering.js.map +1 -0
- package/dist/diagnosticPeriodAxis.d.ts +9 -0
- package/dist/diagnosticPeriodAxis.d.ts.map +1 -0
- package/dist/diagnosticPeriodAxis.js +69 -0
- package/dist/diagnosticPeriodAxis.js.map +1 -0
- package/dist/diagnosticPeriods.d.ts +2 -3
- package/dist/diagnosticPeriods.d.ts.map +1 -1
- package/dist/diagnosticPeriods.js +20 -68
- package/dist/diagnosticPeriods.js.map +1 -1
- package/dist/diagnosticPreparation.d.ts +47 -14
- package/dist/diagnosticPreparation.d.ts.map +1 -1
- package/dist/diagnosticPreparation.js +1482 -112
- package/dist/diagnosticPreparation.js.map +1 -1
- package/dist/diagnosticReview.d.ts +36 -14
- package/dist/diagnosticReview.d.ts.map +1 -1
- package/dist/diagnosticReview.js +448 -42
- package/dist/diagnosticReview.js.map +1 -1
- package/dist/diagnosticRunner.d.ts +2 -1
- package/dist/diagnosticRunner.d.ts.map +1 -1
- package/dist/diagnosticRunner.js +656 -70
- package/dist/diagnosticRunner.js.map +1 -1
- package/dist/diagnosticRuntime.d.ts +26 -0
- package/dist/diagnosticRuntime.d.ts.map +1 -0
- package/dist/diagnosticRuntime.js +243 -0
- package/dist/diagnosticRuntime.js.map +1 -0
- package/dist/diagnosticSourceOrdering.d.ts +6 -0
- package/dist/diagnosticSourceOrdering.d.ts.map +1 -0
- package/dist/diagnosticSourceOrdering.js +38 -0
- package/dist/diagnosticSourceOrdering.js.map +1 -0
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/mack.d.ts +4 -0
- package/dist/mack.d.ts.map +1 -1
- package/dist/mack.js +32 -4
- package/dist/mack.js.map +1 -1
- package/dist/triangle.d.ts.map +1 -1
- package/dist/triangle.js +59 -9
- package/dist/triangle.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +22 -8
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/src/capping.ts +109 -18
- package/src/diagnosticAggregation.ts +69 -20
- package/src/diagnosticDefinitions.ts +2675 -426
- package/src/diagnosticDerivations.ts +281 -49
- package/src/diagnosticExposure.ts +441 -50
- package/src/diagnosticExpressions.ts +99 -17
- package/src/diagnosticFormulas.ts +239 -39
- package/src/diagnosticIdentity.ts +691 -191
- package/src/diagnosticOrdering.ts +106 -0
- package/src/diagnosticPeriodAxis.ts +92 -0
- package/src/diagnosticPeriods.ts +67 -82
- package/src/diagnosticPreparation.ts +2369 -127
- package/src/diagnosticReview.ts +864 -58
- package/src/diagnosticRunner.ts +1076 -72
- package/src/diagnosticRuntime.ts +264 -0
- package/src/diagnosticSourceOrdering.ts +50 -0
- package/src/index.ts +31 -3
- package/src/mack.ts +72 -9
- package/src/triangle.ts +103 -13
- package/src/types.ts +55 -20
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Pure, framework-free P&C actuarial math for TypeScript. It includes triangles, deterministic and stochastic reserving, trends/on-leveling, limits and ILFs, discounting, and generalized definition-driven casualty diagnostics.
|
|
4
4
|
|
|
5
|
-
The package is designed to support
|
|
5
|
+
The package is designed to support the actuary's compliance with the ASOPs; it does not make a work product compliant and is not “ASOP-approved.” The credentialed actuary remains responsible for data, assumptions, selections, review, and communication.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install @actuarial-ts/core@0.6.
|
|
10
|
+
npm install @actuarial-ts/core@0.6.1
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
ESM, TypeScript-first, zero runtime dependencies, Node 20+.
|
|
@@ -79,7 +79,7 @@ All metrics are ratio-of-sums: measures are aggregated at source-group/origin/va
|
|
|
79
79
|
|
|
80
80
|
Compilation validates the whole graph atomically: IDs, sources, role types, compatibility groups, development semantics, derivation acyclicity, expression limits, rule operands, basis/population references, and period coordinates. Authentic compiled/prepared objects are owner-branded and frozen. Formula, calculation, definition, preparation, and result identities are deterministic FNV-1a/JCS integrity aids—not cryptographic signatures.
|
|
81
81
|
|
|
82
|
-
See the generated [formula and instance catalog](https://github.com/yerromnitsuj/actng/blob/v0.6.
|
|
82
|
+
See the generated [formula and instance catalog](https://github.com/yerromnitsuj/actng/blob/v0.6.1/docs/reference/diagnostic-formulas.md) and [0.6 migration guide](https://github.com/yerromnitsuj/actng/blob/v0.6.1/docs/migrations/0.6-generalized-diagnostics.md).
|
|
83
83
|
|
|
84
84
|
## Main method families
|
|
85
85
|
|
package/dist/capping.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capping.d.ts","sourceRoot":"","sources":["../src/capping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"capping.d.ts","sourceRoot":"","sources":["../src/capping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAcR;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAC1B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC7B,IAAI,EAAE,MAAM,GACX,MAAM,CAsBR;AAkCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,UAAU,GAClB,aAAa,EAAE,CAejB;AAKD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,GAAE,2BAAgC,GACxC,oBAAoB,CA4JtB"}
|
package/dist/capping.js
CHANGED
|
@@ -25,7 +25,18 @@ export function latestAccidentYear(claims, asOfDate) {
|
|
|
25
25
|
}
|
|
26
26
|
/** The effective cap for one accident year under the index. */
|
|
27
27
|
export function effectiveCap(options, year) {
|
|
28
|
-
|
|
28
|
+
if (!isNum(options.cap) ||
|
|
29
|
+
options.cap <= 0 ||
|
|
30
|
+
!isNum(options.indexRate) ||
|
|
31
|
+
options.indexRate <= -1 ||
|
|
32
|
+
!Number.isSafeInteger(options.baseYear) ||
|
|
33
|
+
!Number.isSafeInteger(year)) {
|
|
34
|
+
throw new ReservingError("BAD_CAP", "Cap, index rate, base year, and accident year must define a finite positive layer");
|
|
35
|
+
}
|
|
36
|
+
const value = options.cap * Math.pow(1 + options.indexRate, year - options.baseYear);
|
|
37
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
38
|
+
throw new ReservingError("BAD_CAP", "Indexed effective cap must be finite and positive");
|
|
39
|
+
return value;
|
|
29
40
|
}
|
|
30
41
|
function resolveOptions(claims, options) {
|
|
31
42
|
if (!isNum(options.cap) || options.cap <= 0) {
|
|
@@ -41,7 +52,7 @@ function resolveOptions(claims, options) {
|
|
|
41
52
|
for (const snap of claims)
|
|
42
53
|
baseYear = Math.max(baseYear, accidentYear(snap));
|
|
43
54
|
}
|
|
44
|
-
if (!isNum(baseYear) || !Number.
|
|
55
|
+
if (!isNum(baseYear) || !Number.isSafeInteger(baseYear)) {
|
|
45
56
|
throw new ReservingError("BAD_CAP", "Could not resolve a base year for the cap index");
|
|
46
57
|
}
|
|
47
58
|
return { cap: options.cap, indexRate, baseYear };
|
|
@@ -110,6 +121,13 @@ export function claimSizeDiagnostics(claims, options = {}) {
|
|
|
110
121
|
for (const snap of latest.values()) {
|
|
111
122
|
const year = accidentYear(snap);
|
|
112
123
|
const incurred = snap.paidToDate + snap.caseReserve;
|
|
124
|
+
if (!Number.isSafeInteger(year) ||
|
|
125
|
+
year < 1 ||
|
|
126
|
+
year > 9999 ||
|
|
127
|
+
!Number.isFinite(incurred) ||
|
|
128
|
+
incurred < 0) {
|
|
129
|
+
throw new ReservingError("BAD_LOSSES", "Claim-size diagnostics require valid accident years and finite nonnegative incurred amounts");
|
|
130
|
+
}
|
|
113
131
|
let arr = byYear.get(year);
|
|
114
132
|
if (!arr)
|
|
115
133
|
byYear.set(year, (arr = []));
|
|
@@ -117,7 +135,13 @@ export function claimSizeDiagnostics(claims, options = {}) {
|
|
|
117
135
|
}
|
|
118
136
|
const years = [...byYear.keys()].sort((a, b) => a - b);
|
|
119
137
|
const indexRate = options.indexRate ?? 0;
|
|
138
|
+
if (years.length === 0)
|
|
139
|
+
throw new ReservingError("NO_CLAIMS", "No claim snapshots on or before the analysis date; cannot analyze claim sizes");
|
|
140
|
+
if (!isNum(indexRate) || indexRate <= -1)
|
|
141
|
+
throw new ReservingError("BAD_CAP", "The cap index rate must be finite and greater than -100%");
|
|
120
142
|
const baseYear = options.baseYear ?? years[years.length - 1];
|
|
143
|
+
if (!Number.isSafeInteger(baseYear))
|
|
144
|
+
throw new ReservingError("BAD_CAP", "The cap base year must be a safe integer");
|
|
121
145
|
const yearRows = years.map((year) => {
|
|
122
146
|
const sorted = [...byYear.get(year)].sort((a, b) => a - b);
|
|
123
147
|
return {
|
|
@@ -125,7 +149,10 @@ export function claimSizeDiagnostics(claims, options = {}) {
|
|
|
125
149
|
claimCount: sorted.length,
|
|
126
150
|
totalIncurred: sorted.reduce((a, v) => a + v, 0),
|
|
127
151
|
maxClaim: sorted[sorted.length - 1] ?? 0,
|
|
128
|
-
percentiles: PERCENTILES.map((p) => ({
|
|
152
|
+
percentiles: PERCENTILES.map((p) => ({
|
|
153
|
+
p,
|
|
154
|
+
value: percentile(sorted, p),
|
|
155
|
+
})),
|
|
129
156
|
};
|
|
130
157
|
});
|
|
131
158
|
// Candidate caps: provided, or derived from the pooled distribution so the
|
|
@@ -134,6 +161,13 @@ export function claimSizeDiagnostics(claims, options = {}) {
|
|
|
134
161
|
// incurred is deflated to that level before taking percentiles - otherwise
|
|
135
162
|
// a nominal anchor re-indexed forward overshoots the whole distribution
|
|
136
163
|
// and every derived candidate reads near-zero pierce.
|
|
164
|
+
for (const [label, values] of [
|
|
165
|
+
["candidateCaps", options.candidateCaps],
|
|
166
|
+
["extraCaps", options.extraCaps],
|
|
167
|
+
]) {
|
|
168
|
+
if (values?.some((value) => !isNum(value) || value <= 0))
|
|
169
|
+
throw new ReservingError("BAD_CAP", `${label} must contain only finite positive caps`);
|
|
170
|
+
}
|
|
137
171
|
let candidateCaps = options.candidateCaps;
|
|
138
172
|
if (!candidateCaps || candidateCaps.length === 0) {
|
|
139
173
|
const pooled = [...latest.values()]
|
|
@@ -163,7 +197,7 @@ export function claimSizeDiagnostics(claims, options = {}) {
|
|
|
163
197
|
let totalExcess = 0;
|
|
164
198
|
let totalIncurred = 0;
|
|
165
199
|
const cells = years.map((year) => {
|
|
166
|
-
const capY =
|
|
200
|
+
const capY = effectiveCap({ ...resolved, cap }, year);
|
|
167
201
|
const values = byYear.get(year);
|
|
168
202
|
let pierce = 0;
|
|
169
203
|
let excess = 0;
|
|
@@ -200,8 +234,7 @@ export function claimSizeDiagnostics(claims, options = {}) {
|
|
|
200
234
|
candidates,
|
|
201
235
|
baseYear,
|
|
202
236
|
indexRate,
|
|
203
|
-
nonZeroClaimCount: [...latest.values()].filter((s) => s.paidToDate + s.caseReserve > 0)
|
|
204
|
-
.length,
|
|
237
|
+
nonZeroClaimCount: [...latest.values()].filter((s) => s.paidToDate + s.caseReserve > 0).length,
|
|
205
238
|
};
|
|
206
239
|
}
|
|
207
240
|
//# sourceMappingURL=capping.js.map
|
package/dist/capping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capping.js","sourceRoot":"","sources":["../src/capping.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AA4BlC,SAAS,YAAY,CAAC,IAAmB;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,
|
|
1
|
+
{"version":3,"file":"capping.js","sourceRoot":"","sources":["../src/capping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { DiagnosticMeasureStats, DiagnosticMissingPolicy, DiagnosticSourceLocation } from "./diagnosticDefinitions.js";
|
|
2
|
+
import type { DiagnosticMetricFinding } from "./diagnosticFormulas.js";
|
|
2
3
|
export interface DiagnosticStructuralBlocker {
|
|
3
4
|
readonly code: string;
|
|
4
5
|
readonly message: string;
|
|
5
6
|
readonly sourceIds: readonly string[];
|
|
6
7
|
readonly sources: readonly DiagnosticSourceLocation[];
|
|
8
|
+
/** Exact preparation finding whose dependency this blocker represents. */
|
|
9
|
+
readonly finding?: DiagnosticMetricFinding;
|
|
7
10
|
}
|
|
8
11
|
export interface DiagnosticMeasureContributionBase {
|
|
9
12
|
readonly sourceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticAggregation.d.ts","sourceRoot":"","sources":["../src/diagnosticAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"diagnosticAggregation.d.ts","sourceRoot":"","sources":["../src/diagnosticAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC,iCAAiC,GAAG;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC,GACF,CAAC,iCAAiC,GAAG;IACnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB,CAAC,GACF,CAAC,iCAAiC,GAAG;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB,CAAC,GACF,CAAC,iCAAiC,GAAG;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;CAC3E,CAAC,CAAC;AAEP,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,OAAO,EAAE,uBAAuB,EAChC,OAAO,GAAE,SAAS,wBAAwB,EAAO,EACjD,YAAY,SAAI,GACf,6BAA6B,CA8B/B;AAkBD,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,SAAS,6BAA6B,EAAE,EACvD,aAAa,EAAE,uBAAuB,EACtC,QAAQ,GAAE,SAAS,2BAA2B,EAAO,GACpD,sBAAsB,CA2BxB"}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
|
+
import { compareDiagnosticContributions } from "./diagnosticOrdering.js";
|
|
1
2
|
export function auditedDiagnosticContribution(sourceId, value, missing, sources = [], deduplicated = 0) {
|
|
2
|
-
const base = {
|
|
3
|
+
const base = {
|
|
4
|
+
sourceId,
|
|
5
|
+
sources: Object.freeze([...sources]),
|
|
6
|
+
deduplicated,
|
|
7
|
+
};
|
|
3
8
|
if (value === null || value === undefined)
|
|
4
9
|
return missing === "zero"
|
|
5
|
-
? Object.freeze({
|
|
10
|
+
? Object.freeze({
|
|
11
|
+
...base,
|
|
12
|
+
status: "imputed-zero",
|
|
13
|
+
value: 0,
|
|
14
|
+
})
|
|
6
15
|
: Object.freeze({ ...base, status: "missing", value: null });
|
|
7
16
|
if (!Number.isFinite(value))
|
|
8
17
|
return Object.freeze({
|
|
9
18
|
...base,
|
|
10
19
|
status: "non-finite",
|
|
11
20
|
value: null,
|
|
12
|
-
nonFiniteKind: Number.isNaN(value)
|
|
21
|
+
nonFiniteKind: Number.isNaN(value)
|
|
22
|
+
? "nan"
|
|
23
|
+
: value > 0
|
|
24
|
+
? "positive-infinity"
|
|
25
|
+
: "negative-infinity",
|
|
13
26
|
});
|
|
14
|
-
return Object.freeze({
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
...base,
|
|
29
|
+
status: "observed",
|
|
30
|
+
value: Object.is(value, -0) ? 0 : value,
|
|
31
|
+
});
|
|
15
32
|
}
|
|
16
33
|
function neumaier(values) {
|
|
17
34
|
let sum = 0;
|
|
18
35
|
let correction = 0;
|
|
19
36
|
for (const value of values) {
|
|
20
37
|
const next = sum + value;
|
|
21
|
-
correction +=
|
|
38
|
+
correction +=
|
|
39
|
+
Math.abs(sum) >= Math.abs(value)
|
|
40
|
+
? sum - next + value
|
|
41
|
+
: value - next + sum;
|
|
22
42
|
sum = next;
|
|
23
43
|
if (!Number.isFinite(sum) || !Number.isFinite(correction))
|
|
24
44
|
return null;
|
|
@@ -27,12 +47,15 @@ function neumaier(values) {
|
|
|
27
47
|
return Number.isFinite(result) ? (Object.is(result, -0) ? 0 : result) : null;
|
|
28
48
|
}
|
|
29
49
|
export function finalizeDiagnosticContributions(contributions, missingPolicy, blockers = []) {
|
|
30
|
-
const ordered = [...contributions].sort(
|
|
50
|
+
const ordered = [...contributions].sort(compareDiagnosticContributions);
|
|
31
51
|
const observed = ordered.filter((item) => item.status === "observed");
|
|
32
52
|
const imputed = ordered.filter((item) => item.status === "imputed-zero");
|
|
33
53
|
const missing = ordered.filter((item) => item.status === "missing").length + imputed.length;
|
|
34
54
|
const nonFinite = ordered.filter((item) => item.status === "non-finite").length;
|
|
35
|
-
const finiteSum = neumaier([
|
|
55
|
+
const finiteSum = neumaier([
|
|
56
|
+
...observed.map((item) => item.value),
|
|
57
|
+
...imputed.map(() => 0),
|
|
58
|
+
]);
|
|
36
59
|
const blocked = blockers.length > 0;
|
|
37
60
|
const sum = nonFinite > 0 || blocked || finiteSum === null ? null : finiteSum;
|
|
38
61
|
const value = sum === null || (missingPolicy === "unknown" && missing > 0) ? null : sum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticAggregation.js","sourceRoot":"","sources":["../src/diagnosticAggregation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diagnosticAggregation.js","sourceRoot":"","sources":["../src/diagnosticAggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type DiagnosticClaimExpression, type DiagnosticMeasureExpression, type DiagnosticRoleExpression } from "./diagnosticExpressions.js";
|
|
2
2
|
import { type NormalizedDiagnosticCalculationScope, type NormalizedDiagnosticDefinitionIdentity, type NormalizedDiagnosticFormulaIdentity } from "./diagnosticIdentity.js";
|
|
3
|
+
import { type DiagnosticValidationIssue } from "./types.js";
|
|
3
4
|
export type DiagnosticMeasureKind = "count" | "amount" | "exposure";
|
|
4
5
|
export type DiagnosticMeasureSource = "loss" | "exposure" | "derived";
|
|
5
6
|
export type DiagnosticMissingPolicy = "unknown" | "zero";
|
|
@@ -277,6 +278,8 @@ export interface CompiledDiagnosticDefinitionInternals {
|
|
|
277
278
|
readonly evaluationDependenciesByInstanceId: ReadonlyMap<string, readonly string[]>;
|
|
278
279
|
readonly derivationsByOutputMeasureId: ReadonlyMap<string, DiagnosticDerivedMeasureDefinition>;
|
|
279
280
|
}
|
|
281
|
+
/** Internal boundary reuse: direct helpers use the compiler's exact axis contract. */
|
|
282
|
+
export declare function validateDiagnosticPeriodAxisInput(value: unknown): readonly DiagnosticValidationIssue[];
|
|
280
283
|
/** Compiles, validates, normalizes, fingerprints, and freezes a diagnostic definition. */
|
|
281
284
|
export declare function compileDiagnosticDefinition(value: DiagnosticDefinition | NormalizedDiagnosticDefinitionIdentity): CompiledDiagnosticDefinition;
|
|
282
285
|
export declare function assertCompiledDiagnosticDefinition(value: unknown): asserts value is CompiledDiagnosticDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticDefinitions.d.ts","sourceRoot":"","sources":["../src/diagnosticDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"diagnosticDefinitions.d.ts","sourceRoot":"","sources":["../src/diagnosticDefinitions.ts"],"names":[],"mappings":"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"}
|