What Percent of Public Companies are Profitable?

5 minute read

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