Wire Payment Review

User Manual & Job Aid  |  Version 1.0  |  March 2026

Contents

  1. What is the Wire Payment Review Tool?
  2. Prerequisites — What You Need Before Running
  3. Quick Start — Typical Workflow
  4. First-Time Setup
  5. The Run Sheet — Buttons and Configuration Cells
  6. Phase 1 — Data Import Wizard
  7. Phase 2 — Wire Review Wizard
  8. Step 1: Extract — How It Works
  9. Step 2: Rebuild Registry — How It Works
  10. Step 3: Fuzzy Match — How It Works
  11. Step 4: Account Review — How It Works
  12. Step 5: Inactive Check — How It Works
  13. Understanding the Output Sheets
  14. Archiving Results
  15. Resetting the Workbook
  16. Step Independence — What to Re-Run and When
  17. Common Scenarios
  18. Troubleshooting
  19. Glossary

1   What is the Wire Payment Review Tool?

The Wire Payment Review (WPR) tool is a macro-enabled Excel workbook that automates the quality-review process for outgoing wire payment batches. Each batch arrives as a bank-formatted template file — one format for RBC, a different format for US Bank — containing payment instructions that include vendor names, bank account numbers, SWIFT codes, and operating-unit identifiers. Before a batch can be approved and submitted, a reviewer must verify three things:

  1. That each payment is associated with a recognised Oracle supplier number.
  2. That the bank account number on the payment instruction matches a known account in the Oracle bank account registry for that supplier.
  3. That none of the payees are inactive (deactivated) suppliers in the Oracle system.

Without automated tooling, these checks are performed row by row against the Oracle bank account register — a process that is time-consuming, error-prone, and difficult to document consistently. The WPR tool replaces that manual process with a structured, repeatable workflow driven by a single button.

What the tool does, step by step

Step What happens Output
Import Raw bank template files and the Oracle bank account registry are loaded into dedicated tabs inside the workbook. Populated input tabs
Extract Raw template data is parsed, cleaned, and re-structured into a standardised reviewer-friendly layout. Multi-line cells, embedded commas, and format variations are handled automatically. RBC_Extract   US_Extract
Rebuild Registry The external Oracle bank account file is read, deduplicated, and filtered to the operating units of interest, producing a compact lookup table. Account_List_Unique
Fuzzy Match Each vendor name on the extract is matched against the Oracle account registry using a Levenshtein-distance similarity algorithm. Exact, near-exact, and best-candidate matches are resolved and written back to the extract sheet. Supplier Num, Match Score, Notes columns on extract tab
Account Review For each matched supplier, all known Oracle bank accounts are listed and the payment's account number is compared against them using exact-string, exact-digit, and approximate-suffix matching. Oracle Bank Accounts, Match, Comments columns on extract tab
Inactive Check Each vendor name on the extract is compared against a list of deactivated Oracle suppliers. Vendors whose names score above the similarity threshold are flagged with the supplier number and the date of deactivation. Inactive columns on extract tab
Archive A clean, macro-free copy of all output sheets is saved to the archive folder with a standardised filename, ready to distribute to the reviewer. Timestamped .xlsx file in archive folder
Who is this for?
Payment processor / senior reviewer — configures the Run sheet settings, imports source files, runs the review pipeline, and distributes the archived output.
Junior reviewer / approver — receives the archived .xlsx file, opens the extract tabs, and performs the sign-off review against the automated flags and notes.

2   Prerequisites — What You Need Before Running

Confirm that your environment and input files meet the requirements below before running any step. Attempting to run a step without the required inputs will produce a descriptive error message rather than silently writing incorrect data, but it is faster to check in advance.

2.1   Excel version and macro security

Supported versions

The WPR tool is compatible with Excel 2016, 2019, 2021, and Microsoft 365 on Windows. It is not compatible with Excel for Mac (the file dialog and certain Windows API calls are Windows-only). Excel Online (browser) is not supported — macros do not run there.

Enabling macros

When the workbook is opened, Excel displays a yellow security bar below the ribbon reading "SECURITY WARNING — Macros have been disabled." Click Enable Content. Without this, no buttons will function. If the bar does not appear, macros may have been silently blocked by Group Policy — contact your IT support team.

Adding a Trusted Location (recommended)

To avoid the Enable Content prompt on every open, add the folder containing the workbook to Excel's Trusted Locations: File > Options > Trust Center > Trust Center Settings > Trusted Locations > Add new location. Only do this for a folder you control. Once trusted, the workbook opens with macros enabled automatically.


2.2   Input file 1 — Bank wire template

What it is

The wire template file is the batch payment instruction file produced by the bank or the payments system. The tool supports two template formats:

Template type Description Expected layout
RBC RBC bank wire export. Column headers may appear in rows 1, 2, or 3 depending on the export version. One payment per row. Required headers: VENDOR, DESCRIPTION, BANK, TRANSIT, CREDIT BANK, CREDIT VENDOR NAME, SWIFT, TEMPLATE NAME, DEBIT ACCOUNT.
US US Bank wire template. Vertical label-value format — column A contains field labels, column B contains values. Multiple payment blocks are stacked top-to-bottom, each starting with a Template ID label. Column A = label, column B = value. Blocks separated by blank rows. Required label: Template ID (marks the start of each payment record).

File format

Both template types can be in any of the following formats: .xlsx, .xls, .csv, or .txt. The file must be closed before importing — Excel cannot read a workbook that is open in another window or another Excel session.

HSBC template

HSBC is listed in the Import Wizard (button 3) but the processing pipeline is not yet implemented. The data import step will place the file contents on the HSBC_Wire_Temp tab, but the Extract, Fuzzy Match, and Account Review steps will not process that tab until the HSBC pipeline is built in a future release.


2.3   Input file 2 — Oracle bank account registry

What it is

The Oracle bank account registry is an export from Oracle of all active bank accounts associated with vendors in the operating units you process. It is used to:

Where it is referenced

