f/overrides/frozen/pfsdx-dividend.csv
Greg Pomerantz 3c5bee96ce Clean multi-vintage 'ctime' files: 1,065 files, 2.2M stale rows
Some dump files carry a trailing 'ctime' column: an older pipeline
appended a FULL re-download of the symbol per download (up to ~28
vintages per date, 2019-2022). The consumer keeps the last row per date,
so it silently used stale (~2021) vintages where Yahoo later revised
values. scripts/clean_multivintage.py keeps, per date, the rows from the
newest ctime (event files keep distinct same-day amounts; history/split
keep the single newest row), drops the ctime column, sorts by date.
Applied to the data root and overrides/frozen (which carried the same
artifact): 1,065 files, 2,202,712 stale rows dropped.

Also: stripped 3 UTF-8 BOMs (teg/lo/krft), refreshed the event backup
with the cleaned files, and re-ran the double-listing scan: category C
(83 symbols, 18,636 repeated within-file rows) is fully explained by the
multi-vintage artifact and is now gone; A (6,589 pairs, corrected) and
B (12,366 pairs, open review list) are unchanged. Whole-set structural
QC after cleaning: 0 duplicate dates, 3 syms/15 rows of OHLC invariant
violations, 15 syms/2,897 rows of non-positive prices (mostly
long-delisted tickers), 8 unsorted files (reader sorts).
2026-08-31 22:25:02 -04:00

523 B

1DateDividends
22008-12-1015.318
32008-12-300.033
42009-12-090.498
52009-12-301.962
62010-03-180.213
72010-04-050.06
82010-06-170.177
92010-09-160.243
102010-12-311.098
112011-03-170.096
122011-06-160.141
132011-09-150.216
142011-12-280.633
152012-03-220.003
162012-06-210.018
172013-03-210.174
182013-06-200.444
192013-09-190.471
202013-12-270.558
212014-03-200.099
222014-06-190.342
232014-09-180.18
242014-12-290.074
252015-03-190.001
262015-06-180.052
272015-09-170.244
282015-12-290.18
292017-06-150.052
302017-09-140.007
312017-12-270.019