Yahoo changed the shape of its event feed between downloads: a 2026-08
re-download of CVIX/JLPSX shows it no longer returns capitalGain events at
all (the dividend stream still carries the year-end rows), while stale
tickers now return no events at all. File-specific remove ops therefore
break silently on the next re-download, so the double-listing fix is now
expressed as layout-agnostic invariants applied at bundle assembly
(idempotent, hold for full and incremental builds):
dedup: [[date, amount]] keep at most one copy of a same-date/
same-amount cross-file pair (the capitalGain copy when both present)
drop_capg_copy: [date] the capitalGain row on that date is the
spurious copy of the dividend row
- data.py: apply_invariants() at bundle assembly + pure dedupe_event_rows()
shared with verify_official and tests (8 new test cases, 22 passing)
- JLPSX/CVSIX corrections rewritten with the invariants (2019-08-08 now
keeps the dividend amount per the verified same-date pattern)
- scripts/scan_double_listing.py: whole-dump sweep -> reports/double_listing/
6,421 symbols scanned: 1,218 with same-amount pairs (6,589), 1,631 with
differing-amount pairs (12,366, reported only - not distinguishable from
legitimate same-day div+capg without per-fund official data), 83 with
repeated within-file rows (ingest keep-last already collapses them)
- scripts/apply_dedup_corrections.py: bulk 'dedup' corrections for the
1,218 same-amount symbols (1,212 new files; the 6 verified funds keep
their explicit, official-verified corrections)
- scripts/check_corrections.py: integrity check for every correction op
against the actual (frozen) files - caught a mis-filed CVSIX entry
71 lines
1.9 KiB
JSON
71 lines
1.9 KiB
JSON
{
|
|
"symbol": "jlpsx",
|
|
"name": "JPMorgan U.S. Large Cap Core Plus Fund (I shares)",
|
|
"note": "Yahoo listed the year-end capital-gain distribution in BOTH the dividend and capitalGains event files. Expressed as layout-agnostic invariants because a 2026-08 re-download shows Yahoo no longer returns capitalGain events for this fund at all (the dividend stream still carries the year-end rows): 'dedup' keeps at most one copy of each (date, amount) (the capitalGain copy when both files carry it; the lone dividend copy otherwise); 'drop_capg_copy' drops the spurious capitalGain row on a date where the dividend row is the true distribution (any amount). Official per-share data (JPMorgan 497, filed 2025-11-03, Class I, FYE June 30): FY2025 1.37, FY2024 2.03, FY2023 4.86, FY2022 6.78, FY2021 6.89 - local sums after dedup match every one (1.368, 2.029, 4.859, 6.785, 6.889). 2006-12-15 (div 0.207 vs capg 0.141) and 2019-08-08 (div 4.138 vs capg 4.077) keep the dividend amount per the pattern confirmed on all other verified same-date pairs; pre-2012 years have no official totals (the 2021 497 is delisted from SEC Archives) - mechanism-inferred.",
|
|
"verified": [
|
|
"FY2021-FY2025 exact match against 497 filed 2025-11-03 (accession 0001193125-25-261054, CIK 0000763852)"
|
|
],
|
|
"dedup": [
|
|
[
|
|
"2007-12-17",
|
|
0.654
|
|
],
|
|
[
|
|
"2012-12-13",
|
|
0.981
|
|
],
|
|
[
|
|
"2013-12-12",
|
|
2.312
|
|
],
|
|
[
|
|
"2014-12-12",
|
|
2.133
|
|
],
|
|
[
|
|
"2015-12-11",
|
|
2.415
|
|
],
|
|
[
|
|
"2016-12-14",
|
|
1.235
|
|
],
|
|
[
|
|
"2017-12-13",
|
|
4.123
|
|
],
|
|
[
|
|
"2018-12-12",
|
|
4.117
|
|
],
|
|
[
|
|
"2019-12-12",
|
|
1.517
|
|
],
|
|
[
|
|
"2020-12-11",
|
|
6.824
|
|
],
|
|
[
|
|
"2021-12-13",
|
|
6.785
|
|
],
|
|
[
|
|
"2022-12-13",
|
|
4.841
|
|
],
|
|
[
|
|
"2023-12-13",
|
|
1.989
|
|
],
|
|
[
|
|
"2024-12-12",
|
|
1.347
|
|
]
|
|
],
|
|
"drop_capg_copy": [
|
|
"2006-12-15",
|
|
"2019-08-08"
|
|
]
|
|
}
|