US Equities Cumulative Adjustment Factors
Event-dated table of forward and backward cumulative price and volume adjustment factors per SecId, with the adjustment reason and event type of each corporate action, so raw prices and volumes can be converted to adjusted series in one multiplication/division. Rows exist only on event effective dates plus an initial START row.
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. Backward factors (guide Table 5 and steps): for a trade date D, find the first row whose EffectiveDate is later than D; use that row's CumulativeFactorPriceBackward to MULTIPLY prices and CumulativeFactorVolumeBackward to DIVIDE volumes. Each row's factor therefore covers dates from the previous row's EffectiveDate up to the day before its own EffectiveDate; dates on or after the last EffectiveDate use AF=1. Worked example in guide: all prices from 20141106 on x1; 20141105-20140807 x0.910220291174414; 20140806-20140609 x0.905715199168812; 20140608-20140508 x0.129387885595545; and volumes before 20140609 divided by 0.142857142857143, volumes from 20140609 divided by 1. Derived (matches Table 5 and the sample): backward factor of a row = AdjustmentFactor of that row's event times the backward factor of the next row = product of event factors from this event forward to the latest event, own event included. Volume factors multiply only volume-affecting events, so CashDiv rows leave them unchanged (1, 0.25 or 0.0357 in the sample). Forward factors (inferred from sample): CumulativeFactor*Forward at a row = running product of event factors from the first event up to and including this row (e.g. 20121107 forward price 0.991197650405165 = 0.99572484109315 x 0.995453371753772; forward volume becomes 0.142857142857143 from the 20140609 BonusSame). Apparent coverage: from this EffectiveDate until the next event. Direction of application is not stated in the guide.
Coverage
All US exchange-listed equities, adjustment history from 2007 to present; forward factors ignore events before 2007. Sample is AAPL only (36 rows, 20070103-20200831).
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 (9)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Documentation discrepancyGuide Table 1 shows CumulativeFactorPriceBackward 0.128669221770296 for the 20140609 row, identical to the 20140508 value; Table 5 gives 0.129387885595545 for the same row (= 0.142857143 x 0.905715199, the 20140807 row), so Table 1's third column is a copy error.
- Documentation discrepancyGuide worked example calls 20141106 the last corporate event and gives its backward price factor as 0.910220291174414, but that event's own factor is 0.9957 (Basic sample), so the value must include later events; Table 5 is a truncated 2012-2014 view of a later snapshot (inferred).
- Documentation discrepancyGuide Table 5 volume-backward is 0.142857 for 2012-2014 rows; the published sample shows 0.0357142857142858 (=1/28) for the same rows because the 20200831 Subdiv (4-for-1, backward volume 0.25) was added later - an observed case of retroactive restatement.
- Documentation discrepancyGuide Table 1 forward price 0.961154487257303 (20140206) differs from the sample's 0.961154487257304 in the last digit (rebuild rounding).
- Documentation discrepancySTART-row date: guide Table 3 note says EffectiveDate shows 'the date when the security was listed' while the FAQ says 'when the SecId was assigned'; sample START for AAPL is 20070103 (start of algoseek coverage), not its 1980 listing (ListDate 19801212 in the Shares Outstanding sample).
- Documentation discrepancyGuide says data files hold 'rows corresponding to individual daily bars' (boilerplate); rows are event dates, not daily bars.
- Documentation discrepancyGuide never states how to apply the forward factors (multiply or divide) and gives no forward worked example; forward semantics here are inferred from sample numbers.
- Documentation discrepancySample is a 36-row AAPL extract; it covers reasons START, CashDiv, BonusSame and Subdiv only, and ends at the 20200831 Subdiv (backward price factor exactly 0.25) so later AAPL dividends are absent from the extract.
9 columns in delivery order · file or table name eq_adj_factors_cumul. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| SecId | integeri64 | Key 1 · Required | algoseek unique security identifier. Source: vendor guide and sample |
| Ticker | string | Ticker on the EffectiveDate. Source: vendor guide and sample | |
| EffectiveDate | dateyyyymmdd | Key 2 · Required | Date a corporate event becomes effective; for the START row, the date the SecId begins in algoseek's records. Source: vendor guide and sample |
| CumulativeFactorPriceBackward | number | Backward cumulative price factor: product of event factors from this row's event to the latest; multiply prices dated before EffectiveDate by it. Source: vendor guide and sample | |
| CumulativeFactorPriceForward | number | Forward cumulative price factor: running product of event factors up to and including this event (inferred from sample); covers events since 2007 only. Source: vendor guide and sample | |
| CumulativeFactorVolumeBackward | number | Backward cumulative volume factor built only from volume-affecting events; divide volumes dated before EffectiveDate by it. Source: vendor guide and sample | |
| CumulativeFactorVolumeForward | number | Forward cumulative volume factor: running product of volume-affecting event factors up to and including this event (inferred). Source: vendor guide and sample | |
| AdjustmentReason | string · enum (19) | Key 3 · Required | Reason for the corporate event (18 codes) or START for the initial row. Source: vendor guide and sample 19 allowed values
|
| EventType | string · enum (14) | Event type for the reason (e.g. DIV, BON, SD) or START for the initial row. 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, EffectiveDate, AdjustmentReason) must be 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV files with fixed header and one row per corporate-event effective date (plus a START row) per SecId. Two aggregation options with identical fields: tradedate (one file per effective date covering all symbols) and SecId (one file per SecId per year, or one file with all history from 2007). S3 buckets: us-equity-cumulative-adjustment-secid-all, us-equity-cumulative-adjustment-secid-yyyy, us-equity-cumulative-adjustment-tradedate-yyyy (yyyy = year); SecId files at NN/NNNNN.csv (NN = first two digits of the SecId); daily-changes/yyyymmdd.csv lists files updated on a date.
- 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.