@actuarial-ts/core 0.8.0 → 0.9.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.
Files changed (44) hide show
  1. package/README.md +9 -6
  2. package/dist/analysisComparison.d.ts +6 -0
  3. package/dist/analysisComparison.d.ts.map +1 -0
  4. package/dist/analysisComparison.js +52 -0
  5. package/dist/analysisComparison.js.map +1 -0
  6. package/dist/analysisExpressions.d.ts +24 -0
  7. package/dist/analysisExpressions.d.ts.map +1 -0
  8. package/dist/analysisExpressions.js +256 -0
  9. package/dist/analysisExpressions.js.map +1 -0
  10. package/dist/analysisFinancialUnits.d.ts +4 -0
  11. package/dist/analysisFinancialUnits.d.ts.map +1 -0
  12. package/dist/analysisFinancialUnits.js +62 -0
  13. package/dist/analysisFinancialUnits.js.map +1 -0
  14. package/dist/analysisRecipe.d.ts +2 -2
  15. package/dist/analysisRecipe.d.ts.map +1 -1
  16. package/dist/analysisRecipe.js +55 -59
  17. package/dist/analysisRecipe.js.map +1 -1
  18. package/dist/analysisRecipeStatistics.d.ts +11 -0
  19. package/dist/analysisRecipeStatistics.d.ts.map +1 -0
  20. package/dist/analysisRecipeStatistics.js +49 -0
  21. package/dist/analysisRecipeStatistics.js.map +1 -0
  22. package/dist/customizationContracts.d.ts +47 -1
  23. package/dist/customizationContracts.d.ts.map +1 -1
  24. package/dist/customizationContracts.js +1 -0
  25. package/dist/customizationContracts.js.map +1 -1
  26. package/dist/descriptiveStatistics.d.ts.map +1 -1
  27. package/dist/descriptiveStatistics.js +4 -4
  28. package/dist/descriptiveStatistics.js.map +1 -1
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/package.json +1 -1
  36. package/src/analysisComparison.ts +71 -0
  37. package/src/analysisExpressions.ts +223 -0
  38. package/src/analysisFinancialUnits.ts +55 -0
  39. package/src/analysisRecipe.ts +54 -63
  40. package/src/analysisRecipeStatistics.ts +59 -0
  41. package/src/customizationContracts.ts +35 -0
  42. package/src/descriptiveStatistics.ts +4 -3
  43. package/src/index.ts +2 -0
  44. package/src/version.ts +1 -1
@@ -1,5 +1,11 @@
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 { compileAnalysisExpressions, analysisExpressionDependencies, evaluateAnalysisExpressions } from "./analysisExpressions.js";
6
+ import { resolveAnalysisFinancialUnits } from "./analysisFinancialUnits.js";
7
+ import { compareAnalysisEvaluations, compareAnalysisResults } from "./analysisComparison.js";
8
+ export { compareAnalysisResults } from "./analysisComparison.js";
3
9
  import { isDiagnosticToken, snapshotDiagnosticJson } from "./diagnosticRuntime.js";
4
10
  import { earnAndAllocateExposure } from "./exposureEarning.js";
5
11
  import { selectExposureRevisions, selectExposureValuation } from "./exposureRevisions.js";
@@ -45,7 +51,7 @@ function recipeIssues(recipe, definition, history) {
45
51
  hasCalculate = true;
46
52
  if (step.kind === "calculate")
47
53
  step.measureIds.forEach((id) => {
48
- if (!definition.measures.some((measure) => measure.id === id))
54
+ if (![...definition.measures, ...(definition.derivedMeasures ?? [])].some((measure) => measure.id === id))
49
55
  issues.push({ domain: "configuration", code: "unknown-reference", path: `$.recipe.steps[${index}].measureIds`, message: `Unknown measure ${id}` });
50
56
  });
51
57
  if (step.kind === "earn-exposure")
@@ -123,6 +129,8 @@ export function runAnalysisRecipe(input) {
123
129
  const issues = recipeIssues(input.recipe, input.definition, input.history);
124
130
  if (issues.length > 0)
125
131
  throw new DiagnosticValidationError(issues);
132
+ const outputDefinition = resolveAnalysisFinancialUnits(input.definition, input.recipe);
133
+ const expressions = compileAnalysisExpressions(outputDefinition);
126
134
  const prepared = prepareHistoricalDataset(input.history);
127
135
  const evaluationDate = input.evaluationDate ?? maxEvaluationDate(prepared.observations);
128
136
  const selected = selectedAt(prepared.observations, evaluationDate, input.definition.period.observationSelection);
@@ -133,7 +141,9 @@ export function runAnalysisRecipe(input) {
133
141
  const reportingPopulation = reportingSelection.matches;
134
142
  const reportingKeys = new Set(reportingPopulation.map(key));
135
143
  let effective = financialPopulation;
136
- let financialExecutionFindings = [...financialSelection.findings];
144
+ // A conflicted or incomplete history cannot authorize arithmetic over the
145
+ // surviving subset as though it were the complete financial population.
146
+ let financialExecutionFindings = [...prepared.findings, ...financialSelection.findings];
137
147
  const reportingExecutionFindings = [...reportingSelection.findings];
138
148
  const financialStep = input.recipe.steps.find((step) => step.kind === "apply-financial-terms");
139
149
  if (financialStep?.kind === "apply-financial-terms") {
@@ -141,7 +151,7 @@ export function runAnalysisRecipe(input) {
141
151
  const applied = applyFinancialTerms({
142
152
  observations: financialPopulation,
143
153
  terms,
144
- completeFinancialPopulation: true,
154
+ completeFinancialPopulation: financialExecutionFindings.length === 0,
145
155
  measureDefinitions: input.definition.measures,
146
156
  reportingClaims: reportingPopulation.map((observation) => ({ sourceNamespace: observation.sourceNamespace, claimId: observation.claimId })),
147
157
  });
@@ -176,7 +186,7 @@ export function runAnalysisRecipe(input) {
176
186
  amountMeasureId: pipelineStep.amountMeasureId,
177
187
  inputUnit: input.definition.measures.find((measure) => measure.statistic.kind === "sum" && measure.statistic.measureId === pipelineStep.amountMeasureId)?.unit ?? "unknown-unit",
178
188
  stages,
179
- completeFinancialPopulation: true,
189
+ completeFinancialPopulation: financialExecutionFindings.length === 0,
180
190
  reportingClaims: reportingPopulation.map((observation) => ({ sourceNamespace: observation.sourceNamespace, claimId: observation.claimId })),
181
191
  });
182
192
  if (applied.status === "available") {
@@ -240,10 +250,16 @@ export function runAnalysisRecipe(input) {
240
250
  else
241
251
  group.observations.push(observation);
242
252
  }
243
- const measureIds = new Set(input.recipe.steps.filter((step) => step.kind === "calculate").flatMap((step) => step.measureIds));
253
+ const requestedMeasureIds = new Set(input.recipe.steps.filter((step) => step.kind === "calculate").flatMap((step) => step.measureIds));
254
+ const measureIds = analysisExpressionDependencies(expressions, requestedMeasureIds);
255
+ // When preparation excluded every observation, retain visible unavailable
256
+ // output instead of hiding the preparation findings in an empty result.
257
+ if (groups.size === 0 && prepared.findings.length > 0)
258
+ groups.set("unassigned", { label: "Unavailable history", observations: [] });
244
259
  const values = [];
245
260
  for (const [originId, group] of [...groups].sort(([left], [right]) => left.localeCompare(right))) {
246
- for (const measure of input.definition.measures.filter((candidate) => measureIds.has(candidate.id))) {
261
+ const start = values.length;
262
+ for (const measure of outputDefinition.measures.filter((candidate) => measureIds.has(candidate.id))) {
247
263
  let measureObservations = measure.populationScopeId === input.definition.scopes.financial.id
248
264
  ? group.observations
249
265
  : group.observations.filter((observation) => reportingKeys.has(key(observation)));
@@ -285,29 +301,18 @@ export function runAnalysisRecipe(input) {
285
301
  }
286
302
  let statistic;
287
303
  if (measure.statistic.kind === "ratio" && exposedByTarget.get(originId)?.has(measure.statistic.denominatorMeasureId)) {
288
- const ratio = measure.statistic;
289
- const numerator = measureObservations.reduce((total, observation) => {
290
- const value = observation.measures[ratio.numeratorMeasureId];
291
- return total + (typeof value === "number" ? value : 0);
292
- }, 0);
293
- const denominator = exposedByTarget.get(originId).get(ratio.denominatorMeasureId);
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
- }
304
+ statistic = calculateRecipeExposureRatio({
305
+ measure,
306
+ observations: measureObservations,
307
+ selection: { kind: "evaluation-date", evaluationDate, observationSelection: input.definition.period.observationSelection },
308
+ exposure: exposedByTarget.get(originId).get(measure.statistic.denominatorMeasureId),
309
+ });
305
310
  }
306
311
  else {
307
312
  statistic = calculateAnalysisStatistic({
308
313
  measure,
309
314
  observations: measureObservations,
310
- selection: { kind: "evaluation-date", evaluationDate, observationSelection: "exact" },
315
+ selection: { kind: "evaluation-date", evaluationDate, observationSelection: input.definition.period.observationSelection },
311
316
  });
312
317
  }
313
318
  values.push({
@@ -324,9 +329,18 @@ export function runAnalysisRecipe(input) {
324
329
  findings: statistic.findings,
325
330
  });
326
331
  }
332
+ values.push(...evaluateAnalysisExpressions({
333
+ definition: outputDefinition,
334
+ values: values.slice(start),
335
+ coordinates: { originId, originLabel: group.label, evaluationDate },
336
+ exposures: exposedByTarget.get(originId) ?? new Map(),
337
+ exposureFindings: exposureFindingsByMeasure,
338
+ requested: requestedMeasureIds,
339
+ }));
327
340
  }
328
341
  if (originFailures.length > 0) {
329
- for (const measure of input.definition.measures.filter((candidate) => measureIds.has(candidate.id))) {
342
+ const start = values.length;
343
+ for (const measure of outputDefinition.measures.filter((candidate) => measureIds.has(candidate.id))) {
330
344
  const originFindings = originFailures
331
345
  .filter(({ observation }) => measure.populationScopeId === input.definition.scopes.financial.id || reportingKeys.has(key(observation)))
332
346
  .map(({ finding }) => finding);
@@ -346,13 +360,22 @@ export function runAnalysisRecipe(input) {
346
360
  findings: originFindings,
347
361
  });
348
362
  }
363
+ values.push(...evaluateAnalysisExpressions({
364
+ definition: outputDefinition,
365
+ values: values.slice(start),
366
+ coordinates: { originId: "unassigned", originLabel: "Unavailable origin", evaluationDate },
367
+ exposures: new Map(), exposureFindings: exposureFindingsByMeasure, requested: requestedMeasureIds,
368
+ }));
349
369
  }
350
370
  const calculationInput = {
371
+ corePackageVersion: CORE_PACKAGE_VERSION,
351
372
  historyRevisionId: prepared.calculationRevisionId,
373
+ historyFindings: prepared.findings,
352
374
  definition: input.definition,
353
375
  recipe: input.recipe,
354
376
  evaluationDate,
355
377
  exposureRevisionIds: exposureCalculationRevisions.sort(),
378
+ exposureTargets: input.exposureTargets ?? [],
356
379
  };
357
380
  const lineageInput = {
358
381
  historyRevisionId: prepared.lineageRevisionId,
@@ -384,14 +407,15 @@ export function applyAnalysisScenario(definition, scenario) {
384
407
  if (scenarioIssues.length > 0)
385
408
  throw new DiagnosticValidationError(scenarioIssues);
386
409
  let reportingPredicate = definition.scopes.reporting.predicate;
410
+ for (const change of scenario.changes)
411
+ if (change.kind === "reporting-predicate")
412
+ reportingPredicate = change.predicate;
387
413
  const terms = definition.financialTerms.map((term) => {
388
414
  let current = term;
389
415
  for (const change of scenario.changes) {
390
- if (change.kind === "reporting-predicate")
391
- reportingPredicate = change.predicate;
392
- else if (change.termId === term.id && change.kind === "financial-term-limit")
416
+ if (change.kind === "financial-term-limit" && change.termId === term.id)
393
417
  current = { ...current, limit: change.limit };
394
- else if (change.termId === term.id && change.kind === "financial-term-attachment")
418
+ else if (change.kind === "financial-term-attachment" && change.termId === term.id)
395
419
  current = current.kind === "policy-aggregate" ? { ...current, deductible: change.amount } : { ...current, attachment: change.amount };
396
420
  }
397
421
  return current;
@@ -403,34 +427,6 @@ export function applyAnalysisScenario(definition, scenario) {
403
427
  financialTerms: terms,
404
428
  });
405
429
  }
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
430
  /** Runs a bounded list of controlled scenarios against one immutable baseline. */
435
431
  export function runAnalysisScenarios(input) {
436
432
  const maximumActiveScenarios = maximumActiveScenarioLimit(input.limits);
@@ -559,7 +555,7 @@ export function runAnalysisScenarioGrid(input) {
559
555
  }
560
556
  /** Complete dependency identity for exact full-result reuse, including lineage. */
561
557
  export function analysisRecipeDependencyIdentity(input) {
562
- return `fnv1a64-jcs-v1:${fnv1a64(canonicalJson({ kind: "analysis-recipe-dependencies", input }))}`;
558
+ return `fnv1a64-jcs-v1:${fnv1a64(canonicalJson({ kind: "analysis-recipe-dependencies", corePackageVersion: CORE_PACKAGE_VERSION, input }))}`;
563
559
  }
564
560
  /** Uses caller-owned cache storage; a hit is returned only for the complete dependency identity. */
565
561
  export function runAnalysisRecipeCached(input) {
@@ -590,7 +586,7 @@ export function rollForwardAnalysisRecipe(input) {
590
586
  currentEvaluationDate,
591
587
  priorResult,
592
588
  currentResult,
593
- differences: compareAnalysisResults(priorResult, currentResult),
589
+ differences: compareAnalysisEvaluations(priorResult, currentResult, priorEvaluationDate, currentEvaluationDate),
594
590
  });
595
591
  }
596
592
  /** 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"}
@@ -4,7 +4,7 @@ export declare const ANALYSIS_DEFINITION_CONTRACT_VERSION: "actuarial-analysis/1
4
4
  export declare const ANALYSIS_RECIPE_CONTRACT_VERSION: "actuarial-recipe/1";
5
5
  export declare const ANALYSIS_RESULT_CONTRACT_VERSION: "actuarial-result/1";
6
6
  export declare const BOUNDED_REPLAY_CONTRACT_VERSION: "actuarial-bounded-replay/1";
7
- export declare const CUSTOMIZATION_CAPABILITIES: readonly ["history-snapshots", "history-changes", "irregular-periods", "exposure-earning", "typed-populations", "descriptive-statistics", "reserving-triangle-adapter", "bounded-execution", "shared-financial-terms", "recipes", "scenarios"];
7
+ export declare const CUSTOMIZATION_CAPABILITIES: readonly ["history-snapshots", "history-changes", "irregular-periods", "exposure-earning", "typed-populations", "descriptive-statistics", "derived-analysis-measures", "reserving-triangle-adapter", "bounded-execution", "shared-financial-terms", "recipes", "scenarios"];
8
8
  export type CustomizationCapability = (typeof CUSTOMIZATION_CAPABILITIES)[number];
9
9
  export interface CustomizationCapabilityFinding {
10
10
  readonly code: "missing-prerequisite" | "unsupported-operation" | "incompatible-scope" | "resource-limit" | "ambiguous-attribution" | "incomplete-financial-population" | "incompatible-semantics" | "invalid-configuration";
@@ -399,11 +399,50 @@ export type AnalysisStatisticDefinition = {
399
399
  export interface AnalysisMeasureDefinitionV1 {
400
400
  readonly id: string;
401
401
  readonly unit: string;
402
+ /** Optional explicit dimensions for composing already-derived units. Unit labels are otherwise opaque atoms. */
403
+ readonly unitFactors?: Readonly<Record<string, number>>;
402
404
  readonly developmentSemantics: "cumulative" | "incremental" | "point-in-time";
403
405
  readonly statistic: AnalysisStatisticDefinition;
404
406
  readonly populationScopeId: string;
405
407
  readonly condition?: AnalysisPredicate;
406
408
  }
409
+ export type AnalysisMeasureExpression = {
410
+ readonly op: "measure";
411
+ readonly measureId: string;
412
+ } | {
413
+ readonly op: "exposure";
414
+ readonly exposureId: string;
415
+ } | {
416
+ readonly op: "constant";
417
+ readonly value: number;
418
+ readonly unitFactors: Readonly<Record<string, number>>;
419
+ } | {
420
+ readonly op: "add";
421
+ readonly terms: readonly AnalysisMeasureExpression[];
422
+ } | {
423
+ readonly op: "subtract" | "multiply";
424
+ readonly left: AnalysisMeasureExpression;
425
+ readonly right: AnalysisMeasureExpression;
426
+ } | {
427
+ readonly op: "divide";
428
+ readonly numerator: AnalysisMeasureExpression;
429
+ readonly denominator: AnalysisMeasureExpression;
430
+ };
431
+ /** Post-aggregation arithmetic. Each referenced statistic retains its own population and condition. */
432
+ export interface AnalysisDerivedMeasureDefinition {
433
+ readonly id: string;
434
+ readonly expression: AnalysisMeasureExpression;
435
+ readonly developmentSemantics: "point-in-time" | "cumulative" | "incremental";
436
+ }
437
+ export interface AnalysisDerivedComponent {
438
+ readonly kind: "measure" | "exposure";
439
+ readonly id: string;
440
+ readonly unit: string;
441
+ readonly value: number | null;
442
+ readonly status: "available" | "unavailable";
443
+ readonly contributingObservations: number;
444
+ readonly excludedObservations: number;
445
+ }
407
446
  export type AnalysisObservationSelection = {
408
447
  readonly kind: "evaluation-date";
409
448
  readonly evaluationDate: string;
@@ -540,6 +579,7 @@ export interface AnalysisDefinition {
540
579
  readonly period: AnalysisPeriodDefinition;
541
580
  readonly exposures: readonly ExposureMeasureDefinitionV1[];
542
581
  readonly measures: readonly AnalysisMeasureDefinitionV1[];
582
+ readonly derivedMeasures?: readonly AnalysisDerivedMeasureDefinition[];
543
583
  readonly financialTerms: readonly FinancialTermDefinition[];
544
584
  readonly financialAdjustments?: readonly FinancialAmountAdjustment[];
545
585
  }
@@ -662,6 +702,12 @@ export interface AnalysisResultValue {
662
702
  readonly numerator: number | null;
663
703
  readonly denominator: number | null;
664
704
  readonly findings: readonly CustomizationCapabilityFinding[];
705
+ /** Counts on a derived value are not additive population counts; inspect each component instead. */
706
+ readonly derivation?: {
707
+ readonly stage: "post-aggregation";
708
+ readonly unitFactors: Readonly<Record<string, number>>;
709
+ readonly components: readonly AnalysisDerivedComponent[];
710
+ };
665
711
  }
666
712
  export interface AnalysisResult {
667
713
  readonly resultContractVersion: typeof ANALYSIS_RESULT_CONTRACT_VERSION;