Trade Adjustment Assistance for Workers

The U.S. Department of Labor web site gives the following description of the Trade Adjustment Assistance (TAA) Program:

The Trade Adjustment Assistance (TAA) Program is a federal program established under the Trade Adjustment Assistance Reauthorization Act of 2015 that provides aid to workers who lose their jobs or whose hours of work and wages are reduced as a result of increased imports.

You can search for TAA cases on this page. The resulting data can then be downloaded into an Excel file for later analysis. The following Python code shows several examples of how this can be done.

Group the TAA Petitions by Company and Sort by the Number of Certified Petitions since 2012

The file Location_by_Date_search_d2012.xls is created by going to the search page, entering "1/1/2012" (without the quotes) for the "With determination date from" field, select "All" from the States select list, and hit the "Generate report" button. The resulting page should display the first 20 of 8334 records found. Click the "Export All to Excel" button, rename the resulting file to Location_by_Date_search_d2012.xls, and place it in the directory of this Jupyter notebook (taa.ipynb). The following Python code will then group the TAA petitions by company and sort by the number of certified petitions since 2012:

In [5]:
import pandas as pd
xx = pd.read_html("Location_by_Date_search_d2012.xls", header=0)
tt = xx[0]
tt['Impact_Date'] = pd.to_datetime(tt['Impact date'])
#print(type(tt))
#print(tt.info())
print(tt.shape)
cc = tt.loc[tt['Decision'] == 'Certified']
cc = cc.loc[pd.to_datetime(cc['Impact date']) > pd.to_datetime('1/1/2012')]
#print(cc.shape)
#print(cc.head())
gg = cc.groupby(['Company']).agg({'Decision Date':"count", 'Impact_Date':"max"})
gg = gg.reset_index(level=['Company'])
gg.columns = ['Company','Count','Last Date']
gg = gg.sort_values(by=['Count','Last Date'], ascending=False)
print(gg.head(50))
(8334, 11)
                                                Company  Count  Last Date
2255                                  Quest Diagnostics     45 2014-01-01
1420  International Business Machines Corporation (IBM)     42 2016-05-11
2558                         Southern California Edison     30 2016-05-03
418                                 Boyd Coffee Company     29 2016-10-27
2778                              The McClatchy Company     29 2015-04-27
973                                            Experian     23 2016-09-13
470                                      CDM Smith Inc.     22 2016-09-13
1595                                    LSI Corporation     20 2015-03-14
2548                             Sony Electronics, Inc.     19 2014-06-21
1289                         Hewlett Packard Enterprise     17 2017-04-12
1351                                    IBM Corporation     17 2013-01-15
2903                    United States Steel Corporation     15 2017-03-13
1862                            Micron Technology, Inc.     14 2015-12-04
1227                                            HP Inc.     14 2015-10-04
901                                   Eaton Corporation     13 2018-04-25
1666                                         LexisNexis     13 2015-11-21
2254                              Quantum Spatial, Inc.     13 2015-09-15
2763                                 The Boeing Company     12 2017-08-07
3126                                        tronc, Inc.     12 2016-03-09
617                                   Citizens Bank, NA     12 2015-10-01
2700                                    TE Connectivity     11 2017-06-22
2800                                    Thomson Reuters     11 2017-04-18
499                       Cambia Health Solutions, Inc.     11 2015-11-03
1314                      Honeywell International, Inc.     10 2016-12-20
69                                      AVX Corporation      9 2018-04-27
40                                 AK Steel Corporation      9 2017-09-30
953                                      Ericsson, Inc.      9 2017-04-11
2133                        Parker Hannifin Corporation      9 2017-01-16
1266                    Health Care Service Corporation      9 2016-09-15
2237                                 QBE Americas, Inc.      9 2015-08-31
1288                            Hewlett Packard Company      9 2014-01-01
528                             Carl Zeiss Vision, Inc.      9 2013-08-08
59                                  AT&T Services, Inc.      8 2017-02-20
1311                                Honeywell Aerospace      8 2015-08-04
2916                                       VAM USA, LLC      8 2015-04-01
2945                                  Verso Corporation      8 2014-01-01
2047                          Ocwen Loan Servicing, LLC      7 2018-04-19
952                                       Ericsson Inc.      7 2017-05-24
342                                     Bank of America      7 2016-12-01
1418              International Business Machines (IBM)      7 2016-09-25
1297                                          Hibu Inc.      7 2016-08-09
1406                                  Intel Corporation      7 2016-03-13
1259            Hartford Financial Services Group, Inc.      7 2012-07-18
2230                                         Prudential      7 2012-04-04
1689                                 Lonza America Inc.      6 2017-04-11
2854                             Triumph Aerostructures      6 2017-03-13
978                                                 FCR      6 2015-12-07
3081                            Xerox Business Services      6 2015-09-27
1238                  Halliburton Energy Services, Inc.      6 2015-08-02
2786                    The Smead Manufacturing Company      6 2015-07-06

