How to Calculate Historical VaR for an Equity Position

About this article
This article explains how to calculate historical-simulation Value at Risk for an equity position, using ten years of daily prices for Booking Holdings as a worked example. It covers the method and the data preparation that comes before it: resolving the instrument's identity with security reference data, identifying corporate actions, and adjusting prices with price adjustment factors. Each step shows the data used and its effect on the results.
  1. Historical VaR in brief
  2. The worked example
  3. Step 1: Collect the price history
  4. Step 2: Resolve the instrument's identity
  5. Step 3: Identify corporate actions
  6. Step 4: Adjust prices to current share units
  7. Step 5: Calculate and validate VaR
  8. A checklist for equity price histories
  9. How Cumulus9 supports this

Historical VaR in brief

Historical simulation estimates the loss a position could suffer over a given horizon by replaying past market moves on today's position. Each day in the lookback period becomes one scenario. Sorting the scenario P&L values gives an empirical loss distribution: Value at Risk (VaR) is a quantile of that distribution, and Expected Shortfall (ES) is the average of the losses beyond it.

Relative shock
P&Lt = V × (Pt / Pt−1 − 1)
Absolute shock
P&Lt = Q × (Pt − Pt−1)
Value at Risk
VaR99% = − q1%(P&L1, …, P&LN)
Expected Shortfall
ES97.5% = − mean{ P&Lt : P&Lt ≤ q2.5% }

Here Pt is the closing price on day t, V is today's position value and Q is today's quantity of shares. With N = 2,610 scenarios, the 1% quantile is interpolated between the 27th and 28th worst outcomes, and the 97.5% Expected Shortfall averages roughly the 66 worst. Scenarios run on a weekday calendar: on an exchange holiday the previous close carries forward, so the day contributes a scenario with no price change.

There are two common ways to turn a historical move into a scenario. A relative shock applies the historical percentage return to today's position value and is the usual choice for equities. An absolute shock applies the historical price change per share to today's quantity, and is used where risk scales with price differences rather than price levels. Because absolute shocks use historical price levels directly, they require every price in the history to be expressed in the same units. That requirement is the main reason this article spends most of its time on data preparation.

The lookback is a trade-off. A one-year window reacts quickly to current conditions but forgets past stress periods; a ten-year window keeps them in the sample. Ten years is also a regulatory reference point: under EMIR, one of the anti-procyclicality tools available to central counterparties is a margin floor based on volatility estimated over a ten-year historical lookback. The longer the lookback, the longer any inconsistency in the price history stays in the sample, so careful preparation of the history becomes more valuable.

The worked example

Study case set-up
ParameterValue
InstrumentBooking Holdings Inc. common stock, primary listing Nasdaq
Position1,000 shares long
Valuation date2 Oct 2026, closing price $159.02
Position value (V)$159,020
LookbackTen years, 3 Oct 2016 to 2 Oct 2026
Scenarios (N)2,610 weekdays, one-day horizon
Risk measuresHistorical VaR at 99%, Expected Shortfall at 97.5%, worst scenario, volatility
Shock typesRelative (returns) and absolute (price differences)

Booking Holdings is a convenient example because its last ten years contain the three situations that most often need attention in an equity price history: a change of identity (Priceline became Booking Holdings in 2018), a change of share units (the 25-for-1 split of April 2026) and cash dividends (paid quarterly since 2024).

Step 1: Collect the price history

A common starting point is a list of daily closing prices requested by ticker. Requesting BKNG returns prices from 27 February 2018 onwards, shown in red below.

Figure 1 · Daily closes, 2016 to 2026
Weekly sample on a logarithmic scale. Red: closes requested under the ticker BKNG. Dotted: predecessor closes under PCLN, recovered in step 2. Both are in the share units of their day. Blue: the full history adjusted to current share units in step 4.

Before calculating any scenario, two checks on the series are worthwhile.

  1. Coverage. Does the history span the whole lookback? This one starts on 27 February 2018, so the first 17 months are missing. Under the weekday convention those days become flat scenarios with zero P&L: 448 of the 2,610 scenarios, including exchange holidays.
  2. Units. Is every price quoted for the same share? Closes before 6 April 2026 are quoted per old share and closes from that date per new share, with 25 new shares for each old one. The move from $4,194.31 to $176.19, a return of −95.8%, reflects the change of units rather than a market move.

