The Morning Slate

The Morning Slate · Verifier

Verify a prediction

Recompute the SHA-256 hash of any prediction we've published. The hash math runs in your browser — we never receive what you compute. If you arrived via a prediction <code>?id=</code> link, your browser also fetches that prediction's canonical fields from our public dataset to populate the form; the hash computation itself never leaves your machine. You can also do it yourself, fully offline, with the snippets below.

The prediction

Prediction ID
cm4f481d8822eb93bd24c3d9ab
Fixture
Genoa vs Como (SERIEA)
Market
MATCH_RESULT
Selection
DRAW (Draw)
Model probability
0.2647
Edge %
-2.74
Drivers
  1. Home Elo advantage: -196 (1498 vs 1694)
  2. Form: home 0.09 / away 0.86
  3. Recent xG avg: home 1.46 / away 1.46
Risk
(none)
Schema version
betclarity-prediction-v2
Published (UTC)
2026-09-01T02:10:07.343Z
Kickoff (UTC)
2026-09-04T18:45:00.000Z

Live recomputation

(Verification will appear here once data is provided.)

Canonical JSON

{"drivers":["Home Elo advantage: -196 (1498 vs 1694)","Form: home 0.09 / away 0.86","Recent xG avg: home 1.46 / away 1.46"],"edgePercent":-2.74,"fixtureId":"cmt29vgw30e4501mvp3fpgoe0","kickoffAt":"2026-09-04T18:45:00.000Z","market":"MATCH_RESULT","modelProbability":0.2647,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"DRAW"}

These are the exact bytes we took the SHA-256 of. Copy them into any SHA-256 tool to verify the hash above yourself.

Don't trust us, do it yourself

// Recompute the SHA-256 of this prediction's canonical input.
import { createHash } from "node:crypto";

const canonical =
  `{"drivers":["Home Elo advantage: -196 (1498 vs 1694)","Form: home 0.09 / away 0.86","Recent xG avg: home 1.46 / away 1.46"],"edgePercent":-2.74,"fixtureId":"cmt29vgw30e4501mvp3fpgoe0","kickoffAt":"2026-09-04T18:45:00.000Z","market":"MATCH_RESULT","modelProbability":0.2647,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"DRAW"}`;

const computed = createHash("sha256").update(canonical, "utf8").digest("hex");
console.log("computed:", computed);
console.log("expected:", "e0b8fc4ff6c610018279d05ba8f1cefe633e4abdd5d395638c9d560a95ab16d6");
console.log("match:   ", computed === "e0b8fc4ff6c610018279d05ba8f1cefe633e4abdd5d395638c9d560a95ab16d6");