@actuarial-ts/core 0.8.0 → 0.8.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 +6 -6
- package/dist/analysisComparison.d.ts +6 -0
- package/dist/analysisComparison.d.ts.map +1 -0
- package/dist/analysisComparison.js +52 -0
- package/dist/analysisComparison.js.map +1 -0
- package/dist/analysisRecipe.d.ts +2 -2
- package/dist/analysisRecipe.d.ts.map +1 -1
- package/dist/analysisRecipe.js +30 -55
- package/dist/analysisRecipe.js.map +1 -1
- package/dist/analysisRecipeStatistics.d.ts +11 -0
- package/dist/analysisRecipeStatistics.d.ts.map +1 -0
- package/dist/analysisRecipeStatistics.js +49 -0
- package/dist/analysisRecipeStatistics.js.map +1 -0
- package/dist/descriptiveStatistics.d.ts.map +1 -1
- package/dist/descriptiveStatistics.js +4 -4
- package/dist/descriptiveStatistics.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/analysisComparison.ts +71 -0
- package/src/analysisRecipe.ts +29 -59
- package/src/analysisRecipeStatistics.ts +59 -0
- package/src/descriptiveStatistics.ts +4 -3
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -6,13 +6,13 @@ The package is designed to support the actuary's compliance with the ASOPs; it d
|
|
|
6
6
|
|
|
7
7
|
SDK 0.8 adds versioned loss history, irregular period and exposure contracts,
|
|
8
8
|
population statistics, shared financial terms, and deterministic recipe and
|
|
9
|
-
scenario execution. See the [0.8 adoption guide](https://github.com/yerromnitsuj/actng/blob/v0.8.
|
|
10
|
-
and [customization reference](https://github.com/yerromnitsuj/actng/blob/v0.8.
|
|
9
|
+
scenario execution. See the [0.8 adoption guide](https://github.com/yerromnitsuj/actng/blob/v0.8.1/docs/migrations/0.8-reusable-customization.md)
|
|
10
|
+
and [customization reference](https://github.com/yerromnitsuj/actng/blob/v0.8.1/docs/reference/reusable-customization.md).
|
|
11
11
|
|
|
12
12
|
## Install
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
npm install @actuarial-ts/core@0.8.
|
|
15
|
+
npm install @actuarial-ts/core@0.8.1
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
ESM, TypeScript-first, zero runtime dependencies, Node 20+.
|
|
@@ -114,8 +114,8 @@ ordinary preparation. These functions do not issue review or execution receipts.
|
|
|
114
114
|
|
|
115
115
|
These are lower-level calculation APIs. For a host import or analysis boundary
|
|
116
116
|
that enforces both review and metric execution policy, use the validated gateway
|
|
117
|
-
in `@actuarial-ts/data`. The runnable [compact adoption guide](https://github.com/yerromnitsuj/actng/blob/v0.8.
|
|
118
|
-
covers the complete workflow and [streamed replay](https://github.com/yerromnitsuj/actng/blob/v0.8.
|
|
117
|
+
in `@actuarial-ts/data`. The runnable [compact adoption guide](https://github.com/yerromnitsuj/actng/blob/v0.8.1/docs/migrations/0.7-compact-diagnostics.md)
|
|
118
|
+
covers the complete workflow and [streamed replay](https://github.com/yerromnitsuj/actng/blob/v0.8.1/docs/reference/diagnostic-replay-stream.md).
|
|
119
119
|
|
|
120
120
|
The six built-in formulas are basis-independent. The factory creates ten count instances plus six per amount basis (`10 + 6 × basisCount`): one basis produces 16, two produce 22. A `$250K`, primary, gross, net, or ceded calculation is represented by caller-declared amount measures and a structured `AmountBasisDefinition`; it does not need a separate capped formula. Claim-level caps use `claim-layer` derivations before aggregation. Pre-limited external values record their source/transformation instead of implying the SDK recreated an unavailable claim-level operation.
|
|
121
121
|
|
|
@@ -132,7 +132,7 @@ numeric exposure values. This is a bounded capacity, not an unlimited scale clai
|
|
|
132
132
|
|
|
133
133
|
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.
|
|
134
134
|
|
|
135
|
-
See the generated [formula and instance catalog](https://github.com/yerromnitsuj/actng/blob/v0.8.
|
|
135
|
+
See the generated [formula and instance catalog](https://github.com/yerromnitsuj/actng/blob/v0.8.1/docs/reference/diagnostic-formulas.md) and [0.6 migration guide](https://github.com/yerromnitsuj/actng/blob/v0.8.1/docs/migrations/0.6-generalized-diagnostics.md).
|
|
136
136
|
|
|
137
137
|
## Main method families
|
|
138
138
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AnalysisResult, AnalysisScenarioDifference } from "./customizationContracts.js";
|
|
2
|
+
/** Matches exact coordinates and retains unmatched values from both results. */
|
|
3
|
+
export declare function compareAnalysisResults(baseline: AnalysisResult, scenario: AnalysisResult): readonly AnalysisScenarioDifference[];
|
|
4
|
+
/** Internal roll-forward alignment: evaluation is the comparison axis, not a join key. */
|
|
5
|
+
export declare function compareAnalysisEvaluations(baseline: AnalysisResult, scenario: AnalysisResult, priorEvaluationDate: string, currentEvaluationDate: string): readonly AnalysisScenarioDifference[];
|
|
6
|
+
//# sourceMappingURL=analysisComparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisComparison.d.ts","sourceRoot":"","sources":["../src/analysisComparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAEd,0BAA0B,EAE3B,MAAM,6BAA6B,CAAC;AAmDrC,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,0BAA0B,EAAE,CAEhI;AAED,0FAA0F;AAC1F,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,EACxB,mBAAmB,EAAE,MAAM,EAC3B,qBAAqB,EAAE,MAAM,GAC5B,SAAS,0BAA0B,EAAE,CAEvC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { canonicalJson } from "./canonical.js";
|
|
2
|
+
import { snapshotDiagnosticJson } from "./diagnosticRuntime.js";
|
|
3
|
+
import { DiagnosticValidationError } from "./types.js";
|
|
4
|
+
function indexValues(result, omitted) {
|
|
5
|
+
const indexed = new Map();
|
|
6
|
+
for (const value of result.values) {
|
|
7
|
+
const coordinates = Object.fromEntries(Object.entries(value.coordinates).filter(([name]) => !omitted.has(name)));
|
|
8
|
+
const key = canonicalJson([value.measureId, coordinates]);
|
|
9
|
+
if (indexed.has(key))
|
|
10
|
+
throw new DiagnosticValidationError([{
|
|
11
|
+
domain: "configuration", code: "incompatible-semantics", path: "$.values",
|
|
12
|
+
message: "Comparison coordinates must identify one value per measure on each side",
|
|
13
|
+
}]);
|
|
14
|
+
indexed.set(key, value);
|
|
15
|
+
}
|
|
16
|
+
return indexed;
|
|
17
|
+
}
|
|
18
|
+
function compare(baseline, scenario, omitted, evaluationPair) {
|
|
19
|
+
const left = indexValues(baseline, omitted);
|
|
20
|
+
const right = indexValues(scenario, omitted);
|
|
21
|
+
const keys = [...new Set([...left.keys(), ...right.keys()])].sort();
|
|
22
|
+
return snapshotDiagnosticJson(keys.map((key) => {
|
|
23
|
+
const before = left.get(key);
|
|
24
|
+
const after = right.get(key);
|
|
25
|
+
const value = before ?? after;
|
|
26
|
+
if (before !== undefined && after !== undefined && before.unit !== after.unit)
|
|
27
|
+
throw new DiagnosticValidationError([{
|
|
28
|
+
domain: "configuration", code: "incompatible-semantics", path: `$.values.${value.measureId}.unit`,
|
|
29
|
+
message: `Cannot compare ${before.unit} with ${after.unit}`,
|
|
30
|
+
}]);
|
|
31
|
+
const baselineValue = before?.status === "available" ? before.value : null;
|
|
32
|
+
const scenarioValue = after?.status === "available" ? after.value : null;
|
|
33
|
+
const difference = baselineValue === null || scenarioValue === null ? null : scenarioValue - baselineValue;
|
|
34
|
+
const absoluteDifference = difference !== null && Number.isFinite(difference) ? difference : null;
|
|
35
|
+
const percentage = absoluteDifference === null || baselineValue === null || baselineValue === 0
|
|
36
|
+
? null : absoluteDifference / baselineValue;
|
|
37
|
+
const percentageDifference = percentage !== null && Number.isFinite(percentage) ? percentage : null;
|
|
38
|
+
const coordinates = evaluationPair === undefined
|
|
39
|
+
? value.coordinates
|
|
40
|
+
: { ...Object.fromEntries(Object.entries(value.coordinates).filter(([name]) => name !== "evaluationDate")), ...evaluationPair };
|
|
41
|
+
return { measureId: value.measureId, unit: value.unit, coordinates, baselineValue, scenarioValue, absoluteDifference, percentageDifference };
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
/** Matches exact coordinates and retains unmatched values from both results. */
|
|
45
|
+
export function compareAnalysisResults(baseline, scenario) {
|
|
46
|
+
return compare(baseline, scenario, new Set());
|
|
47
|
+
}
|
|
48
|
+
/** Internal roll-forward alignment: evaluation is the comparison axis, not a join key. */
|
|
49
|
+
export function compareAnalysisEvaluations(baseline, scenario, priorEvaluationDate, currentEvaluationDate) {
|
|
50
|
+
return compare(baseline, scenario, new Set(["evaluationDate", "originLabel"]), { priorEvaluationDate, currentEvaluationDate });
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=analysisComparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisComparison.js","sourceRoot":"","sources":["../src/analysisComparison.ts"],"names":[],"mappings":"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"}
|
package/dist/analysisRecipe.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AnalysisDefinition, AnalysisRecipe, AnalysisResult, AnalysisScenario, AnalysisScenarioGrid,
|
|
1
|
+
import type { AnalysisDefinition, AnalysisRecipe, AnalysisResult, AnalysisScenario, AnalysisScenarioGrid, AnalysisScenarioRun, AnalysisRollForward, AnalysisScenarioBridgeStep, AnalysisResultCache, CustomizationResourceLimits, CustomizationExposureObservation, ExposureAllocationTarget, ExposureRevisionSelection, HistoricalDatasetInput } from "./customizationContracts.js";
|
|
2
|
+
export { compareAnalysisResults } from "./analysisComparison.js";
|
|
2
3
|
/** Executes the closed, deterministic recipe vocabulary over loss history and exposure inputs. */
|
|
3
4
|
export declare function runAnalysisRecipe(input: {
|
|
4
5
|
readonly history: HistoricalDatasetInput;
|
|
@@ -10,7 +11,6 @@ export declare function runAnalysisRecipe(input: {
|
|
|
10
11
|
readonly evaluationDate?: string;
|
|
11
12
|
}): AnalysisResult;
|
|
12
13
|
export declare function applyAnalysisScenario(definition: AnalysisDefinition, scenario: AnalysisScenario): AnalysisDefinition;
|
|
13
|
-
export declare function compareAnalysisResults(baseline: AnalysisResult, scenario: AnalysisResult): readonly AnalysisScenarioDifference[];
|
|
14
14
|
/** Runs a bounded list of controlled scenarios against one immutable baseline. */
|
|
15
15
|
export declare function runAnalysisScenarios(input: {
|
|
16
16
|
readonly history: HistoricalDatasetInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysisRecipe.d.ts","sourceRoot":"","sources":["../src/analysisRecipe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analysisRecipe.d.ts","sourceRoot":"","sources":["../src/analysisRecipe.ts"],"names":[],"mappings":"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"}
|
package/dist/analysisRecipe.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { canonicalJson, fnv1a64 } from "./canonical.js";
|
|
2
|
+
import { CORE_PACKAGE_VERSION } from "./version.js";
|
|
2
3
|
import { calculateAnalysisStatistic } from "./descriptiveStatistics.js";
|
|
4
|
+
import { calculateRecipeExposureRatio } from "./analysisRecipeStatistics.js";
|
|
5
|
+
import { compareAnalysisEvaluations, compareAnalysisResults } from "./analysisComparison.js";
|
|
6
|
+
export { compareAnalysisResults } from "./analysisComparison.js";
|
|
3
7
|
import { isDiagnosticToken, snapshotDiagnosticJson } from "./diagnosticRuntime.js";
|
|
4
8
|
import { earnAndAllocateExposure } from "./exposureEarning.js";
|
|
5
9
|
import { selectExposureRevisions, selectExposureValuation } from "./exposureRevisions.js";
|
|
@@ -133,7 +137,9 @@ export function runAnalysisRecipe(input) {
|
|
|
133
137
|
const reportingPopulation = reportingSelection.matches;
|
|
134
138
|
const reportingKeys = new Set(reportingPopulation.map(key));
|
|
135
139
|
let effective = financialPopulation;
|
|
136
|
-
|
|
140
|
+
// A conflicted or incomplete history cannot authorize arithmetic over the
|
|
141
|
+
// surviving subset as though it were the complete financial population.
|
|
142
|
+
let financialExecutionFindings = [...prepared.findings, ...financialSelection.findings];
|
|
137
143
|
const reportingExecutionFindings = [...reportingSelection.findings];
|
|
138
144
|
const financialStep = input.recipe.steps.find((step) => step.kind === "apply-financial-terms");
|
|
139
145
|
if (financialStep?.kind === "apply-financial-terms") {
|
|
@@ -141,7 +147,7 @@ export function runAnalysisRecipe(input) {
|
|
|
141
147
|
const applied = applyFinancialTerms({
|
|
142
148
|
observations: financialPopulation,
|
|
143
149
|
terms,
|
|
144
|
-
completeFinancialPopulation:
|
|
150
|
+
completeFinancialPopulation: financialExecutionFindings.length === 0,
|
|
145
151
|
measureDefinitions: input.definition.measures,
|
|
146
152
|
reportingClaims: reportingPopulation.map((observation) => ({ sourceNamespace: observation.sourceNamespace, claimId: observation.claimId })),
|
|
147
153
|
});
|
|
@@ -176,7 +182,7 @@ export function runAnalysisRecipe(input) {
|
|
|
176
182
|
amountMeasureId: pipelineStep.amountMeasureId,
|
|
177
183
|
inputUnit: input.definition.measures.find((measure) => measure.statistic.kind === "sum" && measure.statistic.measureId === pipelineStep.amountMeasureId)?.unit ?? "unknown-unit",
|
|
178
184
|
stages,
|
|
179
|
-
completeFinancialPopulation:
|
|
185
|
+
completeFinancialPopulation: financialExecutionFindings.length === 0,
|
|
180
186
|
reportingClaims: reportingPopulation.map((observation) => ({ sourceNamespace: observation.sourceNamespace, claimId: observation.claimId })),
|
|
181
187
|
});
|
|
182
188
|
if (applied.status === "available") {
|
|
@@ -241,6 +247,10 @@ export function runAnalysisRecipe(input) {
|
|
|
241
247
|
group.observations.push(observation);
|
|
242
248
|
}
|
|
243
249
|
const measureIds = new Set(input.recipe.steps.filter((step) => step.kind === "calculate").flatMap((step) => step.measureIds));
|
|
250
|
+
// When preparation excluded every observation, retain visible unavailable
|
|
251
|
+
// output instead of hiding the preparation findings in an empty result.
|
|
252
|
+
if (groups.size === 0 && prepared.findings.length > 0)
|
|
253
|
+
groups.set("unassigned", { label: "Unavailable history", observations: [] });
|
|
244
254
|
const values = [];
|
|
245
255
|
for (const [originId, group] of [...groups].sort(([left], [right]) => left.localeCompare(right))) {
|
|
246
256
|
for (const measure of input.definition.measures.filter((candidate) => measureIds.has(candidate.id))) {
|
|
@@ -285,29 +295,18 @@ export function runAnalysisRecipe(input) {
|
|
|
285
295
|
}
|
|
286
296
|
let statistic;
|
|
287
297
|
if (measure.statistic.kind === "ratio" && exposedByTarget.get(originId)?.has(measure.statistic.denominatorMeasureId)) {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
const seed = measureObservations[0];
|
|
295
|
-
if (seed === undefined) {
|
|
296
|
-
statistic = calculateAnalysisStatistic({ measure, observations: [], selection: { kind: "all-observations" } });
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
const synthetic = snapshotDiagnosticJson({ ...seed, measures: {
|
|
300
|
-
[ratio.numeratorMeasureId]: numerator,
|
|
301
|
-
[ratio.denominatorMeasureId]: denominator,
|
|
302
|
-
} });
|
|
303
|
-
statistic = calculateAnalysisStatistic({ measure, observations: [synthetic], selection: { kind: "all-observations" } });
|
|
304
|
-
}
|
|
298
|
+
statistic = calculateRecipeExposureRatio({
|
|
299
|
+
measure,
|
|
300
|
+
observations: measureObservations,
|
|
301
|
+
selection: { kind: "evaluation-date", evaluationDate, observationSelection: input.definition.period.observationSelection },
|
|
302
|
+
exposure: exposedByTarget.get(originId).get(measure.statistic.denominatorMeasureId),
|
|
303
|
+
});
|
|
305
304
|
}
|
|
306
305
|
else {
|
|
307
306
|
statistic = calculateAnalysisStatistic({
|
|
308
307
|
measure,
|
|
309
308
|
observations: measureObservations,
|
|
310
|
-
selection: { kind: "evaluation-date", evaluationDate, observationSelection:
|
|
309
|
+
selection: { kind: "evaluation-date", evaluationDate, observationSelection: input.definition.period.observationSelection },
|
|
311
310
|
});
|
|
312
311
|
}
|
|
313
312
|
values.push({
|
|
@@ -348,11 +347,14 @@ export function runAnalysisRecipe(input) {
|
|
|
348
347
|
}
|
|
349
348
|
}
|
|
350
349
|
const calculationInput = {
|
|
350
|
+
corePackageVersion: CORE_PACKAGE_VERSION,
|
|
351
351
|
historyRevisionId: prepared.calculationRevisionId,
|
|
352
|
+
historyFindings: prepared.findings,
|
|
352
353
|
definition: input.definition,
|
|
353
354
|
recipe: input.recipe,
|
|
354
355
|
evaluationDate,
|
|
355
356
|
exposureRevisionIds: exposureCalculationRevisions.sort(),
|
|
357
|
+
exposureTargets: input.exposureTargets ?? [],
|
|
356
358
|
};
|
|
357
359
|
const lineageInput = {
|
|
358
360
|
historyRevisionId: prepared.lineageRevisionId,
|
|
@@ -384,14 +386,15 @@ export function applyAnalysisScenario(definition, scenario) {
|
|
|
384
386
|
if (scenarioIssues.length > 0)
|
|
385
387
|
throw new DiagnosticValidationError(scenarioIssues);
|
|
386
388
|
let reportingPredicate = definition.scopes.reporting.predicate;
|
|
389
|
+
for (const change of scenario.changes)
|
|
390
|
+
if (change.kind === "reporting-predicate")
|
|
391
|
+
reportingPredicate = change.predicate;
|
|
387
392
|
const terms = definition.financialTerms.map((term) => {
|
|
388
393
|
let current = term;
|
|
389
394
|
for (const change of scenario.changes) {
|
|
390
|
-
if (change.kind === "
|
|
391
|
-
reportingPredicate = change.predicate;
|
|
392
|
-
else if (change.termId === term.id && change.kind === "financial-term-limit")
|
|
395
|
+
if (change.kind === "financial-term-limit" && change.termId === term.id)
|
|
393
396
|
current = { ...current, limit: change.limit };
|
|
394
|
-
else if (change.
|
|
397
|
+
else if (change.kind === "financial-term-attachment" && change.termId === term.id)
|
|
395
398
|
current = current.kind === "policy-aggregate" ? { ...current, deductible: change.amount } : { ...current, attachment: change.amount };
|
|
396
399
|
}
|
|
397
400
|
return current;
|
|
@@ -403,34 +406,6 @@ export function applyAnalysisScenario(definition, scenario) {
|
|
|
403
406
|
financialTerms: terms,
|
|
404
407
|
});
|
|
405
408
|
}
|
|
406
|
-
export function compareAnalysisResults(baseline, scenario) {
|
|
407
|
-
const scenarioValues = new Map(scenario.values.map((value) => [canonicalJson([value.measureId, value.coordinates]), value]));
|
|
408
|
-
return snapshotDiagnosticJson(baseline.values.map((value) => {
|
|
409
|
-
const compared = scenarioValues.get(canonicalJson([value.measureId, value.coordinates]));
|
|
410
|
-
if (compared !== undefined && compared.unit !== value.unit)
|
|
411
|
-
throw new DiagnosticValidationError([{
|
|
412
|
-
domain: "configuration",
|
|
413
|
-
code: "incompatible-semantics",
|
|
414
|
-
path: `$.values.${value.measureId}.unit`,
|
|
415
|
-
message: `Cannot compare ${value.unit} with ${compared.unit}`,
|
|
416
|
-
}]);
|
|
417
|
-
const baselineValue = value.value;
|
|
418
|
-
const scenarioValue = compared?.value ?? null;
|
|
419
|
-
const absoluteDifference = baselineValue === null || scenarioValue === null ? null : scenarioValue - baselineValue;
|
|
420
|
-
const percentageDifference = absoluteDifference === null || baselineValue === null || baselineValue === 0
|
|
421
|
-
? null
|
|
422
|
-
: absoluteDifference / baselineValue;
|
|
423
|
-
return {
|
|
424
|
-
measureId: value.measureId,
|
|
425
|
-
unit: value.unit,
|
|
426
|
-
coordinates: value.coordinates,
|
|
427
|
-
baselineValue,
|
|
428
|
-
scenarioValue,
|
|
429
|
-
absoluteDifference,
|
|
430
|
-
percentageDifference,
|
|
431
|
-
};
|
|
432
|
-
}));
|
|
433
|
-
}
|
|
434
409
|
/** Runs a bounded list of controlled scenarios against one immutable baseline. */
|
|
435
410
|
export function runAnalysisScenarios(input) {
|
|
436
411
|
const maximumActiveScenarios = maximumActiveScenarioLimit(input.limits);
|
|
@@ -559,7 +534,7 @@ export function runAnalysisScenarioGrid(input) {
|
|
|
559
534
|
}
|
|
560
535
|
/** Complete dependency identity for exact full-result reuse, including lineage. */
|
|
561
536
|
export function analysisRecipeDependencyIdentity(input) {
|
|
562
|
-
return `fnv1a64-jcs-v1:${fnv1a64(canonicalJson({ kind: "analysis-recipe-dependencies", input }))}`;
|
|
537
|
+
return `fnv1a64-jcs-v1:${fnv1a64(canonicalJson({ kind: "analysis-recipe-dependencies", corePackageVersion: CORE_PACKAGE_VERSION, input }))}`;
|
|
563
538
|
}
|
|
564
539
|
/** Uses caller-owned cache storage; a hit is returned only for the complete dependency identity. */
|
|
565
540
|
export function runAnalysisRecipeCached(input) {
|
|
@@ -590,7 +565,7 @@ export function rollForwardAnalysisRecipe(input) {
|
|
|
590
565
|
currentEvaluationDate,
|
|
591
566
|
priorResult,
|
|
592
567
|
currentResult,
|
|
593
|
-
differences:
|
|
568
|
+
differences: compareAnalysisEvaluations(priorResult, currentResult, priorEvaluationDate, currentEvaluationDate),
|
|
594
569
|
});
|
|
595
570
|
}
|
|
596
571
|
/** Applies explicitly ordered, one-change scenario steps and reports each incremental bridge. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysisRecipe.js","sourceRoot":"","sources":["../src/analysisRecipe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysisRecipe.js","sourceRoot":"","sources":["../src/analysisRecipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AnalysisMeasureDefinitionV1, AnalysisObservationSelection, AnalysisStatisticResult, PreparedHistoricalObservation } from "./customizationContracts.js";
|
|
2
|
+
/** A separate exposure population contributes its denominator once per origin. */
|
|
3
|
+
export declare function calculateRecipeExposureRatio(input: {
|
|
4
|
+
readonly measure: AnalysisMeasureDefinitionV1;
|
|
5
|
+
readonly observations: readonly PreparedHistoricalObservation[];
|
|
6
|
+
readonly selection: Extract<AnalysisObservationSelection, {
|
|
7
|
+
kind: "evaluation-date";
|
|
8
|
+
}>;
|
|
9
|
+
readonly exposure: number;
|
|
10
|
+
}): AnalysisStatisticResult;
|
|
11
|
+
//# sourceMappingURL=analysisRecipeStatistics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisRecipeStatistics.d.ts","sourceRoot":"","sources":["../src/analysisRecipeStatistics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAIrC,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,4BAA4B,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,uBAAuB,CA2C1B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { calculateAnalysisStatistic } from "./descriptiveStatistics.js";
|
|
2
|
+
import { snapshotDiagnosticJson } from "./diagnosticRuntime.js";
|
|
3
|
+
/** A separate exposure population contributes its denominator once per origin. */
|
|
4
|
+
export function calculateRecipeExposureRatio(input) {
|
|
5
|
+
const { measure, observations, selection, exposure } = input;
|
|
6
|
+
if (measure.statistic.kind !== "ratio")
|
|
7
|
+
throw new Error("An exposure ratio requires a ratio statistic");
|
|
8
|
+
const numerator = calculateAnalysisStatistic({
|
|
9
|
+
measure: { ...measure, statistic: { kind: "sum", measureId: measure.statistic.numeratorMeasureId } },
|
|
10
|
+
observations,
|
|
11
|
+
selection,
|
|
12
|
+
});
|
|
13
|
+
// Unknown amounts cannot be treated as zeros while the complete exposure
|
|
14
|
+
// population still contributes to the denominator.
|
|
15
|
+
if (numerator.status !== "available" || numerator.excludedObservations > 0) {
|
|
16
|
+
return snapshotDiagnosticJson({
|
|
17
|
+
...numerator,
|
|
18
|
+
value: null,
|
|
19
|
+
status: "unavailable",
|
|
20
|
+
numerator: numerator.value,
|
|
21
|
+
denominator: exposure,
|
|
22
|
+
findings: [...numerator.findings, {
|
|
23
|
+
capability: "descriptive-statistics",
|
|
24
|
+
code: "missing-prerequisite",
|
|
25
|
+
path: "$.measure.statistic.numeratorMeasureId",
|
|
26
|
+
message: "An exposure ratio requires observed numerator amounts for the selected population",
|
|
27
|
+
}],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const aggregate = {
|
|
31
|
+
...observations[0],
|
|
32
|
+
evaluationDate: selection.evaluationDate,
|
|
33
|
+
measures: {
|
|
34
|
+
[measure.statistic.numeratorMeasureId]: numerator.value,
|
|
35
|
+
[measure.statistic.denominatorMeasureId]: exposure,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
const ratio = calculateAnalysisStatistic({
|
|
39
|
+
measure,
|
|
40
|
+
observations: [aggregate],
|
|
41
|
+
selection: { ...selection, observationSelection: "exact" },
|
|
42
|
+
});
|
|
43
|
+
return snapshotDiagnosticJson({
|
|
44
|
+
...ratio,
|
|
45
|
+
contributingObservations: numerator.contributingObservations,
|
|
46
|
+
excludedObservations: numerator.excludedObservations,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=analysisRecipeStatistics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisRecipeStatistics.js","sourceRoot":"","sources":["../src/analysisRecipeStatistics.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,kFAAkF;AAClF,MAAM,UAAU,4BAA4B,CAAC,KAK5C;IACC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7D,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACxG,MAAM,SAAS,GAAG,0BAA0B,CAAC;QAC3C,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE;QACpG,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;IACH,yEAAyE;IACzE,mDAAmD;IACnD,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;QAC3E,OAAO,sBAAsB,CAAC;YAC5B,GAAG,SAAS;YACZ,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,aAAsB;YAC9B,SAAS,EAAE,SAAS,CAAC,KAAK;YAC1B,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE;oBAChC,UAAU,EAAE,wBAAiC;oBAC7C,IAAI,EAAE,sBAA+B;oBACrC,IAAI,EAAE,wCAAwC;oBAC9C,OAAO,EAAE,mFAAmF;iBAC7F,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAkC;QAC/C,GAAG,YAAY,CAAC,CAAC,CAAE;QACnB,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,QAAQ,EAAE;YACR,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,KAAK;YACvD,CAAC,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,QAAQ;SACnD;KACF,CAAC;IACF,MAAM,KAAK,GAAG,0BAA0B,CAAC;QACvC,OAAO;QACP,YAAY,EAAE,CAAC,SAAS,CAAC;QACzB,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE;KAC3D,CAAC,CAAC;IACH,OAAO,sBAAsB,CAAC;QAC5B,GAAG,KAAK;QACR,wBAAwB,EAAE,SAAS,CAAC,wBAAwB;QAC5D,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;KACrD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptiveStatistics.d.ts","sourceRoot":"","sources":["../src/descriptiveStatistics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EAGvB,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptiveStatistics.d.ts","sourceRoot":"","sources":["../src/descriptiveStatistics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EAGvB,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAiHrC,yFAAyF;AACzF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;CAClD,GAAG,uBAAuB,CAmM1B"}
|
|
@@ -69,13 +69,13 @@ function hfType7(values, probability) {
|
|
|
69
69
|
const fraction = index - lower;
|
|
70
70
|
return sorted[lower] + fraction * (sorted[Math.min(lower + 1, sorted.length - 1)] - sorted[lower]);
|
|
71
71
|
}
|
|
72
|
-
function durationValue(observation, statistic) {
|
|
72
|
+
function durationValue(observation, statistic, evaluationDate) {
|
|
73
73
|
const start = statistic.start === "accident-date" ? observation.accidentDate : observation.reportDate;
|
|
74
74
|
const closed = observation.dimensions.closedDate;
|
|
75
75
|
const end = statistic.end === "report-date"
|
|
76
76
|
? observation.reportDate
|
|
77
77
|
: statistic.end === "evaluation-date"
|
|
78
|
-
?
|
|
78
|
+
? evaluationDate
|
|
79
79
|
: typeof closed === "string" && isRealIsoDate(closed)
|
|
80
80
|
? closed
|
|
81
81
|
: null;
|
|
@@ -156,7 +156,7 @@ export function calculateAnalysisStatistic(input) {
|
|
|
156
156
|
if (statistic.kind === "duration") {
|
|
157
157
|
const values = observations
|
|
158
158
|
.filter((observation) => statistic.population !== "closed-only" || observation.status === "closed")
|
|
159
|
-
.map((observation) => durationValue(observation, statistic))
|
|
159
|
+
.map((observation) => durationValue(observation, statistic, selection.kind === "evaluation-date" ? selection.evaluationDate : observation.evaluationDate))
|
|
160
160
|
.filter((value) => value !== null);
|
|
161
161
|
if (values.length === 0)
|
|
162
162
|
return unavailable(measure, input.observations.length, [finding("No observations have the required duration endpoints")]);
|
|
@@ -183,7 +183,7 @@ export function calculateAnalysisStatistic(input) {
|
|
|
183
183
|
const start = statistic.start === "accident-date" ? observation.accidentDate : observation.reportDate;
|
|
184
184
|
const suppliedClosedDate = observation.dimensions.closedDate;
|
|
185
185
|
const isObservedEvent = observation.status === "closed" && typeof suppliedClosedDate === "string" && isRealIsoDate(suppliedClosedDate);
|
|
186
|
-
const end = isObservedEvent ? suppliedClosedDate : observation.evaluationDate;
|
|
186
|
+
const end = isObservedEvent ? suppliedClosedDate : selection.kind === "evaluation-date" ? selection.evaluationDate : observation.evaluationDate;
|
|
187
187
|
if (start === null || !isRealIsoDate(end))
|
|
188
188
|
continue;
|
|
189
189
|
const duration = daysBetweenIsoDates(start, end);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptiveStatistics.js","sourceRoot":"","sources":["../src/descriptiveStatistics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"descriptiveStatistics.js","sourceRoot":"","sources":["../src/descriptiveStatistics.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actuarial-ts/core",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Pure, zero-dependency P&C actuarial math for TypeScript: reserving, generalized definition-driven diagnostics, trends, limits, discounting, and seeded stochastic methods with published-value validation.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { canonicalJson } from "./canonical.js";
|
|
2
|
+
import type {
|
|
3
|
+
AnalysisResult,
|
|
4
|
+
AnalysisResultValue,
|
|
5
|
+
AnalysisScenarioDifference,
|
|
6
|
+
HistoricalScalar,
|
|
7
|
+
} from "./customizationContracts.js";
|
|
8
|
+
import { snapshotDiagnosticJson } from "./diagnosticRuntime.js";
|
|
9
|
+
import { DiagnosticValidationError } from "./types.js";
|
|
10
|
+
|
|
11
|
+
function indexValues(result: AnalysisResult, omitted: ReadonlySet<string>): Map<string, AnalysisResultValue> {
|
|
12
|
+
const indexed = new Map<string, AnalysisResultValue>();
|
|
13
|
+
for (const value of result.values) {
|
|
14
|
+
const coordinates = Object.fromEntries(Object.entries(value.coordinates).filter(([name]) => !omitted.has(name)));
|
|
15
|
+
const key = canonicalJson([value.measureId, coordinates]);
|
|
16
|
+
if (indexed.has(key))
|
|
17
|
+
throw new DiagnosticValidationError([{
|
|
18
|
+
domain: "configuration", code: "incompatible-semantics", path: "$.values",
|
|
19
|
+
message: "Comparison coordinates must identify one value per measure on each side",
|
|
20
|
+
}]);
|
|
21
|
+
indexed.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
return indexed;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function compare(
|
|
27
|
+
baseline: AnalysisResult,
|
|
28
|
+
scenario: AnalysisResult,
|
|
29
|
+
omitted: ReadonlySet<string>,
|
|
30
|
+
evaluationPair?: { readonly priorEvaluationDate: string; readonly currentEvaluationDate: string },
|
|
31
|
+
): readonly AnalysisScenarioDifference[] {
|
|
32
|
+
const left = indexValues(baseline, omitted);
|
|
33
|
+
const right = indexValues(scenario, omitted);
|
|
34
|
+
const keys = [...new Set([...left.keys(), ...right.keys()])].sort();
|
|
35
|
+
return snapshotDiagnosticJson(keys.map((key) => {
|
|
36
|
+
const before = left.get(key);
|
|
37
|
+
const after = right.get(key);
|
|
38
|
+
const value = before ?? after!;
|
|
39
|
+
if (before !== undefined && after !== undefined && before.unit !== after.unit)
|
|
40
|
+
throw new DiagnosticValidationError([{
|
|
41
|
+
domain: "configuration", code: "incompatible-semantics", path: `$.values.${value.measureId}.unit`,
|
|
42
|
+
message: `Cannot compare ${before.unit} with ${after.unit}`,
|
|
43
|
+
}]);
|
|
44
|
+
const baselineValue = before?.status === "available" ? before.value : null;
|
|
45
|
+
const scenarioValue = after?.status === "available" ? after.value : null;
|
|
46
|
+
const difference = baselineValue === null || scenarioValue === null ? null : scenarioValue - baselineValue;
|
|
47
|
+
const absoluteDifference = difference !== null && Number.isFinite(difference) ? difference : null;
|
|
48
|
+
const percentage = absoluteDifference === null || baselineValue === null || baselineValue === 0
|
|
49
|
+
? null : absoluteDifference / baselineValue;
|
|
50
|
+
const percentageDifference = percentage !== null && Number.isFinite(percentage) ? percentage : null;
|
|
51
|
+
const coordinates: Readonly<Record<string, HistoricalScalar>> = evaluationPair === undefined
|
|
52
|
+
? value.coordinates
|
|
53
|
+
: { ...Object.fromEntries(Object.entries(value.coordinates).filter(([name]) => name !== "evaluationDate")), ...evaluationPair };
|
|
54
|
+
return { measureId: value.measureId, unit: value.unit, coordinates, baselineValue, scenarioValue, absoluteDifference, percentageDifference };
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Matches exact coordinates and retains unmatched values from both results. */
|
|
59
|
+
export function compareAnalysisResults(baseline: AnalysisResult, scenario: AnalysisResult): readonly AnalysisScenarioDifference[] {
|
|
60
|
+
return compare(baseline, scenario, new Set());
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Internal roll-forward alignment: evaluation is the comparison axis, not a join key. */
|
|
64
|
+
export function compareAnalysisEvaluations(
|
|
65
|
+
baseline: AnalysisResult,
|
|
66
|
+
scenario: AnalysisResult,
|
|
67
|
+
priorEvaluationDate: string,
|
|
68
|
+
currentEvaluationDate: string,
|
|
69
|
+
): readonly AnalysisScenarioDifference[] {
|
|
70
|
+
return compare(baseline, scenario, new Set(["evaluationDate", "originLabel"]), { priorEvaluationDate, currentEvaluationDate });
|
|
71
|
+
}
|
package/src/analysisRecipe.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { canonicalJson, fnv1a64 } from "./canonical.js";
|
|
2
|
+
import { CORE_PACKAGE_VERSION } from "./version.js";
|
|
2
3
|
import type {
|
|
3
4
|
AnalysisDefinition,
|
|
4
5
|
AnalysisPredicate,
|
|
@@ -8,7 +9,6 @@ import type {
|
|
|
8
9
|
AnalysisScenario,
|
|
9
10
|
AnalysisScenarioChange,
|
|
10
11
|
AnalysisScenarioGrid,
|
|
11
|
-
AnalysisScenarioDifference,
|
|
12
12
|
AnalysisScenarioRun,
|
|
13
13
|
AnalysisRollForward,
|
|
14
14
|
AnalysisScenarioBridgeStep,
|
|
@@ -22,6 +22,9 @@ import type {
|
|
|
22
22
|
PreparedHistoricalObservation,
|
|
23
23
|
} from "./customizationContracts.js";
|
|
24
24
|
import { calculateAnalysisStatistic } from "./descriptiveStatistics.js";
|
|
25
|
+
import { calculateRecipeExposureRatio } from "./analysisRecipeStatistics.js";
|
|
26
|
+
import { compareAnalysisEvaluations, compareAnalysisResults } from "./analysisComparison.js";
|
|
27
|
+
export { compareAnalysisResults } from "./analysisComparison.js";
|
|
25
28
|
import { isDiagnosticToken, snapshotDiagnosticJson } from "./diagnosticRuntime.js";
|
|
26
29
|
import { earnAndAllocateExposure } from "./exposureEarning.js";
|
|
27
30
|
import { selectExposureRevisions, selectExposureValuation } from "./exposureRevisions.js";
|
|
@@ -173,7 +176,9 @@ export function runAnalysisRecipe(input: {
|
|
|
173
176
|
const reportingPopulation = reportingSelection.matches;
|
|
174
177
|
const reportingKeys = new Set(reportingPopulation.map(key));
|
|
175
178
|
let effective = financialPopulation;
|
|
176
|
-
|
|
179
|
+
// A conflicted or incomplete history cannot authorize arithmetic over the
|
|
180
|
+
// surviving subset as though it were the complete financial population.
|
|
181
|
+
let financialExecutionFindings: readonly CustomizationCapabilityFinding[] = [...prepared.findings, ...financialSelection.findings];
|
|
177
182
|
const reportingExecutionFindings: readonly CustomizationCapabilityFinding[] = [...reportingSelection.findings];
|
|
178
183
|
|
|
179
184
|
const financialStep = input.recipe.steps.find((step) => step.kind === "apply-financial-terms");
|
|
@@ -182,7 +187,7 @@ export function runAnalysisRecipe(input: {
|
|
|
182
187
|
const applied = applyFinancialTerms({
|
|
183
188
|
observations: financialPopulation,
|
|
184
189
|
terms,
|
|
185
|
-
completeFinancialPopulation:
|
|
190
|
+
completeFinancialPopulation: financialExecutionFindings.length === 0,
|
|
186
191
|
measureDefinitions: input.definition.measures,
|
|
187
192
|
reportingClaims: reportingPopulation.map((observation) => ({ sourceNamespace: observation.sourceNamespace, claimId: observation.claimId })),
|
|
188
193
|
});
|
|
@@ -216,7 +221,7 @@ export function runAnalysisRecipe(input: {
|
|
|
216
221
|
amountMeasureId: pipelineStep.amountMeasureId,
|
|
217
222
|
inputUnit: input.definition.measures.find((measure) => measure.statistic.kind === "sum" && measure.statistic.measureId === pipelineStep.amountMeasureId)?.unit ?? "unknown-unit",
|
|
218
223
|
stages,
|
|
219
|
-
completeFinancialPopulation:
|
|
224
|
+
completeFinancialPopulation: financialExecutionFindings.length === 0,
|
|
220
225
|
reportingClaims: reportingPopulation.map((observation) => ({ sourceNamespace: observation.sourceNamespace, claimId: observation.claimId })),
|
|
221
226
|
});
|
|
222
227
|
if (applied.status === "available") {
|
|
@@ -278,6 +283,10 @@ export function runAnalysisRecipe(input: {
|
|
|
278
283
|
const measureIds = new Set(
|
|
279
284
|
input.recipe.steps.filter((step) => step.kind === "calculate").flatMap((step) => step.measureIds),
|
|
280
285
|
);
|
|
286
|
+
// When preparation excluded every observation, retain visible unavailable
|
|
287
|
+
// output instead of hiding the preparation findings in an empty result.
|
|
288
|
+
if (groups.size === 0 && prepared.findings.length > 0)
|
|
289
|
+
groups.set("unassigned", { label: "Unavailable history", observations: [] });
|
|
281
290
|
const values: AnalysisResultValue[] = [];
|
|
282
291
|
for (const [originId, group] of [...groups].sort(([left], [right]) => left.localeCompare(right))) {
|
|
283
292
|
for (const measure of input.definition.measures.filter((candidate) => measureIds.has(candidate.id))) {
|
|
@@ -321,27 +330,17 @@ export function runAnalysisRecipe(input: {
|
|
|
321
330
|
}
|
|
322
331
|
let statistic;
|
|
323
332
|
if (measure.statistic.kind === "ratio" && exposedByTarget.get(originId)?.has(measure.statistic.denominatorMeasureId)) {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
const seed = measureObservations[0];
|
|
331
|
-
if (seed === undefined) {
|
|
332
|
-
statistic = calculateAnalysisStatistic({ measure, observations: [], selection: { kind: "all-observations" } });
|
|
333
|
-
} else {
|
|
334
|
-
const synthetic = snapshotDiagnosticJson({ ...seed, measures: {
|
|
335
|
-
[ratio.numeratorMeasureId]: numerator,
|
|
336
|
-
[ratio.denominatorMeasureId]: denominator,
|
|
337
|
-
} });
|
|
338
|
-
statistic = calculateAnalysisStatistic({ measure, observations: [synthetic], selection: { kind: "all-observations" } });
|
|
339
|
-
}
|
|
333
|
+
statistic = calculateRecipeExposureRatio({
|
|
334
|
+
measure,
|
|
335
|
+
observations: measureObservations,
|
|
336
|
+
selection: { kind: "evaluation-date", evaluationDate, observationSelection: input.definition.period.observationSelection },
|
|
337
|
+
exposure: exposedByTarget.get(originId)!.get(measure.statistic.denominatorMeasureId)!,
|
|
338
|
+
});
|
|
340
339
|
} else {
|
|
341
340
|
statistic = calculateAnalysisStatistic({
|
|
342
341
|
measure,
|
|
343
342
|
observations: measureObservations,
|
|
344
|
-
selection: { kind: "evaluation-date", evaluationDate, observationSelection:
|
|
343
|
+
selection: { kind: "evaluation-date", evaluationDate, observationSelection: input.definition.period.observationSelection },
|
|
345
344
|
});
|
|
346
345
|
}
|
|
347
346
|
values.push({
|
|
@@ -381,11 +380,14 @@ export function runAnalysisRecipe(input: {
|
|
|
381
380
|
}
|
|
382
381
|
}
|
|
383
382
|
const calculationInput = {
|
|
383
|
+
corePackageVersion: CORE_PACKAGE_VERSION,
|
|
384
384
|
historyRevisionId: prepared.calculationRevisionId,
|
|
385
|
+
historyFindings: prepared.findings,
|
|
385
386
|
definition: input.definition,
|
|
386
387
|
recipe: input.recipe,
|
|
387
388
|
evaluationDate,
|
|
388
389
|
exposureRevisionIds: exposureCalculationRevisions.sort(),
|
|
390
|
+
exposureTargets: input.exposureTargets ?? [],
|
|
389
391
|
};
|
|
390
392
|
const lineageInput = {
|
|
391
393
|
historyRevisionId: prepared.lineageRevisionId,
|
|
@@ -420,12 +422,13 @@ export function applyAnalysisScenario(
|
|
|
420
422
|
}
|
|
421
423
|
if (scenarioIssues.length > 0) throw new DiagnosticValidationError(scenarioIssues);
|
|
422
424
|
let reportingPredicate: AnalysisPredicate = definition.scopes.reporting.predicate;
|
|
425
|
+
for (const change of scenario.changes)
|
|
426
|
+
if (change.kind === "reporting-predicate") reportingPredicate = change.predicate;
|
|
423
427
|
const terms = definition.financialTerms.map((term) => {
|
|
424
428
|
let current = term;
|
|
425
429
|
for (const change of scenario.changes) {
|
|
426
|
-
if (change.kind === "
|
|
427
|
-
else if (change.
|
|
428
|
-
else if (change.termId === term.id && change.kind === "financial-term-attachment")
|
|
430
|
+
if (change.kind === "financial-term-limit" && change.termId === term.id) current = { ...current, limit: change.limit };
|
|
431
|
+
else if (change.kind === "financial-term-attachment" && change.termId === term.id)
|
|
429
432
|
current = current.kind === "policy-aggregate" ? { ...current, deductible: change.amount } : { ...current, attachment: change.amount };
|
|
430
433
|
}
|
|
431
434
|
return current;
|
|
@@ -438,39 +441,6 @@ export function applyAnalysisScenario(
|
|
|
438
441
|
});
|
|
439
442
|
}
|
|
440
443
|
|
|
441
|
-
export function compareAnalysisResults(
|
|
442
|
-
baseline: AnalysisResult,
|
|
443
|
-
scenario: AnalysisResult,
|
|
444
|
-
): readonly AnalysisScenarioDifference[] {
|
|
445
|
-
const scenarioValues = new Map(scenario.values.map((value) => [canonicalJson([value.measureId, value.coordinates]), value]));
|
|
446
|
-
return snapshotDiagnosticJson(baseline.values.map((value) => {
|
|
447
|
-
const compared = scenarioValues.get(canonicalJson([value.measureId, value.coordinates]));
|
|
448
|
-
if (compared !== undefined && compared.unit !== value.unit)
|
|
449
|
-
throw new DiagnosticValidationError([{
|
|
450
|
-
domain: "configuration",
|
|
451
|
-
code: "incompatible-semantics",
|
|
452
|
-
path: `$.values.${value.measureId}.unit`,
|
|
453
|
-
message: `Cannot compare ${value.unit} with ${compared.unit}`,
|
|
454
|
-
}]);
|
|
455
|
-
const baselineValue = value.value;
|
|
456
|
-
const scenarioValue = compared?.value ?? null;
|
|
457
|
-
const absoluteDifference = baselineValue === null || scenarioValue === null ? null : scenarioValue - baselineValue;
|
|
458
|
-
const percentageDifference =
|
|
459
|
-
absoluteDifference === null || baselineValue === null || baselineValue === 0
|
|
460
|
-
? null
|
|
461
|
-
: absoluteDifference / baselineValue;
|
|
462
|
-
return {
|
|
463
|
-
measureId: value.measureId,
|
|
464
|
-
unit: value.unit,
|
|
465
|
-
coordinates: value.coordinates,
|
|
466
|
-
baselineValue,
|
|
467
|
-
scenarioValue,
|
|
468
|
-
absoluteDifference,
|
|
469
|
-
percentageDifference,
|
|
470
|
-
};
|
|
471
|
-
}));
|
|
472
|
-
}
|
|
473
|
-
|
|
474
444
|
/** Runs a bounded list of controlled scenarios against one immutable baseline. */
|
|
475
445
|
export function runAnalysisScenarios(input: {
|
|
476
446
|
readonly history: HistoricalDatasetInput;
|
|
@@ -618,7 +588,7 @@ export function runAnalysisScenarioGrid(
|
|
|
618
588
|
|
|
619
589
|
/** Complete dependency identity for exact full-result reuse, including lineage. */
|
|
620
590
|
export function analysisRecipeDependencyIdentity(input: Parameters<typeof runAnalysisRecipe>[0]): string {
|
|
621
|
-
return `fnv1a64-jcs-v1:${fnv1a64(canonicalJson({ kind: "analysis-recipe-dependencies", input }))}`;
|
|
591
|
+
return `fnv1a64-jcs-v1:${fnv1a64(canonicalJson({ kind: "analysis-recipe-dependencies", corePackageVersion: CORE_PACKAGE_VERSION, input }))}`;
|
|
622
592
|
}
|
|
623
593
|
|
|
624
594
|
/** Uses caller-owned cache storage; a hit is returned only for the complete dependency identity. */
|
|
@@ -656,7 +626,7 @@ export function rollForwardAnalysisRecipe(input: Parameters<typeof runAnalysisRe
|
|
|
656
626
|
currentEvaluationDate,
|
|
657
627
|
priorResult,
|
|
658
628
|
currentResult,
|
|
659
|
-
differences:
|
|
629
|
+
differences: compareAnalysisEvaluations(priorResult, currentResult, priorEvaluationDate, currentEvaluationDate),
|
|
660
630
|
});
|
|
661
631
|
}
|
|
662
632
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AnalysisMeasureDefinitionV1,
|
|
3
|
+
AnalysisObservationSelection,
|
|
4
|
+
AnalysisStatisticResult,
|
|
5
|
+
PreparedHistoricalObservation,
|
|
6
|
+
} from "./customizationContracts.js";
|
|
7
|
+
import { calculateAnalysisStatistic } from "./descriptiveStatistics.js";
|
|
8
|
+
import { snapshotDiagnosticJson } from "./diagnosticRuntime.js";
|
|
9
|
+
|
|
10
|
+
/** A separate exposure population contributes its denominator once per origin. */
|
|
11
|
+
export function calculateRecipeExposureRatio(input: {
|
|
12
|
+
readonly measure: AnalysisMeasureDefinitionV1;
|
|
13
|
+
readonly observations: readonly PreparedHistoricalObservation[];
|
|
14
|
+
readonly selection: Extract<AnalysisObservationSelection, { kind: "evaluation-date" }>;
|
|
15
|
+
readonly exposure: number;
|
|
16
|
+
}): AnalysisStatisticResult {
|
|
17
|
+
const { measure, observations, selection, exposure } = input;
|
|
18
|
+
if (measure.statistic.kind !== "ratio") throw new Error("An exposure ratio requires a ratio statistic");
|
|
19
|
+
const numerator = calculateAnalysisStatistic({
|
|
20
|
+
measure: { ...measure, statistic: { kind: "sum", measureId: measure.statistic.numeratorMeasureId } },
|
|
21
|
+
observations,
|
|
22
|
+
selection,
|
|
23
|
+
});
|
|
24
|
+
// Unknown amounts cannot be treated as zeros while the complete exposure
|
|
25
|
+
// population still contributes to the denominator.
|
|
26
|
+
if (numerator.status !== "available" || numerator.excludedObservations > 0) {
|
|
27
|
+
return snapshotDiagnosticJson({
|
|
28
|
+
...numerator,
|
|
29
|
+
value: null,
|
|
30
|
+
status: "unavailable" as const,
|
|
31
|
+
numerator: numerator.value,
|
|
32
|
+
denominator: exposure,
|
|
33
|
+
findings: [...numerator.findings, {
|
|
34
|
+
capability: "descriptive-statistics" as const,
|
|
35
|
+
code: "missing-prerequisite" as const,
|
|
36
|
+
path: "$.measure.statistic.numeratorMeasureId",
|
|
37
|
+
message: "An exposure ratio requires observed numerator amounts for the selected population",
|
|
38
|
+
}],
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const aggregate: PreparedHistoricalObservation = {
|
|
42
|
+
...observations[0]!,
|
|
43
|
+
evaluationDate: selection.evaluationDate,
|
|
44
|
+
measures: {
|
|
45
|
+
[measure.statistic.numeratorMeasureId]: numerator.value,
|
|
46
|
+
[measure.statistic.denominatorMeasureId]: exposure,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
const ratio = calculateAnalysisStatistic({
|
|
50
|
+
measure,
|
|
51
|
+
observations: [aggregate],
|
|
52
|
+
selection: { ...selection, observationSelection: "exact" },
|
|
53
|
+
});
|
|
54
|
+
return snapshotDiagnosticJson({
|
|
55
|
+
...ratio,
|
|
56
|
+
contributingObservations: numerator.contributingObservations,
|
|
57
|
+
excludedObservations: numerator.excludedObservations,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
@@ -101,6 +101,7 @@ function hfType7(values: readonly number[], probability: number): number {
|
|
|
101
101
|
function durationValue(
|
|
102
102
|
observation: PreparedHistoricalObservation,
|
|
103
103
|
statistic: Extract<AnalysisMeasureDefinitionV1["statistic"], { kind: "duration" }>,
|
|
104
|
+
evaluationDate: string,
|
|
104
105
|
): number | null {
|
|
105
106
|
const start = statistic.start === "accident-date" ? observation.accidentDate : observation.reportDate;
|
|
106
107
|
const closed = observation.dimensions.closedDate;
|
|
@@ -108,7 +109,7 @@ function durationValue(
|
|
|
108
109
|
statistic.end === "report-date"
|
|
109
110
|
? observation.reportDate
|
|
110
111
|
: statistic.end === "evaluation-date"
|
|
111
|
-
?
|
|
112
|
+
? evaluationDate
|
|
112
113
|
: typeof closed === "string" && isRealIsoDate(closed)
|
|
113
114
|
? closed
|
|
114
115
|
: null;
|
|
@@ -198,7 +199,7 @@ export function calculateAnalysisStatistic(input: {
|
|
|
198
199
|
if (statistic.kind === "duration") {
|
|
199
200
|
const values = observations
|
|
200
201
|
.filter((observation) => statistic.population !== "closed-only" || observation.status === "closed")
|
|
201
|
-
.map((observation) => durationValue(observation, statistic))
|
|
202
|
+
.map((observation) => durationValue(observation, statistic, selection.kind === "evaluation-date" ? selection.evaluationDate : observation.evaluationDate))
|
|
202
203
|
.filter((value): value is number => value !== null);
|
|
203
204
|
if (values.length === 0)
|
|
204
205
|
return unavailable(measure, input.observations.length, [finding("No observations have the required duration endpoints")]);
|
|
@@ -226,7 +227,7 @@ export function calculateAnalysisStatistic(input: {
|
|
|
226
227
|
const start = statistic.start === "accident-date" ? observation.accidentDate : observation.reportDate;
|
|
227
228
|
const suppliedClosedDate = observation.dimensions.closedDate;
|
|
228
229
|
const isObservedEvent = observation.status === "closed" && typeof suppliedClosedDate === "string" && isRealIsoDate(suppliedClosedDate);
|
|
229
|
-
const end = isObservedEvent ? suppliedClosedDate : observation.evaluationDate;
|
|
230
|
+
const end = isObservedEvent ? suppliedClosedDate : selection.kind === "evaluation-date" ? selection.evaluationDate : observation.evaluationDate;
|
|
230
231
|
if (start === null || !isRealIsoDate(end)) continue;
|
|
231
232
|
const duration = daysBetweenIsoDates(start, end);
|
|
232
233
|
if (duration < 0) continue;
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** This package's runtime version. A test pins it to package.json. */
|
|
2
|
-
export const CORE_PACKAGE_VERSION = "0.8.
|
|
2
|
+
export const CORE_PACKAGE_VERSION = "0.8.1";
|