A Beta of 1.5 Means Nothing If It Was Measured Against the Wrong Index
6 min read
6 min read
A screener shows a beta of 1.5 next to your IDX stock, and it looks like a settled fact. Beta is supposed to measure how much a stock moves relative to the market, so a higher number means the stock swings harder with the market, right? That's true only if the calculation behind it did two things correctly: compared the stock to the market it actually trades in, and lined up the days being compared. Get either step wrong and the number that comes out looks exactly as legitimate as a correct one.
Beta is the covariance of an asset's returns with a benchmark's returns, divided by the variance of the benchmark's returns. In plain terms: on days the benchmark moves, how much does this asset tend to move with it, and in what proportion. A beta of 1.0 means the asset has, on average, moved in step with the benchmark. A beta of 1.5 means it moved about 50% more than the benchmark, in the same direction, on average. A beta of 0.5 means about half as much.
That definition hides a choice most explanations skip past: beta relative to what? For a US stock, the market is usually the S&P 500. For an IDX stock, it isn't. Measuring a stock's beta against the S&P 500 answers "how does this stock move with American markets," which is a real question but a different one from "how does this stock move with IHSG," the market it's actually listed on.
NetWort's own beta calculation treats this as a hard rule rather than a detail: the benchmark is auto-selected by the ticker's market, ^JKSE (the IDX Composite) for any .JK-suffixed ticker, ^GSPC (the S&P 500) for US tickers, ^HSI for Hong Kong, ^FTSE for London (backend/app/calculations/beta.py). That rule exists in the code specifically because an earlier, simpler version of this calculation used one fixed benchmark for every asset, which is silently wrong for anything not listed on a US exchange.
Take a hypothetical stock, illustrative numbers only, whose return each month is exactly 1.5 times whatever IHSG did that month, in the same direction:
| Month | IHSG | Stock C |
|---|---|---|
| 1 | +3% | +4.5% |
| 2 | -2% | -3% |
| 3 | +4% | +6% |
| 4 | -1% | -1.5% |
| 5 | +2% | +3% |
| 6 | -3% | -4.5% |
Because Stock C's return is exactly 1.5 times IHSG's return every month, its beta against IHSG works out to exactly 1.5: the covariance between the two series is 1.5 times the variance of IHSG's own returns, and dividing one by the other returns the multiplier directly. Real return series are never this clean, but the arithmetic behind the number is exactly this, covariance over variance, nothing more exotic.
Getting the benchmark right isn't sufficient either. Covariance and variance are calculated across paired days: IHSG's return on a given date lined up against the stock's return on that same date. If the two return series get matched by position in an array rather than by calendar date, and the two markets don't share exactly the same trading days (different public holidays, different weekly schedules for stocks versus crypto), the pairing quietly slides out of alignment. Day 47 of one series stops being the same calendar day as day 47 of the other, and the resulting number isn't approximately right, it's a beta computed from the wrong pairs entirely.
This isn't a hypothetical risk. NetWort's own codebase carried exactly this bug: an earlier version of the beta calculation received returns without their date index, fell back to matching by array position, and produced wrong covariance, wrong volatility and wrong beta for any portfolio mixing assets with different trading calendars, such as stocks alongside crypto (2 known-issue.md, 2026-07-19 entry). The fix still in place today joins both return series on their date index before doing any arithmetic, so only genuinely overlapping trading days get compared, and requires at least 30 overlapping observations before returning a number at all, rather than a beta computed from too little overlap to mean anything.
A high beta doesn't mean a stock is riskier in every sense; it means the stock's moves tend to track the market's moves at that magnitude. A stock can carry a low beta and still be individually volatile, if its price swings for reasons mostly unrelated to IHSG's own moves that day, sector news or a company-specific event rather than something market-wide. That's a different measurement from volatility, which describes how much a price swings on its own, without reference to any benchmark at all.
The Sharpe ratio NetWort also shows is built on total volatility as its denominator, not beta, a reminder that these are three separate lenses on risk, not three names for the same thing: how much a price swings in isolation (volatility), how much of that swing tracks the broader market (beta), and how much return you got per unit of that swing (Sharpe).
Before trusting a beta figure for an IDX stock from anywhere, including a screener, check two things: whether the market used as the benchmark is actually IHSG, not a US or global index by default, and roughly how many trading days the calculation drew from. The same discipline applies to reading any single portfolio number in isolation: the return your broker's app shows you isn't automatically your real return either, for a related but different reason, the method underneath the number matters as much as the number itself.