US Equity Detailed Adjustment Factors Guide                                                                    


US Equity Detailed Adjustment Factors Guide

version 1.1 (Jan 2022)

CONTACT US

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

support@algoseek.com

(+1) 646 583 1832

algoseek sales

sales@algoseek.com

(+1) 646 583 1832

TABLE OF CONTENTS

INTRODUCTION        4

DATA ORGANIZATION AND FILE FORMAT        4

HOW TO APPLY ADJUSTMENT FACTORS        7

APPENDIX A. FREQUENTLY ASKED QUESTIONS        10


INTRODUCTION

The Adjustment Factors dataset provides information about corporate events affecting price and/or volume for historical backtesting. algoseek provides two versions of US Equity Adjustment Factors datasets: a basic version and a detailed version that contains several extra fields. In this document, they are collectively referred to as Adjustment Factors datasets.

algoseek uses a unique identifier called Security ID (SecId) to identify 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 a list of events with adjustment factors and event details for the creation of forward or backward adjusted pricing for any 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.

DATA ORGANIZATION AND FILE FORMAT

There are two data aggregation options for this dataset:

tradedate: one CSV file with data per symbol 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 exactly the same data fields.

algoseek provides Equity adjustment data in plain-text CSV files. The first row of CSV file is a fixed header, and then rows of data corresponding to individual bars (see Table 1).  

Data files are organized with one file per effective date 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 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.

Table 1: Sample Detailed Adjustment Data

SecId

33449

33449

33449

Ticker

AAPL

AAPL

AAPL

EffectiveDate

20140206

20140508

20140609

Name

Apple Inc

Apple Inc

Apple Inc

ReportDate

20140206

20140508

20140609

AdjustmentFactor

0.994049825396516

0.994445663734742

0.142857142857143

AdjustmentReason

CashDiv

CashDiv

BonusSame

EventType

DIV

DIV

BON

EventId

765842

795226

3018370

Detail

INT Dividend (cash) of USD3.050000000/EQS [DIVPAYRATE=3.050000000] [DIVCURRENCY=USD] [DIVPERIOD=INT] [OPTION=1] [EXCHGCD=USNASD]

INT Dividend (cash) of USD3.290000000/EQS [DIVPAYRATE=3.290000000] [DIVCURRENCY=USD] [DIVPERIOD=INT] [OPTION=1] [EXCHGCD=USNASD]

Bonus of 6 AAPL (33449) for 1 AAPL (33449) [EXCHGCD=USNASD]

ISIN

US0378331005

US0378331005

US0378331005

Table 2 below summarizes the name, brief description, and data type for each data field (column)  in an Equity Adjustment Factor CSV file.

Table 2: Adjustment Factor Fields and Descriptions

Field

Type (Format)

Description

SecId

integer

Unique security identifier

Ticker

string

Ticker on the Effective Date

EffectiveDate

string (YYYYMMDD)

Date that the event becomes effective

Name

string

Name of the company

ReportDate

string (YYYYMMDD[_N])

Date and version  (_N suffix)  of the algoseek event report file

AdjustmentFactor

decimal

The value of the Adjustment factor for the event

AdjustmentReason

string

The reason for the Corporate Event.  See subsection “Adjustment Reason” below for a list of types.

EventType

string

Type of event. See section “Adjustment Reason Table” below for a list of types.

EventId

integer

Unique Event ID under the AdjustmentReason, i.e., each pair of AdjustmentReason and EventId is unique.

Detail

string

Details of the event including Dividend Amount, Period (e.g., Interim), etc. See “Detail Field” below for further information.

ISIN

string

ISIN (International Securities Identification Number) Identifier.

 

Detail Field

Take the most common event type, Dividend, as an example:

INT Dividend (cash) of USD0.470000000/EQS [DIVPAYRATE=0.470000000] [DIVCURRENCY=USD] [DIVPERIOD=INT] [OPTION=1] [EXCHGCD=USNASD]

This is an interim dividend (DIVPERIOD=INT) with a dividend rate of $0.47 per share (DIVPAYRATE=0.47) in currency USD (DIVCURRENCY=USD).

Another typical event type is Split.

        Subdivision of 2 for 1 [EXCHGCD=USNYSE]

This is a split (subdivision) of 2 for 1. It means that shareholders receive two additional shares for each they already own.

Demerger of 1 AA (4920498) for 3 ARNC (33008) [OPTION=1] [EXCHGCD=USNYSE],US03965L1008

This is a demerger (spinoff) of Alcoa Corporation (AA) from Alcoa Inc. (AA), which changed its name to Arconic Inc. (ARNC). At the time of separation, Alcoa Inc. shareholders receive one share of Alcoa Corporation common stock for every three shares of Alcoa Inc. common stock held as of the record date.

Adjustment Reason

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 if it affects Price and/or Volume.

Table 3: Adjustment Reason Table

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: All following adjustment reasons should be considered as splits (or reverse splits): BonusSame, ScriptDiv, Subdiv, and Cons.

HOW TO APPLY ADJUSTMENT FACTORS

When backtesting the historical “as-is” prices and volumes, they need to be adjusted 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.

Table 4: Some Corporate Events of Apple Inc. in 2014

SecId

Ticker

Effective Date

Adjustment Factor

Adjustment Reason

33449

AAPL

20140508

0.994445664

CashDiv

33449

AAPL

20140609

0.142857143

BonusSame

33449

AAPL

20140807

0.995050548

CashDiv

Creation of a backward (starting from the latest date) time series of Apple Inc. for 2014:

In this scenario, we start with the most recent data. The most recent corporate event happened on Aug 7, 2014 (see Table 4 for a sample of corporate events for Apple Inc. in 2014). All prices after this date (including itself) should be multiplied by the factor

  

Before Aug 7, 2014, starting from Aug 6, 2014, up to (and including) Jun 9, 2014, the price should be multiplied by a cumulative factor

where f1 - adjustment factor on Aug 7, 2014. From Jun 6, 2014, up to May 8, 2014, the price should be adjusted by the factor

where f2 - adjustment factor on Jun 9, 2014. And finally, all prices before May 8, 2014, should be adjusted by the cumulative factor

where f3 - adjustment factor on May 8, 2014. This method is very convenient to use when you already have adjusted data and then need to accommodate new corporate events (dividend, split, etc.). You simply need to multiply all prices before that date by a corresponding factor.

If you want to adjust the volume as well, you should divide it by the corresponding factor. We have one event that affects volume on Jun 9, 2014. All volumes after this date (including itself) should be divided by the factor

And all volumes before Jun 9, 2014, should be adjusted by the cumulative factor

where f1 - adjustment factor on Jun 9, 2014.


APPENDIX A. FREQUENTLY ASKED QUESTIONS

Why do I see two dividends for the same ticker on the same date?

When you work with a Detailed dataset, it is very clear because you have access to the columns with additional information. Using the Detail column, you can see that these dividends differentiate by dividend period (for example, interim and final dividends). If you use the Basic dataset, you do not have access to this information, and it looks that they are the same. You should keep in mind that they differentiate by payment time types.

Why do I sometimes see an empty “Ticker” field for corporate events?

There are a couple of securities that were publicly traded, then went OTC and again back to public trading. In the period when they were OTC, securities can’t be linked with appropriate tickers because algoseek doesn’t work with OTC securities. And providing OTC symbols will cause inconsistency with the current database of symbols.