Used as it is, this history gives an absolute VaR of $161,312 for a position worth $159,020, and a worst absolute scenario of −$4.0 million. Results of this kind indicate that the input needs preparation; they do not describe the risk of the position. Steps 2 to 4 resolve the coverage and units questions.

Step 2: Resolve the instrument's identity

Security reference data describes the instrument itself: permanent security and listing identifiers, the dated history of the tickers, ISINs and names attached to them, and point-in-time reference data such as shares outstanding and trading lot size.

Security reference data: identifier history
EffectiveTickerIssuer nameISINWhat it means
30 Mar 1999PCLNPriceline.com Inc.Earlier ISINListing starts on Nasdaq
3 Oct 2016PCLNThe Priceline Group Inc.US7415034039Identity at the start of the ten-year lookback
27 Feb 2018BKNGBooking Holdings Inc.US09857L1089Rename: new ticker and ISIN, same security, same listing
6 Apr 2026BKNGBooking Holdings Inc.US09857L108925-for-1 split: ISIN unchanged, share count multiplied
TodayPCLNAn unrelated exchange-traded fund on another venueDifferent ISINThe old ticker now belongs to another instrument

A ticker is a label that can be reassigned. The permanent security and listing identifiers are what connect the 1999 listing to the stock trading today.

The stock that trades as BKNG today is the same security, on the same Nasdaq listing, that traded as PCLN until 26 February 2018. The ISIN changed with the rename, but the permanent identifiers did not. Joining the price history on those identifiers recovers the predecessor period. Joining on the ticker alone would not work: PCLN now identifies an unrelated exchange-traded fund, so a ticker-based join could combine two different instruments.

With identity resolved, the history gains 352 trading days, and the flat scenarios fall from 448 to 96, which are the exchange holidays and closures of ten years. The recovered period includes the largest one-day loss of the decade, −13.5% on 7 November 2017. Relative VaR rises from $8,710 to $9,324, an increase of 7.0%, because the sample now contains losses that the shorter history left out.

Step 3: Identify corporate actions

Corporate action records describe what happened to a security, when, and in what proportion. Since May 2018, 64 events have been recorded for Booking Holdings. Each one can be classified by its effect on the price series.

Corporate action records since May 2018: 64 events, 87 records including revisions
Event typeEventsRecordsEffect on the price seriesTreatment in price-return VaR
Forward split (bonus issue, 24 new shares for each share held)14Price units change 25× on the ex-dateAdjust history
Cash dividends1131Price falls by the dividend on the ex-date, about 0.2%Keep as a market move
Shares outstanding updates4040NoneCross-check
Shareholder meetings99NoneInformation only
Company announcements22NoneInformation only
Board lot change, 100 to 10 shares11None on priceReference data

Three categories cover most cases. Capital events such as splits, consolidations and bonus issues change the units of the price and require an adjustment. Cash distributions such as ordinary dividends lower the price by the amount paid; whether to adjust for them is a methodology choice discussed in step 4. Informational events such as meetings or share-count updates need no action on prices.

Corporate actions should be read point in time. The split was first recorded on 21 February 2026, six weeks before the ex-date, and updated three times as the details were confirmed:

The split as it was recorded, point in time
Record publishedActionRatioRecord datePay dateEx-date
21 Feb 2026New event1 old : 25 new6 Mar 20263 Apr 20266 Apr 2026
24 Feb 2026Update1 old : 25 new6 Mar 20262 Apr 20266 Apr 2026
3 Mar 2026Update1 old : 25 new6 Mar 20262 Apr 20266 Apr 2026
6 Mar 2026Update1 old : 25 new6 Mar 20262 Apr 20266 Apr 2026

Four records describe one event. Only the latest revision is used, and it was available six weeks before the ex-date.

Only the latest revision of each event should be used; treating each record as a separate event would apply the same split several times. Security reference data provides an independent cross-check: shares outstanding move from 31.7 million in February 2026 to 774.9 million in April 2026, a ratio of 24.5, consistent with a 25-for-1 split net of share buybacks.

Identifying the event already improves the relative measures. If the 6 April return is excluded from the scenario set, relative Expected Shortfall falls from $11,980 to $9,772 and annualised volatility from 43.9% to 32.2%. The absolute measures do not improve, because prices before April 2026 are still quoted per old share, and excluding the day also discards the genuine market move of that session. Adjusting the prices, rather than excluding the day, resolves both points.

Step 4: Adjust prices to current share units

