User Manual & Job Aid | Version 1.0 | March 2026
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:
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.
| 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 |
.xlsx
file, opens the extract tabs, and performs the sign-off review against the automated
flags and notes.
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.
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.
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.
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.
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). |
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 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.
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:
The registry file is not imported via a file dialog. Its location is configured directly on the Run sheet:
| Cell | What to enter | Example |
|---|---|---|
K2 | Folder path where the registry file is stored | \\server\shares\AP\OracleExports |
K3 | File name of the registry file (including extension) | Oracle_Bank_Accounts_Mar2026.xlsx |
K4 | Comma-separated list of operating unit (OU) codes to include | 115, 213, 310 |
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.
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.
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.
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.
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.
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.
| 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.
|
| 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. |
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.
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. |
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.
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.
| 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. |
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\OracleExportsThe 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.xlsxThe 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, 310Comma-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\ArchiveThe destination folder for archived output files. The folder is created automatically if it does not exist. |
K6 |
Operating unit code | Yes (for Archive) | US_115The 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 HSBCThe bank name segment used in the archive filename. Choose a short, consistent label. |
K8 |
Template type (optional) | No | INTL_USDAn optional suffix appended to the archive filename to distinguish between different template variants processed on the same day. Leave blank if not needed. |
[K6]_[K7]_WIRE_TEMPLATES_REVIEW[_K8]_DDMMMYYYY.xlsxUS_115_RBC_WIRE_TEMPLATES_REVIEW_25MAR2026.xlsxUS_115_RBC_WIRE_TEMPLATES_REVIEW_INTL_USD_25MAR2026.xlsx
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.
| 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. |
| 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. |
Clicking Wire Review opens the Wire Review Wizard
(frmRunWizard). This form controls which templates are processed and which
steps are executed in the pipeline.
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.
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. |
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.
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:
| Column | Header | Source |
|---|---|---|
| A | VENDOR | VENDOR header on RBC_Wire_Temp |
| B | DESCRIPTION | DESCRIPTION header |
| C | BANK | First digit token from BANK field |
| D | TRANSIT | Second digit token from BANK/TRANSIT field |
| E | Bank Account | Account number from BANK/TRANSIT combined field |
| F | CREDIT BANK | Last meaningful token from CREDIT BANK field |
| G | CREDIT VENDOR NAME | Last meaningful token from CREDIT VENDOR NAME field |
| H | SWIFT | First meaningful token from SWIFT field |
| I | TEMPLATE NAME | First meaningful token from TEMPLATE NAME field |
| J | OU | Three-digit OU code from DEBIT ACCOUNT field |
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.
| Column | Header | Source label |
|---|---|---|
| A | Template ID | Template ID |
| B | Creditor Agent SWIFT/BIC ID | Creditor Agent SWIFT/BIC ID |
| C | Creditor Agent Name | Creditor Agent Name |
| D | Creditor Name | Creditor Name |
| E | Creditor Agent Account Number | Creditor Agent Account Number |
| F | Creditor Account Number | Creditor Account Number |
| G | OU | Filled from Run!K6 (operating unit code) |
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.
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.
| 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). |
115 not OU_115).
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.
| 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:
|
| 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). |
| 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:
|
| 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. |
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.
| 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 |
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:
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.
| 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:
|
| 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. |
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.
| 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. |
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. |
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.
After a full pipeline run (Extract + Fuzzy Match + Account Review + Inactive Check), the RBC_Extract tab contains the following columns:
| Col | Header | Source |
|---|---|---|
| A | VENDOR | Extract step — raw vendor field from RBC template |
| B | DESCRIPTION | Extract step — payment description |
| C | BANK | Extract step — bank routing number |
| D | TRANSIT | Extract step — transit number |
| E | Bank Account | Extract step — payee bank account number |
| F | CREDIT BANK | Extract step — receiving bank name |
| G | CREDIT VENDOR NAME | Extract step — payee name (used for fuzzy matching) |
| H | SWIFT | Extract step — BIC/SWIFT code |
| I | TEMPLATE NAME | Extract step — wire template identifier |
| J | OU | Extract step — operating unit code |
| K | Supplier Num | Fuzzy Match step — Oracle supplier number |
| L | Matched Trading Partner | Fuzzy Match step — best-matching Oracle vendor name |
| M | Match Score | Fuzzy Match step — Levenshtein similarity score |
| N | Notes | Fuzzy Match step — match narrative |
| O | Matched BIC | Fuzzy Match step — BIC from Accounts_Numbers_Data for matched supplier |
| P | Oracle Bank Accounts | Account Review step — all Oracle accounts for supplier + OU |
| Q | Match | Account Review step — MATCH / NO MATCH / NO ORACLE ACCOUNTS / NO SUPPLIER |
| R | Comments | Account Review step — match detail narrative |
| S | Inactive Supplier Num | Inactive Check step — inactive vendor supplier number (if flagged) |
| T | Inactive Name | Inactive Check step — inactive vendor name |
| U | Vendor Inactive Date | Inactive Check step — deactivation date |
| Col | Header | Source |
|---|---|---|
| A | Template ID | Extract step |
| B | Creditor Agent SWIFT/BIC ID | Extract step |
| C | Creditor Agent Name | Extract step |
| D | Creditor Name | Extract step (used for fuzzy matching) |
| E | Creditor Agent Account Number | Extract step (secondary account field) |
| F | Creditor Account Number | Extract step (primary account field) |
| G | OU | Extract step — populated from Run!K6 |
| H | Supplier Num | Fuzzy Match step |
| I | Matched Trading Partner | Fuzzy Match step |
| J | Match Score | Fuzzy Match step |
| K | Notes | Fuzzy Match step |
| L | Oracle Bank Accounts | Account Review step |
| M | Match | Account Review step |
| N | Comments | Account Review step |
| O | Inactive Supplier Num | Inactive Check step |
| P | Inactive Name | Inactive Check step |
| Q | Vendor Inactive Date | Inactive Check step |
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.
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.
Clicking Archive Results saves a clean, macro-free copy of all output and reference sheets to the configured archive folder.
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.
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_115 | RBC | (blank) | 25 Mar 2026 | US_115_RBC_WIRE_TEMPLATES_REVIEW_25MAR2026.xlsx |
| CA_213 | RBC | INTL_USD | 25 Mar 2026 | CA_213_RBC_WIRE_TEMPLATES_REVIEW_INTL_USD_25MAR2026.xlsx |
If a file with the same name already exists in the archive folder, the tool prompts you with three options:
.xlsx extension — the tool appends it.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.
| 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 |
The quarterly Oracle bank account export has arrived. This is the first wire batch of the new quarter.
K2 path).K3 on the Run sheet to the new file name.A new wire batch has arrived but the Oracle registry has not changed since yesterday's run.
The extract shows NO MATCH for a payment where the reviewer is confident the account is legitimate. Common causes:
0012-3456-789 but Oracle stores it as 0012345678 9. The
Comments column will show the Oracle accounts — manually compare the digit strings.A vendor row on the extract shows an Inactive Supplier Num and Vendor Inactive Date, but the vendor is believed to be active.
A batch includes both an RBC template and a US Bank template, both to be reviewed in the same run.
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.
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.
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.
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.
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.
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:
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).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.
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.
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.
| 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. |