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

# Change detection

> Learn how Prequel Import detects and syncs changes from your data sources

Prequel Import supports a variety of sources and makes minimal assumptions about the structure of the data in these sources to maximize compatibility. That said, there are some minimum requirements and optional enhancements that enable efficient change detection and syncing to destinations.

## Minimum requirements for source data

### Unique row identifier (for example, a primary key)

Every source table must have some unique row identifier. This is needed to trace unique rows through the pipeline and to efficiently detect new and updated records.

<Note>
  The Unique Row Identifier can be a "synthetic" column (such as a concatenation or a hash of some other columns). The only requirement is that it is unique and unchanging.
</Note>

### Updated at timestamp (required for fact tables)

For source tables under \~10 million total rows, Prequel can detect data changes without the use of an explicit Updated At timestamp.

## Optional enhancements

### Updated at timestamp (optional for dimension tables)

For more efficient change detection or to support volumes greater than 10m total rows, an Updated At column can greatly improve efficiency.

<Note>
  Fact tables require a Updated At column (semantically, this would be synonymous with Created At) as a best practice. If a fact table does not have an Updated At column, it can be treated as a dimension table, but at the cost of lower efficiency.
</Note>

## Compatibility grid

| Dataset Type | Unique Row Identifier | Updated At Column | Volume Limits                                                        |
| ------------ | --------------------- | ----------------- | -------------------------------------------------------------------- |
| Fact         | Required              | Required          | 100m rows per day                                                    |
| Dimension    | Required              | Optional          | 100m rows per day with Updated At, 10m rows total without Updated At |

<Note>
  Volume limits are based on current performance characteristics and may be revised in the future.
</Note>
