Are Gold Miners Leveraged Gold Bets? Rolling Beta Analysis in Python
June 18, 2026
What's the question?
Gold miners are often described as leveraged exposure to gold. The logic is intuitive. If the gold price rises while mining costs remain partly fixed, miner profits can rise faster than the metal price. If gold falls, the same operating leverage can work in reverse.
Beta gives this claim a measurable form. A beta of 1.5 to GLD means that, on average, a 1% daily move in GLD corresponds to a 1.5% move in the miner or miner ETF. Correlation measures how consistently the two move together.
The question is whether gold miners behave like amplified gold exposure in daily returns, and whether that relationship is stable enough to use in portfolio risk models.
The approach
The test compares GDX, NEM, AEM, and GOLD against GLD. Built from SEC EDGAR public filings and market data, the analysis uses five years of daily returns.
- Pull daily returns for GLD and gold miner exposures
- Estimate full-sample beta as covariance with GLD divided by GLD variance
- Compute rolling 63-day beta to measure changing sensitivity
- Compute correlation and annualized volatility
- Compare up-capture and down-capture when GLD is positive or negative
Up-capture measures how much miners move on days when GLD rises. Down-capture measures the same relationship on days when GLD falls.
Code
import xfinlink as xfl
import pandas as pd
import numpy as np
xfl.set_api_key("YOUR_API_KEY") # free at https://xfinlink.com/signup
tickers = ["GLD", "GDX", "NEM", "AEM", "GOLD"]
returns = xfl.prices(tickers, period="5y", fields=["return_daily"])
daily = returns.pivot_table(index="date", columns="ticker", values="return_daily").dropna()
rows = []
for ticker in ["GDX", "NEM", "AEM", "GOLD"]:
beta = daily[ticker].cov(daily["GLD"]) / daily["GLD"].var()
rolling_beta = daily[ticker].rolling(63).cov(daily["GLD"]) / daily["GLD"].rolling(63).var()
rows.append({
"ticker": ticker,
"beta": beta,
"latest_rolling_beta": rolling_beta.dropna().iloc[-1],
"correlation": daily[ticker].corr(daily["GLD"]),
"volatility": daily[ticker].std() * np.sqrt(252),
})
print(pd.DataFrame(rows).sort_values("beta", ascending=False))
Full script with formatting and visualisation: gold-miner-beta-python.py
Output
=== Gold Miner Beta to GLD ===
Universe: GDX, NEM, AEM, GOLD versus GLD
Sample: 2021-06-21 to 2026-06-17 (1234 trading days)
Rolling beta window: 63 trading days
Beta ranking:
GDX full_beta= 1.62 latest_beta= 1.56 median_beta= 1.65 corr= 0.80 vol=36.4% up_capture= 1.71x down_capture= 1.80x
AEM full_beta= 1.51 latest_beta= 1.40 median_beta= 1.57 corr= 0.74 vol=36.8% up_capture= 1.63x down_capture= 1.66x
NEM full_beta= 1.40 latest_beta= 1.32 median_beta= 1.44 corr= 0.67 vol=37.7% up_capture= 1.45x down_capture= 1.55x
GOLD full_beta= 1.30 latest_beta= 0.76 median_beta= 1.52 corr= 0.44 vol=52.6% up_capture= 1.42x down_capture= 1.43x
Highest beta: GDX at 1.62x GLD
Lowest beta: GOLD at 1.30x GLD
What this tells us
Gold miners behaved like leveraged gold exposure over the sample. Every miner exposure had a beta above 1.0. GDX had the highest full-sample beta at 1.62, followed by AEM at 1.51, NEM at 1.40, and GOLD at 1.30.
The relationship is strongest for GDX. Its correlation with GLD is 0.80, and its latest rolling beta is 1.56, close to the full-sample estimate. That makes it the cleanest instrument in this group for amplified gold exposure.
Individual miners add company-specific risk. GOLD has a full-sample beta of 1.30, but its correlation is only 0.44 and its volatility is 52.6%. The lower correlation means more of its return variation comes from factors other than GLD, such as operating performance, jurisdiction exposure, costs, and balance-sheet risk.
So what?
Gold miners can increase gold sensitivity without using leverage, but they are not interchangeable with gold. The beta is higher, the volatility is higher, and individual company risk can weaken the hedge properties.
For portfolio construction, GDX is the cleaner beta instrument. Individual miners require a separate risk budget because their returns include both metal sensitivity and idiosyncratic equity risk. A gold allocation built with miners should be stress-tested as equity exposure, not only as commodity exposure.
Built with xfinlink — free financial data API for Python. pip install xfinlink
pip install xfinlink