How to Calculate Historical VaR for an Equity Position
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.
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 | |
|---|---|
| Parameter | Value |
| Instrument | Booking Holdings Inc. common stock, primary listing Nasdaq |
| Position | 1,000 shares long |
| Valuation date | 2 Oct 2026, closing price $159.02 |
| Position value (V) | $159,020 |
| Lookback | Ten years, 3 Oct 2016 to 2 Oct 2026 |
| Scenarios (N) | 2,610 weekdays, one-day horizon |
| Risk measures | Historical VaR at 99%, Expected Shortfall at 97.5%, worst scenario, volatility |
| Shock types | Relative (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.
Before calculating any scenario, two checks on the series are worthwhile.
- 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.
- 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 | ||||
|---|---|---|---|---|
| Effective | Ticker | Issuer name | ISIN | What it means |
| 30 Mar 1999 | PCLN | Priceline.com Inc. | Earlier ISIN | Listing starts on Nasdaq |
| 3 Oct 2016 | PCLN | The Priceline Group Inc. | US7415034039 | Identity at the start of the ten-year lookback |
| 27 Feb 2018 | BKNG | Booking Holdings Inc. | US09857L1089 | Rename: new ticker and ISIN, same security, same listing |
| 6 Apr 2026 | BKNG | Booking Holdings Inc. | US09857L1089 | 25-for-1 split: ISIN unchanged, share count multiplied |
| Today | PCLN | An unrelated exchange-traded fund on another venue | Different ISIN | The 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 type | Events | Records | Effect on the price series | Treatment in price-return VaR |
| Forward split (bonus issue, 24 new shares for each share held) | 1 | 4 | Price units change 25× on the ex-date | Adjust history |
| Cash dividends | 11 | 31 | Price falls by the dividend on the ex-date, about 0.2% | Keep as a market move |
| Shares outstanding updates | 40 | 40 | None | Cross-check |
| Shareholder meetings | 9 | 9 | None | Information only |
| Company announcements | 2 | 2 | None | Information only |
| Board lot change, 100 to 10 shares | 1 | 1 | None on price | Reference 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 published | Action | Ratio | Record date | Pay date | Ex-date |
| 21 Feb 2026 | New event | 1 old : 25 new | 6 Mar 2026 | 3 Apr 2026 | 6 Apr 2026 |
| 24 Feb 2026 | Update | 1 old : 25 new | 6 Mar 2026 | 2 Apr 2026 | 6 Apr 2026 |
| 3 Mar 2026 | Update | 1 old : 25 new | 6 Mar 2026 | 2 Apr 2026 | 6 Apr 2026 |
| 6 Mar 2026 | Update | 1 old : 25 new | 6 Mar 2026 | 2 Apr 2026 | 6 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-date | Event | Price factor | Applied |
| 7 Mar 2024 | Cash dividend USD 8.75 | 0.997448 | No |
| 7 Jun 2024 | Cash dividend USD 8.75 | 0.997703 | No |
| 6 Sep 2024 | Cash dividend USD 8.75 | 0.997686 | No |
| 6 Dec 2024 | Cash dividend USD 8.75 | 0.998345 | No |
| 7 Mar 2025 | Cash dividend USD 9.60 | 0.997956 | No |
| 6 Jun 2025 | Cash dividend USD 9.60 | 0.998277 | No |
| 5 Sep 2025 | Cash dividend USD 9.60 | 0.998281 | No |
| 5 Dec 2025 | Cash dividend USD 9.60 | 0.998090 | No |
| 6 Mar 2026 | Cash dividend USD 10.50 | 0.997724 | No |
| 6 Apr 2026 | 25-for-1 split (bonus issue of 24 for 1) | 0.04 | Yes, once |
| 5 Jun 2026 | Cash dividend USD 0.42 | 0.997492 | No |
| 11 Sep 2026 | Cash dividend USD 0.42 | 0.997591 | No |
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 | |||
|---|---|---|---|
| History | Close 2 Apr 2026 | Close 6 Apr 2026 | One-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.
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 | ||||
|---|---|---|---|---|
| Treatment | Absolute VaR 99% | Worst scenario, absolute | Volatility | Split-day return |
| Split day removed, no factor | $161,312 | −$477,610 | 32.2% | Removed |
| Factor applied once (correct) | $6,825 | −$19,104 | 32.3% | +5.02% |
| Factor applied twice (both listing records) | $3,518 | −$12,990 | 785.4% | +2,525.43% |
| Dividend factors applied as well | $6,667 | −$18,967 | 32.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 | ||||
|---|---|---|---|---|
| Measure | As received | + Identity resolved | + Events identified | + Prices adjusted |
| Genuine observations | 2,162 | 2,514 | 2,514 | 2,514 |
| Flat scenarios (no price) | 448 | 96 | 96 | 96 |
| 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 volatility | 43.2% | 43.9% | 32.2% | 32.3% |
| Worst day | 6 Apr 2026, −95.8% | 6 Apr 2026, −95.8% | 7 Nov 2017, −13.5% | 7 Nov 2017, −13.5% |
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.
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 | ||||
|---|---|---|---|---|
| Date | Return | Relative P&L | Absolute P&L, adjusted | Absolute P&L, as received |
| 7 Nov 2017 | −13.52% | −$21,499 | −$10,291 | Missing, 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.