The registry file is not imported via a file dialog. Its location is configured directly on the Run sheet:

CellWhat to enterExample
K2Folder path where the registry file is stored \\server\shares\AP\OracleExports
K3File name of the registry file (including extension) Oracle_Bank_Accounts_Mar2026.xlsx
K4Comma-separated list of operating unit (OU) codes to include 115, 213, 310
OU filter (K4). The registry file typically contains accounts for all operating units in the organisation. Entering a comma-separated list of OU codes in K4 restricts the imported data to only the OUs relevant to your batch. This makes the Fuzzy Match and Account Review steps significantly faster and reduces false matches from other business units. Enter the three-digit OU codes exactly as they appear in the data. Leave K4 blank to import all OUs with no filtering.

How often it needs updating

The Oracle registry changes infrequently — typically after each quarterly account maintenance cycle. Once the registry has been loaded for the quarter, it does not need to be reloaded for every daily batch. Re-run the Rebuild Registry step only when the underlying Oracle file has been refreshed. See Section 16 — Step Independence for a full decision table.


2.4   Input file 3 — Inactive vendor list (optional)

What it is

The inactive vendor list is an Oracle report of all suppliers that have been deactivated, together with their deactivation dates. This file is used by the Inactive Check step to flag any payments destined for vendors that are no longer active in Oracle.

Expected format

The file must contain at minimum three columns with recognisable headers: Vendor Name (or VENDOR_NAME, Supplier Name), Vendor Number (or VENDOR_NUMBER, Supplier Number), and Vendor Inactive Date (or VENDOR INACTIVE DATE, Inactive Date). Column names are matched case-insensitively and several common synonym forms are recognised automatically.

Title row handling

Many Oracle inactive vendor reports are formatted with a large merged title cell in row 1 (for example, "Oracle AP Inactive Suppliers — Exported 14-Mar-2026") above the actual column headers in row 2. The Import Wizard automatically detects and deletes this title row after import. You do not need to remove it from the source file first.

When to update

Import a new inactive vendor list whenever Oracle issues an updated deactivation report — typically quarterly. Once imported, the Inactive_List_Unique tab persists across daily runs until explicitly overwritten by a new import.


3   Quick Start — Typical Workflow

A complete first-run from empty workbook to archived output takes approximately 15 minutes for a standard batch. Subsequent daily runs with existing registry data take under 5 minutes.

First run of the quarter

1 Open the workbook. Click Enable Content on the yellow macro security bar if prompted. Navigate to the Run sheet.
2 Fill in the K column configuration cells. At minimum, enter the registry path (K2), registry filename (K3), OU filter (K4), archive path (K5), operating unit code (K6), and bank name (K7). See Section 5 for a full description of each cell.
3 Import the wire template file(s). Click Import Data on the Run sheet. The Import Wizard opens. Select button 1 (US) or 2 (RBC), browse to the template file, and confirm the import. Import both if your batch includes both template types. See Section 6.
4 Import the inactive vendor list (optional). If performing an Inactive Check this run, click Import Data again and select button 5 (Inactive Vendor List). Browse to the Oracle inactive vendors file and confirm.
5 Click Wire Review. The Wire Review Wizard opens. In the top section, tick the template(s) you imported (RBC, US, or both). In the bottom section, tick all steps: Extract, Rebuild Registry, Fuzzy Match, Account Review, and (if desired) Inactive Check. Click Run.
6 Wait for processing to complete. A progress bar appears during the Fuzzy Match step. For a typical batch of 200–500 rows against a registry of 50,000 accounts, this takes 1–3 minutes. Do not close the workbook or switch to another Excel window during processing.
7 Review the output. The wizard returns focus to the Run sheet and displays a completion message. Navigate to RBC_Extract or US_Extract to review the flagged results. See Section 13 for a full explanation of each output column.
8 Archive and distribute. Once the first-pass review is complete, click Archive Results on the Run sheet. A macro-free .xlsx copy is saved to your archive folder with a standardised filename. See Section 14.

Subsequent daily runs (registry already built)

1 Import the new wire template file. Click Import Data and import the new template(s). The existing extract tabs are cleared and replaced automatically.
2 Click Wire Review. In the wizard, tick the appropriate template(s). In the steps section, tick Extract, Fuzzy Match, and Account Review. Leave Rebuild Registry unchecked — the existing registry from the previous run is still valid.
3 Review the output and archive as usual.
When to tick Rebuild Registry again. Re-tick Rebuild Registry the first time you run after the quarterly Oracle bank account file has been refreshed, or any time you change the path, filename, or OU filter in cells K2–K4. On all other daily runs, leave it unticked to save processing time.

4   First-Time Setup

The WPR workbook ships with all VBA modules installed but requires a one-time setup procedure before the buttons on the Run sheet are connected to the macros.

4.1   Import the UserForms

The Run sheet buttons depend on two UserForm dialog boxes: frmImportWizard and frmRunWizard. These forms must be imported into the workbook once after it is first received. This is a one-time step per workbook.

1 Open the workbook. Click Enable Content on the yellow macro security bar.
2 Press Alt + F11 to open the Visual Basic Editor (VBE). The project tree appears on the left side. Look for the project entry corresponding to this workbook.
3 In the VBE menu bar, choose File > Import File… (or right-click the project in the tree and choose Import File…).
Navigate to the WireProjectRework\ folder.
Select frmImportWizard.frm and click Open. The companion binary file frmImportWizard.frx is imported automatically.
4 Repeat the import for frmRunWizard.frm.
5 After importing, confirm that both forms appear under Forms in the project tree. Save the workbook (Ctrl + S). If prompted to keep the macro-enabled format, choose Keep Current Format.
Alternative: run the auto-setup macro. If the workbook includes a WPRWizardSetup.SetupAllWizardForms macro, you can run it instead of the manual import above. Press Alt + F8, locate SetupAllWizardForms in the list, and click Run. This macro creates both forms programmatically and does not require the .frm files to be present on disk.

