How to calculate adjusted prices
The price data obtained via file download does not include adjusted price values. If you are using downloaded files (instead of calling the API), use the provided adjustment factor to calculate adjusted prices yourself.
In addition to unadjusted prices (O/H/L/C/Vo), the data includes the adjustment factor AdjFactor to reflect stock splits/reverse splits
(e.g., for a 1:2 stock split, AdjFactor = 0.5 on the ex-date).
This page explains, for spreadsheet users, how to calculate adjusted prices (e.g., adjusted close) yourself using AdjFactor.
Assumptions (what “adjusted” means here)
- Goal: Remove artificial jumps caused by stock splits/reverse splits and rights issues so the time series is easier to compare.
- Scope: Adjustments in this API cover stock splits/reverse splits and rights issues (rights issues of foreign stocks and issues listed on TOKYO PRO Market, and some corporate actions such as dividends, are not covered).
- Product type and event type: There is no difference in the formula by product type such as common stocks, ETFs, and REITs. The only difference by event type is that the factor of a rights issue (shareholder allotment, etc.) is not applied to adjusted trading volume.
- Retroactive changes: Adjusted items (
Adj*) are revised retroactively for past dates when a stock split, reverse stock split, or rights issue occurs. The adjusted prices as they were delivered at each past point in time cannot be obtained from the API. To reproduce the adjusted prices as delivered at a past point in time (point-in-time), use the unadjusted values (O,H,L,C,Vo), which are not changed after the fact, together with theAdjFactorvalues of the ex-rights dates that had occurred up to that point in time, following the procedure on this page. See also the FAQ "Are adjusted stock prices retroactively updated for past data?".
Concept
AdjFactor is the factor populated on the ex-date (the effective date of a split/reverse split, etc.).
AdjFactor includes, in addition to stock splits and reverse stock splits, the adjustment factor associated with a rights issue (shareholder allotment, gratis allotment of share options, etc.), and we use it to calculate adjusted prices.
To adjust historical prices, you need to accumulate (multiply) the AdjFactor values that appear on later (more recent) dates.
In other words, older dates should reflect more subsequent split/reverse split (and similar) events, so you first create a cumulative adjustment factor (CumAdj) and then apply it to prices.
The adjusted values (Adj*) delivered by the API are calculated without intermediate rounding: all adjustment factors on dates newer than the target date are accumulated, the cumulative factor is applied to the unadjusted value, and only the final result is rounded to one decimal place (rounding half up at the second decimal place). When calculating the values yourself, rounding only at the end — not during the calculation — will match the delivered values.
Steps in a spreadsheet (with a table example)
1) Prepare the required columns from the downloaded file
At minimum, you need these columns:
DateC(unadjusted close) — the same logic applies toO/H/LVo(unadjusted volume) — if you also want adjusted volumeAdjFactor(adjustment factor)
2) Sort by date in descending order (newest first)
This is the most important point. Sort Date in descending order so you can compute CumAdj from top to bottom.
3) Create the cumulative adjustment factor CumAdj
Create a table like the following (this example assumes a single 1:2 split occurs once in the period).
| Row | A:Date | B:C (unadjusted) | C:Vo (unadjusted) | D:AdjFactor | E:CumAdj (cumulative) | F:AdjC (calculated) | G:AdjVo (calculated) |
|---|---|---|---|---|---|---|---|
| 2 | 2024-01-12 | 500 | 1,200,000 | 1.0 | |||
| 3 | 2024-01-11 | 480 | 2,400,000 | 0.5 | |||
| 4 | 2024-01-10 | 980 | 1,100,000 | 1.0 |
Define CumAdj as “the product of all AdjFactor values on dates newer than the current row”.
(Because an ex-date factor should be applied to dates before that ex-date, it effectively impacts the next row down (older date) in this top-to-bottom calculation.)
Cell formulas (example)
- E2 (latest date):
1 - E3 and below (fill down): “previous (newer)
CumAdj” × “previous (newer)AdjFactor”- Formula in
E3:=E2*D2 - Copy this down to the last row
- Formula in
In this example, AdjFactor = 0.5 on the ex-date 2024-01-11 is reflected in CumAdj for the older date 2024-01-10, resulting in 0.5.
| Row | A:Date | B:C (unadjusted) | C:Vo (unadjusted) | D:AdjFactor | E:CumAdj (cumulative) | F:AdjC (calculated) | G:AdjVo (calculated) |
|---|---|---|---|---|---|---|---|
| 2 | 2024-01-12 | 500 | 1,200,000 | 1.0 | 1.0 | ||
| 3 | 2024-01-11 | 480 | 2,400,000 | 0.5 | 1.0 | ||
| 4 | 2024-01-10 | 980 | 1,100,000 | 1.0 | 0.5 |
4) Calculate adjusted close (example: AdjC)
For prices (O/H/L/C), calculate unadjusted price × CumAdj.
F2(fill down):=B2*E2
| Row | A:Date | B:C (unadjusted) | C:Vo (unadjusted) | D:AdjFactor | E:CumAdj (cumulative) | F:AdjC (calculated) | G:AdjVo (calculated) |
|---|---|---|---|---|---|---|---|
| 2 | 2024-01-12 | 500 | 1,200,000 | 1.0 | 1.0 | 500.00 | |
| 3 | 2024-01-11 | 480 | 2,400,000 | 0.5 | 1.0 | 480.00 | |
| 4 | 2024-01-10 | 980 | 1,100,000 | 1.0 | 0.5 | 490.00 |
5) Calculate adjusted volume (example: AdjVo) (optional)
Volume is the inverse of price. For example, to keep continuity under a 1:2 split (doubling pre-split volume), calculate unadjusted volume ÷ CumAdj.
G2(fill down):=C2/E2
CumAdj is not normally zero, but for safety you can use something like =IF(E2=0,"",C2/E2) in Excel.
The AdjFactor of a rights issue is not used to adjust volume. All adjustment factors (stock splits, reverse splits, and rights issues) are applied to prices (O/H/L/C), but the rights-issue factor is not applied to trading volume (Vo). The rights-issue factor corrects price continuity based on the theoretical ex-rights price and does not involve a change in the unit of the existing number of shares, so by design it is not applied to volume.
Build the cumulative factor for volume separately from the one for prices, treating AdjFactor as 1 on days where the ex-right type (ExRT) is "3: rights issue".
| Row | A:Date | B:C (unadjusted) | C:Vo (unadjusted) | D:AdjFactor | E:CumAdj (cumulative) | F:AdjC (calculated) | G:AdjVo (calculated) |
|---|---|---|---|---|---|---|---|
| 2 | 2024-01-12 | 500 | 1,200,000 | 1.0 | 1.0 | 500.00 | 1,200,000 |
| 3 | 2024-01-11 | 480 | 2,400,000 | 0.5 | 1.0 | 480.00 | 2,400,000 |
| 4 | 2024-01-10 | 980 | 1,100,000 | 1.0 | 0.5 | 490.00 | 2,200,000 |