# QPU Predictive Simulator Out-of-Sample Report

## Status

No out-of-sample QPU jobs are available yet.

## Operational Blocker

Submit validation jobs only after `python examples/ibm_runtime_backends.py --min-qubits 4` returns backend data promptly from the same shell. If backend discovery times out, stop before QPU submission; that is an operational connectivity issue, not an out-of-sample result.

## Protocol

- protocol id: `qpu-predictive-simulator-v1-2026-05-28`
- frozen training job ids: `d8a6rmop0eas73dpfntg`, `d8a6tq9789is73945510`, `d8a6tvdg7okc73epghh0`, `d8aprj2vnmpc73bqvnag`
- validation rule: any non-dry-run QPU job whose job id is not in the frozen training set.

## Candidate QPU JSON Files Checked

| path | job id | role |
| --- | --- | --- |
| `reports/qpu_runs/ra_qaoa_qpu_square_p2_ibm_kingston_d8aprj2vnmpc73bqvnag.json` | `d8aprj2vnmpc73bqvnag` | training/post-hoc |
| `reports/qpu_runs/ra_qaoa_qpu_square_p2_ibm_marrakesh_d8a6rmop0eas73dpfntg.json` | `d8a6rmop0eas73dpfntg` | training/post-hoc |
| `reports/qpu_runs/ra_qaoa_qpu_square_p2_ibm_marrakesh_d8a6tq9789is73945510.json` | `d8a6tq9789is73945510` | training/post-hoc |
| `reports/qpu_runs/ra_qaoa_qpu_square_p2_ibm_marrakesh_d8a6tvdg7okc73epghh0.json` | `d8a6tvdg7okc73epghh0` | training/post-hoc |

## Next Command

Run new QPU jobs, regenerate metadata, then rerun this script:

```bash
python examples/ra_qaoa_qpu_run.py --graph square --backend ibm_kingston --depth 2 --shots 2048 --grid 4
python examples/ra_qaoa_qpu_run.py --graph square --backend ibm_marrakesh --depth 2 --shots 2048 --grid 4
python examples/ra_qaoa_qpu_backend_compare.py
python examples/ra_qaoa_qpu_metadata_table.py
python examples/qpu_predictive_simulator_out_of_sample.py
```
