FMP

How to pull Cash Flow Ratios using Python

How to pull Cash Flow Ratios using Python

Sep 30, 2022 2:35 AM - Jack Dalton

Image credit: Markus Spiske

Cash flow statements tell you how much cash is flowing in and out of a business due to operating, financing, and investing activities. In our article about financial statements, we explained what the cash flow statement is and how you can analyze it. In a separate article, we explained what the 8 important cash flow ratios are and how to calculate them. In this article, we are going to teach you how to pull the cash flow ratios directly from the Financial Modeling Prep financial ratio API.

The 8 ratios we will investigate are:

1. Cash Flow Coverage Ratio
2. Free Cash Flow Operating Cash Flow Ratio
3. Price to Cash Flow Ratio
4. Short-Term Coverage Ratios
5. Cash Flow Margin Ratio
6. Capital Expenditure Coverage Ratios
7. Dividend Paid and Capex Coverage Ratios
8. Dividend Payout Ratio

Step 1: Load FMP Developer API Docs Website

From this article go to the top right of the page, click “Developers” and then click "API Docs" from the list below. Make sure you are logged into your account. You should see this in the top right corner:

Otherwise, click login and enter your account credentials.

A key piece of information that'll want to write down in a safely secured location is your API Key. This is located in the second section of the API docs page which is called "Your Details". See in the example below, it should be a long series of letters and numbers. As with any key, this unlocks something and in this case it ensures that you have permission to access the API you are requesting. Make sure to keep your key private and safely secured if you are storing it somewhere on your computer. It is against our terms and conditions to share your API key with anyone - your account will be blocked and investigated if we suspect you are doing this.

Step 2: Copy the URL for the API you want to access

For this example, we are going to pull from the company profile API. So scroll down to the section that says Company Financial Ratios (You can also use the navigation bar on the left hand side of the screen) and you will see the following

Then right click on the box that contains something that looks like a condensed URL. In this case: api/v3/ratios/APPL?limit=40

Step 3: Open Your Python Environment and copy URL

Now you'll need to open up your Python environment to start writing code. To start with, create a variable called “URL” and give the string version of the URL you copied in step 2. You can simply use Ctrl + V (or cmd + V for mac users) to paste the url you copied.

ERROR ALERT: Make sure to add inverted commas (otherwise called quotation marks) around the copied URL to make the URL variable a string.

`url = “https://financialmodelingprep.com/api/v3/ratios/AAPL?limit=40&apikey=demo”`

If you're copying directly from this page you'll need to make sure that you replace the ‘demo' with your API key

Step 4: Write the Python code to access the Financial Statement

To learn more about exactly what all the following code means and why it works, visit out guide - How to call a Financial Modeling Prep API

```try: # For Python 3.0 and later from urllib.request import urlopen except ImportError: # Fall back to Python 2's urllib2 from urllib2 import urlopen import json def get_jsonparsed_data(url): """ Receive the content of ``url``, parse it as JSON and return the object. Parameters ---------- url : str Returns ------- dict """ response = urlopen(url) data = response.read().decode("utf-8") return json.loads(data) url = ("https://financialmodelingprep.com/api/v3/ratios/AAPL?limit=40&apikey=demo") Ratios_APPL = get_jsonparsed_data(url)```

The variable that we have created called Ratios_APPL will have all the financial ratios from the last 40 years of Apple Inc's financial statements in the JSON format.

Step 5: Pull out the individual cash flow ratios

The cash flow ratios listed at the beginning of this article aren't named exactly the same way in the JSON because we want to keep the code clean and we can't use spaces in python when naming individual variables and objects. The JSON format stores the data as a list of dictionaries for each year. Each dictionary is made up of keys and values. In this case, each key is a financial ratio and the value is the figure for that ratio. The key name of each cash flow ratio in the JSON file is as follows:

Cash Flow Ratio Key Name
Cash Flow Coverage Ratio 'cashFlowCoverageRatios'
Free Cash Flow Operating Cash Flow Ratio 'freeCashFlowOperatingCashFlowRatio'
Price to Cash Flow Ratio 'priceCashFlowRatio'
Short-Term Coverage Ratios 'shortTermCoverageRatios'
Cash Flow Margin Ratio 'operatingCashFlowSalesRatio'
Capital Expenditure Coverage Ratios 'capitalExpenditureCoverageRatio'
Dividend Paid and Capex Coverage Ratios 'dividendPaidAndCapexCoverageRatio'
Dividend Payout Ratio 'dividendPayoutRatio'

