SoftwareDevelopmentUser guidesAboutGet a quote
User Guide

Compare ASSY to BOM

1Introduction

Compare ASSY to BOM checks a printed-circuit-board assembly drawing against its Bill of Materials (BOM) and reports anything that does not line up between the two. Its job is to answer a deceptively simple question that is tedious and error-prone to check by hand: does every part that the BOM says should be on the board actually appear on the assembly drawing, exactly the number of times it should — and does anything appear on the drawing that the BOM does not account for?

You give the tool two things: a BOM file (a text export listing every reference designator or item that belongs on the assembly) and the assembly drawing as a PDF. The tool opens the PDF, reads the callouts printed on the drawing sheets, builds its own parts list from what it finds, and compares that against the BOM. It then shows you, item by item, where the two disagree so you can zoom straight to the problem on the drawing and decide what to do about it.

The window is divided into two tabs. The PCB tab handles the electronic components (resistors, capacitors, connectors, integrated circuits, and so on). The Mech tab handles the mechanical hardware — screws, standoffs, brackets, labels, and other non-electronic parts installed on the same assembly. Both tabs work on the same principle, but they read slightly different things from the BOM and the drawing, so they are covered separately below.

Note: This tool was originally built to work with a specific company's drawing standards and SAP BOM export format. The behavior described in this guide reflects exactly what the software looks for. If your BOMs or drawings follow different conventions, read Section 3 and Section 4 carefully — the tool is sensitive to format.

2What You Need Before You Start

  • The full Adobe Acrobat application (Standard or Pro) installed on the same computer. The tool does not read the PDF on its own — it opens your drawing inside Acrobat and drives Acrobat behind the scenes to pull the text off each sheet. The free Adobe Reader will not work for this.
  • A text-searchable assembly drawing PDF. The callouts on the drawing must be real, selectable text. If the PDF is a scanned image, or the text has been flattened to line-work or outlines, the tool cannot read the callouts and will find nothing.
  • A BOM file in the supported text format (see Section 3.1).
  • A small setup file named setup.txt in the same folder as the program. It supplies the drawing's expected CAGE code, which the tool uses to orient each sheet. This normally ships with the tool and needs no attention.
  • A word-exclusion file named excluded_words.txt in the same folder as the program. It lists words that appear in the drawing's standard notes and export-control statements so the tool does not mistake them for part callouts. This also ships with the tool.
Warning: If setup.txt is missing from the program folder, the tool will tell you and close. Both setup.txt and excluded_words.txt must be present for the tool to work correctly.

3The Two Inputs

You load files by dragging them from a Windows folder and dropping them into the box in the upper-left corner of the window. You can drop the drawing and the BOM together, or one at a time. The tool figures out what each dropped file is from its contents and its name.

3.1 The BOM File

The BOM must be a plain-text export of the assembly's Bill of Materials, laid out in columns separated by the vertical-bar character ( | ). The tool confirms a file is a valid BOM by looking for the phrases “BOM Export” and “Installation Pt” in it — if neither is present, the file is rejected as not a valid BOM. A valid file looks like this:

ColumnMeaning & How It Is Used
Installation PtThe reference designator or item number of the part (for example C001, R47, E001, or a plain balloon number). This is the key value the tool compares against the drawing. Leading zeros are ignored, so C001 is treated as C1.
ComponentThe part-number record. Two special values carry meaning (see below): 431 marks a part that is not installed, and 432 marks an E-point.
QuantityThe quantity called out by the BOM. Used for the quantity comparison, and for item (balloon) numbers that represent more than one placement.
Plant / Item / Old Part NumberAdditional record fields. Not used for the comparison.
Material DescriptionThe human-readable description (for example CAP,.22UF,6.3V,20%,0201,X5R,SMD). Shown for reference; not compared.

Two component records are treated specially, because they identify parts that should behave differently on the drawing:

