> ## 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.

# Asset Matching

> Match statement data to your catalog recordings and compositions

## What is Asset Matching?

Asset matching is the process of linking royalty statement line items to the recordings and compositions in your catalog. Accurate matching is essential for proper revenue tracking and analysis.

## Matching Flows

Royaltyport runs automatic matching in two scenarios: when you upload contracts and when you upload statements. Each flow handles recordings and compositions separately.

### Contract Upload Matching

When you upload and process a contract, the system extracts recordings and compositions, then attempts to match them against your existing statement assets.

<Tabs>
  <Tab title="Recordings">
    **Flow: Contract → Statement Recordings**

    <Steps>
      <Step title="Normalize">
        Newly extracted recordings are normalized (standardized names, cleaned metadata).
      </Step>

      <Step title="Match Update">
        The system finds all unmatched statement recordings in your project and attempts to match them against the contract's recordings using identifier and metadata matching.
      </Step>

      <Step title="Link Documents">
        Successfully matched statements are linked to the contract for revenue attribution.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Compositions">
    **Flow: Contract → Statement Compositions**

    <Steps>
      <Step title="Normalize">
        Newly extracted compositions are normalized (standardized titles, writer names).
      </Step>

      <Step title="Match Update">
        The system finds all unmatched statement compositions in your project and attempts to match them against the contract's compositions.
      </Step>

      <Step title="Link Documents">
        Successfully matched statements are linked to the contract.
      </Step>
    </Steps>
  </Tab>
</Tabs>

### Statement Upload Matching

When you upload a statement, the system extracts assets and matches them against your existing catalog (built from contracts).

<Tabs>
  <Tab title="Recordings">
    **Flow: Statement → Catalog Recordings**

    <Steps>
      <Step title="Normalize">
        Statement recordings are normalized for consistent matching.
      </Step>

      <Step title="Pattern Matching">
        Previously created manual matches are applied first using normalized data hashes.
      </Step>

      <Step title="Match Update">
        Statement recordings are matched against all catalog recordings using the matching hierarchy.
      </Step>

      <Step title="Link Documents">
        Matched recordings link the statement to relevant contracts.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Compositions">
    **Flow: Statement → Catalog Compositions**

    <Steps>
      <Step title="Normalize">
        Statement compositions are normalized for consistent matching.
      </Step>

      <Step title="Pattern Matching">
        Previously created manual matches are applied first using normalized data hashes.
      </Step>

      <Step title="Match Update">
        Statement compositions are matched against all catalog compositions.
      </Step>

      <Step title="Link Documents">
        Matched compositions link the statement to relevant contracts.
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Note>
  Statement upload matching includes a **Pattern Matching** step that uses hashes from your previous manual matches. This means when you manually match an asset once, future statements with the same asset data will be matched automatically.
</Note>

## Matching Methods

### Automatic Matching

The system automatically matches using several methods in priority order:

| Method                    | Reliability | Description                          |
| ------------------------- | ----------- | ------------------------------------ |
| **UPC + ISRC Match**      | Highest     | Both UPC and ISRC codes match        |
| **UPC + Product Match**   | Highest     | UPC matches with product details     |
| **ISRC Match**            | High        | Exact ISRC code match                |
| **Asset Details Match**   | Medium      | Exact text match on title and artist |
| **Product Details Match** | Medium      | Album/product information matches    |
| **UPC Only Match**        | Medium      | UPC code matches catalog             |
| **Album Match**           | Medium      | Album name matching                  |

For compositions, matching also considers:

| Method              | Reliability | Description                           |
| ------------------- | ----------- | ------------------------------------- |
| **ISWC Match**      | Highest     | Exact ISWC code match                 |
| **Title + Writers** | High        | Exact match on title and writer names |

### Match Confidence

Each match has a confidence level:

| Level        | Match Types                                    | Action               |
| ------------ | ---------------------------------------------- | -------------------- |
| **High**     | UPC+ISRC, UPC+Product, ISRC Only               | Auto-approved        |
| **Medium**   | Asset Only, Product Only, UPC Only, Album Only | Review recommended   |
| **Conflict** | Multiple possible matches                      | Manual review needed |

## Viewing Matches

### Statement Assets View

Navigate to a processed statement and click **Assets** tab:

| Column             | Description             |
| ------------------ | ----------------------- |
| **Statement Line** | Original statement data |
| **Matched Asset**  | Linked catalog item     |
| **Confidence**     | Match confidence score  |
| **Status**         | Matched or Unmatched    |
| **Revenue**        | Associated revenue      |

### Filters

Filter matched assets by:

* **Status**: All, Matched, Unmatched
* **Match Type**: UPC & ISRC, UPC & Product, ISRC only, Asset & Product, Asset only, Product only, UPC only, Album only
* **Match Confidence**: High, Medium, Low
* **Match Store**: Amazon, Apple Music, Beatport, Chartmetric, Deezer, iTunes, Pandora, Shazam, SoundCloud, Spotify, TikTok, YouTube

<Tip>
  When a specific store is selected, a blue dot appears next to the filter label so you can tell at a glance that the list is filtered by store.
</Tip>

## Reviewing Matches

### Verifying Automatic Matches

<Steps>
  <Step title="Open Statement">
    Navigate to the statement's Assets tab.
  </Step>

  <Step title="Filter by Confidence">
    Show medium and low confidence matches.
  </Step>

  <Step title="Review Each Match">
    Verify the matched asset is correct.
  </Step>

  <Step title="Approve or Correct">
    Approve correct matches, fix incorrect ones.
  </Step>
