VectorFin/Glossary/EPS (Earnings Per Share)
Financial Fundamentals

What is EPS (Earnings Per Share)?

The portion of a company's net income allocated to each outstanding share of common stock, the most widely cited measure of corporate profitability.

In Plain English

Every quarter, the financial world holds its breath for a single number: earnings per share. EPS is the amount of profit a company generated for each share of its stock outstanding. A company that earned $10 billion in net income while having 10 billion diluted shares outstanding reports EPS of $1.00. That's the bottom line — literally.

Why per-share instead of total profit? Because shares outstanding changes over time through buybacks and stock issuances, and per-share metrics allow apples-to-apples comparison across companies of different sizes and across different time periods. A company that grows total earnings from $1B to $1.1B while doubling its shares outstanding has actually diluted each shareholder's claim on those earnings — per-share earnings fell.

The "beat or miss" ritual dominates financial news every earnings season. Analysts compile consensus EPS estimates based on their models; the actual reported EPS is compared to this consensus. A "beat" (actual > estimate) typically sends a stock up; a "miss" typically sends it down. The magnitude matters too — a $0.01 beat after a large run-up in the stock may still disappoint if investors expected more.

The GAAP vs non-GAAP distinction adds complexity. GAAP EPS follows standard accounting rules and includes items like stock-based compensation, amortization of acquired intangibles, and restructuring charges. Non-GAAP (or "adjusted") EPS strips these out. Companies often guide and report non-GAAP numbers that look better. The SEC monitors non-GAAP disclosures carefully, and analysts increasingly scrutinize the gap between GAAP and non-GAAP as a quality indicator.

Diluted EPS uses the fully diluted share count, including all stock options, warrants, and convertible securities that could potentially become shares. This is the more conservative and analytically relevant number for valuation purposes.

Technical Definition

Basic EPS = Net Income Available to Common Shareholders / Weighted Average Basic Shares Outstanding

Diluted EPS = Net Income (adjusted for convertible interest) / Weighted Average Diluted Shares

The diluted share count adds to basic shares: (a) in-the-money stock options (treasury stock method), (b) unvested restricted stock units, (c) convertible debt (if-converted method), (d) warrants.

EPS surprise = (Actual EPS − Consensus Estimate) / |Consensus Estimate| × 100%

Post-earnings announcement drift (PEAD): stocks with large positive EPS surprises tend to continue outperforming for 30-90 days after the announcement. This is one of the most replicated anomalies in empirical finance and suggests markets do not fully incorporate earnings information on announcement day.

Accrual quality: EPS is an accrual-based measure. High-quality earnings have cash earnings (operating cash flow / shares) close to GAAP EPS. A large positive gap between EPS and cash EPS per share may indicate unsustainable earnings.

How VectorFin Uses This

VectorFin's sentiment_drift signal detects language changes in earnings calls around guidance and EPS commentary. Management teams that repeatedly adjust guidance language in subtle ways — using more hedging language around "we expect" or shifting from specific to qualitative language — often foreshadow EPS misses in subsequent quarters.

The whystock_score composite includes an accruals component that flags companies where GAAP EPS significantly exceeds operating cash flow per share, a classic Piotroski quality signal (F₄).

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

Code Example

import requests

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

# Detect language changes around earnings guidance using sentiment drift
# High negative drift before earnings = potential miss signal

tickers = ["AAPL", "MSFT", "NVDA", "GOOGL", "META"]

print("Sentiment drift signals (potential EPS guidance shifts):")
print(f"{'Ticker':<8} {'Q2 2024':<12} {'Q3 2024':<12} {'Direction'}")
print("-" * 45)

for ticker in tickers:
    results = {}
    for period in ["2024-Q2", "2024-Q3"]:
        resp = requests.get(
            f"{API_BASE}/v1/signals/sentiment-drift/{ticker}",
            params={"period": period},
            headers={"X-API-Key": API_KEY},
        )
        if resp.ok:
            results[period] = resp.json()["drift_score"]

    if len(results) == 2:
        q2 = results.get("2024-Q2", 0)
        q3 = results.get("2024-Q3", 0)
        direction = "improving" if q3 > q2 else "deteriorating"
        print(f"{ticker:<8} {q2:<12.3f} {q3:<12.3f} {direction}")

Put EPS (Earnings Per Share) to work in your pipeline

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