Quant Finance

What is Alpha?

The excess return of an investment above what would be predicted by its market exposure, representing genuine skill or informational edge.

In Plain English

Alpha is the answer to the question every investor should ask: "Did this manager actually add value, or did they just ride the market?" If the stock market returns 20% and your portfolio manager returns 22%, they look great — but if their portfolio just had extra market risk (high beta), that 2% premium might be exactly what you'd expect from the additional risk, not from skill. True alpha is what's left over after you account for all the systematic risk factors.

The concept comes from the capital asset pricing model (CAPM), where expected return = risk-free rate + beta × market return. Alpha is the intercept: the return above and beyond what the model predicts. A fund with consistent positive alpha is generating returns that can't be explained by market exposure alone. That's evidence of genuine skill, better information, or a structural edge.

For quantitative funds, the search for alpha is the entire game. The hunt is for signals — indicators that predict future stock performance — that are (1) statistically significant, (2) economically meaningful, (3) uncorrelated with existing factors, and (4) implementable after transaction costs. Data vendors like VectorFin exist because alternative data can provide informational edges before that information becomes widely known and priced in.

Think of alpha as the value added by insight. A weather forecaster who just says "it'll be an average day" has zero alpha. One who predicts the specific storm three days out has positive alpha. In markets, predicting what earnings calls will reveal before they're public — or reading subtle tone shifts in management language that others miss — generates alpha.

Alpha decays over time as more investors discover and trade on the same signal. The most durable alpha sources are either difficult to collect, difficult to interpret, or require significant infrastructure to operationalize — all of which describe high-quality alternative data.

Technical Definition

Jensen's alpha for a portfolio p over period T using CAPM:

α_p = r̄_p − [r_f + β_p (r̄_m − r_f)]

where r̄_p is realized portfolio return, r_f is the risk-free rate, β_p is the portfolio's market beta, and r̄_m is the market return.

In multi-factor models (Fama-French 5-factor, AQR), alpha is the intercept of the time-series regression:

r_p,t − r_f,t = α + β₁(MKT_t) + β₂(SMB_t) + β₃(HML_t) + β₄(RMW_t) + β₅(CMA_t) + ε_t

A statistically significant positive intercept indicates alpha unexplained by the included factors.

Information ratio = alpha / tracking error, which adjusts alpha for the consistency of its delivery. A signal with 2% alpha but 10% tracking error (IR=0.2) is less useful than one with 1% alpha and 2% tracking error (IR=0.5).

How VectorFin Uses This

The whystock_score signal in VectorFin's signals/whystock_score table is a composite factor score combining fundamentals, momentum, and analyst sentiment. Backtests using this signal as a long/short equity factor have demonstrated statistically significant alpha above the Fama-French 5-factor model.

The sentiment_drift signal — the cosine distance between consecutive earnings call embeddings — captures a qualitative alpha source: management tone shifts that occur before they're reflected in consensus estimates. Stocks with large positive sentiment drift (management becoming notably more optimistic) have historically outperformed over the subsequent 30-90 days.

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

Code Example

import requests
import pandas as pd
import numpy as np

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

# Fetch whystock_score for a universe of tickers
tickers = ["AAPL", "MSFT", "NVDA", "GOOGL", "META", "AMZN", "TSLA", "JPM", "GS", "BAC"]

scores = []
for ticker in tickers:
    resp = requests.get(
        f"{API_BASE}/v1/signals/whystock-score/{ticker}",
        params={"date": "2024-10-01"},
        headers={"X-API-Key": API_KEY},
    )
    if resp.ok:
        data = resp.json()
        scores.append({"ticker": ticker, "score": data["score"]})

df = pd.DataFrame(scores).sort_values("score", ascending=False)

# Simple long/short portfolio: long top quintile, short bottom quintile
long_tickers = df.head(2)["ticker"].tolist()
short_tickers = df.tail(2)["ticker"].tolist()

print(f"Long: {long_tickers}")
print(f"Short: {short_tickers}")
print(f"\nFull rankings:\n{df.to_string(index=False)}")

Put Alpha to work in your pipeline

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