Valuation data

Daily valuation history, point in time

P/E, P/B, P/S, EV/EBITDA, market cap and dividend yield for every US stock, every trading day, using only the filings that were public on that day. No look-ahead.

Get a free API key See pricing Download free samples

Get a stock's valuation history

import finzdata as yf                     # pip install finzdata
v = yf.Ticker("AAPL").valuation(start="2025-01-01")
v[["date", "close", "market_cap", "pe", "pb", "ps", "ev_ebitda", "div_yield"]]

Over REST: GET /v1/valuation?ticker=AAPL&start=2025-01-01, as JSON, CSV or Parquet.

Why point in time matters

Most valuation histories are rebuilt from today's restated numbers, so a 2015 P/E quietly uses figures nobody had in 2015. That look-ahead makes backtests look better than they could have been. FinzData rebuilds each day from the SEC filings that existed the day before: a 10-Q filed on 1 May is first used on the next trading day, and a later restatement only changes the days after it was filed.

What each day contains

  • Market cap and shares: shares outstanding from the latest filing, adjusted for any split since
  • P/E: trailing-twelve-month net income per share (blank when earnings are negative)
  • P/B, P/S: against the latest stockholders' equity and trailing-twelve-month revenue
  • EV and EV/EBITDA: market cap plus debt minus cash; EBITDA as operating income plus depreciation and amortisation
  • Dividend yield: dividends paid over the last 12 months over the close
  • last_filed: the date of the newest filing behind each row, so every number can be traced

Free, then pay for history

The free key returns the last 12 months. History back to 2009, when SEC structured filings began, comes with the look-back plans alongside prices, fundamentals and financial statements. See pricing.

Frequently asked questions

What is a point-in-time P/E?

A P/E that uses only the earnings that had been filed by that date, so a backtest sees exactly what investors could see.

Where does the data come from?

Company filings with the SEC (10-K and 10-Q structured data) and FinzData's daily US stock prices.

How far back does it go?

To 2009 for most companies, when SEC structured financial data began. The free tier covers the last 12 months.

Why is P/E blank for some days?

When trailing-twelve-month earnings are zero or negative, P/E is not meaningful, so it is left blank rather than shown as a negative number.