US Equities Daily Cumulative Adjustment Factors
Continuous daily series of backward cumulative price and volume adjustment factors per SecId: one row for every trading day, carrying the latest cumulative factor forward on days without corporate events and flagging event days with the factor, reason and type. Lets users adjust raw prices and volumes with a simple date join.
How to use it
Rows are effective-dated. Answer point-in-time questions with the row in force on the as-of date, never the latest row. SecId and ASID are both durable AlgoSeek security keys but different values (the ASID lookup links them); tickers are reused across companies, so resolve a ticker to a key with a trade date.
Typical use
Point-in-time security identity, corporate-action adjustment, and universe construction for US equities.
Limitations
Vendor-curated reference data: rows can be restated when AlgoSeek learns of a late or corrected event, so land each delivery as a snapshot rather than overwriting history. Apply (guide): price on date D x CumulativeFactorPrice(D); volume on date D / CumulativeFactorVolume(D). Join on SecId + TradeDate; no gap handling needed because every trading day has a row. Derived and verified on guide Table 5 and the sample: CumulativeFactor(D) = product of the AdjustmentFactors of all events with EffectiveDate later than D (strictly). On an event date the factor already excludes that event (AAPL 20140609: price 0.032233144343822 -> 0.225632010406754, ratio 0.142857; sample 20220805: 0.992723673605374 -> 0.994102623025167, ratio 0.99861287 = that day's AdjustmentFactor). Volume factor is a divisor and changes only on volume-affecting events (BonusSame, CapReduct, Cons, ScriptDiv, SecSwap, Reclass, Subdiv); sample value 1 throughout for AAPL in 2022. AdjustmentFactor, AdjustmentReason and EventType are populated only on event dates (blank elsewhere); with several events on one date AdjustmentFactor is the cumulative product for that date and reason/type strings are joined with 'and'. This gives one row per SecId+TradeDate.
Coverage
All US exchange-listed equities, backward-adjustment factors for any date from 2007 to present. Sample is AAPL only (100 consecutive trading days 20220802-20221221).
Usage constraints
- Licensed vendor data: never export raw rows to a tenant-local destination or include them verbatim in a public artifact; serve only through entitlement-checked platform reads.
- Do not treat the vendor's `Ticker` as a stable identity across time; join on an AlgoSeek security key (SecId or ASID, which are distinct) or the platform symbol mapping.
Known issues (6)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Documentation discrepancyColumn order: guide Tables 1 and 2 list SecId, Ticker, TradeDate, AdjustmentFactor, ...; the sample header (and JSON preview) put TradeDate first: TradeDate, SecId, Ticker, ...
- Documentation discrepancyGuide Table 5 (AAPL, text extraction) shows a row dated '20140206' between 20140605 and 20140606 and a '0610' fragment for the 20140610 row - apparent typos in the guide table (probably 20140604 and 20140610); the factor values in those rows are consistent with their neighbours.
- Documentation discrepancyGuide text names the data 'Equity Cumulative Backward Adjustment Factors CSV file' and calls the buckets us-equity-cumulative-backward-adjustment-secid-year in one place and -secid-yyyy in another.
- Documentation discrepancyGuide Table 5 values (CumulativeFactorVolume 0.0357142857142858 before 20140609, 0.25 after) include the later 20200831 4-for-1 split, i.e. a more recent snapshot than the 2014 date range suggests; confirms the series is restated retroactively.
- Documentation discrepancyGuide's Table 3 reasons list is garbled in plain text extraction; table-aware extraction gives the same 18 reasons and Yes/No price/volume flags as the other adjustment guides.
8 columns in delivery order · file or table name eq_adj_factors_cumul_daily. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| TradeDate | dateyyyymmdd | Key 2 · Required | Trade date (or the date an event becomes effective); one row per trading day per SecId. First column in the sample. Source: vendor guide and sample |
| SecId | integeri64 | Key 1 · Required | algoseek unique security identifier. Source: vendor guide and sample |
| Ticker | string | Symbol name on that trade date. Source: vendor guide and sample | |
| AdjustmentFactor | number | The event's adjustment factor, present only on dates when an event happened; if several events share a date, the product of them. START row has 1. Missing values: Blank except on event dates · Source: vendor guide and sample | |
| CumulativeFactorPrice | number | Backward cumulative price factor for this date; multiply that day's prices by it. Already reflects an event effective that day. Source: vendor guide and sample | |
| CumulativeFactorVolume | number | Backward cumulative volume factor for this date (volume-affecting events only); divide that day's volume by it. Source: vendor guide and sample | |
| AdjustmentReason | string · enum (19) | Reason of the event on this date (18 codes or START); several reasons joined by 'and' when multiple events share the date; blank otherwise. Missing values: Blank except on event dates · Source: vendor guide and sample 19 allowed values
| |
| EventType | string · enum (14) | Event type of the event on this date (or START); several types joined by 'and' when multiple events share the date; blank otherwise. Missing values: Blank except on event dates · Source: vendor guide and sample 14 allowed values
|
- errorrow_count_positivecompleteness
Every delivered partition (trade date, or snapshot) carries at least one row.
rowCount must be greater than 0
- errorprimary_key_uniqueuniqueness
The declared primary key is unique within each delivered partition (one file or table snapshot).
duplicateValues (properties: SecId, TradeDate) must be 0
- errorCumulativeFactorVolume_non_negativeaccuracy
CumulativeFactorVolume is never negative.
SELECT COUNT(*) FROM {object} WHERE CumulativeFactorVolume < 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV with fixed header; SecId-aggregated: all rows for one SecId (e.g. 33449/AAPL) in one file, optionally split by year. S3 buckets: us-equity-cumulative-backward-adjustment-secid-all and us-equity-cumulative-backward-adjustment-secid-yyyy (guide also writes 'secid-year'); SecId files at NN/NNNNN.csv (NN = first two digits of SecId); daily-changes/yyyymmdd-corp-changes.csv lists SecIds with a Change value (updated, added or deleted).
- Compression:
- gzip
- Access:
- Bucket access is granted per subscription; bucket names arrive with license provisioning.
Service levels
- History starts
- 2007-01-01
- First trade date of the vendor history.
- Update frequency
- Daily
- Retention
- Bounded by the license term
- Retention of landed copies is bounded by the AlgoSeek license; purge on termination.
Service levels describe the vendor feed as documented. They are draft values, not a commitment by AlphaSwarm.
Data Contract Editor · read-only preview — edits are not saved
Open-source Data Contract Editor (MIT). Changes stay in this browser tab: Cancel restores the published contract, and Download copy saves your edited YAML to your device only.
Contracts follow the Open Data Contract Standard (Bitol, LF AI & Data).
Vendor names are trademarks of their owners.