# Read the results

## One experiment, one bundle

Each configuration describes one model, one memory setup and one runtime choice. The bundle records the inputs and the evidence behind its outputs.

| File | Purpose |
| --- | --- |
| `run_summary.md` | Human-readable result summary |
| `run_summary.json` | Structured result contract |
| `run_summary.csv` | One row per measured invocation (`measurement.index`, `measurement.cycles.total`); one shared row without samples |
| `manifest.json` | Bundle files, roles, sizes and hashes |
| `config.yaml` | Configuration generated by `helx run-case`; not created by config-driven `helx run` |
| `input_config.yaml` | Original input configuration |
| `artifacts/` | Compiler and analysis outputs |

## Inspect and validate

```bash
uv run helx show results/kws_vela_only
uv run helx show results/kws_vela_only --json
uv run helx validate bundle results/kws_vela_only
```

Check the platform revision, stages, engine and provenance before using any metric. A missing simulation stage cannot establish simulated latency. An estimated value is not a hardware measurement.

JSON samples live under `measurements.samples[i]`. Use `helx export --fields statistics` for aggregate rows.

Use `helx export --help` to combine bundles into a table. Keep the provenance fields alongside the metrics when comparing runs. The [result schema](https://ambiqai.github.io/helia-estimator/reference/results/) defines the fields.

## What the terminal shows

The following is an **abbreviated illustration**, using the CLI's section names. **All metrics, platform names and revisions below are dummy values, not an Ambiq benchmark or calibration data.** Omitted sections are marked with `...`.

```text
$ helx show results/demo
Run: demo
Model                   demo.tflite
Platform                demo_platform DEMO
Platform revision       demo-revision
...
Hardware values         unverified

Cycles (FVP, measured)
NPU total               100,000
NPU active              80,000
NPU idle                20,000
...

Experimental energy (FVP PMU estimate)
Mode           Total mJ  Core uJ  SRAM uJ  EXT uJ  pJ/MAC  Power mW
DEMO (active)      0.02       10        6       4      20        10
...
```

The experimental FVP PMU estimate uses simulator counters and a platform energy model. It does **not** mean energy was measured on a physical board. The example's dummy total is 20 µJ, split into 10 µJ core, 6 µJ SRAM and 4 µJ external-memory energy.

### A comparison you might make

This illustrative reading of a result uses **dummy values only**:

| Metric | Dummy value | Read it as |
| --- | --- | --- |
| Latency | 2 ms | Example inference duration, not a hardware claim |
| Average power | 10 mW | Example modelled power over that duration |
| Energy | 0.02 mJ | Power multiplied by duration |

The numbers are internally consistent to show how the fields relate; they do not describe any real model or silicon. Use your own bundle's provenance and metric basis when reporting results.

Vela-only runs do not show executed FVP counters. Their predicted energy, when available, is shown separately as **Experimental energy (Vela estimate)**. Do not compare a compilation-only prediction to an executed result without retaining that distinction.

Follow [Parse and visualize results](https://ambiqai.github.io/helia-estimator/guides/view-results/) for
verified Python reads, JSON/CSV exports, Model Explorer overlays and Perfetto
timelines. The [Python API guide](https://ambiqai.github.io/helia-estimator/guides/python-results/)
describes the offline reader and draft portable mapping.
