Explainer

What is a stock index? Price-weighted vs cap-weighted, with US30 and US500

An index is a recipe, not a price. Change the recipe and the same five stocks tell a different story, as the numbers below show.

On this page
  1. Three decisions define every index
  2. Price-weighted index: one share of each
  3. Market-cap-weighted index: every company at its value
  4. Same five stocks, two different indices
  5. Divisors: why a stock split does not move the index
  6. What US30, US500 and the other codes mean
  7. Why the recipe matters when you use index data
  8. Questions

Key takeaways

  • A stock index is one number that tracks a basket of shares by a fixed recipe: which stocks, how much each counts, and a divisor that keeps the series continuous.
  • In a price-weighted index such as the US 30 benchmark, a $1 move counts the same for every member, so the most expensive share dominates.
  • In a cap-weighted index such as the US 500 benchmark, each company counts in proportion to its market value, usually its free-float market value.
  • On five real stocks, the week to 25 September 2026 ended -0.63% price-weighted and -0.74% cap-weighted; one stock was 57.8% of the first index and 13.0% of the second.
  • Index levels start from arbitrary bases, so compare percentage changes between indices, never the levels themselves.

A stock index is a single number that summarizes the prices of a basket of shares, calculated by a published recipe: which stocks are in, how much each one counts, and a divisor that keeps the number continuous when the basket changes. The level on its own means little. Its changes tell you what the basket did.

Codes such as US30 and US500, which our indices API uses in place of licensed benchmark names, describe exactly this: a US basket of 30 companies, or of about 500. The bigger difference between them is not the size of the basket but the weighting method. Below, both methods run on the same five real stocks, with Python you can use to reproduce the numbers.

Three decisions define every index

  • MembershipWhich stocks are in. Rules cover size, liquidity, sector and listing country, and a committee or a formula reviews them on a schedule.
  • WeightingHow much each member counts: by share price, by market value, by free-float market value, equally, or with a cap on the largest names.
  • DivisorA scaling number, adjusted for splits, spin-offs and membership changes, so the level does not jump when nothing in the market moved.

Levels also start from an arbitrary base, such as 100 or 1,000 on a chosen date. That is why US500 sits near 7,700 while US30 is above 51,000. The two levels are not comparable; only their percentage changes are.

Price-weighted index: one share of each

A price-weighted index adds up the price of one share of each member and divides by the divisor. It is the oldest method, because it can be computed with a pencil, and two major benchmarks still use it: the US 30 and the Japan 225.

level = (P1 + P2 + … + Pn) ÷ divisor

Pi
The share price of member i.
divisor
Starts at n, the number of members, and is adjusted for splits and membership changes.
Five closes on 25 September 2026: (87.81 + 343.06 + 146.23 + 106.15 + 935.45) ÷ 5 = 323.74

The consequence is blunt. A $1 move in any member moves the index by the same amount, 1 ÷ divisor points, whether the company is worth $30 billion or $3 trillion. A stock with a high share price dominates simply because its shares are expensive, not because the company is large.

Market-cap-weighted index: every company at its value

A market-cap-weighted index counts each company in proportion to its market capitalization: shares outstanding times price. Most modern benchmarks use it, including the US 500, US 100, Germany 40 and UK 100, usually float-adjusted, so only shares available to the public count and a founder's locked-up stake does not inflate the weight. Some also cap any single member to limit concentration.

weighti = sharesi × Pi ÷ Σ(shares × P)level = Σ(shares × P) ÷ divisor

sharesi
Shares outstanding of member i, or its free float in a float-adjusted index.
Σ
The sum over every member of the index.
divisor
Chosen so the index starts at its base value, then adjusted for membership changes.
US:JPM on 25 September 2026: 2,658M shares × 343.06 = $911.9B of a $2,088B basket, a weight of 43.7%.

Same five stocks, two different indices

