An efficient way to do regulatory portfolio screenings

Worldwide chemical regulations require manufacturers and importers of chemical substances to maintain regulatory compliance of their portfolio. One technical solution to this is a simple screening with the Portfolio Screening Tool 3 that can find matches between a regulatory inventory list and the chemical portfolio given by the user. The idea behind this is that chemical portfolios can be broken down to their substance-based compositions, which can then be screened via their chemical identifier, such as the CAS number, against a chemical inventory list on said chemical identifier. The resulting list shows matches between the portfolio and the regulatory list and can be used as a basis for further regulatory evaluation by the user. After a screening with the Portfolio Screening Tool 3, no CBI information remains in the tool, making it safe and readily available for further portfolio screenings.

We all are using chemical products worldwide in our daily life: For example, the detergents we use for cleaning, dishwashing and laundry, but also the articles made out of chemicals, such as laptops, smartphones, clothing, furniture, bicycles etc. would not exist without chemicals.
However, all these chemical substances are subject to chemical regulations worldwide with the aim to safeguard safe use of each product by industry and the public. For example, the chemical substances in products manufactured and imported into the EU are regulated by the REACH Regulation and the European Chemicals Agency is the responsible authority in the EU for enacting and monitoring all regulatory programs related to REACH (ECHA website:

One of the regulatory programs critical for the chemical industry is, for example, the SVHC (Substances of Very High Concern) process: An updated SVHC inventory list is published by the ECHA twice a year and can be read and downloaded by any stakeholder free-of-charge (Link to the latest
SVHC candidate list: The SVHC candidate list implies 2 further regulatory actions by the manufacturer or importer of SVHC-containing products, such as updating the safety data sheet and considering replacing these SVHCs with less harmful substances in the long-term product development.

In case of a small chemical portfolio, e.g. with only up to hundred chemical products, the composition of these products could be evaluated manually for SVHC substances (e.g. searching and filtering the recently added SVHC substance in the portfolio in an Excel spreadsheet). But if portfolios are much larger and reach up to thousands or even several hundred thousand of products and respective compositions, manual evaluation of such portfolios becomes technically challenging, extremely time-consuming or even impossible.

At this stage, the Portfolio Screening Tool 3 comes in place (see Figure 1):

This image has an empty alt attribute; its file name is pst_v3.png
Figure 1: Starting GUI of the Portfolio Screening Tool 3

It is a regulatory portfolio screening tool I’ve written in Python (using pandas for data processing and Tkinter for the GUI) that enables a time- and resources-efficient technical check of chemical portfolios for regulatory listing of its components. The user does not have to be familiar with programming since the tool comes packed as exe-file easy to be run and executed. For using this tool, the user should have basic knowledge in Excel and data formatting of Excel and csv files.

So how does this tool work?

The idea is that the user has both the chemical portfolio list (list 1, see Figure 2) and the regulatory list (list 2, see Figure 3) as csv files available on the user’s computer or external hard drive.

This image has an empty alt attribute; its file name is pst_list_1.png
Figure 2: (Dummy) Portfolio list (list 1) as csv file opened in Excel
This image has an empty alt attribute; its file name is pst_list_2.png
Figure 3: Regulatory list (list 2) as csv file opened in Excel

With these two lists at hand, the tool will search and find matches between a given identifier (e.g. CAS) available both in list 1 and list 2. For enabling this, the user simply loads both lists into the tool by clicking the ‘Load Portfolio list’ button and the ‘Load Regulatory list’ button, respectively (see Figure 4).

Figure 4: Loading both regulatory and portfolio lists into the tool

Next, the user selects from the dropdown menu an appropriate identifier for the screening (see Figure 5). This is quite an important point since some regulatory inventories are CAS number-based, some EC number-based and some are only based on chemical or IUPAC names. In order to make the tool run smoothly, the chosen identifier must be written identical in both lists. In addition, the given identifier must be available in a column header of both list 1 and list 2 and is the key on which both lists are merged, otherwise the screening is not started when clicking the ‘Start Screening’ button but an error message is raised.

Furthermore, prior to starting the screening, the user should take care that both lists are loaded and that both are in csv format. A csv file can easily be generated based on an Excel list saved as csv file (which is handled by Excel). Another pre-condition for a screening without technical issues is that the delimiter in both csv files must be a | (pipe) instead of a , (comma) separator in both csv lists. This is a setting which the user should change in the Microsoft Windows settings in the Control Panel under Regional and Language settings/List separator setting to the pipe symbol by default. Thus, when saving Excel files as csv file, the pipe delimiter is automatically set by Excel.

Figure 5: Selection of an appropriate identifier to be used for the screening

As soon as both lists are loaded and the identifier is selected, the user simply pushes the ‘Start Screening’-button and a notification message informs the user that the screening is running. Depending on the file size of both list 1 and 2, the screening can run in less than a second up to several minutes until it is completed.

The screening is completed when no error message occurs, and the newly generated Excel list is available in the ‘Screening result:’ entry box (see Figure 6).

Figure 6: Successful portfolio screening delivering the result as Excel list

The resulting Excel list can be opened then by clicking the ‘Open Result’-button and the form can then be reset by clicking the ‘Clear Fields’- button.

When performing the screening, both lists are merged to result in a new Excel list containing the chemical portfolio with its screened components and an additional column ‘Regulatory Listing’ (see Figure 7).

This new column indicates if each component in the portfolio’s materials is listed or not listed in the regulatory portfolio. This Excel list can then be filtered and processed by the user as needed. Regulatory interpretation of the screening results is recommended and remains in the responsibility of the user.

Since the result is an Excel list stored to the user’s hard drive and not saved in the Portfolio Screening Tool 3 itself (neither are list 1 nor list 2), no CBI information remains in the tool after the screening.

This image has an empty alt attribute; its file name is pst_result.png
Figure 7: Resulting Excel spreadsheet from the screening

If you’re interested in obtaining the tool (in .exe format) and/or the source code, feel free to leave a comment below.

In a similar fashion, but based on chemical structure similarity search, I am currently developing another portfolio screening tool. You will read about this in my next article, so stay tuned!


Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *