Skip to content

Consolidated Supplier Onboarding Report

Context
Corporate finance — supplier payments processed for multiple clients (client anonymised)
Status
Delivered
Tools
Power BI, SQL, Power Query

Executive summary

I built a consolidated supplier onboarding report for a corporate finance company that processes supplier payments for many clients across at least eight finance systems. It shows which suppliers were onboarded or rejected and why, checks that each supplier's required information is filled in correctly, confirms that banking details were verified by someone other than the person who completed the onboarding, and gives a separate view of B-BBEE classifications and registrations. Restructuring the underlying queries also reduced the measured server/query time from about 390 seconds to about 89 seconds.

  • 8+

    Finance systems consolidated

    Supplier onboarding checked per system and per client in one report

  • ~390 s → ~89 s

    Server/query aggregate

    Measured query-side time before and after restructuring

  • ~77%

    Query-side reduction

    Not an end-to-end dashboard refresh measurement

How to read this result. The timing is the measured server/query aggregate, not end-to-end dashboard refresh time.

Business context

The client is a corporate finance company that processes supplier payments on behalf of many clients, and each of those clients has a large supplier base. A supplier must be onboarded correctly before it can be paid. Missing, outdated or incorrect supplier information is a risk: it delays onboarding, leads to rejected applications and, where banking details are concerned, opens the door to payment fraud.

Challenge

Supplier records were held across at least eight finance systems. The finance team needed a fool-proof, automated way to see, for every client:

  • which suppliers had been onboarded, which had been rejected, and why;
  • whether each supplier’s required information had been filled in correctly, according to the finance team’s onboarding requirements;
  • whether the supplier’s banking details had been verified — and verified by a different person from the one who completed the onboarding, so that no single person could both capture and approve banking details;
  • each supplier’s B-BBEE classification and registration, in an easy view across all of the systems.

My contribution

  • Consolidated supplier onboarding data from 8+ finance systems into one report, broken down by system and by client.
  • Defined field-level checks for each required supplier field, based on the finance team’s onboarding requirements.
  • Built onboarding status tracking — onboarded, in progress or rejected — with the reason for each rejection.
  • Added a banking-verification control that shows whether banking details were verified, and flags any supplier where the verifier is the same person who completed the onboarding.
  • Built a separate B-BBEE view of classifications and registrations.
  • Restructured the underlying queries and measured server/query time before and after.

Investigation and methodology

The work started from the finance team’s own onboarding requirements: for each required field, what counts as filled in correctly. Each requirement became a check that runs for every supplier, in every system, for every client.

There is no matching between systems. Each supplier record is checked against the requirements where it lives, so a missing or incorrect value points straight to the system and client where it has to be fixed.

Solution design and implementation

The report serves two purposes.

  1. Onboarding control. Onboarding status and rejection reasons, missing or incorrect field values by system and client, and the banking-verification check with segregation of duties. The finance team can see exactly what to investigate and fix, then continue with their processes.
  2. B-BBEE overview. Supplier B-BBEE classifications and registration status across all of the systems in one place. This view is used by a separate team, which investigates it independently; it is not matched against anything.

Results and business value

  • One view instead of eight: onboarding status, rejection reasons and data issues for every client across 8+ finance systems in a single report.
  • Fixable data quality: missing field values are identified per system and client, so the team knows where to fix them.
  • Fraud control: banking details must be verified, and verified independently of the person who completed the onboarding; exceptions are flagged.
  • Query side: measured server/query aggregate reduced from approximately 390 seconds to approximately 89 seconds, about 77%.
Technical details
  • Required-field checks: each supplier field tested for presence and validity against the onboarding requirements, per system and per client.
  • Segregation of duties: the banking check compares the user who completed the onboarding with the user who verified the banking details and flags any record where they are the same.
  • Rejections: rejection reasons captured as categories, so recurring causes can be addressed at source.
  • Timing scope: aggregate of server/query execution for the reporting workload; visual rendering and refresh orchestration excluded. (390 − 89) ÷ 390 ≈ 0.772.

Lessons, constraints and improvement opportunities

  • A check is only useful when it says where the problem is: “missing in this system, for this client” is something a person can act on.
  • Controls such as segregation of duties are easiest to sustain when the report makes every exception visible.
  • Be precise about what a performance number measures; query time and refresh time are different claims.
  • Supplier data quality
  • Fraud controls
  • Segregation of duties
  • Query optimisation