Here are both methods on five large US companies over one week, 18 to 25 September 2026. Closing prices come from the daily bars on the stocks endpoint; share counts are rounded to the nearest million.

index_weights.pyPython
import os
import sys

import requests

BASE_URL = "https://api.tickerlayer.com"
HEADERS = {"x-api-key": os.environ["TICKERLAYER_API_KEY"]}
START, END = "2026-09-18", "2026-09-25"

# Shares outstanding in millions, rounded (company share counts, late September 2026).
SHARES_M = {"US:KO": 4303, "US:JPM": 2658, "US:PG": 2324, "US:DIS": 1752, "US:GS": 291}


def first_and_last_close(symbol):
    url = f"{BASE_URL}/stocks/agg/{symbol}/1/day/{START}/{END}"
    resp = requests.get(url, headers=HEADERS, params={"sort": "asc"}, timeout=10)
    if resp.status_code != 200:
        sys.exit(f"{symbol}: HTTP {resp.status_code} {resp.text[:120]}")
    bars = resp.json()["results"]
    if not bars:
        sys.exit(f"{symbol}: no bars between {START} and {END}")
    return bars[0]["c"], bars[-1]["c"]


closes = {s: first_and_last_close(s) for s in SHARES_M}
start_sum = sum(p0 for p0, _ in closes.values())
end_sum = sum(p1 for _, p1 in closes.values())
start_cap = sum(SHARES_M[s] * p0 for s, (p0, _) in closes.items())
end_cap = sum(SHARES_M[s] * p1 for s, (_, p1) in closes.items())

print(f"{'symbol':<8}{'close':>9}{'week':>9}{'price wt':>10}{'cap wt':>8}")
for s, (p0, p1) in closes.items():
    print(f"{s:<8}{p1:>9.2f}{p1 / p0 - 1:>+9.2%}{p1 / end_sum:>10.1%}{SHARES_M[s] * p1 / end_cap:>8.1%}")

divisor = len(closes)  # a new price-weighted index starts with divisor = number of stocks
print()
print(f"Price-weighted: {start_sum / divisor:.2f} -> {end_sum / divisor:.2f} ({end_sum / start_sum - 1:+.2%})")
print(f"Cap-weighted:   100.00 -> {100 * end_cap / start_cap:.2f} ({end_cap / start_cap - 1:+.2%})")
Output
symbol      close     week  price wt  cap wt
US:KO       87.81   -0.50%      5.4%   18.1%
US:JPM     343.06   -1.89%     21.2%   43.7%
US:PG      146.23   -0.11%      9.0%   16.3%
US:DIS     106.15   +3.39%      6.6%    8.9%
US:GS      935.45   -0.70%     57.8%   13.0%

Price-weighted: 325.80 -> 323.74 (-0.63%)
Cap-weighted:   100.00 -> 99.26 (-0.74%)
FeaturePrice-weightedCap-weighted
US:GS57.8%13.0%
US:JPM21.2%43.7%
US:PG9.0%16.3%
US:DIS6.6%8.9%
US:KO5.4%18.1%
Week to 25 Sep-0.63%-0.74%
Weights at the 25 September 2026 close. Same stocks, same prices, different recipe.

US:GS is 57.8% of the price-weighted index because one share costs $935, and only 13.0% of the cap-weighted one. US:KO is the reverse: the second-largest company here by value, and the smallest weight once only the share price counts. The two indices ended the week 0.11 percentage points apart. In a week when the expensive stock moves hard, that gap gets much wider.

Divisors: why a stock split does not move the index

Suppose US:GS split three for one. Its price would drop from 935.45 to 311.82 overnight with nothing changed about the company, and the price-weighted level would fall from 323.74 to 199.01. To stop that, the divisor is recomputed at the split so the level stays where it was.

new divisor = old divisor × (sum of prices after ÷ sum of prices before)