4.2   Assign macros to buttons on the Run sheet

The buttons on the Run sheet must be connected to their macros once after the forms are in place.

Button label Macro to assign
Import Data WPR0_DataImportWizard.LaunchDataImportWizard
Wire Review WPR8_Orchestrator.RunWireReview
Archive Results WPR8_Orchestrator.ArchiveResults
Reset Workbook WPR8_Orchestrator.ResetWorkbook

To assign a macro to a button: right-click the button shape on the Run sheet and choose Assign Macro…. Locate the macro name in the list, select it, and click OK. Repeat for each button. Save the workbook when all buttons are assigned.


5   The Run Sheet — Buttons and Configuration Cells

5.1   Buttons

Button Action When to use
Import Data Opens the Data Import Wizard. Guides the user through importing bank template files and reference data into the correct tabs. At the start of each batch, before running the Wire Review.
Wire Review Opens the Wire Review Wizard. The user selects which templates and steps to run, then the macro executes the full pipeline. After importing data. The primary processing button.
Archive Results Saves a macro-free .xlsx copy of all output sheets to the archive folder configured in K5, with a standardised filename. After completing the review and before distributing the output to reviewers.
Reset Workbook Deletes all working and output sheets, and clears all input tabs. Returns the workbook to a blank state. At the start of a new review cycle, or to discard an in-progress run that needs to be restarted from scratch.
Reset Workbook is irreversible. All data on the extract tabs (RBC_Extract, US_Extract), the account registry tabs (Accounts_Numbers_Data, Account_List_Unique), and the inactive vendor tab (Inactive_List_Unique) will be permanently deleted. The raw input tabs (wire templates, Oracle_Account) are also cleared. Only the configuration cells in the K column of the Run sheet are preserved. Do not click Reset Workbook unless you have already archived or no longer need the current run's output.

5.2   Configuration cells (column K)

All runtime settings are stored in the K column of the Run sheet. These values persist between runs — set them once when you first configure the workbook and update only when the underlying files or operating parameters change.

Cell Setting Required Example / Notes
K2 Registry folder path Yes \\server\shares\AP\OracleExports
The folder where the Oracle bank account file is stored. Network UNC paths are fully supported. Do not include a trailing backslash — the tool adds one automatically.
K3 Registry file name Yes Oracle_Bank_Accounts_Mar2026.xlsx
The file name (including extension) of the Oracle bank account registry file. This must be updated whenever a new quarterly file is provided.
K4 OU filter No 115, 213, 310
Comma-separated list of three-digit operating unit codes. Only accounts belonging to these OUs will be imported into Account_List_Unique. Leave blank to import all OUs (slower, more matches from unrelated units).
K5 Archive folder path Yes (for Archive) \\server\shares\AP\WireReview\Archive
The destination folder for archived output files. The folder is created automatically if it does not exist.
K6 Operating unit code Yes (for Archive) US_115
The operating unit label used in the archive filename and in the OU column of the US extract. Use a consistent naming convention across runs.
K7 Bank name Yes (for Archive) RBC or US_BANK or HSBC
The bank name segment used in the archive filename. Choose a short, consistent label.
K8 Template type (optional) No INTL_USD
An optional suffix appended to the archive filename to distinguish between different template variants processed on the same day. Leave blank if not needed.
Archive filename format. The Archive step constructs the filename as:
[K6]_[K7]_WIRE_TEMPLATES_REVIEW[_K8]_DDMMMYYYY.xlsx
Example with K8 blank: US_115_RBC_WIRE_TEMPLATES_REVIEW_25MAR2026.xlsx
Example with K8 = INTL_USD: US_115_RBC_WIRE_TEMPLATES_REVIEW_INTL_USD_25MAR2026.xlsx

6   Phase 1 — Data Import Wizard

The Data Import Wizard (Import Data) loads raw data into the workbook's input tabs in preparation for processing. The wizard presents a menu of five data types. Select one type per import cycle; click Import Another? after each import to continue loading more types.

6.1   How the Import Wizard works

1 The file-type menu appears. Five labelled buttons are presented, one per data type (see Section 6.2 below). Click the button corresponding to the data you want to import. Click Cancel or close the form to exit the wizard without importing.
2 A file browser opens (for types 1, 2, 3, and 5 — not for type 4). Navigate to the source file, select it, and click Open. If you close the browser without selecting a file, the wizard asks whether you want to try again.
3 The file is imported automatically. The wizard opens the source file in read-only mode, locates the first sheet with data, copies the entire used range to the target tab, then closes the source file. The target tab is created automatically if it does not yet exist in the workbook.
4 A confirmation message reports the tab name, number of rows imported, and number of columns. Click OK, then confirm whether to import another file.
Existing data is replaced, not appended. Every import clears the target tab completely before writing the new data. If you import the same data type twice, the first import is overwritten by the second. This is intentional — each run starts from a clean slate. Do not use the Import Wizard to append records to an existing tab.

6.2   Data type reference

Button Data type Target tab File dialog? Notes
1 US Wire Template US_Wire_Template Yes Vertical label-value format. All sheet data is imported as-is. The Extract step interprets the layout.
2 RBC Wire Template RBC_Wire_Temp Yes Row-per-payment format. Headers may be in rows 1, 2, or 3 — the Extract step scans all three rows to locate them.
3 HSBC Wire Template HSBC_Wire_Temp Yes Data is imported to the HSBC tab. Processing pipeline not yet implemented — the Extract, Fuzzy Match, and Account Review steps will not run against this tab.
4 Oracle Bank Accounts Accounts_Numbers_Data and Account_List_Unique No No file browser. The registry path (K2), filename (K3), and OU filter (K4) must be filled on the Run sheet before clicking this button. The macro reads those cells, opens the file from the configured path, and builds both registry tabs in one step. Equivalent to ticking Rebuild Registry in the Wire Review Wizard.
5 Inactive Vendor List Inactive_List_Unique Yes The source file's merged title row (if present) is automatically deleted after import. The resulting tab contains the raw inactive vendor data — the Inactive Check step deduplicates it further before matching.
Button 4 — Oracle Bank Accounts has no file browser by design. This decision eliminates the risk of accidentally loading the wrong file. The configured path in K2/K3 is the single authoritative source. If you need to switch to a different registry file, update K2 and/or K3 first, then click button 4. This creates a clear audit trail: the Run sheet always shows the currently-active registry file.