As can be seen, the top three companies by number of certified petitions since 2012 are Quest Diagnostics, International Business Machines Corporation (IBM), and Southern California Edison. The "Last Date" column lists the latest "Impact date" of all of the petitions. Note that there appears to be duplicate companies. For example, the above output lists the following three lines, all for IBM:

  1. 1420 International Business Machines Corporation (IBM) 42 2016-05-11
  2. 1351 IBM Corporation 17 2013-01-15
  3. 1418 International Business Machines (IBM) 7 2016-09-25

The problem is that these are three different spellings for the company.

Group the TAA Petitions by Company and Location and Sort by the Number of Certified Petitions since 2012

The following Python code will do the same thing as the prior code except that it will group by the Company-Location combination, not just by the Company.

In [6]:
import pandas as pd
xx = pd.read_html("Location_by_Date_search_d2012.xls", header=0)
tt = xx[0]
tt['Impact_Date'] = pd.to_datetime(tt['Impact date'])
print(tt.shape)
cc = tt.loc[tt['Decision'] == 'Certified']
cc = cc.loc[pd.to_datetime(cc['Impact date']) > pd.to_datetime('1/1/2012')]
gg = cc.groupby(['Company','Location']).agg({'Decision Date':"count", 'Impact_Date':"max"})
gg = gg.reset_index(level=['Company','Location'])
gg.columns = ['Company','Location','Count','Last Date']
gg = gg.sort_values(by=['Count','Last Date'], ascending=False)
print(gg.head(50).to_string(index=''))
(8334, 11)
Company              Location  Count  Last Date
                Halliburton Energy Services, Inc.            Duncan, OK      6 2015-08-02
                            Bush Industries, Inc.         Jamestown, NY      5 2017-11-14
International Business Machines Corporation (IBM)            Armonk, NY      5 2015-12-08
                                  AVX Corporation      Myrtle Beach, SC      4 2018-03-04
                            Lufkin Industries LLC            Lufkin, TX      4 2017-05-02
                                  Thomson Reuters          New York, NY      4 2017-04-18
International Business Machines Corporation (IBM)      Poughkeepsie, NY      4 2016-03-01
International Business Machines Corporation (IBM)           Boulder, CO      4 2015-08-23
                          Maersk Agency USA, Inc.         Charlotte, NC      4 2015-03-25
                         Remy USA Industries, LLC         Bay Shore, NY      4 2013-08-15
                                  IBM Corporation    Essex Junction, VT      4 2012-12-24
                          Hewlett Packard Company             Omaha, NE      4 2012-08-28
                      Kincaid Furniture Co., Inc.            Hudson, NC      4 2012-07-22
                                    Ericsson Inc.     Overland Park, KS      4 2012-03-12
                      Catholic Health Initiatives           Lincoln, NE      4 2012-01-28
                             Zurn Industries, LLC              Erie, PA      3 2018-04-20
               Hutchinson Technology Incorporated        Hutchinson, MN      3 2018-04-19
                        Ocwen Loan Servicing, LLC          Waterloo, IA      3 2018-04-19
            Bush Industries of Pennsylvania, Inc.              Erie, PA      3 2017-11-14
                              Finisar Corporation           Horsham, PA      3 2017-04-25
                           Triumph Aerostructures     Grand Prairie, TX      3 2017-02-02
                                    Staples, Inc.        Framingham, MA      3 2017-01-25
                         Madison Paper Industries           Madison, ME      3 2016-12-10
                         Alexander & Baldwin, LLC           Puunene, HI      3 2016-11-17
                             TAB Products Co. LLC          Mayville, WI      3 2016-02-17
                              Faurecia Automotive  Sterling Heights, MI      3 2016-01-27
                                  AVX Corporation            Conway, SC      3 2015-12-13
                          Micron Technology, Inc.             Boise, ID      3 2015-12-04
                                       LexisNexis  Colorado Springs, CO      3 2015-11-21
                         Spirit Aerosystems, Inc.           Wichita, KS      3 2015-10-19
American Express Travel Related Services Compa...    Salt Lake City, UT      3 2015-10-04
                                 Pall Corporation   Port Washington, NY      3 2015-09-13
