@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
@@ -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
- ? observation.evaluationDate
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/index.ts CHANGED
@@ -12,6 +12,8 @@ export * from "./reservingAdapter.js";
12
12
  export * from "./financialTerms.js";
13
13
  export * from "./financialPipeline.js";
14
14
  export * from "./analysisRecipe.js";
15
+ export * from "./analysisExpressions.js";
16
+ export * from "./analysisFinancialUnits.js";
15
17
  export * from "./util.js";
16
18
  export * from "./canonical.js";
17
19
  export {
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.0";
2
+ export const CORE_PACKAGE_VERSION = "0.9.0";