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

# Uploading Statements

> How to upload statements and what happens during processing

## Overview

Upload your royalty statements to the Files section for automated processing. The system validates, extracts, and categorizes statement data, then matches revenue lines to your catalog and contracts.

## File Requirements

| Requirement           | Value                                                                                       |
| --------------------- | ------------------------------------------------------------------------------------------- |
| **Formats**           | Excel (`.xlsx`, `.xls`), CSV (`.csv`), Tab-delimited (`.tab`, `.tsv`, `.txt`), PDF (`.pdf`) |
| **Minimum file size** | 250 bytes                                                                                   |
| **Maximum file size** | 2 GB                                                                                        |

## How to Upload

1. Go to **Statements** → **Files** in the sidebar
2. Click the **Upload** button in the toolbar, or drag and drop files into the main area
3. Select one or more files from your computer
   * Hold `Cmd` (Mac) or `Ctrl` (Windows) to select multiple files
4. All selected files are uploaded and queued for processing

The system uses parallel processing and can handle multiple statements at once. You can continue working while uploads and processing run in the background.

## Processing Pipeline

After upload, each statement goes through three main phases.

### Phase 1: Pre-Processing

During pre-processing, the system validates and analyzes your file before extraction begins.

| Check                    | What It Does                                                            |
| ------------------------ | ----------------------------------------------------------------------- |
| **File size validation** | Ensures file is within size limits                                      |
| **File type validation** | Confirms the file is a supported format                                 |
| **Format detection**     | Identifies structure (sheets, columns, tables)                          |
| **Sheet analysis**       | Determines which sheets or pages contain revenue, summary, or cost data |

If validation fails, the statement is marked as failed with a message explaining why.

### Phase 2: Extraction

Once pre-processing passes, AI extraction begins. The system:

* Identifies statement format and data locations
* Extracts line-by-line data (assets, revenue, sources)
* Detects and normalizes currencies (transaction and royalty)
* Categorises revenue by type (streaming, download, sync, etc.) — see [Data Categorisation](/projects/statements/data-categorisation) for categories
* Extracts summary totals, balances, parties, and notes when present

<Note>
  Processing time depends on file size and complexity. Large spreadsheets or multi-page PDFs may take several minutes. You can monitor progress in the Files list.
</Note>

### Phase 3: Asset Matching

After extraction, the system matches statement lines to your catalog:

* Recording statements: match by ISRC, UPC, asset title, and product
* Publishing statements: match by ISWC, work title, and writer

Match results appear in the [Assets](/projects/statements/assets/overview) section and on each statement's Assets tab.

## Processing Statuses

| Status         | Description                              |
| -------------- | ---------------------------------------- |
| **Uploading**  | File transfer in progress                |
| **Queued**     | Waiting in the processing queue          |
| **Processing** | Pre-processing or extraction in progress |
| **Matching**   | Asset matching in progress               |
| **Review**     | Ready for user review                    |
| **Complete**   | Fully processed                          |
| **Error**      | Processing encountered an issue          |

Once complete, a **confidence score** appears in the Status column. Click it to see a breakdown by section (Revenues, Summary, Summary Lines, Costs). Use [Retry](/projects/statements/statement-details/reprocessing) from the statement detail page to reprocess after fixing metadata or adding instructions.

## Managing Failed and Dismissed Statements

After uploading, statements that cannot be processed appear as **Failed** in the staging panel. You can dismiss individual failed statements or dismiss them all at once. Dismissed statements move to the **Dismissed** tab where you can review or permanently delete them.

### Dismiss All Failed

When the **Failed** filter is active in the staging panel, a **Dismiss All** button appears at the bottom of the list. This moves every failed statement to the Dismissed tab in one step.

<Steps>
  <Step title="Open the staging panel">
    Go to **Statements** → **Files** and open the staging panel that shows uploaded statements and their statuses.
  </Step>

  <Step title="Select the Failed filter">
    Click the **Failed** filter to show only failed statements.
  </Step>

  <Step title="Click Dismiss All">
    Click the **Dismiss All (n)** button at the bottom of the list.
  </Step>

  <Step title="Confirm">
    Review the confirmation dialog and click **Dismiss All** to move all failed statements to the Dismissed tab.
  </Step>
</Steps>

### Delete All Dismissed

When the **Dismissed** filter is active in the staging panel, a **Delete All** button appears at the bottom of the list. This permanently removes all dismissed statements.

<Steps>
  <Step title="Open the staging panel">
    Go to **Statements** → **Files** and open the staging panel.
  </Step>

  <Step title="Select the Dismissed filter">
    Click the **Dismissed** filter to show only dismissed statements.
  </Step>

  <Step title="Click Delete All">
    Click the **Delete All (n)** button at the bottom of the list.
  </Step>

  <Step title="Confirm">
    Review the confirmation dialog and click **Delete All** to permanently remove all dismissed statements.
  </Step>
</Steps>

<Warning>
  Deleting dismissed statements is permanent and cannot be undone.
</Warning>

***

## Bulk Uploads

You can upload many statements in one go:

* Select multiple files in the file picker, or drag and drop several files at once
* Each file is queued independently and processed in parallel where capacity allows
* Track progress via status in the Files list
* Use [filters](/projects/statements/files/filters) to narrow by status (e.g. Processing, Error) and [bulk actions](/projects/statements/files/bulk-actions) to edit or delete multiple statements

When all statements in a batch finish processing, you receive an email summary with the total count, successful, failed, and processing time — if project notifications are enabled in [Settings → Notifications](/projects/settings/notifications).

## Related Documentation

<CardGroup cols={2}>
  <Card title="Files Overview" icon="file-lines" href="/projects/statements/files/overview">
    List view, status, and confidence scores.
  </Card>

  <Card title="Statement Details" icon="file-contract" href="/projects/statements/statement-details/overview">
    View extracted data and reprocess.
  </Card>

  <Card title="Reprocessing" icon="rotate-ccw" href="/projects/statements/statement-details/reprocessing">
    Retry processing and use AI instructions.
  </Card>
</CardGroup>
