> For the complete documentation index, see [llms.txt](https://docs.zephyrintel.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zephyrintel.com/asset-detail/bill-of-materials-bom-and-stock-tab/choose-merge-or-replace-and-read-the-diff-preview.md).

# Choose Merge or Replace and read the diff preview

When you import a file into an asset that already has a BOM, Signal asks whether to merge the file into the existing list or replace it. This choice appears on Step 1 of the import, before you see the preview.

If the asset has no BOM yet, Signal skips this choice. It tells you "This asset has no BOM yet. The uploaded file will become the full parts list", and loads the file as the whole list.

### Merge or Replace

* **Merge**: "Keep existing parts. Add new part numbers and update rows that match by part number." Existing parts that are not in your file are left alone.
* **Replace**: "Discard the current BOM and load only what is in this file." Existing parts are matched against the file and any that do not appear in it are shown as removed in the preview.

Signal matches parts between the existing list and your file by part number, ignoring case and leading or trailing spaces.

> **Screenshot placeholder:** Step 2 of the BOM import in Replace mode, showing rows with New, Updated, No change and Removed statuses and the removal warning banner.

### Reading the diff preview

Step 2 shows every part with its status before you commit:

| Status            | Meaning                                                                                                            |
| ----------------- | ------------------------------------------------------------------------------------------------------------------ |
| New               | The part is not on the current BOM.                                                                                |
| Updated: {fields} | The part exists and one or more fields changed (description, quantity, item number, spare flag, or obsolete flag). |
| No change         | The part is identical to the current BOM.                                                                          |
| Removed           | Only shown in Replace mode: the part is on the current BOM but not in your file. Shown struck through.             |

Changed quantity and item number values show as "old → new". A summary line above the table totals the parsed parts and the counts of new, updated, unchanged and removed rows. If any parts will be removed, a warning banner states how many.

Click **Back to Step 1** to change your file or your Merge/Replace choice, or **Import BOM** to commit the import.

### Notes

{% hint style="warning" %}
Replace is meant to discard parts that are not in your file, and the preview may show parts as removed. In practice, a Replace import does not reliably delete those parts from the asset. Do not rely on Replace to remove parts you no longer want; delete them individually from the BOM table instead. Signal does not keep a restorable backup of the list before a Replace import, even though the screen says it does.
{% endhint %}

On this page, Signal does not show a confirmation message after an import finishes. The parts list still refreshes to reflect what was imported.
