---
title: "Enrichments overview"
description: "What enrichments are, the sixteen types grouped by Transform, Guard, Watch and AI, the order they run in during a sync, and which plan each type needs."
section: "Enrichments"
canonical: "https://banksync.io/docs/enrichments/enrichments-overview"
---

Enrichments are the processing steps BankSync runs on your data **while a feed syncs**, before anything is written to your sheet, database, or table. They fill in fields, keep junk rows out, split or pair records, and notify you when something matters — so the data that lands is already the data you wanted.

There are sixteen enrichment types. This page is the map: what each one does, the order they run in, and which plan carries them. Each type then has its own guide.

> **Where enrichments live:** 'Open Enrichments in the left navigation for the workspace-wide grid, or open a feed and use Mapping → Enrichments to see and toggle the enrichments attached to that feed. Every enrichment is created from the same New Enrichment dialog and every one has an enable switch, a Dependencies tab for feed scope, and a Live Preview you can check before you sync.'

![The New Enrichment dialog: a search box above a category rail listing All, Transform data, Guard data, Watch and AI and learning with counts, beside a two-column grid of enrichment cards, each with its icon, name and one-line description, and a Don't see the enrichment you need? Request one link in the footer.](https://cdn.banksync.io/screenshots/enrichments/type-picker.b964e4624b77d24b.png "The New Enrichment dialog groups the sixteen types into four categories.")

## The four categories

- **Transform data** — Fill field values as records sync. Ruleset applies your When/Then rules; Lookup Table
  applies a big key-value mapping like vendor to GL code.
- **Guard data** — Change which rows reach your destination. Filter excludes matching records, Split
  replaces one record with several, Transfer Matcher pairs internal transfers, Duplicate
  Screen flags look-alikes.
- **Watch** — Notify without touching data. Alert, Feed Monitor, Budget, Recurring Registry,
  Fee Ledger, Anomaly Detector and Digest watch records, feeds and totals.
- **AI & learning** — Fill what nothing else could. Memory learns from your corrections; the AI Categorizer
  and Merchant Cleanup work on still-empty fields, with low-confidence results parked in the
  Review Queue.

## Every type at a glance

**Transform data** — set field values.

| Type                                              | What it does                                                                          | Runs on                               |
| ------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------- |
| [Ruleset](/docs/enrichments/creating-enrichments) | When these conditions match, set this field to this value. Rules run in order.        | Transactions, trades, loans, receipts |
| [Lookup Table](/docs/enrichments/lookup-tables)   | Maps one field to another from a table you paste in (exact, normalized, or contains). | Transactions, trades, loans, receipts |

**Guard data** — change which rows land.

| Type                                                    | What it does                                                                        | Runs on              |
| ------------------------------------------------------- | ----------------------------------------------------------------------------------- | -------------------- |
| [Filter](/docs/enrichments/filters)                     | Keeps matching records out of your destination entirely.                            | Every data type      |
| [Split](/docs/enrichments/splits)                       | Replaces one record with several lines that add up to the original, to the cent.    | Transactions, trades |
| [Transfer Matcher](/docs/enrichments/transfer-matching) | Detects money moving between your own accounts and tags (or suppresses) both legs.  | Transactions         |
| [Duplicate Screen](/docs/enrichments/duplicates)        | Flags look-alike duplicates — same account, amount and description inside a window. | Transactions         |

**Watch** — notify, never mutate.

| Type                                                    | What it does                                                                           | Runs on              |
| ------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------- |
| [Alert](/docs/enrichments/alerts)                       | Emails, Slacks or webhooks you when a synced record matches your conditions.           | Every data type      |
| [Feed Monitor](/docs/enrichments/feed-monitor)          | Tells you when a feed stops syncing, or keeps syncing but stops producing records.     | Feeds (no data type) |
| [Budget](/docs/enrichments/budgets)                     | Alerts when spend, income, count or a balance crosses a threshold for a period.        | Workspace totals     |
| [Recurring Registry](/docs/enrichments/recurring)       | Tracks subscriptions and bills; flags price increases, new ones, and missed charges.   | Transactions         |
| [Fee Ledger](/docs/enrichments/fee-ledger)              | Classifies bank fees and interest, and alerts when a month's fees creep upward.        | Workspace totals     |
| [Anomaly Detector](/docs/enrichments/anomaly-detection) | Flags big first-time merchants, amount spikes against history, and transaction bursts. | Transactions         |
| [Digest](/docs/enrichments/digests)                     | Sends a scheduled daily, weekly or monthly summary of everything above.                | Workspace totals     |

**AI & learning** — fill what is still empty.

| Type                                                   | What it does                                                                        | Runs on              |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------- | -------------------- |
| [Memory](/docs/enrichments/memory)                     | Learns how you categorize records in your destination and reapplies it next sync.   | Transactions, trades |
| [AI Categorizer](/docs/enrichments/ai-categorizer)     | Fills empty categories from your taxonomy, gated by a confidence threshold.         | Transactions, trades |
| [Merchant Cleanup](/docs/enrichments/merchant-cleanup) | Turns raw bank descriptors into clean, canonical merchant names.                    | Transactions         |
| [Review Queue](/docs/enrichments/review-queue)         | Not a type — the inbox where below-threshold AI suggestions wait for your decision. | Transactions         |

> **Some types have no data type:** 'Feed Monitor, Budget, Fee Ledger and Digest watch feeds and workspace totals rather than a record shape, so they have no Data type selector — they contribute from every feed you attach them to. For the record-level types, data types an enrichment cannot work on are shown disabled with the reason (a Duplicate Screen needs a Duplicate Flag field, so it is transactions-only).'

## The order things run in

Enrichments do not simply run top to bottom of the grid. Each type belongs to a **stage**, stages run in a fixed order, and your drag-and-drop order decides the sequence **within** a stage. That is what makes the results predictable no matter how the grid is arranged:

1. **Guard** — Filter, Duplicate Screen, Transfer Matcher and Split decide which records continue. A suppressed
   record never reaches a later stage, never teaches Memory, and never fires an alert.
2. **Memory** — Memory fills fields that are still empty, from what you have corrected before.
3. **Lookup** — Lookup Tables apply their mapping — early, so your rules can still override them.
4. **Rules** — Rulesets apply. Later rules win over earlier ones, so put the most specific rules first.
5. **AI fill** — The AI Categorizer and Merchant Cleanup fill only what is still empty, and only above your
   confidence threshold. Everything else goes to the Review Queue.
6. **Observe** — Alerts, budgets, recurring and fee tallies, and anomaly scoring read the final records. They
   notify and count; they never change a value.

Between the rules and the AI fill there is one more stage, **transform**, which rewrites derived values (templates, regex extraction, upper/lower/title case, absolute/negate/round). Rules evaluate before it, and everything in the observe stage sees the transformed result. The in-app rule editor writes plain set-a-value actions, so today these derived actions are authored over the [REST API](/docs/api/resources).

Watch types that look at feed health or a whole period (Feed Monitor, Budget, Fee Ledger, Digest, and the Recurring and Anomaly alerts) are also evaluated on a scheduled hourly pass, so they can fire between syncs.

## Preview before you sync

Every feed's Mapping tab has a **Live Preview** that runs your real records through the whole pipeline without writing anything:

- The **Data** tab shows the rows as your destination will receive them, with enrichment-changed cells highlighted.
- Rows a Guard enrichment would exclude are struck through and labelled with the enrichment that suppressed them, and Split children appear indented under their parent.
- Alerts show as "would fire (dry run)" instead of sending.
- The **Enrichments** tab shows each enrichment with the number of records it matched.

After a sync, the job's execution summary in job history records the same thing for what actually ran: which enrichments fired, how many records each touched, and whether alerts were delivered.

## What each plan includes

Enrichment types come in tiers. Every plan can create the basics; higher plans add the rest.

| Plan                   | Enrichment types                                                                                                                          |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Free, Starter          | Ruleset, Alert, Memory, Filter, Feed Monitor                                                                                              |
| Standard               | The above, plus Lookup Table, Split, Transfer Matcher, Duplicate Screen, Budget, Recurring Registry, Fee Ledger, Anomaly Detector, Digest |
| Professional and above | Everything, including the AI Categorizer and Merchant Cleanup                                                                             |

> **How the tier is enforced:** 'Types your plan does not carry appear locked in the New Enrichment dialog with the plan they need. If you downgrade, existing enrichments of a type you can no longer create keep running — except the AI types, which stop spending model time immediately (their documents and settings are kept, so an upgrade resumes them). A workspace can hold up to 100 enrichments in total.'

> **AI types and credits:** 'The AI Categorizer and Merchant Cleanup ride the AI entitlement on Professional and above, and do NOT draw down your AI assistant credits — those are for Ask Penny. There is no model to choose: one managed model serves every workspace, and your accuracy dials are the confidence threshold and the Review Queue.'

## Next steps

Build your first enrichment — a ruleset that categorizes transactions as they sync.

[Create your first enrichment](/docs/enrichments/creating-enrichments)

## Related guides

- [Creating enrichments](/docs/enrichments/creating-enrichments): the create → configure → preview → enable walkthrough, using a Ruleset.
- [Memory](/docs/enrichments/memory): let BankSync learn your categorizations instead of writing rules for them.
- [Alerts](/docs/enrichments/alerts): email, Slack and webhook notifications on matching records.
- [Review Queue](/docs/enrichments/review-queue): accept, edit or reject the AI suggestions that fell below your threshold.
- [Configuring field mappings](/docs/bank-feeds/field-mappings): decide which columns enriched values land in.
- [Changing your plan](/docs/account-billing/changing-your-plan): what each tier includes, and how upgrades apply.
