US Equity Cumulative Adjustment Factors Guide
US Equity Cumulative Adjustment Factors Guide
version 1.3 (Jul 2021)
We are here to help you do great things with our market and reference data. For questions, feedback, and other concerns, you may reach our team of experts using the following contact information:
algoseek customer support
(+1) 646 583 1832
algoseek sales
(+1) 646 583 1832
DATA ORGANIZATION AND FILE FORMAT 4
HOW TO APPLY CUMULATIVE ADJUSTMENT FACTORS 7
APPENDIX A. FREQUENTLY ASKED QUESTIONS 11
The Cumulative Adjustment Factors dataset provides cumulative adjustments for US equities calculated using two common approaches: forward and backward. The dataset also contains information about corporate event types affecting price and/or volume for historical backtesting.
algoseek uses a unique identifier called Security ID (SecId) for each equity, including stocks, ETFs, ETNs, ADRs, Preferred Stocks, and Stock Warrants, among others. The SecId remains unchanged when a security’s ticker name changes.
For each SecId, this dataset provides cumulative adjustment factors and event types for the creation of forward or backward adjusted pricing and/or volume for any trading date from 2007 to the present.
To find the SecId for a combination of exchange ticker and trade date, use the algoseek Lookup File. Please contact your account manager if you do not have the access to Lookup File.
The dataset is event-based. It means that files contain just trade dates that correspond to effective dates when a corporate event has happened. algoseek rebuilds data for each security when it has a new corporate event. Please refer to the “Daily Updates” section to find more details about updates.
There are two data aggregation options for these datasets:
tradedate: one CSV file with data for all symbols per effective date
SecId: one CSV file with data for all effective dates per Security ID - a unique security identifier used by algoseek that remains unchanged when the ticker changes
Both aggregation options provide the same data fields.
algoseek provides Equity adjustment data in plain-text CSV files. Data files have fixed headers and rows of data corresponding to individual daily bars (see Table 1). For each year, data is aggregated either by trading day or by SecId; for example, all corporate events that occurred on Mar 3, 2020 are stored in a separate CSV file under a tradedate aggregation. In the case of SecId-based aggregation, all adjustment data for the security with an ID 33449 (AAPL) for a single year is stored in a single CSV file. Also, SecId-based aggregation provides the possibility to get all adjustment data from 2007 up to now for a specific security in a single CSV file.
Table 1: Cumulative Adjustment Sample Data
SecId | 33449 | 33449 | 33449 |
Ticker | AAPL | AAPL | AAPL |
EffectiveDate | 20140206 | 20140508 | 20140609 |
CumulativeFactorPriceBackward | 0.127903617434669 | 0.128669221770296 | 0.128669221770296 |
CumulativeFactorPriceForward | 0.961154487257303 | 0.955815912032214 | 0.136545130290316 |
CumulativeFactorVolumeBackward | 0.142857142857143 | 0.142857142857143 | 0.142857142857143 |
CumulativeFactorVolumeForward | 1 | 1 | 0.142857142857143 |
AdjustmentReason | CashDiv | CashDiv | BonusSame |
EventType | DIV | DIV | BON |
Table 2 below summarizes the name, brief description and data type for each data field (column) in an Equity Cumulative Adjustment Factors CSV file.
Table 2: Cumulative Adjustment Factor Fields and Descriptions
Field | Type (Format) | Description |
SecId | integer | Unique security identifier |
Ticker | string | Ticker on Effective Date |
EffectiveDate | string (YYYYMMDD) | Date that the event becomes effective |
CumulativeFactorPriceBackward | decimal | Cumulative factor for equity price, calculated with backward methodology |
CumulativeFactorPriceForward | decimal | Cumulative factor for equity price, calculated with forward methodology |
CumulativeFactorVolumeBackward | decimal | Cumulative factor for equity trading volume, calculated with backward methodology |
CumulativeFactorVolumeForward | decimal | Cumulative factor for equity trading volume, calculated with forward methodology |
AdjustmentReason | string | The reason for the Corporate Event (e.g. CashDiv=Cash Dividend). See section “Adjustment Reason Table” below for a list of adjustment reasons |
EventType | string | Type of event (e.g. DIV=Dividend). See subsection “Adjustment Reason” below for a list of types |
Each adjustment event relates to an Event Type, and each Event Type may include different Adjustment Reasons. The table below describes the different adjustment types and reasons and whether it affects Price and/or Volume.
Table 3: Adjustment Reasons
Adjustment Event Type | Adjustment Reason | Description | Affects Price | Affects Volume |
BON | BonusSame | Bonus issue in the same class | Yes | Yes |
BonusDiff | Bonus issue in a different class | Yes | No | |
CAPRD | CapReduct | Capital Reduction | Yes | Yes |
CONSD | Cons | Consolidation | Yes | Yes |
DIST | Distrib | Distribution | Yes | No |
DIV | CashDiv | Cash Dividend | Yes | No |
ScriptDiv | Script dividend in the same class | Yes | Yes | |
ScriptDivDiff | Script dividend in a different class | Yes | No | |
DMRGR | DeMerg | De-merger | Yes | No |
ENT | EntSame | Entitlement in the same class | Yes | No |
EntDiff | Entitlement in a different class | Yes | No | |
RCAP | CapRet | Capital Return | Yes | No |
RTS | RightsSame | Rights in the same class | Yes | No |
RightsDiff | Rights in a different class | Yes | No | |
SCSWP | SecSwap | Security Swap | Yes | Yes |
SECRC | Reclass | Reclassification | Yes | Yes |
SD | Subdiv | Any subdivision (by any stock split, stock dividend, reclassification, recapitalization or otherwise) or combination (by the reverse stock split, reclassification, recapitalization, or otherwise) of the Class A Common Stock. | Yes | Yes |
Note: if a SecId (Ticker) doesn’t have any corporate events, EffectiveDate field will show the date when security was listed, all factors will be equal 1 (one), and AdjustmentReason and EventType fields will have the value START (see Table 4).
Table 4: Sample Initial Row in Cumulative Adjustment Data
SecId | 4533372 |
Ticker | MNST |
EffectiveDate | 20150615 |
CumulativeFactorPriceBackward | 1 |
CumulativeFactorPriceForward | 1 |
CumulativeFactorVolumeBackward | 1 |
CumulativeFactorVolumeForward | 1 |
AdjustmentReason | START |
EventType | START |
When backtesting the historical “as-is” prices and volumes, they need to be adjusted in order to account for price events like a dividend and volume changes like a split. Use Table 3: Adjustment Reasons to determine if Price and/or Volume (a.k.a. Size) fields need to be adjusted.
The table below shows AAPL cumulative adjustments from 1/1/2012 to 1/1/2015. To make data readable, the table does not include fields CumulativeFactorPriceForward and CumulativeFactorVolumeForward.
Table 5: AAPL Corporate Events in 2012-2014
SecId | Ticker | EffectiveDate | CumulativeFactor PriceBackward | CumulativeFactor VolumeBackward | AdjustmentReason | EventType | |
33449 | AAPL | 20120809 | 0.123670999876425 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20121107 | 0.124201983090684 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20130207 | 0.124769262544028 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20130509 | 0.125496420111086 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20130808 | 0.126327089355946 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20131106 | 0.127161193273283 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20140206 | 0.127903617434669 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20140508 | 0.128669221770296 | 0.142857142857143 | CashDiv | DIV | |
33449 | AAPL | 20140609 | 0.129387885595545 | 0.142857142857143 | BonusSame | BON | |
33449 | AAPL | 20140807 | 0.905715199168812 | 1 | CashDiv | DIV | |
33449 | AAPL | 20141106 | 0.910220291174414 | 1 | CashDiv | DIV | |
The following steps describe creating backward adjusted (starting from the latest date) time series for AAPL from 1/1/2015 to 1/1/2007:
Note: When we have more than one corporate event for the same SecId and EffectiveDate, one should use the first record for backward adjustments and the last record for forward adjustments.
The dataset contains both backward and forward cumulative adjustment factors. Whenever a new corporate event (e.g. dividend, split, etc) is published for a SecId, all data for this SecId will be rebuilt. In this case, you need to re-download the data.
If you have access to the full universe of SecIDs, you can update the data using AWS CLI SYNC command. This setup will download only updated files from S3 bucket. To sync your local directory and S3 bucket, please make sure to point the SYNC command to your local copy of the dataset. For more details, please refer to algoseek’s AWS Access Guide.
aws s3 sync s3://us-equity-cumulative-adjustment-secid-all your/local/folder --request-payer requester |
If you have access to a subset of SecIds, you can check files with daily changes and only re-download data for securities from your subscription. For example, if you only subscribed for the following SecIds: 33449 (AAPL), 1914754 (TSLA), 38497 (IBM), and 33127 (AMZN) and would like to know if something has changed for these on Jan 21, 2021, you should download the file with daily changes using the following command:
aws s3 cp s3://us-equity-cumulative-adjustment-secid-all/daily-changes/20210121.csv 20210121_changes.csv --request-payer requester |
and check if these SecIds are present in the file (see Table 6).
Table 6: Daily Changes File Sample
SecId |
33449 |
300669 |
550037 |
6726866 |
6729160 |
37111 |
You can download each individual data file with:
aws s3 cp s3://us-equity-cumulative-adjustment-secid-all/NN/NNNNN.csv local/folder/NN/NNNNN.csv --request-payer requester |
where NNNNN is a SecId and NN corresponds to the first two digits of the SecId.
Note: The procedure described above works only for buckets aggregated by SecId. For a tradedate-based aggregation, a daily file contains the list of dates updated.
Path to the file with daily changes has the following pattern:
s3://bucket_name/daily-changes/yyyymmdd.csv |
where bucket_name can be one of
yyyy - year, mm - month, and dd - day.
For data aggregated by SecId, the daily files are created by 2 am T+1 EST.
For data aggregated by tradedate, the daily files are created by 4 am T+1 EST.
Note: A daily changes file is only created when corporate event-related changes happen.
Every file with the corporate events history for a SecId starts with the initial row that contains information on when the SecId was assigned to the security.
No, the forward cumulative adjustment factors cover only events since 2007.