International Business Machines Corporation (IBM)            Austin, TX      3 2015-08-31
                                Intel Corporation        Rio Rancho, NM      3 2015-08-01
                   Novartis Consumer Health, Inc.           Lincoln, NE      3 2015-07-30
                       Hewlett Packard Enterprise             Plano, TX      3 2015-07-08
                                  EMC Corporation         Hopkinton, MA      3 2015-07-05
                         Motorola Solutions, Inc.        Schaumburg, IL      3 2015-06-29
                                         Experian             Allen, TX      3 2015-06-14
                                Atmel Corporation  Colorado Springs, CO      3 2015-06-05
          Verizon Business Network Services, Inc.              Cary, NC      3 2015-05-17
                                     VAM USA, LLC           Houston, TX      3 2015-04-01
                                   Ericsson, Inc.     Overland Park, KS      3 2014-01-01
                              Imation Corporation           Oakdale, MN      3 2013-02-05
                                  IBM Corporation           Boulder, CO      3 2012-12-02
                                  IBM Corporation         Rochester, MN      3 2012-11-25
                                Quest Diagnostics             Tampa, FL      3 2012-08-20
                                         Experian          New York, NY      3 2012-02-26
                                  CTS Corporation           Elkhart, IN      2 2018-09-01
                        Transitions Optical, Inc.     Pinellas Park, FL      2 2018-07-13

As can be seen, a number of companies have multiple certified petitions from multiple locations. For example, IBM has multiple petitions for Armonk NY, Poughkeepsie NY, Boulder CO, Essex Junction VT, Austin TX, and Rochester MN in the list above.

Group the TAA Petitions by Location for a Specific Company

The following Python code will do the same thing as the prior code except that it will list entries for a single specified company. The first listing (by Company) above shows 30 petitions for Southern California Edison but the next listing (by Company and Location) lists no petitions for that company. The output from the following code reveals that this is because all of the locations are unique except for 2 petitions for Rosemead, CA. For that reason, they didn't show up in the second listing which lists all of the companies/locations with 3 or more petitions.

In [7]:
import pandas as pd
xx = pd.read_html("Location_by_Date_search_d2012.xls", header=0)
tt = xx[0]
tt['Impact_Date'] = pd.to_datetime(tt['Impact date'])
print(tt.shape)
cc = tt.loc[tt['Decision'] == 'Certified']
cc = cc.loc[pd.to_datetime(cc['Impact date']) > pd.to_datetime('1/1/2012')]
cc = cc.loc[cc['Company'] == 'Southern California Edison']
gg = cc.groupby(['Company','Location']).agg({'Decision Date':"count", 'Impact_Date':"max"})
gg = gg.reset_index(level=['Company','Location'])
gg.columns = ['Company','Location','Count','Last Date']
gg = gg.sort_values(by=['Count','Last Date'], ascending=False)
print(gg.head(50).to_string(index=''))
(8334, 11)
Company              Location  Count  Last Date
Southern California Edison          Rosemead, CA      2 2016-05-03
Southern California Edison          Alhambra, CA      1 2012-12-18
Southern California Edison       Bakersfield, CA      1 2012-12-18
Southern California Edison         Big Creek, CA      1 2012-12-18
Southern California Edison            Bishop, CA      1 2012-12-18
Southern California Edison      Boulder City, NV      1 2012-12-18
Southern California Edison    Cathedral City, CA      1 2012-12-18
Southern California Edison           Compton, CA      1 2012-12-18
Southern California Edison           Fontana, CA      1 2012-12-18
Southern California Edison         Fullerton, CA      1 2012-12-18
Southern California Edison          Hesperia, CA      1 2012-12-18
Southern California Edison            Irvine, CA      1 2012-12-18
Southern California Edison         Irwindale, CA      1 2012-12-18
Southern California Edison          La Palma, CA      1 2012-12-18
Southern California Edison        Long Beach, CA      1 2012-12-18
Southern California Edison           Norwalk, CA      1 2012-12-18
Southern California Edison           Ontario, CA      1 2012-12-18
Southern California Edison            Pomona, CA      1 2012-12-18
Southern California Edison  Rancho Cucamonga, CA      1 2012-12-18
Southern California Edison            Rialto, CA      1 2012-12-18
Southern California Edison          Romoland, CA      1 2012-12-18
Southern California Edison      San Clemente, CA      1 2012-12-18
Southern California Edison         San Dimas, CA      1 2012-12-18
Southern California Edison     Santa Clarita, CA      1 2012-12-18
Southern California Edison     Thousand Oaks, CA      1 2012-12-18
Southern California Edison            Tulare, CA      1 2012-12-18
Southern California Edison           Ventura, CA      1 2012-12-18
Southern California Edison       Victorville, CA      1 2012-12-18
Southern California Edison       Westminster, CA      1 2012-12-18