A price adjustment factor is the multiplier that corresponds to an event: every price strictly before the ex-date is multiplied by it. For a 25-for-1 split the factor is 1/25 = 0.04.

Price adjustment factors for the Nasdaq listing
Ex-dateEventPrice factorApplied
7 Mar 2024Cash dividend USD 8.750.997448No
7 Jun 2024Cash dividend USD 8.750.997703No
6 Sep 2024Cash dividend USD 8.750.997686No
6 Dec 2024Cash dividend USD 8.750.998345No
7 Mar 2025Cash dividend USD 9.600.997956No
6 Jun 2025Cash dividend USD 9.600.998277No
5 Sep 2025Cash dividend USD 9.600.998281No
5 Dec 2025Cash dividend USD 9.600.998090No
6 Mar 2026Cash dividend USD 10.500.997724No
6 Apr 202625-for-1 split (bonus issue of 24 for 1)0.04Yes, once
5 Jun 2026Cash dividend USD 0.420.997492No
11 Sep 2026Cash dividend USD 0.420.997591No

A factor multiplies every price strictly before its ex-date. The dividend per share falls from $10.50 to $0.42 across the split: the same payout, in new share units.

Applying the split factor once expresses the whole history in current share units, shown in blue in figure 1. The split day then shows the market move that actually took place:

The split day, before and after adjustment
HistoryClose 2 Apr 2026Close 6 Apr 2026One-day return
Unadjusted$4,194.31$176.19−⁠95.80%
Adjusted, factor 0.04$167.77$176.19+5.02%

3 April 2026 was a market holiday, so 2 April is the previous close. After adjustment the day is what it really was: a 5% gain.

The effect is clearest in the absolute-shock scenarios. Before adjustment, every scenario before April 2026 is measured in old shares and is 25 times larger than the same move in current shares. After adjustment, the whole decade is on a single scale.

Figure 2 · Absolute-shock scenarios, before and after adjustment
One point per scenario for 1,000 shares. The unadjusted split-day scenario (−⁠$4,018,120) lies below the visible range. Drag across the chart to zoom.

Absolute VaR moves from $161,312 to $6,825, absolute Expected Shortfall from $164,758 to $7,235, and the worst absolute scenario from −$477,610 to −$19,104.

Good practice when applying factors

The factor is a single number, but how it is applied changes the result. The table compares the correct treatment with three common alternatives.

Effect of different factor treatments
TreatmentAbsolute VaR 99%Worst scenario, absoluteVolatilitySplit-day return
Split day removed, no factor$161,312−⁠$477,61032.2%Removed
Factor applied once (correct)$6,825−⁠$19,10432.3%+5.02%
Factor applied twice (both listing records)$3,518−⁠$12,990785.4%+2,525.43%
Dividend factors applied as well$6,667−⁠$18,96732.3%+5.02%
  • Apply each event once. A security quoted on more than one venue has one factor record per listing for the same event. Use the record for the listing that matches the instrument. Applying both records here would give 0.04 × 0.04 = 0.0016 and roughly halve absolute VaR.
  • Treat dividends as an explicit choice. Applying dividend factors turns a price-return history into a total-return history. Both are valid for different purposes. For price-return VaR, apply capital events only and keep ordinary cash dividends as market moves.
  • Reconcile sources on content. An event record and its adjustment factor can come from different sources and carry different identifiers for the same event. Match them on security, ex-date and event type.

Step 5: Calculate and validate VaR

With the history prepared, the scenarios and risk measures can be calculated. The table shows the results after each step, so the contribution of each preparation step is visible.

1,000 shares, valued at $159,020
MeasureAs received+ Identity resolved+ Events identified+ Prices adjusted
Genuine observations2,1622,5142,5142,514
Flat scenarios (no price)448969696
Relative VaR 99%$8,710$9,324$8,840$8,840
Relative ES 97.5%$11,676$11,980$9,772$9,772
Absolute VaR 99%$161,312$162,155$161,312$6,825
Absolute ES 97.5%$221,259$223,965$164,758$7,235
Worst scenario, relative−⁠$152,340−⁠$152,340−⁠$21,499−⁠$21,499
Worst scenario, absolute−⁠$4,018,120−⁠$4,018,120−⁠$477,610−⁠$19,104
Annualised volatility43.2%43.9%32.2%32.3%
Worst day6 Apr 2026, −⁠95.8%6 Apr 2026, −⁠95.8%7 Nov 2017, −⁠13.5%7 Nov 2017, −⁠13.5%
Figure 3 · Risk measures after each step
Each measure as a percentage of the position value, on a logarithmic scale.

