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

# Reports

> Understand report taxonomy, frozen snapshots, and the weekly operating report.

<Frame caption="Generated reports for a workspace.">
  <img src="https://mintcdn.com/auto-gtm/iXt5uMxsbIiTmJfR/images/console-reports.png?fit=max&auto=format&n=iXt5uMxsbIiTmJfR&q=85&s=82ad839a825924f756d5a1754924a2fd" alt="Generated reports for a workspace." width="2880" height="1800" data-path="images/console-reports.png" />
</Frame>

Reports preserve a readable result together with the score and evidence snapshots used to build it.

## Catalog taxonomy

| Kind                              | Contents                                      |
| --------------------------------- | --------------------------------------------- |
| <code>geo</code>                  | GEO scorecard and visibility evidence         |
| <code>seo</code>                  | SEO score and component snapshot              |
| GEO + SEO (<code>combined</code>) | Available SEO and GEO snapshots in one report |
| <code>run</code>                  | Evidence tied to a specific measurement run   |

A run report requires a run identifier. GEO is frozen for every catalog report. SEO is frozen for SEO and combined reports, and can be included in a run report.

## Unavailable scores

If a requested score does not exist, the report stores an explicit unavailable row with its version and reason. It does not write a numeric zero.

Report identifiers and digests are deterministic. Building the same report from the same canonical inputs returns the same catalog identity.

## Weekly report

The weekly pipeline writes:

```text theme={null}
data/reports/<workspace>/<ISO-year>-W<week>.md
```

Its operating sections include:

* Current and previous scorecards
* Up to ten eligible recommendations
* Gaps that persisted for at least two evidence weeks
* A separate compliance review section
* Evidence references used by the report

The daily maintenance path can refresh lifecycle evidence and create the weekly file. It does not create a new recommendation set through the P2 generation path.

## Legacy files

The report service can also index existing JSON and Markdown report files. It derives a stable identity from their header, run reference, and file metadata. Older scoreboard and competitor links remain available when their source file contains them.

## Reading a report

<Steps>
  <Step title="Check the kind">
    A run report and a combined report answer different questions.
  </Step>

  <Step title="Check snapshot availability">
    An unavailable score is a data gap, not poor performance.
  </Step>

  <Step title="Open the evidence">
    Follow run, signal, audit, and recommendation references before assigning a cause.
  </Step>

  <Step title="Compare like with like">
    Keep formula versions, provider-local dates, and engine registry versions aligned.
  </Step>
</Steps>
