Keep explicit ARR labels while guarding ambiguous income samples

This commit is contained in:
2026-10-31 23:31:29 +08:00
parent c6e5a7b05f
commit ae84304e16
+8 -2
View File
@@ -279,9 +279,15 @@ test("ambiguous ARR claims retain currency, precision and attribution limits", (
const portfolio = snapshot.observations.filter((o) => o.company === "AI100");
assert.deepEqual(portfolio.filter((o) => o.selection === "signal").map((o) => o.id), ["SR25-O-DRS-PORTFOLIO"],
"a product milestone must not be added to its company portfolio as another company");
assert.ok(snapshot.observations.filter((o) => o.id.startsWith("SR25-O-")).every((o) =>
o.unit !== "USD" && !o.metric && !o.observedAt && o.comparisonGroup === null),
const speedrun2025 = snapshot.observations.filter((o) => o.id.startsWith("SR25-O-"));
assert.ok(speedrun2025.every((o) =>
o.unit !== "USD" && !o.observedAt && o.comparisonGroup === null),
"access dates and dollar symbols must not invent dated USD income samples");
assert.deepEqual(speedrun2025.filter((o) => o.metric).map((o) => [o.id, o.metric]).sort(),
[["SR25-O-DRS-PORTFOLIO", "arr"], ["SR25-O-LOOPS-ARR", "arr"]],
"explicit company ARR claims retain their metric without inferring currency or reporting dates");
assert.ok(platformIncomeSample(snapshot, { windowDays: null }).points.every((point) =>
!point.observation.id.startsWith("SR25-O-")), "undated ARR claims never enter platform MRR comparisons");
});
// Retractions and forecasts must stay visible for review without becoming revenue signals.