# Reviewing duplicates Source: https://neondeerdata.com/docs/platform/duplicate-detection/reviewing-duplicates/ Open a duplicate set, see which rules put its records together and what evidence supports or argues against a match, and decide what happens next: change the record that stays, mark records Not duplicate, remove the set from your list, or flag it for someone else. No action you take during the review process will make any changes to Attio. ## Sets and their status A scan or automatic detection puts records that look like the same person or company into a **set**. Each set lists the rules that matched its records, which is why it was flagged; [Matching rules](https://neondeerdata.com/docs/platform/duplicate-detection/matching-rules/) explains how each rule decides and how sets are formed. The Sets tab sorts every set into one of three buckets: | Bucket | What it means | | ----------------- | -------------------------------------------------------------------------------------------------------------- | | `Not reviewed` | Nobody has acted on the set yet. | | `Ready to merge` | Someone pressed `Mark ready`. `Clear ready` moves it back. | | `Needs attention` | A decision is owed first: a person flagged the set, it is larger than your review threshold, or it is on hold. | A set can also carry a pill: `On hold`, `Needs additional review`, `Cannot merge`, `Not offered`, `Large group` or `Needs review`. The size limits behind `Needs additional review` and `Cannot merge` are covered in [Merging records](https://neondeerdata.com/docs/platform/duplicate-detection/merging-records/). ## Reading the evidence The evidence panel compares one record of the set with the record that stays, field by field, in four columns: `Evidence`, `Record that stays`, `This record` and `Comparison`. Rows are grouped: - **`Supports duplicate`**: fields that point to the same person or company, such as a shared domain. - **`Argues against`**: fields that conflict, such as two different domains. - **`Other evidence`**: context that is neither. A name, domain, email address or LinkedIn value that one record lacks appears here as a data-quality finding, not as evidence against the match. - **`Additional fields`**: the remaining fields, collapsed until you press `Show N additional fields`. | Comparison | Meaning | | ---------------------------------------------- | ------------------------------------------------------------------------------------------- | | `Same` | Both records hold the same value. | | `Same parent`, `Same site`, `Same destination` | Forms of Same for domains and websites, for example two domains that lead to the same site. | | `Similar` | The values are close but not identical, for example two spellings of a name. | | `Different` | The values conflict. | | `Only on selected record` | Only the record that stays has a value. | | `Only on this record` | Only the record being compared has a value. | | `Missing` | The absence is itself the finding, for example a key field neither record fills. | | `Unavailable` | No reading of the value is available. | When two records match through a third record rather than directly, the row is labeled `Indirect match` and shows the path, for example _This record → Acme Holdings → Selected record_. ## Changing the record that stays Each set suggests one record to keep, marked `Selected to remain`. When the set is merged, the other records merge into it. To keep a different record, press `Use this record` on its row and confirm `Change selected record?`. The change can alter which field values the merge keeps, and nothing changes in Attio until a merge is approved. Your choice is kept across later scans, and after a merge it moves to the record that remains. Which values survive a merge is covered in [Merging records](https://neondeerdata.com/docs/platform/duplicate-detection/merging-records/). ## Review decisions | You want to | Use | Scope | Lasts | | ------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------- | | Keep a different record | `Use this record` | The set | Across scans | | Say two records are different people or companies | `Mark not duplicate` | One pair: this record and the record that stays | Until you remove the decision | | Leave one record out of a merge | `Mark not duplicate` on that record in the merge plan | The pair, and the record is taken out of that merge | Until you remove the decision | | Clear a set off your list for now | `Remove from list` | The set | Until a later scan finds the same records together again | | Hand the set to someone, or park it | `Needs review…` | The set | Until `Clear review` | | Queue the set for merging | `Mark ready` | The set | Until `Clear ready` or the set is merged | `Needs review…` opens `Flag this set for review`, where you can add an assignee and a `What to check` note. The set moves to Needs attention. For a large set you can also merge only some of its records; see [Merging records](https://neondeerdata.com/docs/platform/duplicate-detection/merging-records/). ### Skip for now versus Not duplicate There is no Skip action. To come back to a set later, leave it in Not reviewed, or use `Remove from list` to clear it from view. Remove from list is temporary: a later scan can find the same records again, and the set returns. It records nothing about whether the records are duplicates. `Mark not duplicate` is a lasting decision. Use it when you are sure two records are different, so they stop being flagged together. ## Not duplicate - Press `Mark not duplicate` (shortcut `N`) and confirm `Stop flagging these records as duplicates?`. The decision covers only this record and the record that stays. Either record can still match a third record later. - Later scans and automatic detection respect it. - `Undo` (shortcut `U`) appears straight away. Later, remove the decision from the Not duplicates page with `Remove decision`. - After a merge, the decision follows the merged record to the record that remains. If that makes it unclear, it is marked `Needs review` for a person to check. If both records end up as one, or one is deleted, the decision is retired. ## AI score The AI score is Neon Deer's score from 0 to 100 for how strongly the available evidence supports a duplicate match between one record and the record that stays. It is not a probability. Whether AI scoring is included depends on your Neon Deer plan (see [Settings → Billing in Neon Deer](https://app.neondeerdata.com/)); when it is not, the score shows that AI scoring is not included. ### Getting a score Scores are made only when you ask. Press `Refresh AI scores` on a set (shortcut `R`), or select sets and press `AI score N sets`. Pairs marked Not duplicate are not scored. A pair's status reads, for example, `Pending`, `Scoring`, `Scored`, `Scored with limits` or `Insufficient evidence`. ### What it reads The score always reads the two records' fields. A workspace admin can add more in Settings » `Data used for AI scoring`: - `Related records`: fields of records directly linked to the two records, one step out and no further. - `Notes`: a limited number of recent notes on each record, used only as evidence about the record they belong to. - `Reuse extracted details`: keeps details already read from notes so they are not processed again. How this data is handled and kept is described in the [Privacy Policy](https://neondeerdata.com/privacy/). ### What the score shows - **A verdict**: `Likely same company` or `Likely same person`, `Unclear`, `Likely different companies` or `Likely different people`, `Insufficient evidence`, or `Not scored yet`. - **The number**, from 0 to 100. - **`Detection`**: how the match itself looks, such as `Strong direct match`, `Reasonable candidate`, `Indirect match` or `Likely false positive`. - **`Data quality`**: `Looks clean`, `Cleanup recommended`, `Conflicting data` or `Significant cleanup recommended`. - **A short summary** of the reasoning, and **`What this score could not see`**. ### What it does not do The AI score is advice for the person reviewing. It does not approve, merge, hide or exclude records, and it does not move a set between buckets. A merge still needs a person with permission to approve it. That is deliberate. The score sees only the evidence available to it, and its own `What this score could not see` says where that falls short. Merges cannot be undone in Attio, so the decision stays with someone who knows the records. ### Example: an Unclear score Two illustrative Company records share a LinkedIn page but little else: | Evidence | Record that stays | This record | Comparison | | -------- | ------------------------------ | ------------------------------ | ---------- | | LinkedIn | linkedin.com/company/northwind | linkedin.com/company/northwind | Same | | Name | Northwind Analytics | Northwind Logistics | Different | | Domains | northwind.io | northwindlogistics.com | Different | A score for this pair could read: - **Verdict**: Unclear. **AI score**: 41\. **Detection**: Reasonable candidate. **Data quality**: Conflicting data. - **Summary**: "Both records use the same LinkedIn page, but their names and domains differ. The page may belong to a parent company shared by two businesses." - **What this score could not see**: notes, because Notes is off for this workspace. Unclear means the evidence points both ways. The reviewer checks the LinkedIn page, finds it belongs to the parent group, and decides these are two companies. The worked example below continues from here. ## Worked example: a set of three Companies A scan finds three Company records that share one LinkedIn company page and puts them in one set (illustrative data): | Record | Name | Domains | LinkedIn | | ------------------------ | ------------------------ | ---------------------- | ------------------------------ | | A (`Selected to remain`) | Northwind Analytics | northwind.io | linkedin.com/company/northwind | | B | Northwind Analytics Inc. | (empty) | linkedin.com/company/northwind | | C | Northwind Logistics | northwindlogistics.com | linkedin.com/company/northwind | ### 1\. Read the evidence | Compared with A | Supports duplicate | Argues against | Other evidence | | --------------- | -------------------------------------------------------------- | ------------------------------------ | --------------------- | | B | LinkedIn: Same. Name: Similar (only the legal suffix differs). | None | Domains: Missing on B | | C | LinkedIn: Same | Name: Different. Domains: Different. | None | ### 2\. Check the AI score The reviewer presses `Refresh AI scores`. B against A comes back as Likely same company, 93, Strong direct match, with Data quality Cleanup recommended because B has no domain. C against A comes back Unclear, as in the [example above](https://neondeerdata.com/docs/platform/duplicate-detection/reviewing-duplicates/#ai-score-example). ### 3\. Decide 1. **Keep A.** It holds the domain and is already `Selected to remain`, so there is no reason to press `Use this record` on B. 2. **Mark C Not duplicate.** On C's row, `Mark not duplicate` records that A and C are different companies. Records marked Not duplicate are not merged together, and later scans stop flagging A and C together. The shared LinkedIn value on C is still wrong in Attio; correcting it there stops it producing matches at all. 3. **Mark the set ready.** `Mark ready` moves the set to Ready to merge. When B is merged into A, B's values can fill A's blanks, as described in [Merging records](https://neondeerdata.com/docs/platform/duplicate-detection/merging-records/). Had the reviewer been unsure about C, `Needs review…` with a note such as "Check whether Northwind Logistics is a separate company" would have handed the set to a colleague instead. `Remove from list` would not help here: the next scan would bring the same three records back.