<!-- Source: https://docs.biosimulant.com/standards/model-compatibility/passports -->

# Passports and evidence

Every managed run comes back with a signed Evidence Passport: a record of what was run, what was checked, and what the checks found. It's what you give someone who needs to judge the result without rerunning it.

A local run produces no Passport. See [Running: local or managed](/overview/surfaces#running-local-or-managed).

## It isn't a score

**Warning:**

  A Passport is not a single validity number, and `REVIEW` is a real answer
  rather than a failure. Read the caveats and prohibited claims as written.

A Passport runs a named set of checks and reports each one as `PASS`, `WARN`, `FAIL` or `NOT_APPLICABLE`. The overall decision follows from those:

| Any check | Decision |
| --- | --- |
| Any `FAIL` | `BLOCKED` |
| Any `WARN`, none failed | `REVIEW` |
| All `PASS` | `READY` |

`READY` means every declared check passed. No automated check can tell you whether the science is right.

## Quality profiles

The quality profile a run selects decides which checks run. Issued profiles are immutable, so a change in what a check means becomes a new version and Passports already issued keep their original meaning.

| Profile | Adds |
| --- | --- |
| `research-ready@1` | Provenance, requirements, schema, runtime, source, test, caveat and artifact checks |
| `research-ready@2` | Per-connection [compatibility](/standards/model-compatibility#passport-check) — Passport schema 1.1 |
| `research-ready@3` | Declared [output acceptance](/runtime/scientific-acceptance), binding the recorded spec hash and expected check IDs to the immutable Lab manifest — Passport schema 1.2 |
| `ligand-ranking-early-prioritization@1` | Completeness and provenance for small-set Boltz-2 early-prioritization runs |

## What the research-ready checks look at

| Check | Looks for |
| --- | --- |
| `immutable_subject` | The run names an exact, immutable release |
| `manifest` | A manifest is present |
| `intended_use` | The model declares what it is for |
| `requirements` | An MRS is present |
| `technical_specification` | An MTS is present |
| `evidence` | Evidence material is present |
| `tests` | The package ships tests |
| `caveats` | Caveats are declared — their absence is a `FAIL`, not a warning |
| `run_completion` | The run finished |
| `artifacts` | The declared artifacts exist |

Missing requirements, specification, evidence or tests each raise a `WARN`, which is what drives a run to `REVIEW`. This is the [qualification track](/standards/model-compatibility/qualify-a-model) showing up per run. A model with no MRS and no MTS still runs, and its Passport says so every time.

## Signing

Passports are signed with Ed25519 and carry the signing key ID, so anyone can verify one later without trusting whoever handed it to them.

## Reading one

From an agent, fetch it with `passport_get` once the run finishes; see [Agent tool reference](/agents/tools#reading-results). In Studio it sits on the run. Read the caveats and prohibited claims before you quote any number from it.

**Info:**

  A finished run means the software ran. It says nothing about efficacy, safety
  or clinical guidance, whatever the Passport decision says.

## Next steps

- [How compatibility works](/standards/model-compatibility): the run record behind the compatibility check
- [Check scientific outputs](/runtime/scientific-acceptance): declaring the acceptance checks `research-ready@3` binds
- [Qualify a model](/standards/model-compatibility/qualify-a-model): MRS, MTS and the Hub qualification states