Let's say we want to pull out Apple's 2020 Cash Flow Coverage Ratio. We would use the following code:

`Ratios_APPL[0]['cashFlowCoverageRatios']`

It's important to note that the format of this data means that as you index higher, you'll go further back in time. Here's a little bit of code that will help you understand how to index for a specific year:

```for i in range(0,len(Ratios_APPL)): print(i, Ratios_APPL[i]['date'])```

This will return a print out of each index and its corresponding date taken:

Examples of pulling Cash Flow Ratios

Pooling Cash Flow Ratios into a list

To be able to simply loop through all the Cash Flow ratios it's useful to make a list with the codified names of each ratio. Here's how:

```cashFlow_Ratios = [ 'cashFlowCoverageRatios', 'freeCashFlowOperatingCashFlowRatio', 'priceCashFlowRatio', 'shortTermCoverageRatios', 'operatingCashFlowSalesRatio', 'capitalExpenditureCoverageRatio', 'dividendPaidAndCapexCoverageRatio', 'dividendPayoutRatio', ]```

For Loop to list all of the Investment Ratios for a given year

Here's a block of code that will give you the investment valuation ratios for a given year using the indexes shown above:

```cashFlow_Ratios = [ 'cashFlowCoverageRatios', 'freeCashFlowOperatingCashFlowRatio', 'priceCashFlowRatio', 'shortTermCoverageRatios', 'operatingCashFlowSalesRatio', 'capitalExpenditureCoverageRatio', 'dividendPaidAndCapexCoverageRatio', 'dividendPayoutRatio', ] APPL_2020_Ratios = [] #This is an empty list of that the next for loop will fill for i in range(0,len(cashFlow_Ratios)): APPL_2020_Ratios.append(Ratios_APPL[0][cashFlow_Ratios[i]]) #This adds the ratio i to the list of Apple's ratios print(f"{cashFlow_Ratios[i]} = {APPL_2020_Ratios[i]: .2f}")```

Function to print the Investment Valuation Ratios for a specific ticker in a specific year

In this example, we create a function so that you can easily use it to pull the investment valuation ratios for any stock ticker in any year:

```def cashFlowRatio_ticker(ticker , yearindex): url = f"https://financialmodelingprep.com/api/v3/ratios/{ticker}?limit=40&apikey=demo" ticker_ratios = get_jsonparsed_data(url) cashFlow_Ratios = [ 'cashFlowCoverageRatios', 'freeCashFlowOperatingCashFlowRatio', 'priceCashFlowRatio', 'shortTermCoverageRatios', 'operatingCashFlowSalesRatio', 'capitalExpenditureCoverageRatio', 'dividendPaidAndCapexCoverageRatio', 'dividendPayoutRatio ] Ratios = [] #This is an empty list of that the next for loop will fill for i in range(0,len(cashFlow_Ratios)): Ratios.append(ticker_ratios[0][cashFlow_Ratios[i]]) #This adds the ratio i to the list of Apple's ratios print(f"{cashFlow_Ratios[i]} = {Ratios[i]: .2f}")```

Other Blogs

Sep 11, 2023 - Rajnish Katharotiya

P/E Ratios Using Normalized Earnings

Price to Earnings is one of the key metrics use to value companies using multiples. The P/E ratio and other multiples are relative valuation metrics and they cannot be looked at in isolation. One of the problems with the P/E metric is the fact that if we are in the peak of a business cycle, earni...

Sep 11, 2023 - Rajnish Katharotiya

What is Price To Earnings Ratio and How to Calculate it using Python

Price-to-Earnings ratio is a relative valuation tool. It is used by investors to find great companies at low prices. In this post, we will build a Python script to calculate Price Earnings Ratio for comparable companies. Photo by Skitterphoto on Pexels Price Earnings Ratio and Comparable Compa...

Oct 17, 2023 - Davit Kirakosyan

VMware Stock Drops 12% as China May Hold Up the Broadcom Acquisition

Shares of VMware (NYSE:VMW) witnessed a sharp drop of 12% intra-day today due to rising concerns about China's review of the company's significant sale deal to Broadcom. Consequently, Broadcom's shares also saw a dip of around 4%. Even though there aren’t any apparent problems with the proposed solu...

FMP

Financial Modeling Prep API provides real time stock price, company financial statements, major index prices, stock historical data, forex real time rate and cryptocurrencies. Financial Modeling Prep stock price API is in real time, the company reports can be found in quarter or annual format, and goes back 30 years in history.
2017-2023 © Financial Modeling Prep