@actuarial-ts/interchange 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -1
- package/dist/convert/result.d.ts +4 -4
- package/dist/convert/result.js +3 -3
- package/dist/convert/result.js.map +1 -1
- package/dist/envelope.d.ts +1 -1
- package/dist/envelope.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +49 -0
- package/dist/parse.js.map +1 -1
- package/dist/referee/crosscheck.d.ts +12 -0
- package/dist/referee/crosscheck.d.ts.map +1 -1
- package/dist/referee/crosscheck.js +109 -9
- package/dist/referee/crosscheck.js.map +1 -1
- package/dist/referee/crosscheckStochastic.d.ts +24 -0
- package/dist/referee/crosscheckStochastic.d.ts.map +1 -0
- package/dist/referee/crosscheckStochastic.js +367 -0
- package/dist/referee/crosscheckStochastic.js.map +1 -0
- package/dist/schemas/result.d.ts +552 -0
- package/dist/schemas/result.d.ts.map +1 -1
- package/dist/schemas/result.js +52 -0
- package/dist/schemas/result.js.map +1 -1
- package/package.json +4 -2
- package/src/convert/result.ts +212 -0
- package/src/convert/selection.ts +565 -0
- package/src/convert/triangle.ts +208 -0
- package/src/envelope.ts +193 -0
- package/src/index.ts +15 -0
- package/src/parse.ts +175 -0
- package/src/referee/crosscheck.ts +459 -0
- package/src/referee/crosscheckStochastic.ts +488 -0
- package/src/referee/profiles.ts +113 -0
- package/src/schemas/bundle.ts +64 -0
- package/src/schemas/crosscheck.ts +84 -0
- package/src/schemas/manifest.ts +75 -0
- package/src/schemas/result.ts +180 -0
- package/src/schemas/selection.ts +175 -0
- package/src/schemas/study.ts +98 -0
- package/src/schemas/triangle.ts +138 -0
package/README.md
CHANGED
|
@@ -5,6 +5,16 @@ language-neutral, versioned documents that carry **data, intent, results,
|
|
|
5
5
|
and governance** between actuarial-ts, chainladder-python, and R
|
|
6
6
|
ChainLadder — plus the deterministic cross-implementation referee.
|
|
7
7
|
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
npm install @actuarial-ts/interchange
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
ESM, Node >= 20. Depends on `@actuarial-ts/core` (>= 0.2.0 — it provides the
|
|
15
|
+
`canonicalJson`/`fnv1a64` this package canonicalizes and stamps with) and
|
|
16
|
+
`zod`.
|
|
17
|
+
|
|
8
18
|
- **Document kinds**: `triangle`, `selection`, `method-result`,
|
|
9
19
|
`stochastic-result`, `study`, `bundle`, `crosscheck-report` — zod
|
|
10
20
|
schemas with inferred types, mechanically emitted to JSON Schema under
|
|
@@ -25,7 +35,8 @@ ChainLadder — plus the deterministic cross-implementation referee.
|
|
|
25
35
|
- **Converters**: `triangleToDoc`/`docToTriangle`,
|
|
26
36
|
`selectionsToDoc`/`docToSelections` (intent ↔ the standard averages
|
|
27
37
|
menu), `resultToDoc` (chainLadder, mack, bornhuetterFerguson,
|
|
28
|
-
benktander
|
|
38
|
+
benktander; Cape Cod, Clark, Munich and the stochastic layer are not yet
|
|
39
|
+
converted and `resultToDoc` throws for them), and
|
|
29
40
|
`parseDocument` (version-checked, integrity-verified,
|
|
30
41
|
warning-channeled).
|
|
31
42
|
- **The referee**: `crosscheck({ a, b, tolerance?, selection?, createdAt })`
|
|
@@ -50,3 +61,19 @@ regenerates the committed JSON Schemas).
|
|
|
50
61
|
This package is designed to support the actuary's compliance with the
|
|
51
62
|
ASOPs; cross-implementation agreement supports, but does not by itself
|
|
52
63
|
constitute, the model validation contemplated by ASOP No. 56.
|
|
64
|
+
|
|
65
|
+
## Two referees
|
|
66
|
+
|
|
67
|
+
`crosscheck` compares DERIVATIONS: two deterministic `method-result` documents,
|
|
68
|
+
where any deviation beyond float noise is a real disagreement.
|
|
69
|
+
|
|
70
|
+
`crosscheckStochastic` compares DRAWS: two `stochastic-result` documents, where
|
|
71
|
+
the expected disagreement is nonzero and set by sampling theory. Its tolerance
|
|
72
|
+
is derived from the simulation count and the observed coefficient of variation
|
|
73
|
+
rather than declared, so it tightens as n grows, and it withholds that
|
|
74
|
+
allowance from two results that both claim `seeded-reproducible` at one seed.
|
|
75
|
+
See `docs/interop/reproducibility.md`.
|
|
76
|
+
|
|
77
|
+
## License
|
|
78
|
+
|
|
79
|
+
Apache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
|
package/dist/convert/result.d.ts
CHANGED
|
@@ -7,10 +7,10 @@ import { type EngineStamp, type MethodResultDoc } from "../schemas/result.js";
|
|
|
7
7
|
* core method results → MethodResultDoc, stamping `appliesTo` (spec 3.2 /
|
|
8
8
|
* 4.1).
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Converts the deterministic quartet — ChainLadderResult, MackResult,
|
|
11
|
+
* BornhuetterFergusonResult, BenktanderResult. Further methods (Cape Cod,
|
|
12
|
+
* Clark, Munich, the stochastic layer, ...) are NOT yet converted and
|
|
13
|
+
* throw; adding one is a spec-minor change. Method names use the actuarial-ts namespace
|
|
14
14
|
* (unprefixed discriminants); `clpy:`/`rcl:` are reserved for the other
|
|
15
15
|
* shores.
|
|
16
16
|
*
|
package/dist/convert/result.js
CHANGED
|
@@ -5,7 +5,7 @@ import { methodResultDocSchema, } from "../schemas/result.js";
|
|
|
5
5
|
* The engine stamp for results computed by @actuarial-ts/core. A sync test
|
|
6
6
|
* pins the version to the installed core package so it cannot drift.
|
|
7
7
|
*/
|
|
8
|
-
export const CORE_ENGINE = { name: "actuarial-ts", version: "0.
|
|
8
|
+
export const CORE_ENGINE = { name: "actuarial-ts", version: "0.3.0" };
|
|
9
9
|
function mapResult(result) {
|
|
10
10
|
switch (result.method) {
|
|
11
11
|
case "chainLadder":
|
|
@@ -63,8 +63,8 @@ function mapResult(result) {
|
|
|
63
63
|
};
|
|
64
64
|
default: {
|
|
65
65
|
const method = result.method ?? "(unknown)";
|
|
66
|
-
throw new ReservingError("BAD_INTERCHANGE", `resultToDoc does not support method "${method}" yet;
|
|
67
|
-
"mack, bornhuetterFerguson, and benktander
|
|
66
|
+
throw new ReservingError("BAD_INTERCHANGE", `resultToDoc does not support method "${method}" yet; it converts chainLadder, ` +
|
|
67
|
+
"mack, bornhuetterFerguson, and benktander");
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/convert/result.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/convert/result.ts"],"names":[],"mappings":"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"}
|
package/dist/envelope.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export declare const INTERCHANGE_SPEC_MAJOR = 1;
|
|
|
32
32
|
* This package's version, stamped into `generator` by default. A sync test
|
|
33
33
|
* asserts it matches package.json so it cannot silently drift.
|
|
34
34
|
*/
|
|
35
|
-
export declare const INTERCHANGE_PACKAGE_VERSION = "0.
|
|
35
|
+
export declare const INTERCHANGE_PACKAGE_VERSION = "0.3.0";
|
|
36
36
|
export interface GeneratorStamp {
|
|
37
37
|
name: string;
|
|
38
38
|
version: string;
|
package/dist/envelope.js
CHANGED
|
@@ -33,7 +33,7 @@ export const INTERCHANGE_SPEC_MAJOR = 1;
|
|
|
33
33
|
* This package's version, stamped into `generator` by default. A sync test
|
|
34
34
|
* asserts it matches package.json so it cannot silently drift.
|
|
35
35
|
*/
|
|
36
|
-
export const INTERCHANGE_PACKAGE_VERSION = "0.
|
|
36
|
+
export const INTERCHANGE_PACKAGE_VERSION = "0.3.0";
|
|
37
37
|
/** Default `generator` stamp for documents authored by this package. */
|
|
38
38
|
export const DEFAULT_GENERATOR = {
|
|
39
39
|
name: "@actuarial-ts/interchange",
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC"}
|
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,QAAQ,GACR,SAAS,GACT,mBAAmB,CAAC;AAExB,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,QAAQ,GACR,SAAS,GACT,mBAAmB,CAAC;AAExB,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwCD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,oBAAyB,GACjC,cAAc,CA4EhB"}
|
package/dist/parse.js
CHANGED
|
@@ -7,6 +7,35 @@ function formatZodError(error) {
|
|
|
7
7
|
.map((issue) => `${issue.path.length > 0 ? `$.${issue.path.join(".")}` : "$"}: ${issue.message}`)
|
|
8
8
|
.join("; ");
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Documents embedded inside a study or bundle, as `<path>` -> document.
|
|
12
|
+
*
|
|
13
|
+
* A study carries whole TriangleDocs, SelectionDocs and result documents; a
|
|
14
|
+
* bundle mirrors the same set under `interchange`. Each is a complete document
|
|
15
|
+
* with its OWN integrity tag over its OWN body.
|
|
16
|
+
*/
|
|
17
|
+
function embeddedDocuments(doc) {
|
|
18
|
+
const found = [];
|
|
19
|
+
const collect = (prefix, list) => {
|
|
20
|
+
if (!Array.isArray(list))
|
|
21
|
+
return;
|
|
22
|
+
list.forEach((value, index) => found.push({ path: `${prefix}[${index}]`, value }));
|
|
23
|
+
};
|
|
24
|
+
if (doc.kind === "study") {
|
|
25
|
+
collect("$.study.triangles", doc.study.triangles);
|
|
26
|
+
collect("$.study.selections", doc.study.selections);
|
|
27
|
+
collect("$.study.supportingResults", doc.study.supportingResults);
|
|
28
|
+
}
|
|
29
|
+
else if (doc.kind === "bundle") {
|
|
30
|
+
const mirror = doc.interchange;
|
|
31
|
+
if (mirror !== undefined) {
|
|
32
|
+
collect("$.interchange.triangles", mirror["triangles"]);
|
|
33
|
+
collect("$.interchange.selections", mirror["selections"]);
|
|
34
|
+
collect("$.interchange.results", mirror["results"]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return found;
|
|
38
|
+
}
|
|
10
39
|
export function parseDocument(value, options = {}) {
|
|
11
40
|
const strictness = options.strictness ?? "refuse";
|
|
12
41
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
@@ -35,6 +64,26 @@ export function parseDocument(value, options = {}) {
|
|
|
35
64
|
}
|
|
36
65
|
warnings.push(message);
|
|
37
66
|
}
|
|
67
|
+
// Embedded documents carry their own tags, and nothing checked them. That
|
|
68
|
+
// matters because `appliesTo.triangleIntegrity` is the linkage primitive the
|
|
69
|
+
// referee relies on: a result claims to apply to a triangle BY TAG, so a
|
|
70
|
+
// nested triangle whose tag no longer matches its own body makes every such
|
|
71
|
+
// claim point at something other than what is actually there.
|
|
72
|
+
for (const { path, value } of embeddedDocuments(doc)) {
|
|
73
|
+
const nested = verifyIntegrity(value);
|
|
74
|
+
if (nested.ok)
|
|
75
|
+
continue;
|
|
76
|
+
const nestedKind = typeof value?.kind === "string"
|
|
77
|
+
? value.kind
|
|
78
|
+
: "unknown";
|
|
79
|
+
const message = `Integrity tag mismatch on the embedded "${nestedKind}" document at ${path}: it states ` +
|
|
80
|
+
`${nested.actual ?? "(none)"} but its own semantic body hashes to ${nested.expected}. ` +
|
|
81
|
+
"The enclosing document's tag is intact, so this diverged before it was embedded.";
|
|
82
|
+
if (strictness === "refuse") {
|
|
83
|
+
throw new ReservingError("BAD_INTERCHANGE", message);
|
|
84
|
+
}
|
|
85
|
+
warnings.push(message);
|
|
86
|
+
}
|
|
38
87
|
if (doc.kind === "triangle") {
|
|
39
88
|
const cadence = doc.triangle.originLengthMonths;
|
|
40
89
|
if (cadence === 1 || cadence === 6) {
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,18 @@ export interface CrosscheckOptions {
|
|
|
27
27
|
central: number;
|
|
28
28
|
standardError?: number;
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Absolute floor for the deviation test, applied as
|
|
32
|
+
* `|x - y| <= absoluteTolerance + rtol * max(|x|, |y|)`. Default 0, which is
|
|
33
|
+
* pure relative comparison.
|
|
34
|
+
*
|
|
35
|
+
* There is deliberately no non-zero default: the referee sees result
|
|
36
|
+
* documents, not the triangle, so it cannot read `units.scale` and any
|
|
37
|
+
* constant it invented would be wrong for somebody's data. A caller who
|
|
38
|
+
* knows the scale should set it — without one, an exact 0 against 1e-11 of
|
|
39
|
+
* float dust reads as a 100% deviation.
|
|
40
|
+
*/
|
|
41
|
+
absoluteTolerance?: number;
|
|
30
42
|
/** The selection both results applied, when one exists — enables the
|
|
31
43
|
* verified-by-value classification. */
|
|
32
44
|
selection?: SelectionDoc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crosscheck.d.ts","sourceRoot":"","sources":["../../src/referee/crosscheck.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,0BAA0B,CAAC;AAGlC;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;IACnB;wCACoC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE;2CACuC;IACvC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"crosscheck.d.ts","sourceRoot":"","sources":["../../src/referee/crosscheck.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,0BAA0B,CAAC;AAGlC;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;IACnB;wCACoC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;2CACuC;IACvC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAuHD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,CAkR1E"}
|
|
@@ -8,9 +8,28 @@ function relativeDeviation(x, y) {
|
|
|
8
8
|
const scale = Math.max(Math.abs(x), Math.abs(y));
|
|
9
9
|
return scale === 0 ? 0 : Math.abs(x - y) / scale;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* True when x and y differ by more than the caller allows.
|
|
13
|
+
*
|
|
14
|
+
* `|x - y| <= atol + rtol * max(|x|, |y|)` — the standard combined form. With
|
|
15
|
+
* atol 0 this is exactly the relative test, which is the default.
|
|
16
|
+
*/
|
|
17
|
+
function exceeds(x, y, rtol, atol) {
|
|
18
|
+
return Math.abs(x - y) > atol + rtol * Math.max(Math.abs(x), Math.abs(y));
|
|
19
|
+
}
|
|
11
20
|
function validateInput(label, doc) {
|
|
12
21
|
const parsed = methodResultDocSchema.safeParse(doc);
|
|
13
22
|
if (!parsed.success) {
|
|
23
|
+
// A stochastic result is a legitimate document that simply belongs to the
|
|
24
|
+
// other referee: comparing two Monte Carlo samples under a deterministic
|
|
25
|
+
// tolerance manufactures `disagree` verdicts out of sampling noise
|
|
26
|
+
// (spec 16). Say so, rather than leaving the caller with a schema dump.
|
|
27
|
+
if (doc?.kind === "stochastic-result") {
|
|
28
|
+
throw new ReservingError("BAD_INTERCHANGE", `crosscheck input "${label}" is a stochastic-result document. Use crosscheckStochastic(), ` +
|
|
29
|
+
"which compares distributions under a tolerance derived from sampling theory; a " +
|
|
30
|
+
"deterministic tolerance applied to two Monte Carlo samples reports ordinary sampling " +
|
|
31
|
+
"noise as disagreement.");
|
|
32
|
+
}
|
|
14
33
|
throw new ReservingError("BAD_INTERCHANGE", `crosscheck input "${label}" is not a valid MethodResultDoc: ${parsed.error.issues
|
|
15
34
|
.map((i) => `${i.path.join(".") || "$"}: ${i.message}`)
|
|
16
35
|
.join("; ")}`);
|
|
@@ -24,18 +43,38 @@ function validateInput(label, doc) {
|
|
|
24
43
|
}
|
|
25
44
|
function resolveTolerance(a, b, explicit, warnings) {
|
|
26
45
|
if (typeof explicit === "number") {
|
|
27
|
-
return { central: explicit, standardError: explicit };
|
|
46
|
+
return { central: explicit, standardError: explicit, standardErrorRequired: false };
|
|
28
47
|
}
|
|
29
48
|
if (explicit !== undefined) {
|
|
30
|
-
return {
|
|
49
|
+
return {
|
|
50
|
+
central: explicit.central,
|
|
51
|
+
standardError: explicit.standardError ?? null,
|
|
52
|
+
standardErrorRequired: explicit.standardError !== undefined,
|
|
53
|
+
};
|
|
31
54
|
}
|
|
32
55
|
const profileA = a.result.engine.conventionProfile;
|
|
33
56
|
const profileB = b.result.engine.conventionProfile;
|
|
34
|
-
|
|
57
|
+
// A profile stated on ONE side still governs. Falling back to the default
|
|
58
|
+
// when only one engine declares its conventions silently drops standard
|
|
59
|
+
// errors out of scope, which is how a 50% SE divergence used to report
|
|
60
|
+
// `agree`. Use the stated profile and say the other side did not state one.
|
|
61
|
+
const stated = profileA ?? profileB;
|
|
62
|
+
if (profileA !== undefined && profileB !== undefined && profileA !== profileB) {
|
|
63
|
+
// Conflicting profiles are a comparability failure, handled by the caller.
|
|
64
|
+
}
|
|
65
|
+
else if (stated !== undefined && profileA !== profileB) {
|
|
66
|
+
warnings.push(`Only ${profileA !== undefined ? '"a"' : '"b"'} states a convention profile ` +
|
|
67
|
+
`("${stated}"); it is being applied to both. The other engine did not declare ` +
|
|
68
|
+
"its conventions, so alignment is asserted rather than verified.");
|
|
69
|
+
}
|
|
70
|
+
const shared = profileA === profileB ? profileA : stated;
|
|
35
71
|
if (shared !== undefined) {
|
|
36
72
|
const profile = CONVENTION_PROFILES[shared];
|
|
37
73
|
if (profile !== undefined) {
|
|
38
|
-
return {
|
|
74
|
+
return {
|
|
75
|
+
...profile.tolerance,
|
|
76
|
+
standardErrorRequired: profile.tolerance.standardError !== null,
|
|
77
|
+
};
|
|
39
78
|
}
|
|
40
79
|
warnings.push(`Convention profile "${shared}" is not in this package's registry; falling back to the ` +
|
|
41
80
|
"deterministic-cl central tolerance");
|
|
@@ -45,11 +84,12 @@ function resolveTolerance(a, b, explicit, warnings) {
|
|
|
45
84
|
"deterministic-cl central tolerance");
|
|
46
85
|
}
|
|
47
86
|
const fallback = CONVENTION_PROFILES["deterministic-cl"];
|
|
48
|
-
return { ...fallback.tolerance };
|
|
87
|
+
return { ...fallback.tolerance, standardErrorRequired: false };
|
|
49
88
|
}
|
|
50
89
|
export function crosscheck(options) {
|
|
51
90
|
const a = validateInput("a", options.a);
|
|
52
91
|
const b = validateInput("b", options.b);
|
|
92
|
+
const absoluteTolerance = options.absoluteTolerance ?? 0;
|
|
53
93
|
const warnings = [];
|
|
54
94
|
const notComparable = [];
|
|
55
95
|
// --- comparability: appliesTo tags (spec 5) ---
|
|
@@ -128,6 +168,13 @@ export function crosscheck(options) {
|
|
|
128
168
|
const perOrigin = [];
|
|
129
169
|
let maxCentral = 0;
|
|
130
170
|
let maxSe = 0;
|
|
171
|
+
// How many cells each metric was actually compared on. A metric the profile
|
|
172
|
+
// scopes IN but which never got compared on a single cell is the case that
|
|
173
|
+
// used to report `agree` while checking nothing.
|
|
174
|
+
let centralCells = 0;
|
|
175
|
+
let seCells = 0;
|
|
176
|
+
let centralBreached = false;
|
|
177
|
+
let seBreached = false;
|
|
131
178
|
if (comparable) {
|
|
132
179
|
for (const rowA of a.result.rows) {
|
|
133
180
|
const rowB = bByOrigin.get(rowA.origin);
|
|
@@ -136,9 +183,19 @@ export function crosscheck(options) {
|
|
|
136
183
|
const standardError = compareSe && rowA.standardError !== undefined && rowB.standardError !== undefined
|
|
137
184
|
? relativeDeviation(rowA.standardError, rowB.standardError)
|
|
138
185
|
: null;
|
|
186
|
+
centralCells++;
|
|
139
187
|
maxCentral = Math.max(maxCentral, ultimate, unpaid);
|
|
140
|
-
if (
|
|
188
|
+
if (exceeds(rowA.ultimate, rowB.ultimate, tolerance.central, absoluteTolerance) ||
|
|
189
|
+
exceeds(rowA.unpaid, rowB.unpaid, tolerance.central, absoluteTolerance)) {
|
|
190
|
+
centralBreached = true;
|
|
191
|
+
}
|
|
192
|
+
if (standardError !== null) {
|
|
193
|
+
seCells++;
|
|
141
194
|
maxSe = Math.max(maxSe, standardError);
|
|
195
|
+
if (exceeds(rowA.standardError, rowB.standardError, tolerance.standardError, absoluteTolerance)) {
|
|
196
|
+
seBreached = true;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
142
199
|
perOrigin.push({ origin: rowA.origin, ultimate, unpaid, standardError });
|
|
143
200
|
}
|
|
144
201
|
}
|
|
@@ -156,9 +213,31 @@ export function crosscheck(options) {
|
|
|
156
213
|
}
|
|
157
214
|
: { ultimate: null, unpaid: null, standardError: null };
|
|
158
215
|
if (comparable) {
|
|
216
|
+
centralCells++;
|
|
159
217
|
maxCentral = Math.max(maxCentral, totals.ultimate ?? 0, totals.unpaid ?? 0);
|
|
160
|
-
if (
|
|
218
|
+
if (exceeds(totalsA.ultimate, totalsB.ultimate, tolerance.central, absoluteTolerance) ||
|
|
219
|
+
exceeds(totalsA.unpaid, totalsB.unpaid, tolerance.central, absoluteTolerance)) {
|
|
220
|
+
centralBreached = true;
|
|
221
|
+
}
|
|
222
|
+
if (totals.standardError !== null) {
|
|
223
|
+
seCells++;
|
|
161
224
|
maxSe = Math.max(maxSe, totals.standardError);
|
|
225
|
+
if (exceeds(totalsA.standardError, totalsB.standardError, tolerance.standardError, absoluteTolerance)) {
|
|
226
|
+
seBreached = true;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// A metric the profile scopes IN but which was never compared on any cell
|
|
231
|
+
// leaves the comparison incomplete. `agree` is read as "these engines agree",
|
|
232
|
+
// so it must not be reachable when the thing the profile asked about was
|
|
233
|
+
// never checked — the referee refuses instead, and says which metric.
|
|
234
|
+
const uncovered = [];
|
|
235
|
+
if (comparable && centralCells === 0) {
|
|
236
|
+
uncovered.push("central estimates were not compared on any cell");
|
|
237
|
+
}
|
|
238
|
+
if (comparable && compareSe && tolerance.standardErrorRequired && seCells === 0) {
|
|
239
|
+
uncovered.push(`the profile scopes standard errors in (tolerance ${tolerance.standardError}) but neither ` +
|
|
240
|
+
"side carries a standard error on any cell, so they were never compared");
|
|
162
241
|
}
|
|
163
242
|
// --- verdict ---
|
|
164
243
|
let verdict;
|
|
@@ -166,10 +245,14 @@ export function crosscheck(options) {
|
|
|
166
245
|
verdict = "not-comparable";
|
|
167
246
|
warnings.push(...notComparable.map((reason) => `Not comparable: ${reason}`));
|
|
168
247
|
}
|
|
169
|
-
else if (
|
|
170
|
-
(compareSe && maxSe > tolerance.standardError)) {
|
|
248
|
+
else if (centralBreached || (compareSe && seBreached)) {
|
|
171
249
|
verdict = "disagree";
|
|
172
250
|
}
|
|
251
|
+
else if (uncovered.length > 0) {
|
|
252
|
+
verdict = "not-comparable";
|
|
253
|
+
warnings.push(...uncovered.map((reason) => `Not comparable: ${reason}. Everything that WAS compared agreed, but a verdict of ` +
|
|
254
|
+
"`agree` would overstate that."));
|
|
255
|
+
}
|
|
173
256
|
else if (selection !== null &&
|
|
174
257
|
sameSelection &&
|
|
175
258
|
aTo.selectionIntegrity !== null &&
|
|
@@ -179,6 +262,16 @@ export function crosscheck(options) {
|
|
|
179
262
|
"no independent recomputation occurred; agreement verifies value transport, not methodology");
|
|
180
263
|
}
|
|
181
264
|
else {
|
|
265
|
+
if (sameSelection && aTo.selectionIntegrity !== null && selection === null) {
|
|
266
|
+
// Whether agreement reflects independent recomputation or a replay of the
|
|
267
|
+
// same values depends on the selection document — and the party supplying
|
|
268
|
+
// it is the one being audited. Silence here let them choose whether the
|
|
269
|
+
// disclosure appeared, so say plainly that the check did not run.
|
|
270
|
+
warnings.push(`Both results replayed selection ${aTo.selectionIntegrity}, but the selection document ` +
|
|
271
|
+
"was not supplied, so whether it is value-only could not be checked. If it is, this " +
|
|
272
|
+
"agreement verifies value transport rather than methodology — pass `selection` to " +
|
|
273
|
+
"resolve it.");
|
|
274
|
+
}
|
|
182
275
|
verdict = "agree";
|
|
183
276
|
}
|
|
184
277
|
const body = {
|
|
@@ -192,6 +285,13 @@ export function crosscheck(options) {
|
|
|
192
285
|
deviations: { perOrigin, totals },
|
|
193
286
|
verdict,
|
|
194
287
|
warnings,
|
|
288
|
+
// What was actually examined, so a reader can tell "agreed on everything the
|
|
289
|
+
// profile asked about" from "agreed on what happened to be present".
|
|
290
|
+
coverage: {
|
|
291
|
+
central: { inScope: true, comparedCells: centralCells },
|
|
292
|
+
standardError: { inScope: compareSe, comparedCells: seCells },
|
|
293
|
+
absoluteTolerance,
|
|
294
|
+
},
|
|
195
295
|
};
|
|
196
296
|
const doc = stampIntegrity({
|
|
197
297
|
interchangeVersion: INTERCHANGE_SPEC_VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crosscheck.js","sourceRoot":"","sources":["../../src/referee/crosscheck.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crosscheck.js","sourceRoot":"","sources":["../../src/referee/crosscheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type GeneratorStamp } from "../envelope.js";
|
|
2
|
+
import { type StochasticResultDoc } from "../schemas/result.js";
|
|
3
|
+
import { type CrosscheckReportDoc } from "../schemas/crosscheck.js";
|
|
4
|
+
export interface CrosscheckStochasticOptions {
|
|
5
|
+
a: StochasticResultDoc;
|
|
6
|
+
b: StochasticResultDoc;
|
|
7
|
+
/**
|
|
8
|
+
* Sigmas of Monte Carlo headroom for the derived tolerance. Default 4.
|
|
9
|
+
* Lower it only with a reason: at 2 sigma roughly 1 comparison in 20 of two
|
|
10
|
+
* genuinely-equivalent engines will be called `disagree`.
|
|
11
|
+
*/
|
|
12
|
+
sigmas?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The bound applied when both sides claim `seeded-reproducible` with the
|
|
15
|
+
* same seed, i.e. when they assert byte-reproducibility and the MC allowance
|
|
16
|
+
* is withheld. Default 1e-9 (float noise only).
|
|
17
|
+
*/
|
|
18
|
+
exactTolerance?: number;
|
|
19
|
+
/** ISO timestamp for the report envelope (caller-supplied; purity rule). */
|
|
20
|
+
createdAt: string;
|
|
21
|
+
generator?: GeneratorStamp;
|
|
22
|
+
}
|
|
23
|
+
export declare function crosscheckStochastic(options: CrosscheckStochasticOptions): CrosscheckReportDoc;
|
|
24
|
+
//# sourceMappingURL=crosscheckStochastic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crosscheckStochastic.d.ts","sourceRoot":"","sources":["../../src/referee/crosscheckStochastic.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,0BAA0B,CAAC;AAmDlC,MAAM,WAAW,2BAA2B;IAC1C,CAAC,EAAE,mBAAmB,CAAC;IACvB,CAAC,EAAE,mBAAmB,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAkCD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,mBAAmB,CA8WrB"}
|