7   Phase 2 — Wire Review Wizard

Clicking Wire Review opens the Wire Review Wizard (frmRunWizard). This form controls which templates are processed and which steps are executed in the pipeline.

7.1   Template section (top)

Two checkboxes select which bank templates to process in this run:

Checkbox Template processed Source tab Output tab
RBC RBC bank wire batch RBC_Wire_Temp RBC_Extract
US US Bank wire batch US_Wire_Template US_Extract

At least one template must be selected. Selecting both runs the full pipeline for each template sequentially. HSBC is listed but not yet implemented.

7.2   Steps section (bottom)

Five checkboxes control which pipeline steps execute. All checkboxes start unchecked — you select only the steps appropriate for this run.

Checkbox Step Runs once or per template? When to tick
Extract Copy raw wire data to the reviewer tab Per template Every time a new template file has been imported. Skip only if re-running later steps against data that is already on the extract tab.
Rebuild Registry Read Oracle bank account file and build Account_List_Unique Once (shared) Only when the Oracle bank account file has been updated, or on the first run of the quarter. Leave unticked for all daily runs once the registry is built.
Fuzzy Match Match vendor names to Oracle supplier numbers Per template Every time the Extract step has been run, or whenever you want updated match results (e.g. after rebuilding the registry).
Account Review Compare bank account numbers against Oracle registry Per template After Fuzzy Match. Requires Supplier Num column to be populated on the extract tab. Can be re-run independently if corrections are needed.
Inactive Check Flag vendors that appear on the inactive vendor list Once (runs across all selected templates) When an inactive vendor list has been imported and you want to flag deactivated payees. Only runs if at least one template pipeline produced extract data.
Running a single step in isolation. All checkboxes are independent. If you only need to re-run Account Review (for example, after correcting a Supplier Num value manually), untick all steps except Account Review, then click Run. The macro will run only that step against the existing extract data.
Running Fuzzy Match without a registry. If Account_List_Unique is empty and Rebuild Registry is not ticked, Fuzzy Match will display an error and skip. Always ensure a valid registry exists before running Fuzzy Match. If this is the first run of the quarter, tick both Rebuild Registry and Fuzzy Match.

8   Step 1: Extract — How It Works

The Extract step reads raw data from the bank template tabs, applies format-specific parsing and cleaning rules, and writes a standardised output to the reviewer extract tab. Each bank template type has a distinct layout, and the Extract step handles both.

8.1   RBC extraction

The RBC template uses a row-per-payment layout where each payment occupies one row. Column headers are located by name (case-insensitive), and the search scans rows 1 through 3 to accommodate different RBC export versions where the header row position varies.

The following cleaning operations are applied during extraction:

Output columns on RBC_Extract

Column Header Source
AVENDORVENDOR header on RBC_Wire_Temp
BDESCRIPTIONDESCRIPTION header
CBANKFirst digit token from BANK field
DTRANSITSecond digit token from BANK/TRANSIT field
EBank AccountAccount number from BANK/TRANSIT combined field
FCREDIT BANKLast meaningful token from CREDIT BANK field
GCREDIT VENDOR NAMELast meaningful token from CREDIT VENDOR NAME field
HSWIFTFirst meaningful token from SWIFT field
ITEMPLATE NAMEFirst meaningful token from TEMPLATE NAME field
JOUThree-digit OU code from DEBIT ACCOUNT field

8.2   US extraction

The US Bank template uses a vertical label-value format. Each payment is represented as a block of rows in columns A (label) and B (value). A new payment block starts whenever the label Template ID is encountered. The extraction step scans the template top to bottom, grouping rows into payment records.

Label matching is case-insensitive. Labels with trailing colons (e.g. Creditor Name:) or extra spaces are normalised before comparison, so minor formatting variations in the source file are handled automatically.

Output columns on US_Extract

Column Header Source label
ATemplate IDTemplate ID
BCreditor Agent SWIFT/BIC IDCreditor Agent SWIFT/BIC ID
CCreditor Agent NameCreditor Agent Name
DCreditor NameCreditor Name
ECreditor Agent Account NumberCreditor Agent Account Number
FCreditor Account NumberCreditor Account Number
GOUFilled from Run!K6 (operating unit code)
OU column on US_Extract. The US template does not contain an OU field. The tool fills column G with the value from Run!K6 for every row. Ensure K6 is set to the correct operating unit code before running the US extraction, as this value is used by the Fuzzy Match step to prioritise OU-filtered candidates.

9   Step 2: Rebuild Registry — How It Works

The Rebuild Registry step reads the external Oracle bank account file, filters it to the configured operating units, deduplicates the records, and writes two output tabs.

9.1   What it reads

The source file is identified by K2 (folder path) and K3 (filename) on the Run sheet. The OU filter in K4 is applied during load — only records whose operating unit code matches one of the comma-separated entries in K4 are retained. If K4 is blank, all records are imported without filtering.

9.2   What it produces

Tab Contents Used by
Accounts_Numbers_Data Full deduplicated registry of all bank accounts for the filtered OUs. Includes vendor number, vendor name, bank account number, BIC/SWIFT, and operating unit. Retains multiple accounts per vendor. Account Review step (to list all Oracle accounts per supplier) and WriteBICs (to populate the Matched BIC column).
Account_List_Unique Compressed reference list: one row per unique vendor-number + operating-unit combination, containing the vendor name and vendor number. Inactive accounts are excluded. Fuzzy Match step (to resolve vendor names to supplier numbers).
Checking that the registry is fresh. Navigate to Account_List_Unique and confirm the row count looks reasonable for your OU filter. If the tab is empty or has far fewer rows than expected, verify that K2/K3 point to the correct file and that the OU codes in K4 exactly match those in the Oracle file (e.g. 115 not OU_115).

