> ## Documentation Index
> Fetch the complete documentation index at: https://niceeval.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# View NiceEval Results

> Use show or view to select a Sample from published Records and inspect a fixed ReportExecution.

After a run finishes, `show` presents results in the terminal and `view` presents them locally in a browser.
Both commands read the `.niceeval/record` written by `exp` by default, so you do not need `--record`.
They use the same data path:

```text theme={null}
opaque Record + CLI selector
                  ↓ internal host
             AnalysisSample
                  ↓
       official opaque projector
                  ↓
           ProjectedSample → ReportExecution
                            ↙         ↘
                          show        view
```

A Sample determines the comparison scope and denominator.
A projector interprets one RecordAttachment for one explicit owner.
A Report organizes projected values into one immutable `ReportExecution` and does not read files directly.

## Select Runs to inspect

Select one explicit Run:

```sh theme={null}
npx niceeval show --run 01J9ZK3M6P4T7V9X2C5N8QW0RY
```

To view every result that still matches the current project's source and configuration, run `show` directly.
`--experiment` narrows the current-project target by a complete ID:

```sh theme={null}
npx niceeval show --experiment checkout
```

Without a locator or `--run`, the command uses `project-current`.
It scans every published Run and keeps every slot whose Experiment, Eval, attempt ordinal, evaluation kind, input identity, and config identity still match the current project.
It does not choose one Run by time.
After source or configuration changes, stale results leave the current Sample but are not deleted.
Use a complete `--run` ID to audit those historical results.

## Inspect results in the terminal

`show` renders the default Report as text.
Supplying a page or custom Report still creates one execution from the same selection.

```sh theme={null}
npx niceeval show --run 01J9ZK3M6P4T7V9X2C5N8QW0RY --page /
npx niceeval show --experiment checkout --json
```

`--json` emits the `niceeval.report-show/v1` document for the same execution.
It includes pages, calculations, projection summaries, and problems.
It does not create another data path.

## Inspect results in the browser

```sh theme={null}
npx niceeval view --experiment checkout --no-open
```

Each successful `view` rebuild creates a new fixed `ReportExecution` and replaces the revision on screen.
Changes to the Report, configuration, theme, or Record trigger the next rebuild.
A failed rebuild keeps the last-good execution and shows the problem.

Opening, navigating, or refreshing a page does not reread the Record behind a fixed execution.
To see a newly published Run, let `view` finish a rebuild or run the command again.
Pass `--record <root>` only when you explicitly need to read another Record root.

## Read denominators and Attachment states

An explicit `--run` Sample preserves each named Run's complete expected-slot denominator; `project-current` first materializes only slots whose identities still match the current target.
Within the framework established by selection, each slot can be:

| State          | Meaning                                                         |
| -------------- | --------------------------------------------------------------- |
| `included`     | It has a valid Member and readable Attempt.                     |
| `not-recorded` | A planned slot has no Member.                                   |
| `core-invalid` | The Member, Attempt, or core reference cannot be read reliably. |
| `excluded`     | This selection excluded it.                                     |

Pages and Calculations also show requested Attachment states.
`unavailable` means the Attachment is absent.
`migration-required` or `migration-unavailable` means historical schemas need attention.
`unsupported` means the current feature does not recognize it.
`invalid` means its envelope, payload, or blob is invalid.

These data states do not silently shrink the Sample denominator after selection.
An unrequested bad Attachment does not affect an unrelated page.
Each Calculation defines its own business `observed` and `denominator`; it cannot infer them from Attachment counts.

## Record publication boundary

A Record stores published facts only.
Published Runs are immutable. Run a new Invocation to create a different result.

A directory without `complete` does not belong to a Sample.
The reader freezes the visible set of published Runs, so a Run completed afterward appears only after reopening the reader.

## Next steps

* [Debug a failure](/docs/troubleshooting/debugging): Diagnose a visible symptom.
* [Rerun and Carry Results](/docs/tutorials/rerun-and-cache): See which slots execute or are adopted.
* [Publish a Static Report](/docs/tutorials/publish-report): Export selected results as an offline site.
