# SigningLab — Prediction Commitments · SL 2026.1

This file set makes SigningLab's public forecasts independently verifiable
without exposing any proprietary model internals.

## What is committed
Each of the 1,985 entries in `commitments_sl2026_1.json` is the SHA-256
of one published verdict:

    sha256( "league|season|player_key|club_key|verdict|SL 2026.1" + "|" + salt )

The salt (16 random bytes per record) prevents dictionary enumeration of the
verdicts before the reveal.

## How to verify
1. **Today:** confirm this file's publication date via the public repository
   history (and, when present, the OpenTimestamps proof `.ots`).
2. **At season close:** a random sample of ~100 commitments is drawn using a
   public randomness source outside SigningLab's control (the hash of the
   first Bitcoin block mined after the announced close date, used as a seed
   over this sorted list — the selection is reproducible by anyone).
   SigningLab publishes `reveals_sample_sl2026_1.csv` (payload + salt for the
   sampled entries). Recompute each SHA-256 and match it against this file.
3. Compare the sampled verdicts against real player outcomes — that
   comparison, not our word, is the accuracy claim.

## Why a sample and not the full set
Because no one — including SigningLab — can predict which entries the public
beacon will select, every commitment must be honest at publication time:
falsifying even 5% of the set would be caught by the sample with ~99%
probability. Publishing the full labeled set, on the other hand, would hand
out the training data needed to imitate the model. The sample gives auditors
statistical proof of integrity while the verdict set itself remains the
commercial product, available to clients in the app.

## What is NOT here
Model architecture, features, weights, scores and thresholds are proprietary
and are neither committed nor revealed. Commitments cover only the binary
recommendation a client sees in the app.
