January 2024 Revisions & Changes

Date: January 17, 2024

What has changed?

  • Changed the Revenue Estimation Method for Model: Discounted Free Cash Flow - Perpetuity
  • New Ratios Added to the Financials Section
  • Removed Irrelevant API Properties
  • Added a Help Section for Valuation Models
  • Bug Fixes


Changed: Discounted Free Cash Flow - Perpetuity

The model has transitioned to estimating revenue using a growth rate approach. This means that future revenue projections will diverge from the linear regression curve, guided by the growth assumptions that have been set.

For the full changelog, please check out the GitHub Pull Request.

New Ratios

The following ratios have been added to the financial ratios page:

  • Days of Payables Outstanding
  • Cash Conversion Cycle
  • Cash Conversion Ratio
  • Free Cash Flow to Earnings


API Property Changes

Our API endpoints had some unused properties that have been removed from all endpoints that contained them. Removed properties are marked with a strikethrough in the example below:

AAPL Profile Endpoint: {
  "originalCurrency": "USD",
  "convertedCurrency": "USD",
  "report": [
      "symbol": "AAPL",
      "currency": "USD",
      "dcfDiff": 38.2053,
      "dcf": 145.42469826435996,
      "reportedCurrency": "USD"


Valuation Models Help Section

Visit our GitHub repository to access the Frequently Asked Questions (FAQ) section related to our repository of valuation models. We've made a diagram to help you choose the right model:


Bug Fixes

Full list of bug fixes:

  • Stock news article dates are now adjusted to local time.
  • Some pages that returned server error 500 are now fixed.
  • JavaScript dynamic modules are now being loaded properly.
  • The website's sidebar can now be closed by clicking (touching) the grey muted content area, and the change will persist when reloading.
  • Fixed minor errors in the JavaScript valuation framework.

Updates to API and Data Sharing

Date: December 30, 2023

What has changed?

  • API endpoints can now be accessed externally


Accessing API Data Externally

This feature is only available for Essential and Ultimate users.

API data can be accessed externally, such as in your Python projects, using a uniquely generated sharing key. Your account's request limit is also shared when using the sharing key.

Here are the steps to access data externally:

  1. Go to your User profile
  2. Enable Data Sharing and click the "Update" button.
  3. Press the "Generate a New Key" button.
  4. Choose your desired data format: HTML or JSON.
  5. Copy the URL that contains your generated key.

Keep your sharing key secure and only share it with trusted individuals, as misuse can temporarily block your account's API access.

API and Data external access is limited as follows:

  • Essential plan: 15,000 requests per hour.
  • Ultimate plan: Unlimited requests.


Important Considerations

  • Enabling data sharing makes your data accessible to anyone on the internet through your unique access key.
  • Keep your sharing key secure and only share it with trusted individuals, as misuse can temporarily block your account's API access.
  • Data sharing is intended for non-commercial applications; commercial usage is not currently supported.

December 2023 New Features and Bugfixes

Date: December 19, 2023

All Updates

  • Premium data sharing is now possible.
  • The IMPORTHTML() function in Google Sheets is now retrieving data as before.

Premium data refers to quarterly data that is older than the last 6 quarters. This data can now be shared through a unique access key generated by you.

Steps to share premium data:
 1. Ensure you have an active Essential or Ultimate subscription plan.
 2. Enable Data Sharing from your Account settings panel and click "Update."
 3. Press the "Generate a New Key" button.
 4. Copy the URL from the Shareable Endpoints that contains your generated key.

Premium data sharing can be coupled with the IMPORTHTML() function in Google Sheets.

Request Limits for Shared Data

  • Shared premium data has a request limit: 500 requests per hour for each endpoint.
  • If this limit is exceeded, a 403 Forbidden response is triggered.
  • Shared premium data doesn't adhere to the API limits of your current plan Essential (15,000 requests per hour) or Ultimate (Unlimited requests).

Example of a Blocking Scenario

  • You have an Ultimate Yearly subscription and enable data sharing.
  • An unknown user sends 500 requests, hitting the limit.
  • The endpoint is blocked for everyone for 1 hour.
  • When you try to access the endpoint during this time, a 403 Forbidden response prevents the data from showing.

You can always generate a new access key if the current key has been compromised.

Website updates for September-December 2023

Date: December 12, 2023

All Updates

  • Subscription Plans
  • New Valuation Models
  • Quarterly Financial Ratios
  • API Request Limits Changed
  • Valuation JS Framework New Functions
  • Updated our Terms and Conditions and Privacy Policy

Subscription Plans

At Discounting Cash Flows, we've been committed to providing top-notch services for free. However, to continue maintaining and improving our website, we're introducing some new features that require a subscription.

Check our Pricing page for more information about Subscription Plans.

New Valuation Models

​​​​​We have added some new models to our list of standard models.

Intrinsic Models:

  • Benjamin Graham's Number
  • Earnings Power Value

Multiples Models:

  • Peter Lynch Fair Value

Risk Analysis Models:

  • Return on Invested Capital (ROIC)
  • Altman Z-Score
  • Piotroski F-Score
  • Shiller PE (CAPE) Ratio
  • Beneish M-Score

Some of the models are premium and can be unlocked with either Essential or Ultimate subscription plans.

Quarterly Financial Ratios

We have added a quarterly option for our Financial Ratios page as well as full descriptions which include the calculation formula for each row individually. Check out the new Quarterly Financial Ratios page.

API Request Limits Changed

The API Request limit was changed to fit the new website structure as such:

  • Unauthenticated users: A request limit of 500 requests per hour.
  • Authenticated users: A request limit of 1,000 requests per hour.
  • Essential users: A request limit of 15,000 requests per hour.
  • Ultimate users: Unlimited requests.

For more information about our API check out our API Guide.

Valuation JS Framework New Functions

We have added some new operators and functions to our Valuation JS Framework as follows:


Added the following number comparison operators: ['<', '<=', '>', '>=', '==']. If the condition is true, value 1 is returned. While if the condition is false, value 0 is returned.


  • 'function:sum' or 'function:add'
  • 'function:multiply'
  • 'function:maximum' or 'function:max'
  • 'function:minimum' or 'function:min'
  • 'function:average'
  • 'function:square_root'
  • 'function:log_n'
  • 'function:nth_root'
  • 'function:nth_power' or 'function:exponential'

We will update our Documentation on Read the Docs shortly. Thank you for your patience.

Updated our Terms and Conditions and Privacy Policy

We have updated our Terms and Conditions and Privacy Policy to fit our new website structure.

⚙️ Website Updates: August 2023

Date: August 09, 2023


  • Improved Website Performance
  • Growth Rate Auto-Adjust Feature
  • API Request Limit
  • Slugified URLs for Default Valuation Models

Improved Website Performance

By optimizing source files, loading times have been reduced. Images, styles, and scripts are now loaded more efficiently.

Growth Rate Auto-Adjust Feature

​​​​​The Growth Rate Auto-Adjust Feature simplifies changing growth rates in the Forecasting table. When you edit a growth rate for a specific year, the feature automatically maintains other future rates. For instance, if you adjust the 2023 rate from -3.26% to 15%, the feature keeps subsequent rates unchanged while updating future values accordingly.​​​

API Request Limit

The API Request limit was necessary in order to prevent request spam. If the request limit is reached, a 403 Forbidden Error will be displayed.

The limits are the following:

800 requests/hour:

  • Income Statements (Annual, Quarterly, LTM) 
  • Balance Sheet Statement (Annual, Quarterly) 
  • Cash Flow Statement (Annual, Quarterly, LTM) 
  • Ratios
  • Dividends (Annual, As Reported) 
  • Market Prices (Daily, Annual) 

1600 requests/hour:

  • Quote
  • Profile
  • Treasury Yields (Daily, Monthly, Annual)
  • FX
  • Risk Premium

Slugified URLs for Default Valuation Models

URL paths to standard valuation models have been updated for more meaningful redirection.

For instance, the previous path to the Simple Dividend Discount Model for Apple was: https://discountingcashflows.com/company/AAPL/valuation/default/9/ The new path is now: https://discountingcashflows.com/company/AAPL/valuation/simple-dividend-discount-model/

Note the inclusion of "simple-dividend-discount-model" in the URL. The old paths still work and will redirect to the new slugified paths.

⚙️ Website Updates: June - July 2023

Date: July 18, 2023


  • Brand New Look
  • Watches now support Fixed Value Tracking
  • Notification Alert Messages
  • Valuation Assumptions Descriptions
  • Improved Code Editor
  • Bug fixes

Brand New Look

The website has a brand new interface.


Watches now support Fixed Value Tracking

Watches can now have Fixed Watch Values instead of Valuation Model Values. This new feature allows tracking the market price vs. a fixed value.

To add a new fixed watch. Go to Watchlist & Notifications, click on "New Watch", add your prefered company and check the Fixed option.


Notification Alert Messages

New dropdown menu with the latest Announcements and Watch Notification Alerts. See what is new by clicking the bell icon in the upper right corner.

Valuation Assumptions Descriptions

Valuation model assumptions now have hover descriptions. Hover or Click (Tap) to see the descriptions attached to the assumptions.


Improved Code Editor

The code editor has been improved.

It provides JavaScript code validation:

It offers code suggestions when editing existing models: