VectorFin/Glossary/Price-to-Earnings Ratio (P/E)
Financial Fundamentals

What is Price-to-Earnings Ratio (P/E)?

The ratio of a stock's price to its earnings per share, measuring how much investors pay for each dollar of current profits.

In Plain English

The price-to-earnings ratio is the most ubiquitous number in stock investing. If a stock trades at $100 and the company earned $5 per share last year, the P/E ratio is 20. That means you're paying $20 for every $1 of current annual earnings. It's the simplest answer to the question: is this stock cheap or expensive?

The ratio makes most sense as a comparison tool. A P/E of 20 might be cheap for a fast-growing software company and expensive for a slow-growing utility. Context is everything — you're comparing the current price to a snapshot of earnings that may or may not represent the future. This is why analysts typically focus on forward P/E: the current price divided by next year's expected EPS consensus estimate rather than last year's actual earnings.

The inverse of P/E is the earnings yield (EPS / Price), which lets you compare stocks to bonds. If stocks yield 5% earnings (P/E = 20) and 10-year Treasuries yield 4.5%, stocks offer only a modest premium over risk-free bonds — not much cushion for uncertainty. When rates rise, this comparison often drives P/E multiples down: if bonds suddenly offer 6%, why accept a 5% earnings yield on risky equities?

Shiller's CAPE ratio (Cyclically Adjusted P/E) is a variation that divides price by the 10-year inflation-adjusted average EPS, smoothing out business cycle fluctuations. It's a better long-run valuation indicator than trailing P/E, though it's a notoriously poor short-term timing tool — markets can stay expensive by CAPE for decades.

The PEG ratio (P/E divided by expected earnings growth rate) attempts to normalize for growth: a company growing at 30%/year deserves a higher P/E than one growing at 5%/year. A PEG below 1.0 is classically considered undervalued.

Technical Definition

Trailing P/E = Current Price / LTM EPS (Last Twelve Months, actual) Forward P/E = Current Price / NTM EPS (Next Twelve Months, consensus estimate)

Earnings yield = 1 / P/E = EPS / Price

Fed Model: compare earnings yield to 10-year Treasury yield as a valuation framework.

CAPE = Price / (10-year average of inflation-adjusted EPS)

PEG Ratio = (Forward P/E) / (Expected EPS Growth Rate %)

Valuation expansion/compression: stock return = EPS growth × change in P/E multiple. A stock can have strong earnings growth but negative returns if the multiple compresses (e.g., interest rates rise or sentiment deteriorates). Decomposing returns into EPS growth and multiple change is critical for understanding attribution.

P/E is unreliable for companies with losses (negative EPS), extremely low earnings (P/E of 500+ from a single year), or highly cyclical earnings. EV/EBITDA or EV/Sales may be more informative in these cases.

How VectorFin Uses This

VectorFin's qualitative signals provide context for P/E multiple movements that purely quantitative screens miss. When a stock's P/E expands rapidly without commensurate earnings growth, the sentiment_drift signal often reveals whether management's language is becoming more expansive (bullish narrative driving multiple expansion) or more guarded (potential multiple compression ahead).

The whystock_score composite implicitly considers valuation — companies with extremely high P/E multiples face higher hurdles on the fundamental quality components, since the score requires both reasonable valuation and improving fundamentals. This prevents pure "story stock" momentum plays from scoring high on the composite.

GET https://api.vectorfinancials.com/v1/signals/whystock-score/{ticker}?date=2024-10-01

The earnings call embedding search is particularly useful for understanding narrative justifications for high P/E multiples — searching for a company's own commentary on growth initiatives helps contextualize whether a premium multiple is warranted.

Code Example

import requests

API_BASE = "https://api.vectorfinancials.com"
API_KEY = "vf_your_api_key_here"

# Understand narrative behind high-multiple stocks
# by searching earnings call language for growth justifications
high_pe_tickers = ["NVDA", "AMZN", "TSLA"]

for ticker in high_pe_tickers:
    # Get overall signal
    score_resp = requests.get(
        f"{API_BASE}/v1/signals/whystock-score/{ticker}",
        params={"date": "2024-10-01"},
        headers={"X-API-Key": API_KEY},
    )

    # Get sentiment drift
    drift_resp = requests.get(
        f"{API_BASE}/v1/signals/sentiment-drift/{ticker}",
        params={"period": "2024-Q3"},
        headers={"X-API-Key": API_KEY},
    )

    if score_resp.ok and drift_resp.ok:
        score = score_resp.json()["score"]
        drift = drift_resp.json()["drift_score"]
        narrative = "expanding" if drift > 0.1 else "stable" if drift > -0.1 else "contracting"
        print(f"{ticker}: composite={score:.2f}, narrative={narrative} (drift={drift:.3f})")

Put Price-to-Earnings Ratio (P/E) to work in your pipeline

Access AI-ready financial data — embeddings, signals, Iceberg tables.