Special RecordWhat It Means
Component 431“** COMPONENT NOT INSTALLED **”A footprint that exists on the board but is deliberately left unpopulated. These become the CNI (Component-Not-Installed) list. They should not appear as installed callouts on the drawing.
Component 432“**E'POINT**”An E-point (a defined electrical point on the board). These are added to the ASSY list and are expected to appear on the drawing.

How many BOM files to load

  • PCB tab: up to two BOM files may be loaded together — the assembly (ASSY) BOM and the surface-mount (SMT) BOM. The tool decides which is which by inspecting their contents. If it cannot tell which file is the ASSY BOM, it will ask you to click that file in the drop box to identify it. Loading more than two files is rejected.
  • Mech tab: exactly one BOM file. Loading more than one is rejected.
Tip: The tool identifies the ASSY BOM automatically when it sees a Component-431 (not-installed) part, a Component-432 (E-point) part, or a top-level line whose description begins with “SMT”. A well-formed pair of ASSY and SMT exports is separated with no prompting.

3.2 The Assembly Drawing PDF

The drawing is the reference the BOM is checked against. When you drop a PDF, the tool opens it in Acrobat and scans every sheet, collecting the callouts it considers valid (see Section 4). From those callouts it builds a “PDF BOM” — its own tally of what appears on the drawing and how many times each thing appears.

Note: A multi-sheet drawing is fully supported. Each sheet is scanned in turn, and each sheet may be rotated to any of the four standard orientations — the tool detects the rotation of every sheet on its own.

4What the Tool Reads From the Drawing

This is the heart of the tool, and the part most worth understanding. The scan is not a blind text dump — the tool applies a set of rules so that it collects the item and reference-designator callouts while ignoring dimensions, notes, title-block text, and boilerplate. Knowing these rules tells you what a “clean” drawing looks like to the tool, and explains why the occasional stray piece of text turns up in the results.

4.1 Where it looks — and where it doesn't

The tool only considers text that sits inside the drawing field — the working area bounded by the drawing border. It deliberately skips the parts of the sheet that contain metadata rather than part callouts:

  • The title block (the block of drawing information, normally in a corner) is excluded on every sheet.
  • The revision block is excluded on the first sheet.
  • Anything outside the drawing border is excluded.
  • Any rectangular “box” annotation you add in Acrobat is excluded. If a region of the drawing keeps producing stray text — a parts table, a notes block, an artwork legend — you can draw a square/rectangle comment over it in Acrobat before scanning, and the tool will ignore everything inside that box.
Tip: The rectangle-annotation trick is the intended way to mask out a whole troublesome area at once, rather than deleting stray items one by one after the scan.

4.2 How sheet orientation is detected

To know where the title block and revision block sit, the tool needs to know how each sheet is rotated. It does this by locating the drawing's CAGE code on the sheet (the value supplied in setup.txt) and reading its position. Because the CAGE code lives in the title block, its location reveals whether the sheet is upright or rotated 90°, 180°, or 270°.

Note: If the tool cannot find the expected CAGE code on the drawing, it will ask you to type in the CAGE code that actually appears on the sheet, then continue. Each sheet should carry the CAGE code in its title block for orientation detection to work.

4.3 What counts as a callout — and what is filtered out

Within the allowed area, the tool keeps a piece of text as a genuine part callout only if it contains at least one digit and is free of the patterns that signal it is something else. A callout is discarded when it:

The text…Why it is ignored
contains no digitsPure words are notes or labels, not part callouts.
contains a period ( . )Signals a dimension or decimal value (for example 1.50).
contains a slash, comma, or colonSignals a note, a list, or a fraction rather than a single callout.
contains parenthesesSignals a parenthetical reference note.
starts with “SH”A sheet reference such as “SH 2”, not a part.
is an alpha-number-alpha-number stringe.g. B2P1, W7P2A connector-pin reference, not a stand-alone part callout.
is on the excluded-words listBoilerplate from the drawing's notes and export-control statement (see below).

4.4 Excluded words and export-control statements

Drawings carry a standard block of proprietary and export-control (EAR) language. Left alone, words and numbers in that block would be misread as parts. Two mechanisms prevent this:

  • The excluded_words.txt file lists the ordinary words that appear in these statements (and common English words), so they are dropped on sight.
  • A few numbers that appear in the export-control citations are checked in context: if one of them sits next to the letters “CFR”, the tool recognizes it as part of the regulation citation and discards it rather than treating it as a part.

4.5 Quantity multipliers

Drawings often call out several identical parts with a single balloon plus a multiplier, such as “4X” next to an item number to mean “four of this item.” The tool understands this: when it sees a multiplier like 2X or 4X, it looks to the left and right for the item number it belongs to and adds that many to the drawing quantity, instead of counting the multiplier as its own part.

Note: If a multiplier has a candidate item number on both sides and the tool cannot tell which one it applies to, it selects the text on the drawing and asks you to type in the correct item number. Type exactly one of the two numbers it offers.

Finally, on the PCB tab, callouts that begin with “MTG” (mounting-related notations) are left out of the electrical comparison.

5The Two Tabs

The whole window is one large tabbed panel. The tab you choose determines which kind of check runs and which lists you see. Your last-used tab is remembered between sessions.

TabPurpose
PCBVerifies the electronic components. Offers three explicit presence checks (not-installed, assembly, surface-mount) plus an automatic quantity comparison, and lets you search for a specific component.
MechVerifies the mechanical hardware installed on the assembly. Runs an automatic quantity comparison of item (balloon) numbers between the BOM and the drawing.
Note: Across the top-right of both tabs are the same three general controls: one opens this help, one clears everything so you can start a fresh comparison, and one closes the program (remembering which tab you were on).

6The PCB Tab

The PCB tab of the Compare ASSY to BOM window
The PCB tab. Files are dropped into the box at top left; the parts lists build down the left side; differences and the verification report appear on the right.

When you drop the drawing and the BOM(s) onto the PCB tab, the tool scans the drawing, sorts the BOM into its three parts lists, and immediately runs a quantity comparison. From there you can run any of the three presence checks and investigate individual differences.

The top control strip on the PCB tab
The control strip: drop box (left), the three verification buttons, the search box, and the help / close / clear controls.

6.1 The Three Component Lists

Down the left side, the BOM is separated into three lists so each class of part can be checked appropriately:

ListWhat it holds
SMT CompsThe surface-mount reference designators taken from the SMT BOM. These are expected to be present on the drawing.
ASSY Compsshows item & quantityThe assembly parts taken from the ASSY BOM — reference designators, E-points, and item/balloon numbers with their quantities. These are expected to be present on the drawing.
CNI CompsComponent-Not-InstalledThe reference designators flagged in the BOM as not installed. These are expected to be absent from the drawing as installed parts.

Clicking any single entry in these lists highlights it and, if that callout exists on the drawing, zooms the Acrobat window to its location. With an entry selected, the up and down arrow keys step through the rest of the list, zooming to each in turn — a fast way to eyeball parts one after another.

6.2 The Automatic Quantity Comparison

As soon as both a drawing and a BOM are loaded, the tool compares its drawing tally against the BOM and fills the SAP/PDF BOM differences list. Each row shows an item together with the quantity the BOM expects and the quantity found on the drawing:

The differences area with the marking controls
The differences list, the per-difference detail list, and the color-coded marking controls.

An item appears in this list when:

  • It is in the BOM but its drawing count differs from the BOM quantity (including a drawing count of zero, meaning it is missing from the drawing).
  • It is on the drawing but does not appear anywhere in the ASSY, SMT, or CNI data (something drawn that the BOM does not account for).

Because most reference designators appear exactly once, a designator showing a drawing quantity of 2 usually means it was drawn twice; a quantity of 0 usually means it is missing or was mistyped on the drawing. See Section 8 for how to work through the list.

