# Reproducibility

> How to reproduce a Qsolve run: the seed, workflow version and settings that fix a simulator result, what the receipt lets you compare, why hardware differs.

Source: https://qsolve.omlabs.co/docs/use/reproducibility
Updated: 2026-11-12

On a simulator, the same workflow version, input, solver settings and seed give the same result, and you can confirm it by comparing the result hash on the receipt. On a quantum computer, repeats differ, because the device is noisy and drifts between runs. The web form always runs the latest published version with the default seed, so a rerun matches an earlier run only while the workflow has not been updated.

## What fixes a result

| Ingredient | Where to find it |
|---|---|
| Workflow version | Receipt: **Workflow** (for example `max-cut v1.0.1`) |
| Code commit | Receipt: **Code** |
| SDK version | Receipt: **SDK** |
| Input | **What you submitted**, and the **Input hash** on the receipt |
| Solver settings | **What you submitted**, under **Solver settings** |
| Target and device | Header, and **Execution** |
| Seed | **Execution**: **Seed** |

Published workflow versions never change, so a version number plus a commit identifies the code exactly.

## Seeds

Every run is seeded, and a workflow must derive all its randomness (optimiser starting points, sampling, data splits) from that seed. Qsolve checks this when it validates a workflow by running the first benchmark case twice with the same seed and requiring identical result hashes. The seed of any run is shown under **Execution**.

## Check a result with the receipt

The receipt holds two fingerprints:

- **Input hash.** Two runs with the same input hash were given the same input.
- **Result hash.** If two runs have the same workflow version, input hash, settings, target and seed, and the same result hash, the result reproduced exactly.

Select a hash to copy it.

## Rerun a run

Press **Run again** on a run page. The workflow page opens with that run's input, solver settings and target (and device), and confirms "Loaded the input from your earlier run." Press **Run**.

The new run uses the latest published version with the default seed. If the workflow has been updated, the result may not match. The receipt shows which version the old run used.

Rerunning needs the original input. It is cleared 90 days after a run finishes, after which **Run again** cannot reload it. Download the run with **Report** if you need to keep it. See [Data and privacy](/docs/use/data-and-privacy).

## Why hardware runs differ

A quantum computer does not return the same counts twice. Noise is random, and the device's calibration (its measured error rates) shifts over hours. For a hardware run Qsolve records the device and a snapshot of its calibration, so you can see the conditions, but it cannot make two runs equal.

Compare quality numbers instead of exact output: raw and mitigated fidelity, shots kept, and accuracy against the baseline. A stable workflow gives similar values across repeats. See [Accuracy, fidelity and noise](/docs/use/accuracy-fidelity-and-noise).

## Running a workflow locally

Workflow source is open, and the SDK runs the same code the platform runs. To reproduce a run offline, see [Build overview](/docs/build/overview) and [CLI](/docs/build/cli). A local simulator run matches only with the same workflow version, SDK version and input, and the platform's result remains the reference record.