10   Step 3: Fuzzy Match — How It Works

The Fuzzy Match step resolves each vendor name on the extract tab to an Oracle supplier number by comparing it against the Account_List_Unique reference. It uses a Levenshtein-distance similarity algorithm with OU-bucket prioritisation to produce accurate results even when vendor names contain spelling variations, abbreviations, or punctuation differences.

10.1   Processing phases

Phase What happens
Phase 1 — Pre-clean All vendor names in Account_List_Unique are normalised: converted to uppercase, punctuation stripped, common suffixes removed (Ltd, Inc, Corp, etc.), and tokens sorted alphabetically. This ensures that CAPITA LTD and Ltd, Capita are treated as identical before comparison.
Phase 2 — Build index Two lookup structures are built in memory: an exact-name hash table (for O(1) lookups when a name is an exact match after normalisation) and an OU-bucket index that groups records by their three-digit OU code.
Phase 3 — Match per row For each row on the extract tab, the vendor name is normalised and then passed through three matching attempts in order:
  1. Exact hash lookup: if the normalised name appears verbatim in the exact-name index, the supplier number is assigned immediately with a score of 1.0. No fuzzy scanning occurs.
  2. OU-filtered scan: all candidates in the same OU bucket are scanned using the Levenshtein algorithm. The highest-scoring candidate above the display threshold (0.60) is retained. A progress update is emitted for each candidate scanned, keeping the progress bar responsive.
  3. Global fallback: if the OU-filtered scan found no candidates (i.e. the extract row's OU does not appear in the registry), the global candidate list is scanned. A DoEvents yield occurs every 200 candidates to prevent the workbook from appearing unresponsive during large scans.
Phase 4 — Write back Results are collected in a memory array and written to the extract sheet in a single batch operation for performance. Four columns are appended (or updated if already present).

10.2   Output columns

Column header Contents
Supplier Num The Oracle supplier number for the best match, if the match score meets or exceeds the accept threshold (0.72). Blank if no match above threshold was found.
Matched Trading Partner The vendor name from Account_List_Unique that produced the best score, regardless of threshold. Useful for manually verifying near-misses.
Match Score The Levenshtein similarity score for the best candidate, ranging from 0.0000 (no similarity) to 1.0000 (identical after normalisation). Formatted to four decimal places.
Notes Free-text notes describing the match outcome. Example values:
  • Exact match — normalised strings were identical
  • Best candidate: CAPITA PLC (0.8745) — highest fuzzy score above display threshold
  • No match found above threshold — all candidates scored below 0.60
  • Multiple candidates shown if the best score was below the accept threshold (0.72) but above the display threshold (0.60)

10.3   Thresholds explained

Threshold Value Effect
Accept threshold 0.72 Minimum score to write a Supplier Num. Below this, the Supplier Num column is blank even if a candidate was found. The Matched Trading Partner column still shows the best candidate for manual review.
Display threshold 0.60 Minimum score to include a candidate in the Notes column. Candidates below 0.60 are not mentioned, as they are too dissimilar to be useful to a reviewer.
Why the score may be lower than expected. The match compares normalised names, not the raw names from the template. If the normalised form of your vendor name differs significantly from the normalised Oracle name (e.g. one uses a short form and the other uses a full legal name), the score will be lower than a visual comparison would suggest. In such cases, check the Matched Trading Partner column — even a score below 0.72 may represent the correct supplier, which can then be confirmed and entered manually.

11   Step 4: Account Review — How It Works

The Account Review step compares the bank account number on each payment instruction against the Oracle bank accounts registered for that supplier and operating unit. The goal is to confirm that the account being paid is a known, authorised account in the Oracle system.

11.1   What is compared

Template Primary account field Secondary account field
RBC Bank Account (column E of RBC_Extract) TRANSIT (column D) — used as fallback if the primary does not match
US Creditor Account Number (column F of US_Extract) Creditor Agent Account Number (column E) — used as fallback

11.2   Matching logic

For each row, the engine retrieves all bank accounts from Accounts_Numbers_Data where the Supplier Number and operating unit match the values on the extract row. The primary account field is then compared against each Oracle account using three methods in descending priority:

  1. Exact string match: the full account string (including any leading zeros or formatting characters) matches exactly.
  2. Exact digits match: all non-numeric characters are stripped from both the payment account and the Oracle account; the resulting digit strings are compared.
  3. Approximate suffix match: the trailing digits of both strings are compared against a baseline length (16 digits preferred; 12 digits as fallback; configurable minimum). A match is declared if the suffix similarity meets the configured threshold (default 0.70).

If the primary field does not match any Oracle account via any of the three methods, the secondary field is tried using the same three methods in the same order.

11.3   Output columns

Column header Contents
Oracle Bank Accounts A comma-separated list of all bank account numbers found in Accounts_Numbers_Data for the matched Supplier Number + OU combination. Blank if Supplier Num is empty (i.e. Fuzzy Match found no supplier).
Match The match verdict:
  • MATCH — the payment account number matches an Oracle account (exact string, exact digits, or suffix)
  • NO MATCH — none of the Oracle accounts match by any method
  • NO ORACLE ACCOUNTS — the supplier exists in the registry but has no bank accounts recorded for this OU
  • NO SUPPLIER — Supplier Num column is blank (Fuzzy Match did not assign a supplier number)
Comments Details of how the match was determined — which field matched (primary or secondary), which matching method was used (exact, digits, suffix), and the Oracle account that was matched. For NO MATCH verdicts, lists the Oracle accounts that were checked. This column provides the evidence needed for sign-off review.
NO MATCH does not always mean an error. Some legitimate payments use account formats that differ from Oracle's stored format (e.g. IBAN vs. BBAN, or with vs. without spaces). If the Comments column shows that Oracle accounts exist but none matched, compare the digit strings manually. A reviewer should confirm whether the account is genuinely unknown or simply stored in a different format.

12   Step 5: Inactive Check — How It Works

The Inactive Check step identifies payments addressed to vendors that have been deactivated in Oracle. It runs after all template pipelines have completed, processing all selected templates in a single pass.

12.1   Three sub-steps

Sub-step What happens
1. Build Inactive_List_Unique The Inactive_Oracle_Account tab (if it exists from a previous raw import) is read and deduplicated by Vendor Number — if a vendor appears multiple times with different deactivation dates, only the most recent date is retained. The result is written to Inactive_List_Unique.

If Inactive_Oracle_Account does not exist (e.g. you imported the list directly to Inactive_List_Unique via the Import Wizard), this sub-step is silently skipped and the existing Inactive_List_Unique is used as-is.
2. Fuzzy Match against inactive list Each vendor name on the extract tab is compared against the names in Inactive_List_Unique using the same Levenshtein algorithm as the main Fuzzy Match step, but with a higher similarity threshold (0.86 vs. 0.72). The higher threshold reduces false positives — an inactive vendor match is a serious finding and should only be flagged when there is high confidence in the match.
3. Stamp inactive dates For each row where an inactive match was found above the threshold, the matched supplier's deactivation date from Inactive_List_Unique is written to a date column on the extract tab.

12.2   Output columns

Three columns are appended to the extract tab for each template processed:

Column header Contents
Inactive Supplier Num The Oracle supplier number of the matched inactive vendor, if the similarity score meets the inactive threshold (0.86). Blank otherwise.
Inactive Name The name of the matched inactive vendor from Inactive_List_Unique.
Vendor Inactive Date The deactivation date from Inactive_List_Unique for the matched supplier. Populated by sub-step 3 using the Inactive Supplier Num to look up the date.

12.3   Inactive threshold (0.86)

The inactive match threshold is deliberately set higher than the main fuzzy match threshold (0.86 vs. 0.72) because a false inactive-vendor flag on a payment is a significant finding that will trigger a manual hold or investigation. A lower threshold would produce more flags but also more false positives — vendor names that superficially resemble an inactive vendor's name without being the same entity. The 0.86 threshold is calibrated to flag only high-confidence matches. Reviewers should still verify flagged rows before acting.

Inactive Check runs for all selected templates. If both RBC and US are selected in the Wire Review Wizard and both pipelines produced extract data, the Inactive Check runs against both RBC_Extract and US_Extract in a single pass. A new template can be added to the Inactive Check without code changes — it requires only a one-line addition to the template mapping block in the WPR7_InactiveCheck module.

13   Understanding the Output Sheets

13.1   RBC_Extract — column reference

After a full pipeline run (Extract + Fuzzy Match + Account Review + Inactive Check), the RBC_Extract tab contains the following columns:

ColHeaderSource
AVENDORExtract step — raw vendor field from RBC template
BDESCRIPTIONExtract step — payment description
CBANKExtract step — bank routing number
DTRANSITExtract step — transit number
EBank AccountExtract step — payee bank account number
FCREDIT BANKExtract step — receiving bank name
GCREDIT VENDOR NAMEExtract step — payee name (used for fuzzy matching)
HSWIFTExtract step — BIC/SWIFT code
ITEMPLATE NAMEExtract step — wire template identifier
JOUExtract step — operating unit code
KSupplier NumFuzzy Match step — Oracle supplier number
LMatched Trading PartnerFuzzy Match step — best-matching Oracle vendor name
MMatch ScoreFuzzy Match step — Levenshtein similarity score
NNotesFuzzy Match step — match narrative
OMatched BICFuzzy Match step — BIC from Accounts_Numbers_Data for matched supplier
POracle Bank AccountsAccount Review step — all Oracle accounts for supplier + OU
QMatchAccount Review step — MATCH / NO MATCH / NO ORACLE ACCOUNTS / NO SUPPLIER
RCommentsAccount Review step — match detail narrative
SInactive Supplier NumInactive Check step — inactive vendor supplier number (if flagged)
TInactive NameInactive Check step — inactive vendor name
UVendor Inactive DateInactive Check step — deactivation date
Column letters shift if a step was not run. If Account Review was not run, the Oracle Bank Accounts / Match / Comments columns will not exist, so Inactive Check columns would shift to P, Q, R. The column positions shown above assume a full pipeline run. The tool always writes to columns identified by header name, not by position, so re-running a subset of steps appends to existing columns rather than creating duplicates.

13.2   US_Extract — column reference

ColHeaderSource
ATemplate IDExtract step
BCreditor Agent SWIFT/BIC IDExtract step
CCreditor Agent NameExtract step
DCreditor NameExtract step (used for fuzzy matching)
ECreditor Agent Account NumberExtract step (secondary account field)
FCreditor Account NumberExtract step (primary account field)
GOUExtract step — populated from Run!K6
HSupplier NumFuzzy Match step
IMatched Trading PartnerFuzzy Match step
JMatch ScoreFuzzy Match step
KNotesFuzzy Match step
LOracle Bank AccountsAccount Review step
MMatchAccount Review step
NCommentsAccount Review step
OInactive Supplier NumInactive Check step
PInactive NameInactive Check step
QVendor Inactive DateInactive Check step

13.3   Account_List_Unique — reference sheet

This tab contains the deduplicated, active Oracle vendor list used as the lookup source for Fuzzy Match. It is not intended for direct review, but it can be opened to verify that the registry loaded correctly. Expected columns: VENDOR_NAME, VENDOR_NUMBER, OPERATING_UNIT_NAME. Row count should reflect the number of unique vendor + OU combinations in the filtered registry.

13.4   Inactive_List_Unique — reference sheet

This tab contains the deduplicated inactive vendor list used by the Inactive Check step. Expected columns: Supplier Name, Supplier Number, Vendor Inactive Date, Operating Unit Name. One row per unique supplier number; the most recent deactivation date is retained when a supplier appears multiple times in the source.


14   Archiving Results

Clicking Archive Results saves a clean, macro-free copy of all output and reference sheets to the configured archive folder.

14.1   What is included

Every sheet in the workbook except the Run sheet is copied to the archive file. This includes all extract tabs, registry tabs, and the Log tab. The Run sheet is excluded because it contains macros and configuration cells that are not relevant to the reviewer. The archive file opens with the first extract tab in focus.

14.2   Filename construction

The filename is built from the K column configuration cells in the following pattern:

[K6]_[K7]_WIRE_TEMPLATES_REVIEW[_K8]_DDMMMYYYY.xlsx

K6 (OU code) K7 (Bank) K8 (Type) Date Resulting filename
US_115RBC(blank)25 Mar 2026 US_115_RBC_WIRE_TEMPLATES_REVIEW_25MAR2026.xlsx
CA_213RBCINTL_USD25 Mar 2026 CA_213_RBC_WIRE_TEMPLATES_REVIEW_INTL_USD_25MAR2026.xlsx

14.3   Handling existing files

If a file with the same name already exists in the archive folder, the tool prompts you with three options:

Archive folder is created automatically. If the folder specified in K5 does not exist, the tool creates it before saving. The intermediate folder path must be reachable (e.g. the network drive must be connected), but the final subfolder does not need to exist in advance.

15   Resetting the Workbook

Clicking Reset Workbook returns the workbook to a blank state by deleting all working sheets and clearing all input tabs. This is equivalent to starting a brand-new review cycle.

15.1   What is deleted

15.2   What is preserved

Reset is permanent. There is no undo. Ensure you have archived the current run's output (or no longer need it) before clicking Reset Workbook. The K column settings on the Run sheet are not affected by Reset — your registry path, archive path, and OU filter remain in place.

16   Step Independence — What to Re-Run and When

Event Steps to run Steps to skip
New daily / weekly wire batch (registry unchanged) Import template → Extract → Fuzzy Match → Account Review Rebuild Registry (existing Account_List_Unique is still valid)
New quarterly Oracle bank account file Update K3, then: Rebuild Registry → Fuzzy Match → Account Review (re-import template + Extract first if the batch also changed) Inactive Check (unless a new inactive file also arrived)
New quarterly inactive vendor file Import button 5 (Inactive Vendor List) → Inactive Check Rebuild Registry, Extract, Fuzzy Match, Account Review — if the wire batch has not changed
Supplier Num corrected manually on extract tab Account Review only (re-reads the Supplier Num column) All other steps
OU filter changed (K4 updated) Rebuild Registry → Fuzzy Match → Account Review Extract (unless the template also changed), Inactive Check (unless inactive file also changed)
Full reset — all files updated Reset Workbook → Import all sources → Extract → Rebuild Registry → Fuzzy Match → Account Review → Inactive Check Nothing

17   Common Scenarios

Scenario A — First run of the quarter with a new Oracle bank account file

The quarterly Oracle bank account export has arrived. This is the first wire batch of the new quarter.

  1. Save the new Oracle file to the configured registry folder (K2 path).
  2. Update K3 on the Run sheet to the new file name.
  3. Click Import Data → button 1 (US) or 2 (RBC) → select the wire template file → confirm.
  4. Click Wire Review. Select the relevant template(s). Tick all five steps: Extract, Rebuild Registry, Fuzzy Match, Account Review, Inactive Check (if an inactive file is available). Click Run.
  5. Review output. Archive. Distribute.

Scenario B — Daily run, same registry as yesterday

A new wire batch has arrived but the Oracle registry has not changed since yesterday's run.

  1. Click Import Data → import the new template file(s).
  2. Click Wire Review. Select the relevant template(s). Tick: Extract, Fuzzy Match, Account Review. Leave Rebuild Registry and Inactive Check unticked.
  3. Review output. Archive.

Scenario C — Account Review shows NO MATCH for a payment that looks correct

The extract shows NO MATCH for a payment where the reviewer is confident the account is legitimate. Common causes:


Scenario D — Inactive Check flags a vendor that is still active

A vendor row on the extract shows an Inactive Supplier Num and Vendor Inactive Date, but the vendor is believed to be active.


Scenario E — Running RBC and US in the same session

A batch includes both an RBC template and a US Bank template, both to be reviewed in the same run.

  1. Click Import Data. Import the US template (button 1), then click "Import Another" and import the RBC template (button 2).
  2. Click Wire Review. Tick both RBC and US in the template section. Tick all required steps. Click Run.
  3. The macro processes the RBC pipeline first, then the US pipeline. Rebuild Registry (if ticked) runs once before both pipelines — the same Account_List_Unique is shared.
  4. Inactive Check (if ticked) runs once after both pipelines and processes both RBC_Extract and US_Extract.
  5. Archive saves both extract tabs in a single file.

Scenario F — Re-running only Account Review after a manual supplier number correction

A reviewer has manually corrected a Supplier Num value on the extract tab and now wants Account Review to re-check that row against the corrected supplier.

  1. Click Wire Review. Select the relevant template(s).
  2. In the steps section, tick Account Review only. Leave all other checkboxes unticked.
  3. Click Run. Account Review reads the Supplier Num column as it now stands, including any manual corrections.
Account Review does not validate the format of Supplier Num entries. Any value in that column is used as-is for the Oracle lookup. Ensure that manually entered supplier numbers match the Oracle format exactly (e.g. leading zeros, no extra spaces).

18   Troubleshooting

"Form Not Found" when clicking Wire Review or Import Data

Cause: frmRunWizard or frmImportWizard has not been imported into the workbook.
Fix: Open the VBE (Alt + F11). Check under Forms in the project tree. If the form is missing, follow the import steps in Section 4. Alternatively, run WPRWizardSetup.SetupAllWizardForms via Alt + F8.


"Registry path / filename is blank" error when clicking button 4

Cause: K2 or K3 on the Run sheet is empty.
Fix: Enter the folder path in K2 and the filename in K3. Verify the path by opening Windows Explorer and navigating to it directly. If on a network share, ensure you are connected to the network before running.


"Source file not found" when clicking button 4

Cause: The path + filename combination in K2 + K3 does not resolve to an existing file.
Fix: Check for typos in K3 (filename is case-sensitive on some network shares). Verify that the file has not been renamed or moved. Use Windows Explorer to confirm the exact filename including its extension.


Account_List_Unique is empty after Rebuild Registry

Cause: The OU codes in K4 do not match any OU in the Oracle registry file, or K4 contains entries in the wrong format.
Fix: Open the Oracle registry file directly and find the column that contains the operating unit identifier. Note the exact value (e.g. 115 not 115_US). Update K4 to match. Re-run Rebuild Registry.


Fuzzy Match produces no Supplier Num values (all blank)

Cause: Account_List_Unique is empty (registry not built), or the OU value on the extract rows does not match any OU in the registry and the global fallback scan also found no matches above 0.72.
Fix:

  1. Verify Account_List_Unique has data. If empty, run Rebuild Registry first.
  2. Check the OU column on the extract tab. RBC_Extract column J and US_Extract column G should contain three-digit OU codes (e.g. 115). If these are blank or contain unexpected values, re-check the Extract step's OU source (DEBIT ACCOUNT field for RBC, Run!K6 for US).
  3. Review the Notes column — if it reads "No match found above threshold", the names may be too different from Oracle's stored names. Consider whether the correct vendor names are present in the registry, or if the registry needs to be refreshed.

Excel appears to freeze or shows "(Not Responding)" during Fuzzy Match

This is normal for large registry scans and is not an error. During the global fallback scan, the engine iterates over thousands of candidate names. A progress bar is displayed during this phase. Excel may briefly show "(Not Responding)" in the title bar during intensive inner loops — this is Windows' standard behaviour when an application is busy and occurs even though the macro is running correctly. The workbook will become responsive again once the scan for that row completes (typically within a few seconds). Do not close or force-quit the workbook during this time. The Inactive Check step shows similar behaviour for the same reason.


Archive file has incorrect column headers (older column layout)

Cause: The extract tab still contains output from an older run, and the current run only executed a subset of steps (e.g. Account Review only). The columns written by the skipped steps (e.g. Extract) reflect the previous run's layout.
Fix: If a clean, consistent output is needed, tick the Extract step (and all subsequent steps) to regenerate the extract tab from scratch before archiving.


Progress bar does not appear during Fuzzy Match

Cause: frmProgress (the progress bar UserForm) has not been imported into the workbook.
Fix: Open the VBE (Alt + F11). Check under Forms for frmProgress. If missing, import frmProgress.frm from the WireProjectRework folder. See SETUP_INSTRUCTIONS.md for the full import procedure. The Fuzzy Match step runs correctly without the progress form — the absence of the bar is a display issue only and does not affect results.


19   Glossary

Term Definition
Account_List_Unique The deduplicated, active Oracle vendor list built by the Rebuild Registry step. Contains one row per unique vendor number + operating unit combination. Used as the lookup source for Fuzzy Match.
Accounts_Numbers_Data The full Oracle bank account registry after filtering by OU. Contains multiple rows per vendor (one per bank account). Used by Account Review to list all Oracle accounts for a supplier.
Archive A macro-free .xlsx copy of the workbook's output tabs, saved to the configured archive folder. Intended for distribution to reviewers who do not need the underlying macro workbook.
BIC / SWIFT Bank Identifier Code — the international standard identifier for a bank branch, used to route international wire payments. Also referred to as a SWIFT code.
Extract tab A reviewer-facing output sheet (RBC_Extract or US_Extract) that contains the cleaned, structured payment data plus all automated review columns appended by the pipeline steps.
Fuzzy Match The process of comparing two text strings for similarity using the Levenshtein distance algorithm. A score of 1.0 means the strings are identical after normalisation; 0.0 means completely dissimilar.
Inactive vendor A supplier that has been deactivated in Oracle. Payments to inactive vendors require special approval or investigation. The Inactive Check step flags rows where the payee name matches an entry in the inactive vendor list above the 0.86 similarity threshold.
Inactive_List_Unique The deduplicated inactive vendor list. One row per unique supplier number, retaining the most recent deactivation date. Used by the Inactive Check step.
Levenshtein distance A measure of the minimum number of single-character edits (insertions, deletions, substitutions) required to transform one string into another. Converted to a 0.0–1.0 similarity score by the tool.
Match Score A number between 0.0000 and 1.0000 representing how closely a vendor name on the extract matches the best candidate in the Oracle registry. Scores at or above 0.72 result in a Supplier Num being assigned; scores at or above 0.60 are shown in the Notes column as candidates.
OU / Operating Unit A three-digit organisational identifier used in Oracle to segment accounts by business unit or legal entity. Used as a filter when building the registry (K4) and as a key for OU-prioritised fuzzy matching.
Registry Shorthand for the Oracle bank account registry — the external file identified by K2 and K3 that contains all bank accounts for Oracle vendors. Processed into Account_List_Unique and Accounts_Numbers_Data by the Rebuild Registry step.
Run sheet The primary control sheet of the WPR workbook. Contains the operational buttons (Import Data, Wire Review, Archive Results, Reset Workbook) and the K column configuration cells.
Supplier Num The Oracle supplier number assigned to a payee by the Fuzzy Match step. Used by Account Review to look up the corresponding bank accounts in Accounts_Numbers_Data.
Wire template file The batch payment instruction file produced by the bank or payments system for a given processing run. The WPR tool currently supports RBC and US Bank template formats.

Wire Payment Review User Manual  |  Version 1.0  |  March 2026 ytcodes.dev