6.3 The Three Verifications

The three verification buttons run explicit presence checks and write a plain-language pass/fail summary into the Verification Report box at the lower right. As each check runs, you will see it step through the list and highlight each part on the drawing.

VerificationWhat it checks and how to read the result
Verify CNISearches the drawing for every not-installed part. Because these should not be shown as installed, the logic is inverted: finding none of them is a PASS; finding some is a partial failure; finding all of them is a full failure. The report lists any that were found so you can check them.
Verify ASSYSearches the drawing for every assembly part. Finding them all is a PASS; any not found are listed as missing. Parts whose designator begins with “*” are skipped and reported separately — these are programmed devices that intentionally do not appear on the drawing.
Verify SMTSearches the drawing, sheet by sheet, for every surface-mount reference designator. Finding them all is a PASS; any not found are listed as missing.
Note: Each report also reminds you if there are still unresolved quantity differences in the differences list, so a “PASS” on presence does not lull you into missing a quantity mismatch.

6.4 Finding a Specific Component

To jump straight to one part, type its designator into the search box next to the search button and press Enter, Tab, or the button. If the part is in any of the three lists it is selected there, and if it exists on the drawing the Acrobat window zooms to it.

7The Mech Tab

The Mech tab of the Compare ASSY to BOM window
The Mech tab. The left list is the BOM's item numbers; the next list is what the tool found on the drawing; differences appear to the right.

The Mech tab checks the mechanical hardware installed on the assembly — the screws, standoffs, nuts, brackets, labels and similar items that are called out on the drawing with item (balloon) numbers rather than electronic reference designators. It takes a single BOM file and, as soon as the drawing and BOM are both loaded, compares them automatically. There are no separate verification buttons on this tab; the comparison is the check.

7.1 What it compares

From the BOM, the tool builds a list of item numbers and their expected quantities (shown in the BOM from SAP list). Item numbers may be plain numbers such as 31 or 66, or alphanumeric designators such as A2. A few details of how the BOM is interpreted:

  • Leading zeros and any leading “*” are stripped, so 0031 and *31 both become 31.
  • An item that is itself a reference designator is counted as quantity 1 (one placement), regardless of the BOM number.
  • Sub-numbered items written with a dash (for example 31-1, 31-2) are grouped under their parent, and the tool checks that the number of sub-items matches the parent's quantity — warning you if they do not.

From the drawing, the tool builds the matching tally of item-number callouts (shown in the PDF BOM list), applying all the reading rules in Section 4. It then lists every mismatch in the SAP/PDF BOM differences list, with the BOM quantity and the drawing quantity side by side — just as on the PCB tab.

Note: Because item numbers are short, the Mech tab is where stray drawing text (a random “2” or “14” in a note the tool did not exclude) is most likely to surface as a false difference. Section 8 explains how to clear those out.

8Reviewing and Resolving Differences

Both tabs share the same tools for working through the differences list. The goal is to look at each difference, decide whether it is a real problem with the drawing or a quirk of the scan, and either flag it for correction or clear it away.

8.1 Look at where an item actually is

Click a row in the differences list. The tool gathers every place that item was found on the drawing and lists them individually in the View / Select Differences box. Clicking any one of those instances selects and zooms to that exact spot in the Acrobat window, so you can see with your own eyes whether the callout is genuine, duplicated, or a false read.

8.2 Delete a false read

If one of those instances is not really a part callout — a stray number the scan picked up — select it and use Delete Selected. The item is removed, that spot is added to an ignore list so it will not come back, and the quantities and comparison update immediately. Undo Delete reverses the most recent deletions if you remove something by mistake.

Tip: Deleting individual instances is for the occasional stray hit. If an entire region of the drawing is producing junk, it is faster to draw a rectangle annotation over that region in Acrobat before scanning (Section 4.1) than to delete each item afterward.

8.3 Flag what needs fixing