Interactive demonstration

Explore a synthetic version

Built independently with generated data and illustrative business rules, to show the analytical approach without exposing any client system or record.

Illustrative demonstration using synthetic data. Not an original client system. Company, store and people names are fictional (Bluegum Financial Services).

Consolidated supplier onboarding report

320 fictional suppliers across eight finance systems and six clients. Switch between the onboarding control view and the separate B-BBEE overview.

Suppliers in view
320
Onboarded
57%
Missing or incorrect fields
95
Verified by the onboarder
10
Segregation-of-duties breaches
Records with missing or incorrect fields, by system
Where the data must be fixed before onboarding can proceed
0102030Ledger One5PayCore9Atlas ERP12FinTrack21Meridian AP4Corvus6Summit Books17Harbour Pay21
Show data table
Finance systemRecords with issues
Ledger One5
PayCore9
Atlas ERP12
FinTrack21
Meridian AP4
Corvus6
Summit Books17
Harbour Pay21
Why onboarding was rejected
Rejected suppliers by reason
0102030Bank letterdoes not mat…13Requireddocuments no…18Tax numberinvalid9Duplicatesupplier req…22Company notregistered12
Show data table
ReasonSuppliers
Bank letter does not match account13
Required documents not supplied18
Tax number invalid9
Duplicate supplier request22
Company not registered12
Banking-detail verification
The person who onboards a supplier must not verify its banking details
0100200300Verifiedindependently202Not yetverified108Verified byonboarder10
Show data table
VerificationSuppliers
Verified independently202
Not yet verified108
Verified by onboarder10
Query-side timing, seconds
Historical measured aggregate ≈390 s → ≈89 s (−77%). Step split is illustrative. Not end-to-end refresh time.
  • Before
  • After
0 s50 s100 s150 sSupplierextract (8 s…Required-fie-ld checksBankingverification…RejectionreasonsB-BBEEsummary
Show data table
Query stepBefore (s)After (s)
Supplier extract (8 systems)11826
Required-field checks9622
Banking verification checks7017
Rejection reasons429
B-BBEE summary6415
Total39089
Supplier records to action (first 15 in selection)
IDSupplier (fictional)SystemClientStatusIssues / rejection reasonBanking check
SUP-1024Clearwater LogisticsHarbour PaySable EnergyIn progressBank details missing, Contact email incorrectNot yet verified
SUP-1039Silverleaf CateringSummit BooksMarula FoodsRejectedTax number missing, Company registration missing — Tax number invalidNot yet verified
SUP-1055Ironwood ITSummit BooksSable EnergyRejectedBank details incorrect, Contact email missing — Bank letter does not match accountNot yet verified
SUP-1060Clearwater LogisticsFinTrackAcacia RetailRejectedTax number incorrect, Contact email missing — Tax number invalidNot yet verified
SUP-1064Clearwater HoldingsHarbour PayMarula FoodsRejectedContact email missing, Physical address missing — Duplicate supplier requestNot yet verified
SUP-1084Granite ServicesFinTrackAcacia RetailRejectedBank details missing, Physical address incorrect — Bank letter does not match accountNot yet verified
SUP-1095Redstone LogisticsSummit BooksMarula FoodsIn progressBank details incorrect, Physical address missingVerified independently
SUP-1118Ironwood HoldingsCorvusKestrel MiningIn progressBank details incorrect, Tax number missingVerified independently
SUP-1176Karoo ServicesHarbour PayProtea HealthRejectedTax number missing, Physical address incorrect — Tax number invalidNot yet verified
SUP-1180Karoo PrintFinTrackProtea HealthRejectedBank details missing, Contact email incorrect — Bank letter does not match accountNot yet verified
SUP-1228Redstone SuppliesFinTrackProtea HealthIn progressContact email incorrect, Physical address missingVerified independently
SUP-1246Fynbos FacilitiesCorvusSable EnergyRejectedContact email missing, Physical address incorrect — Required documents not suppliedNot yet verified
SUP-1251Redstone HoldingsAtlas ERPMarula FoodsRejectedCompany registration missing, Contact email missing — Company not registeredNot yet verified
SUP-1252Northwind SuppliesFinTrackSable EnergyIn progressCompany registration missing, Contact email missingNot yet verified
SUP-1262Silverleaf ServicesCorvusKestrel MiningRejectedBank details missing, Tax number missing — Bank letter does not match accountNot yet verified