# The next honest test

The original 2025–26 test has been used. V3 was developed after inspecting its errors. Repeatedly improving that historical replay cannot prove future improvement.

This folder starts a separate prospective record. Announced matchups are saved with official source membership, unresolved card conflicts and fighter identity decisions. Each sealed run contains V3, preserved V2 and Elo forecasts, exact pre-event feature vectors, the model/data hashes, an outcome template and a scoring protocol. The local date and hashes are an audit aid; they are not an independently notarised publication time.

The primary future comparison is V3 versus Elo on probability loss. V2 provides the direct correction comparison. Every registered pairing must be accounted for, including cancellations and replacements. A forecast cannot be transferred to a different opponent. New pairings require a separate pre-event issue. Missing-history fighters retain the same conservative history priors used for debutants; unavailable private or pre-UFC evidence is not invented.

One card is a pilot. It cannot establish a statistically significant improvement, a stable success rate or betting profitability. A larger, newly registered sequence of future cards is required before making those claims. Nothing in this record changes the original untouched 65.11% result.

From the workbench directory, using its Python environment:

```powershell
python src/prospective.py verify results/prospective/card-2026-09-12/sealed
```

After the event, copy `outcomes-template.csv` outside the sealed folder and fill every registered row. Resolve every `unconfirmed` row to `decisive`, `draw`, `no_contest`, or `cancelled`; for decisive bouts, `y_a_win` is 1 when the named first fighter wins and 0 when the second wins. Include an official HTTP or HTTPS source for every row. Final scoring refuses unresolved ledgers. Exactly 50/50 forecasts use a fixed SHA256-derived choice from the sorted stable fighter IDs, so swapping fighter order cannot alter the chosen athlete and no ID prefix automatically wins a tie. Then:

```powershell
python src/prospective.py score results/prospective/card-2026-09-12/sealed path/to/completed-outcomes.csv
```

The scorer refuses to run before the event date has passed, refuses incomplete pairing ledgers, checks the seal, and refuses to overwrite an existing evaluation. Corrections should be separately recorded with their reason and original evidence preserved. Historical data and models are never changed by this workflow.
