Exchange
hunch
Severity
MEDIUM
What Our Normalizer Expects
The HunchRawResearch TypeScript interface does not declare a dataFreshness field. The hunch normalizer (normalizer.ts) does not access research.dataFreshness when processing research responses.
What The Live API Returns
The live /research endpoint returns a nested dataFreshness object on each research item:
research.dataFreshness.oddsAt: string ← ISO timestamp when odds were last snapshotted
research.dataFreshness.snapshotAt: null
research.dataFreshness.observationsAt: null
Impact
- Consumers of the normalized hunch research data cannot detect stale odds —
oddsAt is never surfaced
- The
HunchRawResearch interface is incomplete; TypeScript gives no error if code tries to access raw.dataFreshness (it would just be undefined at runtime)
- Prediction accuracy metrics may silently use outdated odds without any staleness signal
Suggested Fix
- Add
dataFreshness to the HunchRawResearch interface:
dataFreshness?: {
oddsAt?: string;
snapshotAt?: string | null;
observationsAt?: string | null;
};
- In the normalizer, surface
dataFreshness.oddsAt as a sourceMetadata field or a top-level timestamp on the normalized research output so consumers can detect and handle stale odds
Found by automated response shape drift audit
Exchange
hunch
Severity
MEDIUM
What Our Normalizer Expects
The
HunchRawResearchTypeScript interface does not declare adataFreshnessfield. The hunch normalizer (normalizer.ts) does not accessresearch.dataFreshnesswhen processing research responses.What The Live API Returns
The live
/researchendpoint returns a nesteddataFreshnessobject on each research item:Impact
oddsAtis never surfacedHunchRawResearchinterface is incomplete; TypeScript gives no error if code tries to accessraw.dataFreshness(it would just beundefinedat runtime)Suggested Fix
dataFreshnessto theHunchRawResearchinterface:dataFreshness.oddsAtas asourceMetadatafield or a top-level timestamp on the normalized research output so consumers can detect and handle stale oddsFound by automated response shape drift audit