sum before
1,618.70, the five closes with US:GS at 935.45.
sum after
995.07, the same closes with US:GS at 311.82.
5 × (995.07 ÷ 1,618.70) = 3.0737, so the level stays at 995.07 ÷ 3.0737 = 323.74.

The level survives, the weights do not: after the split US:GS is 31.3% of the price-weighted index instead of 57.8%, though the business is exactly the same. In a cap-weighted index a split changes nothing, because shares triple while the price falls to a third and market value stays put. Membership changes and spin-offs get the same divisor treatment under both methods.

What US30, US500 and the other codes mean

The short answer to "what is US30" follows from the recipe: it is the generic code for the US 30 benchmark, 30 large US companies in a price-weighted index, where the priciest shares carry the most weight. US500 covers about 500 large US companies weighted by float-adjusted market value, and it is the usual stand-in for the US market as a whole. The table decodes the main codes by construction.

CodeBasketWeightingDividends
US3030 large US companiesPriceExcluded
US500About 500 large US companiesFloat-adjusted market capExcluded
US100100 largest non-financial companies on one US exchangeModified market capExcluded
US20002,000 smaller US companiesFloat-adjusted market capExcluded
JP225225 large Japanese companiesPrice, with adjustment factorsExcluded
DE4040 large German companiesFree-float market capReinvested
UK100100 large UK-listed companiesFree-float market capExcluded
EU5050 large eurozone companiesFree-float market cap, cappedExcluded
Decoded by construction. TickerLayer publishes the level of each code as an indicative reference value, not its constituents.

Why the recipe matters when you use index data

  • Price return or total return. Most headline levels drop dividends; DE40 reinvests them. Next to a price index, the German benchmark gets a head start of roughly its dividend yield every year, and over a decade that compounds into a large gap.
  • Concentration. In a cap-weighted index the largest companies drive most of the move. A 1% move in US:JPM shifts the five-stock index above by 0.44%; the same move in US:DIS shifts it by 0.09%.
  • Corporate actions. In a price-weighted index, weights change on events that change nothing about the business, so a member can lose half its influence overnight.
  • You cannot buy an index. You buy a fund or a derivative that tracks it. ETF vs index fund explains the choice, and the ETF API guide covers fund prices.
  • Signals inherit the recipe. A trend rule on a price-weighted index partly trades its most expensive shares. The golden cross backtest runs on US500 for that reason.

Price-weighted

  • Weight follows the share price.
  • Easy to compute and to explain.
  • A split cuts a member's weight.
  • Examples: US 30, Japan 225.

Cap-weighted

  • Weight follows market value, often float-adjusted.
  • Mirrors what the market is worth.
  • A split changes nothing.
  • Examples: US 500, US 100, Germany 40, UK 100.
The two methods side by side.

Questions

What is a stock index in simple terms?

It is one number that tracks the prices of a group of stocks using fixed rules. When the number rises 1%, the basket, weighted by those rules, rose about 1%.

What is US30?

US30 is the generic code for the US 30 benchmark: 30 large US companies in a price-weighted index. Because it is price-weighted, the most expensive shares move it the most.

What is the difference between a price-weighted and a market-cap-weighted index?

A price-weighted index weights each member by its share price. A market-cap-weighted index weights each member by its market value, shares times price, so bigger companies count for more regardless of their share price.

How are stock indices calculated?

Add up the member prices (price-weighted) or the member market values (cap-weighted), then divide by a divisor. The index provider adjusts the divisor for splits, spin-offs and membership changes so the level stays continuous.

Can you invest directly in a stock index?

No. An index is a calculation. You get exposure through products that track it, such as index ETFs, index mutual funds or derivatives.

Why is US30 so much higher than US500?

Each index started from its own base value on its own date, and the two use different methods. Levels are not comparable between indices; compare percentage changes instead.

Keep reading

Ready to integrate?

Start with the free tier, explore the docs, and connect via REST or WebSocket in minutes.