What Percent of Public Companies are Profitable?
financialmodelingprep.com has an API that allows users to query the financial data of a little over 5000 publicly traded companies. I wrote a script to pull the net income of all the companies they provide data for, for 2018. 1781 out of 5060 companies had negative net income, equaling 35%.
# importing libraries
from bs4 import BeautifulSoup as bs
import json
import requests
import pandas as pd
%matplotlib inline
The code snippet below creates a data frame with 3 columns (ticker symbol, net income, and name of company). It took about an hour to run.
list_url = "https://financialmodelingprep.com/api/v3/company/stock/list"
list_request = requests.get(list_url)
list_html = bs(list_request.text, 'html.parser')
list_data = json.loads(list_html.text)
financial_url = "https://financialmodelingprep.com/api/v3/financials/income-statement/"
symbols = []
incomes = []
name = []
for i in range(len(list_data['symbolsList'])):
symbol = list_data['symbolsList'][i]['symbol']
fin_request = requests.get(financial_url + symbol)
fin_html = bs(fin_request.text, 'html.parser')
fin_data = json.loads(fin_html.text)
if len(fin_data['financials']) > 0:
symbols.append(symbol)
name.append(list_data['symbolsList'][i]['name'])
incomes.append(fin_data['financials'][0]['Consolidated Income'])
dictionary = {'symbol': symbols, 'incomes': incomes, 'name': name}
data = pd.DataFrame(dictionary)
Some of the companies in the dataframe
data
symbol | incomes | name | |
---|---|---|---|
0 | CMCSA | 11862000000.0 | Comcast Corporation Class A Common Stock |
1 | KMI | 1919000000.0 | Kinder Morgan Inc. |
2 | INTC | 21053000000.0 | Intel Corporation |
3 | MU | 14138000000.0 | Micron Technology Inc. |
4 | GE | -22443000000.0 | General Electric Company |
5 | BAC | 28147000000.0 | Bank of America Corporation |
6 | AAPL | 59531000000.0 | Apple Inc. |
7 | MSFT | 16571000000.0 | Microsoft Corporation |
8 | SIRI | 1175893000.0 | Sirius XM Holdings Inc. |
9 | HPQ | 5327000000.0 | HP Inc. |
10 | CX | 574285714.2857 | Cemex S.A.B. de C.V. Sponsored ADR |
11 | CZR | 304000000.0 | Caesars Entertainment Corporation |
12 | F | 3695000000.0 | Ford Motor Company |
13 | AMD | 337000000.0 | Advanced Micro Devices Inc. |
14 | SNAP | -1255911000.0 | Snap Inc. Class A |
15 | FB | 22112000000.0 | Facebook Inc. |
16 | WFC | 22876000000.0 | Wells Fargo & Company |
17 | AIG | 61000000.0 | American International Group Inc. |
18 | T | 19953000000.0 | AT&T; Inc. |
19 | C | 18080000000.0 | Citigroup Inc. |
20 | VALE | 6896000000.0 | VALE S.A. American Depositary Shares Each Repr... |
21 | MS | 8883000000.0 | Morgan Stanley |
22 | AKS | 244100000.0 | AK Steel Holding Corporation |
23 | JPM | 32474000000.0 | JP Morgan Chase & Co. |
24 | ORCL | 3825000000.0 | Oracle Corporation |
25 | NKE | 1933000000.0 | Nike Inc. |
26 | PG | 9861000000.0 | Procter & Gamble Company (The) |
27 | GSM | 24573000.0 | Ferroglobe PLC |
28 | HK | 45959000.0 | Halcon Resources Corporation |
29 | BBD | 4316607989.6907 | Banco Bradesco Sa American Depositary Shares |
... | ... | ... | ... |
5030 | VXRT | -18007000.0 | Vaxart Inc. |
5031 | VZA | 15528000000.0 | Verizon Communications Inc. 5.90% Notes due 2054 |
5032 | WCFB | 226407.0 | WCF Bancorp Inc. |
5033 | WEAR | 1000000.0 | Exchange Listed Funds Trust ETF The WEAR |
5034 | WEBK | 5991000.0 | Wellesley Bancorp Inc. |
5035 | WHLM | 856000.0 | Wilhelmina International Inc. |
5036 | WHLRD | -16000000.0 | Wheeler Real Estate Investment Trust Inc. Seri... |
5037 | WILC | 6640159.5745 | G. Willi-Food International Ltd. |
5038 | WINA | 30125500.0 | Winmark Corporation |
5039 | WINS | 10499876.0 | Wins Finance Holdings Inc. |
5040 | WMLP | -32000000.0 | Westmoreland Resource Partners LP representing... |
5041 | WRLS | -3939349.0 | Pensare Acquisition Corp. |
5042 | WRN | -2115674.0741 | Western Copper and Gold Corporation |
5043 | WSCI | -1000000.0 | WSI Industries Inc. |
5044 | WSTG | 3538000.0 | Wayside Technology Group Inc. |
5045 | WTT | 35000.0 | Wireless Telecom Group Inc. |
5046 | WVFC | 2125000.0 | WVS Financial Corp. |
5047 | WVVI | 2858580.0 | Willamette Valley Vineyards Inc. |
5048 | WVVIP | 3000000.0 | Willamette Valley Vineyards Inc. Series A Rede... |
5049 | XBIO | -7300458.0 | Xenetic Biosciences Inc. |
5050 | XBIT | -21138000.0 | XBiotech Inc. |
5051 | XELB | 1088000.0 | Xcel Brands Inc |
5052 | XGTI | -11000000.0 | XG Technology Inc |
5053 | XTLB | 2986000.0 | XTL Biopharmaceuticals Ltd. |
5054 | YRIV | -13716485.0 | Yangtze River Port and Logistics Limited |
5055 | YTEN | -9170000.0 | Yield10 Bioscience Inc. |
5056 | ZAIS | -4000000.0 | ZAIS Group Holdings Inc. |
5057 | ZKIN | 7103057.0 | ZK International Group Co. Ltd |
5058 | ZOM | -16647687.0 | Zomedica Pharmaceuticals Corp. |
5059 | ZYME | -36556000.0 | Zymeworks Inc. |
5060 rows × 3 columns
We can see that there are a total of 5060 companies in the dataframe.
Some of the unprofitable companies
data.incomes = pd.to_numeric(data.incomes)
data[data.incomes < 0]
symbol | incomes | name | |
---|---|---|---|
4 | GE | -2.244300e+10 | General Electric Company |
14 | SNAP | -1.255911e+09 | Snap Inc. Class A |
31 | JD | -4.052894e+08 | JD.com Inc. |
32 | NOK | -6.896552e+04 | Nokia Corporation Sponsored American Depositar... |
36 | WFT | -2.811000e+09 | Weatherford International plc (Ireland) |
40 | QCOM | -4.864000e+09 | QUALCOMM Incorporated |
49 | GERN | -2.701700e+07 | Geron Corporation |
56 | CLNS | -6.461300e+07 | Colony NorthStar Inc. |
62 | SQ | -3.845300e+07 | Square Inc. Class A |
67 | RAD | -4.222130e+08 | Rite Aid Corporation |
70 | ESV | -6.366000e+08 | Ensco plc Class A |
80 | MAT | -5.309930e+08 | Mattel Inc. |
81 | CTL | -1.733000e+09 | CenturyLink Inc. |
90 | AABA | -2.094630e+08 | Altaba Inc. |
100 | AUY | -2.977000e+08 | Yamana Gold Inc. (Canada) |
108 | GFI | -3.448000e+08 | Gold Fields Limited American Depositary Shares |
109 | KGC | -2.560000e+07 | Kinross Gold Corporation |
111 | NBR | -6.127260e+08 | Nabors Industries Ltd. |
122 | HMY | -3.210000e+08 | Harmony Gold Mining Company Limited |
125 | NGD | -1.225700e+09 | New Gold Inc. |
126 | KOS | -9.399100e+07 | Kosmos Energy Ltd. |
137 | PTEN | -3.214210e+08 | Patterson-UTI Energy Inc. |
142 | QEP | -1.011600e+09 | QEP Resources Inc. |
146 | MRVL | -1.790940e+08 | Marvell Technology Group Ltd. |
149 | CDNA | -4.678100e+07 | CareDx Inc. |
157 | RIG | -2.003000e+09 | Transocean Ltd (Switzerland) |
164 | OAS | -1.950000e+07 | Oasis Petroleum Inc. |
166 | CVS | -5.960000e+08 | CVS Health Corporation |
167 | HES | -1.150000e+08 | Hess Corporation |
170 | NLSN | -7.000000e+08 | Nielsen N.V. |
... | ... | ... | ... |
4993 | TRMT | -1.608000e+06 | Tremont Mortgage Trust |
4995 | TRPX | -2.380053e+06 | Therapix Biosciences Ltd. |
4996 | TRX | -5.225301e+06 | Tanzanian Royalty Exploration Corporation |
4998 | TURN | -1.636636e+07 | 180 Degree Capital Corp. |
5002 | UBC | -7.100000e+07 | E-TRACS USB Bloomberg Commodity Index Exchange... |
5005 | UBN | -2.800000e+07 | E-TRACS USB Bloomberg Commodity Index Exchange... |
5009 | UNAM | -3.169559e+06 | Unico American Corporation |
5015 | USAS | -1.067800e+07 | Americas Silver Corporation no par value |
5016 | USATP | -2.000000e+06 | USA Technologies Inc. Preferred Stock |
5022 | VII | -5.000000e+06 | Vicon Industries Inc |
5023 | VIRC | -1.614000e+06 | Virco Manufacturing Corporation |
5024 | VNCE | -2.022000e+06 | Vince Holding Corp. |
5025 | VRNA | -1.990100e+07 | Verona Pharma plc |
5027 | VTGN | -1.434590e+07 | VistaGen Therapeutics Inc. |
5028 | VTNR | -1.983579e+06 | Vertex Energy Inc |
5029 | VVUS | -3.695000e+07 | VIVUS Inc. |
5030 | VXRT | -1.800700e+07 | Vaxart Inc. |
5036 | WHLRD | -1.600000e+07 | Wheeler Real Estate Investment Trust Inc. Seri... |
5040 | WMLP | -3.200000e+07 | Westmoreland Resource Partners LP representing... |
5041 | WRLS | -3.939349e+06 | Pensare Acquisition Corp. |
5042 | WRN | -2.115674e+06 | Western Copper and Gold Corporation |
5043 | WSCI | -1.000000e+06 | WSI Industries Inc. |
5049 | XBIO | -7.300458e+06 | Xenetic Biosciences Inc. |
5050 | XBIT | -2.113800e+07 | XBiotech Inc. |
5052 | XGTI | -1.100000e+07 | XG Technology Inc |
5054 | YRIV | -1.371648e+07 | Yangtze River Port and Logistics Limited |
5055 | YTEN | -9.170000e+06 | Yield10 Bioscience Inc. |
5056 | ZAIS | -4.000000e+06 | ZAIS Group Holdings Inc. |
5058 | ZOM | -1.664769e+07 | Zomedica Pharmaceuticals Corp. |
5059 | ZYME | -3.655600e+07 | Zymeworks Inc. |
1781 rows × 3 columns
1781 companies that lost money.
Company with the most income
data[data.incomes == max(data.incomes)]
symbol | incomes | name | |
---|---|---|---|
478 | CCE | 3.965092e+18 | Coca-Cola European Partners plc |
Company that lost the most money
data[data.incomes == min(data.incomes)]
symbol | incomes | name | |
---|---|---|---|
4 | GE | -2.244300e+10 | General Electric Company |
Percentage of unprofitable companies
1781/5060*100
35.19762845849802