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

# Generating reports

> Generate reconciliation summaries, match details, exception views, and audit trails to monitor outcomes and meet compliance needs.

Reports turn a reconciliation run into something you can act on and hand to auditors: how much matched, what's still open, how much money is exposed, and who did what. Operations teams use them to work the day's queue; finance and compliance use them to close the books and prove control.

## Available reports

***

Each report answers a different question:

* **Reconciliation summary**: A high-level snapshot of match rates, exception volume, and total variances.
* **Match detail report**: A complete list of matches, including transaction details, confidence scores, and variance breakdowns.
* **Exception report**: A focused view of unresolved exceptions with aging, severity, and resolution status.
* **Audit trail report**: A chronological record of reconciliation activity for investigation and compliance.

Use the reporting dashboard endpoints to access reconciliation metrics and export data.

<Tip>
  API Reference:

  * [Dashboard aggregates](/en/reference/matcher/get-dashboard-aggregates)
  * [Export matched report](/en/reference/matcher/export-matched-report)
  * [Export unmatched report](/en/reference/matcher/export-unmatched-report)
</Tip>

## Dashboard analytics

***

The reporting dashboard provides real-time reconciliation metrics for any context and date range.

### Dashboard aggregates

Use the combined dashboard aggregates endpoint for a single call that returns volume, match-rate, and SLA statistics for a context:

```bash cURL theme={null}
curl -X GET "https://api.matcher.example.com/v1/reports/contexts/{contextId}/dashboard?date_from=2025-01-01&date_to=2025-01-31" \
 -H "Authorization: Bearer $TOKEN"
```

`GET /v1/reports/contexts/{contextId}/dashboard` accepts `date_from`, `date_to`, and an optional `source_id` filter, and returns a `DashboardAggregatesResponse`:

| Field       | Description                                       |
| ----------- | ------------------------------------------------- |
| `volume`    | Transaction volume statistics for the range       |
| `matchRate` | Match-rate statistics (matched vs. total)         |
| `sla`       | SLA statistics for exception handling             |
| `updatedAt` | When the aggregates were last computed (RFC 3339) |

More granular dashboard slices are available under `/v1/reports/contexts/{contextId}/dashboard/*` (for example `metrics`, `match-rate`, `sla`, `volume`, `source-breakdown`, and `cash-impact`).

<Note>
  There is no bare `GET /v1/reports/contexts/{contextId}` endpoint. Report data is served through the typed sub-paths under `/v1/reports/contexts/{contextId}/...` — for example `dashboard`, `summary`, `matched`, `unmatched`, and `variance` (each with an `/export` variant).
</Note>

<Tip>
  API Reference: [Get dashboard aggregates](/en/reference/matcher/get-dashboard-aggregates)
</Tip>

### Source breakdown

View reconciliation performance by source — including match rates, transaction counts, and unmatched amounts:

```bash cURL theme={null}
curl -X GET "https://api.matcher.example.com/v1/reports/contexts/{contextId}/dashboard/source-breakdown?date_from=2025-01-01&date_to=2025-01-31" \
 -H "Authorization: Bearer $TOKEN"
```

<Tip>
  API Reference: [Get source breakdown](/en/reference/matcher/get-source-breakdown)
</Tip>

### Cash impact

Assess the total financial exposure from unmatched transactions, broken down by currency and age:

```bash cURL theme={null}
curl -X GET "https://api.matcher.example.com/v1/reports/contexts/{contextId}/dashboard/cash-impact?date_from=2025-01-01&date_to=2025-01-31" \
 -H "Authorization: Bearer $TOKEN"
```

The response includes `byCurrency` and `byAge` breakdowns to help prioritize resolution efforts.

<Tip>
  API Reference: [Get cash impact](/en/reference/matcher/get-cash-impact)
</Tip>

## Pagination

***

The matched, unmatched, and variance report endpoints use cursor-based pagination. Pass the `cursor` value from a previous response to retrieve the next page of results.

If an invalid cursor value is provided, the API returns a `400 Bad Request` error with a message indicating the pagination parameters are invalid. Previous versions returned a `500` error in this case.

## Quick counts

***

Use count endpoints for lightweight status checks without fetching full result sets:

| Endpoint                                                       | Description                           |
| -------------------------------------------------------------- | ------------------------------------- |
| [Count matches](/en/reference/matcher/count-matches)           | Total matched items in a date range   |
| [Count transactions](/en/reference/matcher/count-transactions) | Total transactions in a date range    |
| [Count exceptions](/en/reference/matcher/count-exceptions)     | Total exceptions in a date range      |
| [Count unmatched](/en/reference/matcher/count-unmatched)       | Total unmatched items in a date range |

```bash cURL theme={null}
curl -X GET "https://api.matcher.example.com/v1/reports/contexts/{contextId}/matches/count?date_from=2025-01-01&date_to=2025-01-31" \
 -H "Authorization: Bearer $TOKEN"
```

Each count endpoint returns a single `count` value — ideal for lightweight dashboards or health checks that don't need the full result set.

## Best practices

***

<AccordionGroup>
  <Accordion title="Schedule daily summaries">
    Automate a daily summary report delivered each morning to keep stakeholders aligned.
  </Accordion>

  <Accordion title="Archive exports for compliance">
    Store reports in secure, durable storage. Financial artifacts often require multi-year retention.
  </Accordion>

  <Accordion title="Use filters to stay actionable">
    Generate targeted reports by date, status, severity, or source—avoid exporting everything by default.
  </Accordion>

  <Accordion title="Make exports self-explanatory">
    Include source names, rule names, and key identifiers so the output can stand alone outside Matcher.
  </Accordion>

  <Accordion title="Monitor report jobs">
    Large reports can fail or stall. Track job status and alert on `FAILED` or prolonged `GENERATING`.
  </Accordion>
</AccordionGroup>

## Next steps

***

<Card title="Contexts and Sources" icon="database" href="/en/matcher/configuration/matcher-contexts-and-sources" horizontal>
  Set up reconciliation contexts and data sources.
</Card>

<Card title="Security" icon="shield-halved" href="/en/matcher/reference/matcher-security" horizontal>
  Learn how access control and data protection work in Matcher.
</Card>