When a difference is a genuine drawing issue, mark it so it is captured in the report. Three color-coded controls do this:

The three marking colors
The marking legend, shared by both tabs.
MarkingMeaning
Mark as Needs CorrectionredA real problem that must be fixed on the drawing. Added to the report under “needing attention.”
Mark as Minor IssueorangeA difference worth noting but not necessarily requiring a change. Added to the report under items that “do not necessarily require attention.”
UnmarkblueRemoves any marking from the selected difference and takes it back out of the report.

Every time you mark or unmark an item, the Verification Report box is rewritten and a report file is saved automatically (see Section 9).

9Saving and Resuming Your Work

A drawing review is rarely finished in one sitting. The tool writes two supporting files, into the same folder you loaded the drawing and BOM from, so you can pick up where you left off. To resume, simply drop these files back in along with the drawing and BOM.

FileWhat it stores and how to reuse it
Ignore-list filenamed after the drawing, ending in _ignore_list.TXTEvery stray read you deleted. Drop it back in with the drawing so those false hits stay suppressed and the scan does not raise them again.
Comparison-report filethe saved verification reportYour red (needs-correction) and orange (minor-issue) markings. Drop it back in to restore all your flags on the differences list exactly as you left them.
Warning: If the drawing is regenerated from CAD, the internal positions of the text change, so a previously saved ignore-list file no longer matches the new PDF. In that case, start the evaluation over on the fresh drawing rather than reusing the old ignore list.

To abandon everything and begin a completely new comparison, use the clear/reset control at the top right. It empties every list and disconnects from the drawing.

10Typical Workflow

A normal PCB-assembly review runs like this:

  1. Choose the PCB tab (or Mech tab for hardware).
  2. Drag the assembly-drawing PDF and the BOM file(s) into the drop box at the top left. Wait while the drawing is scanned — you will see the status line count through the words on each sheet.
  3. If asked, identify the ASSY BOM (PCB) or supply the CAGE code, then let the scan finish.
  4. Read the SAP/PDF BOM differences list that appears. Click through each difference; use the View / Select Differences box to zoom to each spot on the drawing.
  5. Delete any false reads (updating the ignore list), and use the drawing to confirm the real problems.
  6. On the PCB tab, run Verify CNI, Verify ASSY, and Verify SMT and read the pass/fail summaries in the report box.
  7. Flag genuine issues as Needs Correction (red) or Minor Issue (orange). The report is saved automatically.
  8. When you need to stop, close the tool. To resume later, reload the drawing, the BOM, the ignore-list file, and the comparison-report file together.

11Tips & Troubleshooting

  • Nothing is found on the drawing: the PDF is probably not text-searchable (a scan or flattened artwork), or the full Adobe Acrobat is not installed. Confirm you can select the callout text in Acrobat itself.
  • The tool asks for a CAGE code: the CAGE code in setup.txt was not found on the sheet. Type the CAGE code exactly as printed on the drawing to continue.
  • A whole notes area shows up as differences: draw a rectangle annotation over that area in Acrobat and re-scan, so the tool ignores everything inside it.
  • A dropped file is rejected as “not a valid BOM”: the file is missing the expected “BOM Export” / “Installation Pt” markers, or is not the pipe-delimited text export. Re-export it in the supported format.
  • “You have loaded more than two / one BOM files”: the PCB tab accepts at most two BOMs (ASSY + SMT) and the Mech tab exactly one. Clear and load the correct file(s).
  • A multiplier prompt appears: a quantity multiplier such as “2X” had a number on both sides. Type in exactly which item number it belongs to.
  • Old markings don't come back after reloading: make sure you drop the comparison-report file in along with the drawing and BOM; and remember that a CAD-regenerated drawing invalidates the old ignore list.
  • Verify passes but quantities are still off: the presence checks and the quantity comparison are separate. A green “PASS” means the parts exist on the drawing; still work the differences list to clear quantity mismatches.