</Steps>

### Handling Unmatched Items

For unmatched statement lines:

<Steps>
  <Step title="View Unmatched">
    Filter to show only unmatched items.
  </Step>

  <Step title="Search Catalog">
    Search for the asset in your catalog.
  </Step>

  <Step title="Manual Match">
    If found, manually link the asset.
  </Step>

  <Step title="Add to Catalog">
    If not found, add as a new catalog item.
  </Step>
</Steps>

## Manual Matching

When automatic matching doesn't find a match, you have two ways to manually link statement rows to your catalog.

### Catalog Tab — Bulk Matching

The **Catalog** tab of a statement has a **Catalog** button that opens a bulk matching dialog. This is the fastest way to handle many unmatched rows at once: rows are grouped by identifier type (ISRC, UPC, Asset Title, Product Title for recordings; ISRC, ISWC, Work Title, Album Title for publishing), so you can select an entire group and match them to a catalog item in a single action.

See [Statement Details — Catalog Tab](/projects/statements/statement-details/overview#catalog-tab) for step-by-step instructions.

### Assets Tab — Individual Matching

The **Assets** tab lets you match one statement row at a time with full detail.

#### Recording Matching Sheet

Click on any asset to open the Recording Matching sheet. This displays:

**Statement Data:**

* Product title, artist, and version
* Asset title, artist, and version
* Identifiers: UPC, ISRC, Catalog number
* Store information
* Normalized data used for matching

### Matching to Catalog

<Steps>
  <Step title="Open Asset">
    Click on an unmatched statement asset to open the Recording Matching sheet.
  </Step>

  <Step title="Add Recording">
    Click **+ Recording** to add a catalog recording.
  </Step>

  <Step title="Select from Catalog">
    Choose a recording from your project's catalog (extracted from contracts).
  </Step>

  <Step title="Confirm Selection">
    Click **Confirm** to add the recording to the match.
  </Step>

  <Step title="Update">
    Click **Update** to save the match.
  </Step>
</Steps>

### Multiple Recording Matches

You can match a single statement asset to multiple recordings:

* Add multiple recordings using the **+ Recording** button
* Revenue is allocated **pro-rata** across all matched recordings
* Example: 2 recordings = 50% each, 3 recordings = 33.3% each

### Automatic Future Matching

When you create a manual match:

* The system saves a hash of the normalized statement data
* Future statements with matching data will be matched automatically
* No need to manually match the same asset again

<Note>
  Manual matches are saved with **high confidence** and match type **MANUAL**. You can view matching logs in the **Logs** tab of the Recording Matching sheet.
</Note>

## Spotify Suggestions

For unmatched assets with ISRCs or UPCs, Royaltyport automatically searches Spotify to find potential matches. These suggestions provide metadata that can help you identify and match assets.

<Card title="Learn about Suggestions" icon="lightbulb" href="/projects/statements/assets/suggestions">
  See how Spotify-powered suggestions work and how to use them.
</Card>

## Improving Match Rates

### Add ISRCs to Catalog

ISRCs provide the most reliable matching:

<Steps>
  <Step title="Identify Missing">
    Review catalog for items without ISRCs.
  </Step>

  <Step title="Obtain ISRCs">
    Get ISRCs from distributors or registration agencies.
  </Step>

  <Step title="Update Catalog">
    Add ISRCs to catalog items.
  </Step>

  <Step title="Re-match">
    Re-process statements to apply new matches.
  </Step>
</Steps>

### Add Alternative Titles

Assets may appear under different names:

<Steps>
  <Step title="Identify Variations">
    Note title variations in statements.
  </Step>

  <Step title="Update Catalog">
    Add alternative titles to catalog items.
  </Step>
</Steps>

### Create Aliases

For artist name variations:

<Steps>
  <Step title="Find Variations">
    Note artist name variations in statements.
  </Step>

  <Step title="Add Aliases">
    Add aliases to artist records in CRM.
  </Step>
</Steps>

## Matching Analytics

### Match Rate Dashboard

Monitor your matching performance:

| Metric                 | Description                      |
| ---------------------- | -------------------------------- |
| **Overall Match Rate** | Percentage of lines matched      |
| **Auto-Match Rate**    | Percentage automatically matched |
| **Manual Match Rate**  | Percentage manually matched      |
| **Unmatched Count**    | Lines still unmatched            |

### Improvement Tracking

Track match rate improvements over time as you:

* Add more ISRCs
* Create manual matches
* Add alternative titles

## Best Practices

<AccordionGroup>
  <Accordion title="Upload contracts before statements">
    Processing contracts first builds your catalog, enabling better automatic matching when statements arrive.
  </Accordion>

  <Accordion title="Prioritize ISRC matching">
    Focus on adding ISRCs to your catalog for reliable automatic matching.
  </Accordion>

  <Accordion title="Review Spotify suggestions">
    Check Spotify suggestions to find metadata for unmatched assets.
  </Accordion>

  <Accordion title="Manual matches persist">
    When you manually match an asset, the system remembers it. Future statements with matching data are automatically matched.
  </Accordion>

  <Accordion title="Keep catalog clean">
    Merge duplicates and maintain consistent naming in your catalog.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Suggestions" icon="lightbulb" href="/projects/statements/assets/suggestions">
    Learn about Spotify-powered suggestions.
  </Card>

  <Card title="Advanced Insights" icon="chart-pie" href="/projects/statements/advanced-insights">
    Analyze your matched statement data.
  </Card>
</CardGroup>
