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).
523 B
523 B
| 1 | Date | Dividends |
|---|---|---|
| 2 | 2008-12-10 | 15.318 |
| 3 | 2008-12-30 | 0.033 |
| 4 | 2009-12-09 | 0.498 |
| 5 | 2009-12-30 | 1.962 |
| 6 | 2010-03-18 | 0.213 |
| 7 | 2010-04-05 | 0.06 |
| 8 | 2010-06-17 | 0.177 |
| 9 | 2010-09-16 | 0.243 |
| 10 | 2010-12-31 | 1.098 |
| 11 | 2011-03-17 | 0.096 |
| 12 | 2011-06-16 | 0.141 |
| 13 | 2011-09-15 | 0.216 |
| 14 | 2011-12-28 | 0.633 |
| 15 | 2012-03-22 | 0.003 |
| 16 | 2012-06-21 | 0.018 |
| 17 | 2013-03-21 | 0.174 |
| 18 | 2013-06-20 | 0.444 |
| 19 | 2013-09-19 | 0.471 |
| 20 | 2013-12-27 | 0.558 |
| 21 | 2014-03-20 | 0.099 |
| 22 | 2014-06-19 | 0.342 |
| 23 | 2014-09-18 | 0.18 |
| 24 | 2014-12-29 | 0.074 |
| 25 | 2015-03-19 | 0.001 |
| 26 | 2015-06-18 | 0.052 |
| 27 | 2015-09-17 | 0.244 |
| 28 | 2015-12-29 | 0.18 |
| 29 | 2017-06-15 | 0.052 |
| 30 | 2017-09-14 | 0.007 |
| 31 | 2017-12-27 | 0.019 |