Awesome
FSA
The primary purpose of this project is to facilitate the transfer of SEC EDGAR Filings' Financial Data into custom financial statement analysis models.
Financial Statements
At present, I have extracted the Income Statement, Balance Sheet and Statement of Cash Flows from the 10-K filings of 68 S&P 500 companies. The statements are stored in .pkl format in order to provide for streamlined conversion into pandas objects.
While a centralized database of pandas friendly financial statements is nice; it doesn't represent any signifcant progress. Accordingly, I have begun the implementation of statement standardization in order to facilitate batch comparison and multi-method valuation of equities simultaneously.
Fundamental Analysis of Equities
Currently, the extraction of key features from each statement has been implemented and combined in order to provide a summary glance at important equity characteristics. For example, the high level API (callable from program run.py) will yield this for the equity NVDA:
FCFE FCFF Cost_Debt Cost_Equity WACC Weight_Debt Weight_Equity
2008 930.837 969.592 0.000000 5.188809 3.978022 0.235391 0.764609
2009 154.982 114.729 0.045071 5.188809 3.978022 0.235391 0.764609
2010 -178.408 -206.046 0.495535 5.188809 4.354444 0.177779 0.822221
2011 -147.681 -141.953 0.282578 5.188809 3.990962 0.244148 0.755852
2012 -44.572 25.726 0.251364 5.188809 4.174294 0.205474 0.794526
2013 -34.864 54.133 0.226835 5.188809 4.182526 0.202799 0.797201
2014 -201.042 -134.362 0.361625 5.188809 3.467356 0.356616 0.643384
2015 712.660 887.195 1.529704 5.188809 3.869820 0.360468 0.639532
2016 1926.267 2106.267 1.471730 5.188809 3.819995 0.368250 0.631750
Valuation Models
In development. Planning on implementing DCF equity and DCF enterprise valuation methods. Currently, there are only two primary impediments to the development of this functionality:
- Smooth Out Volatile (at least not consistently volatile) Free Cash Flows. This is especially problematic in tech companies. Obviously this is a prerequisite for forecasting future cash flows.
- Forecasting future operational/core business cash flow generation.
Macroeconomic Data
I have located my Macroeconomics textbook as well as an awesome St. Louis Fed API and am working to provide cross sectional Analysis of the larger scale economy. This will include not only economic indicators, but also panel data structures composed of standardized, critical components from equity financial statements, such as Net Income, Operating Expenses, Revenues, Debt Funding, Equity funding, and capital expenditues. Viewing the aggregate allocation of capital by publicly traded firms will be a good compliment to the performance of individual equities as well as to the trends observed in the macro economic scope.
Aggregate Financial Statements Index
The S&P 500 Index is a value weighted index. This means that the S&P 500 will proportionately reflect the prices of its constituents. This is a useful barometer for market performance, undoubtedly, but I am interested in knowing more about how the market is allocating capital. Therefore, I think it would be useful construct value weighted financial statement index.
What is a value weighted financial statement index? It is the same thing as a value weighted price index, only it is composed of more detailed (and in my opinion, pertinent) data rather than relying solely on the price of the equities. Since every equity in the S&P 500 is going to have the 3 main financial statements (each having at least the same categorical values, despite field specific name variance), I think it would be extremely useful to construct a simplistic aggregate statement to summarize the index wide financial situation, performance and cash flows during a given period, or at a specific instance.
For example, suppose we have a three stock index composed of GGG, HHH, DDD. The market caps for these equities is as follows:
Mkt Cap
DDD 2500
GGG 2500
HHH 5000
They also reported the following income statement results in their most recent 10-K filing:
DDD GGG HHH
Rev 50.0 100.0 200.0
GP 40.0 75.0 100.0
EBIT -10.0 25.0 50.0
NI -5.0 10.0 40.0
From this data we can construct a value weighted income statement index to accompany the index price:
Index
Rev 137.50
GP 78.75
EBIT 28.75
NI 21.25