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

# Reports

> Agent Audit Reports for a simulation run, an evaluation run or a single trace: what each report contains, how it is built, suggested fixes, and Markdown and PDF export.

**Reports** in the sidebar opens **Agent Audit Reports**: "Analyse a simulation run, an evaluation run or a trace: what the agent did, how it graded, and the specific issues behind the score."

A report is not a document you write or a file AgentHub stores. It is a view **derived from data your project already has**, recomputed every time you open it. There are three kinds of subject:

| Source | Built from | Created by |
| - | - | - |
| **Simulation** | A Cost Calculator run: its scenarios, their executions and grader scores. | Running an agent in the [Cost Calculator](/agenthub/cost-calculator). |
| **Evaluation** | A saved trace evaluation run and its per-evaluator results. | A [trace evaluation run](/agenthub/evaluation/runs#trace-evaluation-runs). |
| **Trace** | One trace and its spans. | Any [trace](/agenthub/traces) in the project. |

Every simulation run, saved evaluation run and trace in the project automatically has a report. The only thing a report ever saves is a simulation run's **Suggested Fixes**, which are stored on that run once generated.

## The reports list

Under the heading, a line summarizes what's available, for example "Derived from this project's own data and recomputed each time a report is opened — 4 simulation runs · 2 evaluation runs · 120 traces."

| Column | Contents |
| - | - |
| **Name** | The report name as a link, with a stable report ID under it such as `rpt_trace_8f2c1a…` (hover for the underlying subject ID). |
| **Source** | **Simulation**, **Evaluation** or **Trace**. |
| **Status** | **Completed**, **Pending** or **Failed** with a colored dot (hover for the subject's own status). Simulation reports that already have fixes also show **Fixes generated**. |
| **Created** | When the subject was created or started. |

Click a row or its name to open the report.

**Filters**

| Control | Options |
| - | - |
| **Search reports...** | Matches the name, report ID, subject ID and the secondary detail (model, judge, span count). Search looks through the 300 most recent subjects. |
| Status | **All status**, **Completed**, **Pending**, **Failed**. |
| Source | **All sources**, **Simulations**, **Evaluations**, **Traces**. |

The list loads 20 at a time; **Load more** appends the next page.

How status is bucketed:

| Bucket | Simulation run | Evaluation run | Trace |
| - | - | - | - |
| **Completed** | `complete` | `completed` | `OK` |
| **Pending** | `draft`, `generated`, `running` | `running` | (never) |
| **Failed** | `failed` | `failed` | `ERROR` |

Empty states: **Nothing to report on yet** (with **Go to Cost Calculator**) when the project has no subjects, and **Nothing matches these filters** (with **Clear filters**) when filters hide everything.

### Generate Report

**+ Generate Report** opens a dialog: "Pick what to analyse — a simulation run, an evaluation run, or a single trace — and the report is built from that subject's own data."

1. **Report on**: Simulation, Evaluation or Trace, with counts. Kinds with none in the project are disabled.
2. **… to analyse**: pick the subject. Drafts that never ran aren't listed.
3. Click **+ Generate Report**. The report opens.

The dialog tells you what generating costs:

| Kind | Cost |
| - | - |
| Simulation | Scores and issues come from the run's own simulations. **Suggested fixes are written by a real model call using this project's configured key**, so generating this report spends against it. From this dialog, fixes are generated automatically when the report opens. |
| Evaluation | "No model call, nothing is billed." |
| Trace | "No model call, nothing is billed." |

You can also reach reports directly: **Report** in the Traces list, **Run report** on a trace page.

## What a report contains

Every report has the same layout: a header, a headline rate, a facts panel, a bar chart of results, **Top Issues**, and an evidence section. Sections that don't apply to a subject say so and explain why, often with a link to the page that would fill them.

### Header

The kind ("Report · Simulation run", "Report · Evaluation run", "Report · Trace"), the report name, a status, the subject ID, the date, extra tags such as environment and source, and the **PDF** and **Markdown** export buttons.

### Simulation run reports

| Section | Contents |
| - | - |
| **Scenario Pass Rate** | Executed scenarios that passed, out of those executed, with the number generated. A scenario passes when its execution completed without error; there are no per-scenario assertions beyond that. Empty until at least one scenario has executed. |
| **Run facts** | Measured cost, estimated cost, tokens in / out, scenarios generated, scenarios executed, batch. |
| **Grader Results by Category** | Offline grader scores, and pass rate by scenario category. |
| **Top Issues** | Recurring failures grouped by scenario name and category, up to 8. |
| **Suggested Fixes** | Targeted fixes to the agent's prompt and configuration, written by the run's own model. See below. |

### Evaluation run reports

| Section | Contents |
| - | - |
| **Evaluator Pass Rate** | Evaluators that passed, out of those that ran, and how many the collection had. A rate over evaluators, not scenarios. |
| **Run facts** | Collection, judge model, evaluators run (N of M), average score, the trace, and the error if the run failed. |
| **Grader Results by Evaluator** | Each evaluator's score, and pass rate by evaluator category. |
| **Top Issues** | Evaluators the judge marked as failed, worst score first. |
| **Judge Reasoning** | "The judge's own written justification for each score, verbatim. These are explanations, not fixes." Each card has a **Copy** button. |

### Trace reports

| Section | Contents |
| - | - |
| **Span Success Rate** | Share of the trace's spans with status `OK`, alongside the trace's own `OK` / `ERROR` outcome. A trace has no pass rate of its own. |
| **Trace facts** | Outcome, duration, LLM time, HTTP time, spans, LLM calls, tool calls, tokens in / out, cost, environment, source. |
| **Span Results by Kind** | Span outcomes per kind. If the trace was imported into the Cost Calculator, its offline grader scores too. If saved evaluation runs exist for the trace, they are listed as **Attached evaluation runs**. |
| **Top Issues** | Spans with a non-OK status, worst first. |
| **Failure Evidence** | The failing spans' recorded input and output, verbatim. If the trace was imported into the Cost Calculator and audited, the title becomes **Suggested Fixes & Failure Evidence** and includes those fixes. |

Trace reports state plainly what they leave out: there is no scenario pass rate, no grader section unless an evaluation was run against the trace, and no suggested fixes for a trace on its own.

## Suggested fixes (simulation runs)

On a simulation run report, **Generate suggested fixes** asks the run's configured model to diagnose the failing scenarios and propose targeted fixes. If nothing failed, the button reads **Suggest prompt improvements** and the model reads the passing transcripts and grader averages to draft improvements instead.

* It is one real call, billed to the run's model on your key. It can take a minute; keep the page open.
* The result is saved to the run and shown with "Generated … by `<model>` and saved to this run." The list then shows **Fixes generated**.
* Each fix card has a **Copy** button.

It can't run when:

| Message | Fix |
| - | - |
| "No scenario in this run has executed yet, so there is nothing for the audit to read." | **Run this agent's scenarios** in the Cost Calculator. |
| "This run has no model attached, so the audit has nothing to ask." | Attach a model in the Cost Calculator. |
| "This run's model has no API key, so the audit cannot call it." | **Open Model Manager** and add a key. |
| "This run's model API key is missing or revoked." | Replace the key in Model Manager. |
| "This run's model API key could not be decrypted." | Re-enter the key in Model Manager. |
| "You need the run-agents permission to generate an audit." | Ask an admin for a role with run permission. |

## Export and sharing

| Button | What you get |
| - | - |
| **Markdown** | Downloads the report as a `.md` file named after the report. |
| **PDF** | Opens a print-ready version of the report in a new window and starts your browser's print dialog. Choose **Save as PDF** there. If nothing happens, allow pop-ups for the site ("Allow pop-ups for this site to export a PDF."). |

Both exports include what is on screen, including generated fixes.

There is no public share link. To share a report inside your organization, send its URL: anyone with access to the same project in AgentHub can open it, and it is recomputed from current data when they do. To share outside, export it.

<Note>
  Because reports are recomputed on open, a report can change after you export it, for example when more scenarios run or new failures appear elsewhere in the project. The export is a snapshot.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.