Group the TAA Petitions by Company and Sort by Number of Certified Petitions for a Specified State

The file Location_by_Date_search_MA.xls is created by going to the search page, select the specified state (MA) from the States select list, and hit the "Generate report" button. The resulting page should display the first 20 of 2459 records found. Click the "Export All to Excel" button, rename the resulting file to Location_by_Date_search_MA.xls, and place it in the directory of this Jupyter notebook (taa.ipynb). The following Python code will then group the TAA petitions by company and sort by the number of certified petitions since 2012:

In [8]:
import pandas as pd
xx = pd.read_html("Location_by_Date_search_MA.xls", header=0)
tt = xx[0]
tt['Impact_Date'] = pd.to_datetime(tt['Impact date'])
print(tt.shape)
cc = tt.loc[tt['Decision'] == 'Certified']
cc = cc.loc[pd.to_datetime(cc['Impact date']) > pd.to_datetime('1/1/2012')]
gg = cc.groupby(['Company']).agg({'Decision Date':"count", 'Impact_Date':"max"})
gg = gg.reset_index(level=['Company'])
gg.columns = ['Company','Count','Last Date']
gg = gg.sort_values(by=['Count','Last Date'], ascending=False)
print(gg.head(50))
(2459, 11)
                                               Company  Count  Last Date
127                                      Staples, Inc.      3 2017-01-25
49                                     EMC Corporation      3 2015-07-05
122                                    SimplexGrinnell      2 2017-05-17
70                          Hewlett Packard Enterprise      2 2017-04-12
131                         Stratus Technologies, Inc.      2 2016-06-08
76   International Business Machines Corporation (IBM)      2 2016-05-11
23                                    Bose Corporation      2 2016-01-26
129                           State Street Corporation      2 2015-10-17
34                                   Citizens Bank, NA      2 2015-10-01
66                             Haemonetics Corporation      2 2015-06-07
100                              Microsemi Corporation      2 2014-08-31
105                                     Osram Sylvania      2 2013-12-10
39                                         Covidien LP      2 2013-11-10
94                               Luminus Devices, Inc.      2 2013-10-18
16                                      Avery Products      2 2012-11-19
113                                  Quest Diagnostics      2 2012-08-20
130                                  Steinerfilm, Inc.      2 2012-03-22
56                                            Experian      2 2012-02-26
136                                    TE Connectivity      1 2017-06-22
67                        Haemonetics Corporation Inc.      1 2017-06-05
111               Philips Lighting North America Corp.      1 2017-04-30
36                                  Computershare Inc.      1 2017-04-23
102                                              Necco      1 2017-04-18
137              TE Connectivity (formerly TechDevice)      1 2017-03-13
12                                   Ardagh Glass Inc.      1 2017-02-20
139     The Guardian Life Insurance Company of America      1 2017-02-20
9                             Allegro Microsystems LLC      1 2017-02-14
62                                Gildan Garments Inc.      1 2017-02-02
98        Medtronic, Inc., Restorative Therapies Group      1 2017-01-30
138                                     Teradyne, Inc.      1 2017-01-29
126                                    Stahl USA, Inc.      1 2017-01-21
55                                      Ericsson, Inc.      1 2017-01-10
8                                AllCare Plus Pharmacy      1 2016-12-29
19   Beacon Hill Staffing Group, Bishop Executive S...      1 2016-11-08
11            Amesbury Group, Inc. (dba AmesburyTruth)      1 2016-10-19
1                                           APEM, Inc.      1 2016-09-18
140                                    Thomson Reuters      1 2016-09-18
28                                      CDM Smith Inc.      1 2016-09-13
77                                Interplex Automation      1 2016-08-30
75               International Business Machines (IBM)      1 2016-08-03
95                                Madico, Incorporated      1 2016-06-09
10                            Altiostar Networks, Inc.      1 2016-05-16
124                        SmashFly Technologies, Inc.      1 2016-05-16
143                                          Trombetta      1 2016-05-02
20                  Beaver-Visitec International, Inc.      1 2016-04-28
108                                            Pearson      1 2016-04-20
17                               Avid Technology, Inc.      1 2016-04-06
107                                   Pall Corporation      1 2016-03-31
2                           ATI Allegheny Ludlum, Inc.      1 2016-03-30
63                 Gloucester Seafood Processing, Inc.      1 2016-03-27

Note: The Jupyter Notebook from which this post is generated can be found at http://econdataus.com/taa1.ipynb.