The measures respond differently to the preparation steps:

  • Relative VaR changes little overall, from $8,710 to $8,840. The two corrections act in opposite directions: the recovered history adds $614 and the split adjustment removes $484. A 1% quantile is also, by construction, not sensitive to a single extreme observation.
  • Relative Expected Shortfall, volatility and the worst scenario depend more on individual observations. Expected Shortfall falls by 16% and volatility from 43.2% to 32.3%.
  • Absolute measures depend on price levels and change by a factor of more than 20.

For that reason, validation should look beyond the VaR figure. Two checks are particularly useful. The first is rolling volatility: on the unadjusted history the one-year volatility rises above 100% in April 2026 and would stay there until the split leaves the 252-day window in March 2027, while on the adjusted history it stays between 29% and 37% through 2026.

Figure 4 · Rolling one-year volatility
Annualised volatility of a 252-scenario window, sampled weekly. The two series coincide until the split.

The second is the tail itself. Every scenario among the worst outcomes should correspond to a dated market move that can be explained.

The ten worst scenarios in the final history
DateReturnRelative P&LAbsolute P&L, adjustedAbsolute P&L, as received
7 Nov 2017−⁠13.52%−⁠$21,499−⁠$10,291Missing, flat scenario
12 Mar 2020−⁠11.24%−⁠$17,870−⁠$6,484−⁠$162,100
28 Feb 2019−⁠10.96%−⁠$17,434−⁠$8,358−⁠$208,960
27 Mar 2020−⁠10.73%−⁠$17,061−⁠$6,034−⁠$150,850
23 Feb 2024−⁠10.15%−⁠$16,140−⁠$15,841−⁠$396,030
18 Mar 2020−⁠9.83%−⁠$15,633−⁠$5,380−⁠$134,510
3 Feb 2026−⁠9.32%−⁠$14,827−⁠$19,104−⁠$477,610
16 Mar 2020−⁠9.26%−⁠$14,730−⁠$5,266−⁠$131,660
2 Aug 2024−⁠9.17%−⁠$14,584−⁠$13,442−⁠$336,050
7 Mar 2022−⁠8.46%−⁠$13,449−⁠$6,715−⁠$167,880

Four of the ten fall in the COVID-19 sell-off of March 2020. The worst genuine day of the decade sits in the recovered PCLN period.

A checklist for equity price histories

  • Key the history on a permanent security identifier rather than on the ticker.
  • Recover predecessor history across renames and identifier changes, and keep the dated identifier history separate from the current mapping.
  • Read corporate actions point in time and use the latest revision of each event.
  • Classify each event by its effect on prices: a change of units, a cash distribution, or information only.
  • Apply each capital-event factor once, from the matching listing, to prices strictly before the ex-date.
  • Choose explicitly between price return and total return.
  • Report coverage, and treat missing observations explicitly.
  • Validate with the tail scenarios and volatility, not only with the VaR figure.
  • Where reference data coverage is incomplete, use the unadjusted history and flag it rather than inferring a factor from a price move.

How Cumulus9 supports this

Every step in this guide runs automatically in the Cumulus9 platform, for every equity in every portfolio, so risk teams get the result without maintaining price histories by hand.

  • Identity. Instruments are resolved through permanent identifiers with a complete dated identifier history, so renames, ISIN changes and reused tickers never truncate a history or mix in another instrument.
  • Corporate actions. Events are read point in time, each one resolved to its latest revision and classified by its effect on prices.
  • Price adjustment. Capital-event factors are applied once, from the matching listing, and every adjusted history carries its coverage dates and provenance. Price return or total return is an explicit setting.
  • Risk calculation. Historical VaR and Expected Shortfall with a configurable lookback from one year to ten years and beyond, any confidence level and horizon, and relative or absolute shocks.
  • Transparency. The full historical P&L vector sits behind every figure, together with the tail scenarios and volatility used to validate it, so every number can be traced to dated market moves.
  • Speed. Portfolios of thousands of positions are revalued in under two seconds.

Notes on data and method

Prices are official daily closes. Scenario P&L figures are the output of historical simulation applied to a hypothetical position, not realised gains or losses. All figures are as of the close on 2 October 2026.

Get in touch to see historical VaR for your own equity portfolios in Cumulus9.