From 1f5720d7db2d0cbb4b0d9234d4c9cd0c5134f4e7 Mon Sep 17 00:00:00 2001 From: Greg Pomerantz Date: Mon, 31 Aug 2026 18:10:39 -0400 Subject: [PATCH] verify_official: 497/497K forms, per-share layout, candidate re-ranking - EFTS queries now include 497/497K (many fund families publish their per-fund highlights there, not in the consolidated N-CSR) and re-rank hits by registrant name match (ticker/brand words), newest first, capped at 2 filings per CIK - new parse_per_share_blocks for the JPMorgan-style 'Per share operating performance' table (per-class value blocks; dashes = zero) - parse_highlights now tolerates row labels split across table cells (modernized N-CSRS format, e.g. Calamos 2026) - region finders: word-flexible name patterns (US vs U.S., class letters), self-validating per-share regions (a candidate block must match the local series, so a name mention in notes doesn't attribute another fund's tables in a combined 58 MB report) - main() keeps the best result across candidate filings (N-CSRS vs 497 can round differently) and stops early on 'ok' - local_series applies the corrections overlay so corrected funds verify against their filing Results: JLPSX and CVSIX now 'ok' (all bounded fiscal years agree with the official filings); CVSIX also gets a 2023-12-21 0.510 capital-gain correction. bnd/pmaix still ok (no regression). --- README.md | 42 ++++ data.py | 14 +- overrides/corrections/CVSIX.json | 13 ++ overrides/corrections/JLPSX.json | 26 +++ reports/xcheck_official/SUMMARY.md | 237 ++++++++++++++++++- reports/xcheck_official/aaalx.json | 6 + reports/xcheck_official/abqzx.json | 6 + reports/xcheck_official/adusx.json | 6 + reports/xcheck_official/aectx.json | 347 ++++++++++++++++++++++++++++ reports/xcheck_official/afxpx.json | 6 + reports/xcheck_official/agazx.json | 6 + reports/xcheck_official/akrex.json | 89 +++++++ reports/xcheck_official/alasx.json | 6 + reports/xcheck_official/amfzx.json | 6 + reports/xcheck_official/andrx.json | 6 + reports/xcheck_official/arwdx.json | 6 + reports/xcheck_official/atezx.json | 6 + reports/xcheck_official/atmdx.json | 6 + reports/xcheck_official/avgyx.json | 104 +++++++++ reports/xcheck_official/bafmx.json | 6 + reports/xcheck_official/bbgpx.json | 6 + reports/xcheck_official/bcmix.json | 83 +++++++ reports/xcheck_official/bfslx.json | 6 + reports/xcheck_official/bgaqx.json | 6 + reports/xcheck_official/bgrsx.json | 6 + reports/xcheck_official/biglx.json | 6 + reports/xcheck_official/blvax.json | 6 + reports/xcheck_official/bnd.json | 26 +-- reports/xcheck_official/btlkx.json | 6 + reports/xcheck_official/bxeyx.json | 6 + reports/xcheck_official/caalx.json | 6 + reports/xcheck_official/cacsx.json | 6 + reports/xcheck_official/cfbux.json | 6 + reports/xcheck_official/cforx.json | 6 + reports/xcheck_official/cnemx.json | 6 + reports/xcheck_official/cnevx.json | 6 + reports/xcheck_official/cnlsx.json | 6 + reports/xcheck_official/cnmnx.json | 6 + reports/xcheck_official/cnmsx.json | 6 + reports/xcheck_official/coagx.json | 6 + reports/xcheck_official/cogix.json | 6 + reports/xcheck_official/cpmnx.json | 6 + reports/xcheck_official/crupx.json | 6 + reports/xcheck_official/cvsix.json | 111 +++++---- reports/xcheck_official/ddez.json | 6 + reports/xcheck_official/ddjp.json | 6 + reports/xcheck_official/dieyx.json | 113 +++++++++ reports/xcheck_official/dribx.json | 131 +++++++++++ reports/xcheck_official/dsum.json | 6 + reports/xcheck_official/dxus.json | 6 + reports/xcheck_official/eroax.json | 6 + reports/xcheck_official/esga.json | 6 + reports/xcheck_official/esrx.json | 6 + reports/xcheck_official/evgbx.json | 103 +++++++++ reports/xcheck_official/faevx.json | 88 +++++++ reports/xcheck_official/faosx.json | 74 ++++++ reports/xcheck_official/fexpx.json | 6 + reports/xcheck_official/fgbfx.json | 74 ++++++ reports/xcheck_official/fgizx.json | 76 ++++++ reports/xcheck_official/fibqx.json | 92 ++++++++ reports/xcheck_official/fidlx.json | 88 +++++++ reports/xcheck_official/fijzx.json | 76 ++++++ reports/xcheck_official/fikax.json | 76 ++++++ reports/xcheck_official/fikhx.json | 76 ++++++ reports/xcheck_official/fikix.json | 76 ++++++ reports/xcheck_official/fikkx.json | 81 +++++++ reports/xcheck_official/fiqqx.json | 6 + reports/xcheck_official/fiqyx.json | 74 ++++++ reports/xcheck_official/fklsx.json | 83 +++++++ reports/xcheck_official/fkmax.json | 6 + reports/xcheck_official/fkmzx.json | 6 + reports/xcheck_official/flsrx.json | 6 + reports/xcheck_official/fmil.json | 79 +++++++ reports/xcheck_official/fovl.json | 6 + reports/xcheck_official/fpnix.json | 6 + reports/xcheck_official/frccx.json | 6 + reports/xcheck_official/fsmqx.json | 6 + reports/xcheck_official/fzaax.json | 6 + reports/xcheck_official/fzadx.json | 82 +++++++ reports/xcheck_official/fzagx.json | 82 +++++++ reports/xcheck_official/fzakx.json | 6 + reports/xcheck_official/gaamx.json | 6 + reports/xcheck_official/gdeux.json | 83 +++++++ reports/xcheck_official/gfcux.json | 91 ++++++++ reports/xcheck_official/ggrux.json | 78 +++++++ reports/xcheck_official/ghplx.json | 6 + reports/xcheck_official/glgax.json | 79 +++++++ reports/xcheck_official/gmnix.json | 6 + reports/xcheck_official/gndsx.json | 6 + reports/xcheck_official/gopix.json | 6 + reports/xcheck_official/gseax.json | 6 + reports/xcheck_official/gsoux.json | 97 ++++++++ reports/xcheck_official/gtorx.json | 89 +++++++ reports/xcheck_official/gumnx.json | 6 + reports/xcheck_official/hafvx.json | 6 + reports/xcheck_official/hdrw.json | 6 + reports/xcheck_official/hgsd.json | 6 + reports/xcheck_official/hlnax.json | 6 + reports/xcheck_official/hshrx.json | 6 + reports/xcheck_official/hsrt.json | 6 + reports/xcheck_official/innnx.json | 6 + reports/xcheck_official/ionax.json | 56 +++++ reports/xcheck_official/ionpx.json | 56 +++++ reports/xcheck_official/iqdax.json | 76 ++++++ reports/xcheck_official/irbax.json | 6 + reports/xcheck_official/irnix.json | 6 + reports/xcheck_official/jborx.json | 6 + reports/xcheck_official/jfgfx.json | 6 + reports/xcheck_official/jhjrx.json | 6 + reports/xcheck_official/jhsmx.json | 6 + reports/xcheck_official/jihrx.json | 6 + reports/xcheck_official/jivmx.json | 6 + reports/xcheck_official/jlpsx.json | 101 +++++++- reports/xcheck_official/jmbux.json | 6 + reports/xcheck_official/joelx.json | 6 + reports/xcheck_official/jsalx.json | 6 + reports/xcheck_official/jsccx.json | 6 + reports/xcheck_official/jsimx.json | 6 + reports/xcheck_official/jsyrx.json | 6 + reports/xcheck_official/jtsrx.json | 6 + reports/xcheck_official/jttyx.json | 6 + reports/xcheck_official/jwsox.json | 6 + reports/xcheck_official/kcmtx.json | 6 + reports/xcheck_official/lcdvx.json | 6 + reports/xcheck_official/ldmvx.json | 6 + reports/xcheck_official/lebkx.json | 6 + reports/xcheck_official/libkx.json | 6 + reports/xcheck_official/llsox.json | 6 + reports/xcheck_official/lmamx.json | 6 + reports/xcheck_official/lmapx.json | 6 + reports/xcheck_official/lnfix.json | 6 + reports/xcheck_official/lpbkx.json | 6 + reports/xcheck_official/lptax.json | 6 + reports/xcheck_official/lqtvx.json | 6 + reports/xcheck_official/lttkx.json | 6 + reports/xcheck_official/lyrdx.json | 6 + reports/xcheck_official/masnx.json | 6 + reports/xcheck_official/mbbix.json | 6 + reports/xcheck_official/mdna.json | 6 + reports/xcheck_official/mdrvx.json | 6 + reports/xcheck_official/mfvzx.json | 6 + reports/xcheck_official/mgfox.json | 79 +++++++ reports/xcheck_official/mgrex.json | 6 + reports/xcheck_official/milnx.json | 6 + reports/xcheck_official/mizix.json | 6 + reports/xcheck_official/mlozx.json | 6 + reports/xcheck_official/mluzx.json | 6 + reports/xcheck_official/mmkux.json | 6 + reports/xcheck_official/mmqix.json | 6 + reports/xcheck_official/mmwix.json | 6 + reports/xcheck_official/mmwzx.json | 6 + reports/xcheck_official/mpdix.json | 6 + reports/xcheck_official/mpivx.json | 6 + reports/xcheck_official/mrcux.json | 6 + reports/xcheck_official/mrfux.json | 6 + reports/xcheck_official/mrgux.json | 6 + reports/xcheck_official/mrmux.json | 6 + reports/xcheck_official/mshyx.json | 6 + reports/xcheck_official/mspzx.json | 6 + reports/xcheck_official/msvzx.json | 6 + reports/xcheck_official/mucrx.json | 6 + reports/xcheck_official/mursx.json | 6 + reports/xcheck_official/mwatx.json | 6 + reports/xcheck_official/nmaex.json | 6 + reports/xcheck_official/nsfbx.json | 81 +++++++ reports/xcheck_official/nsfdx.json | 81 +++++++ reports/xcheck_official/nsfex.json | 81 +++++++ reports/xcheck_official/nsffx.json | 87 +++++++ reports/xcheck_official/nsfgx.json | 87 +++++++ reports/xcheck_official/nsfhx.json | 87 +++++++ reports/xcheck_official/nsfjx.json | 87 +++++++ reports/xcheck_official/nsfkx.json | 87 +++++++ reports/xcheck_official/nsflx.json | 81 +++++++ reports/xcheck_official/nsfmx.json | 87 +++++++ reports/xcheck_official/nubax.json | 6 + reports/xcheck_official/nwhix.json | 6 + reports/xcheck_official/nwifx.json | 6 + reports/xcheck_official/ofiix.json | 6 + reports/xcheck_official/oiemx.json | 6 + reports/xcheck_official/otcrx.json | 79 +++++++ reports/xcheck_official/paoix.json | 6 + reports/xcheck_official/pbatx.json | 6 + reports/xcheck_official/pcwqx.json | 6 + reports/xcheck_official/pdcjx.json | 6 + reports/xcheck_official/pdcrx.json | 6 + reports/xcheck_official/pedmx.json | 6 + reports/xcheck_official/pfsdx.json | 6 + reports/xcheck_official/pgmmx.json | 6 + reports/xcheck_official/plrrx.json | 6 + reports/xcheck_official/pmaix.json | 27 ++- reports/xcheck_official/pmfmx.json | 6 + reports/xcheck_official/pmrix.json | 6 + reports/xcheck_official/pmzdx.json | 6 + reports/xcheck_official/poefx.json | 6 + reports/xcheck_official/ppzrx.json | 6 + reports/xcheck_official/prmfx.json | 6 + reports/xcheck_official/ptm.json | 6 + reports/xcheck_official/ptrix.json | 6 + reports/xcheck_official/pubdx.json | 6 + reports/xcheck_official/pzvlx.json | 90 ++++++++ reports/xcheck_official/qiorx.json | 6 + reports/xcheck_official/qmorx.json | 6 + reports/xcheck_official/qsmrx.json | 6 + reports/xcheck_official/raaax.json | 107 +++++++++ reports/xcheck_official/rbrcx.json | 6 + reports/xcheck_official/ricix.json | 6 + reports/xcheck_official/rmrgx.json | 113 +++++++++ reports/xcheck_official/rpicx.json | 6 + reports/xcheck_official/rrsvx.json | 6 + reports/xcheck_official/rserx.json | 6 + reports/xcheck_official/saosx.json | 6 + reports/xcheck_official/schhx.json | 6 + reports/xcheck_official/schwfx.json | 6 + reports/xcheck_official/sdfix.json | 6 + reports/xcheck_official/shdix.json | 86 +++++++ reports/xcheck_official/shxix.json | 89 +++++++ reports/xcheck_official/shyax.json | 6 + reports/xcheck_official/spaax.json | 6 + reports/xcheck_official/spabx.json | 6 + reports/xcheck_official/spaix.json | 6 + reports/xcheck_official/ssbox.json | 76 ++++++ reports/xcheck_official/ssygx.json | 94 ++++++++ reports/xcheck_official/stlg.json | 6 + reports/xcheck_official/subyx.json | 6 + reports/xcheck_official/tfsmx.json | 6 + reports/xcheck_official/tmgax.json | 6 + reports/xcheck_official/tqezx.json | 82 +++++++ reports/xcheck_official/trebx.json | 6 + reports/xcheck_official/tspcx.json | 6 + reports/xcheck_official/ttai.json | 6 + reports/xcheck_official/ttdax.json | 74 ++++++ reports/xcheck_official/txemf.json | 6 + reports/xcheck_official/vasfx.json | 6 + reports/xcheck_official/vgqrx.json | 6 + reports/xcheck_official/vigtx.json | 6 + reports/xcheck_official/vlsrx.json | 6 + reports/xcheck_official/vrsbx.json | 6 + reports/xcheck_official/vtrdx.json | 166 +++++++++++++ reports/xcheck_official/vwrsx.json | 6 + reports/xcheck_official/wgcrx.json | 6 + reports/xcheck_official/winc.json | 6 + reports/xcheck_official/wtlvx.json | 6 + scripts/verify_official.py | 285 +++++++++++++++++++---- 243 files changed, 6773 insertions(+), 116 deletions(-) create mode 100644 overrides/corrections/CVSIX.json create mode 100644 overrides/corrections/JLPSX.json create mode 100644 reports/xcheck_official/aaalx.json create mode 100644 reports/xcheck_official/abqzx.json create mode 100644 reports/xcheck_official/adusx.json create mode 100644 reports/xcheck_official/aectx.json create mode 100644 reports/xcheck_official/afxpx.json create mode 100644 reports/xcheck_official/agazx.json create mode 100644 reports/xcheck_official/akrex.json create mode 100644 reports/xcheck_official/alasx.json create mode 100644 reports/xcheck_official/amfzx.json create mode 100644 reports/xcheck_official/andrx.json create mode 100644 reports/xcheck_official/arwdx.json create mode 100644 reports/xcheck_official/atezx.json create mode 100644 reports/xcheck_official/atmdx.json create mode 100644 reports/xcheck_official/avgyx.json create mode 100644 reports/xcheck_official/bafmx.json create mode 100644 reports/xcheck_official/bbgpx.json create mode 100644 reports/xcheck_official/bcmix.json create mode 100644 reports/xcheck_official/bfslx.json create mode 100644 reports/xcheck_official/bgaqx.json create mode 100644 reports/xcheck_official/bgrsx.json create mode 100644 reports/xcheck_official/biglx.json create mode 100644 reports/xcheck_official/blvax.json create mode 100644 reports/xcheck_official/btlkx.json create mode 100644 reports/xcheck_official/bxeyx.json create mode 100644 reports/xcheck_official/caalx.json create mode 100644 reports/xcheck_official/cacsx.json create mode 100644 reports/xcheck_official/cfbux.json create mode 100644 reports/xcheck_official/cforx.json create mode 100644 reports/xcheck_official/cnemx.json create mode 100644 reports/xcheck_official/cnevx.json create mode 100644 reports/xcheck_official/cnlsx.json create mode 100644 reports/xcheck_official/cnmnx.json create mode 100644 reports/xcheck_official/cnmsx.json create mode 100644 reports/xcheck_official/coagx.json create mode 100644 reports/xcheck_official/cogix.json create mode 100644 reports/xcheck_official/cpmnx.json create mode 100644 reports/xcheck_official/crupx.json create mode 100644 reports/xcheck_official/ddez.json create mode 100644 reports/xcheck_official/ddjp.json create mode 100644 reports/xcheck_official/dieyx.json create mode 100644 reports/xcheck_official/dribx.json create mode 100644 reports/xcheck_official/dsum.json create mode 100644 reports/xcheck_official/dxus.json create mode 100644 reports/xcheck_official/eroax.json create mode 100644 reports/xcheck_official/esga.json create mode 100644 reports/xcheck_official/esrx.json create mode 100644 reports/xcheck_official/evgbx.json create mode 100644 reports/xcheck_official/faevx.json create mode 100644 reports/xcheck_official/faosx.json create mode 100644 reports/xcheck_official/fexpx.json create mode 100644 reports/xcheck_official/fgbfx.json create mode 100644 reports/xcheck_official/fgizx.json create mode 100644 reports/xcheck_official/fibqx.json create mode 100644 reports/xcheck_official/fidlx.json create mode 100644 reports/xcheck_official/fijzx.json create mode 100644 reports/xcheck_official/fikax.json create mode 100644 reports/xcheck_official/fikhx.json create mode 100644 reports/xcheck_official/fikix.json create mode 100644 reports/xcheck_official/fikkx.json create mode 100644 reports/xcheck_official/fiqqx.json create mode 100644 reports/xcheck_official/fiqyx.json create mode 100644 reports/xcheck_official/fklsx.json create mode 100644 reports/xcheck_official/fkmax.json create mode 100644 reports/xcheck_official/fkmzx.json create mode 100644 reports/xcheck_official/flsrx.json create mode 100644 reports/xcheck_official/fmil.json create mode 100644 reports/xcheck_official/fovl.json create mode 100644 reports/xcheck_official/fpnix.json create mode 100644 reports/xcheck_official/frccx.json create mode 100644 reports/xcheck_official/fsmqx.json create mode 100644 reports/xcheck_official/fzaax.json create mode 100644 reports/xcheck_official/fzadx.json create mode 100644 reports/xcheck_official/fzagx.json create mode 100644 reports/xcheck_official/fzakx.json create mode 100644 reports/xcheck_official/gaamx.json create mode 100644 reports/xcheck_official/gdeux.json create mode 100644 reports/xcheck_official/gfcux.json create mode 100644 reports/xcheck_official/ggrux.json create mode 100644 reports/xcheck_official/ghplx.json create mode 100644 reports/xcheck_official/glgax.json create mode 100644 reports/xcheck_official/gmnix.json create mode 100644 reports/xcheck_official/gndsx.json create mode 100644 reports/xcheck_official/gopix.json create mode 100644 reports/xcheck_official/gseax.json create mode 100644 reports/xcheck_official/gsoux.json create mode 100644 reports/xcheck_official/gtorx.json create mode 100644 reports/xcheck_official/gumnx.json create mode 100644 reports/xcheck_official/hafvx.json create mode 100644 reports/xcheck_official/hdrw.json create mode 100644 reports/xcheck_official/hgsd.json create mode 100644 reports/xcheck_official/hlnax.json create mode 100644 reports/xcheck_official/hshrx.json create mode 100644 reports/xcheck_official/hsrt.json create mode 100644 reports/xcheck_official/innnx.json create mode 100644 reports/xcheck_official/ionax.json create mode 100644 reports/xcheck_official/ionpx.json create mode 100644 reports/xcheck_official/iqdax.json create mode 100644 reports/xcheck_official/irbax.json create mode 100644 reports/xcheck_official/irnix.json create mode 100644 reports/xcheck_official/jborx.json create mode 100644 reports/xcheck_official/jfgfx.json create mode 100644 reports/xcheck_official/jhjrx.json create mode 100644 reports/xcheck_official/jhsmx.json create mode 100644 reports/xcheck_official/jihrx.json create mode 100644 reports/xcheck_official/jivmx.json create mode 100644 reports/xcheck_official/jmbux.json create mode 100644 reports/xcheck_official/joelx.json create mode 100644 reports/xcheck_official/jsalx.json create mode 100644 reports/xcheck_official/jsccx.json create mode 100644 reports/xcheck_official/jsimx.json create mode 100644 reports/xcheck_official/jsyrx.json create mode 100644 reports/xcheck_official/jtsrx.json create mode 100644 reports/xcheck_official/jttyx.json create mode 100644 reports/xcheck_official/jwsox.json create mode 100644 reports/xcheck_official/kcmtx.json create mode 100644 reports/xcheck_official/lcdvx.json create mode 100644 reports/xcheck_official/ldmvx.json create mode 100644 reports/xcheck_official/lebkx.json create mode 100644 reports/xcheck_official/libkx.json create mode 100644 reports/xcheck_official/llsox.json create mode 100644 reports/xcheck_official/lmamx.json create mode 100644 reports/xcheck_official/lmapx.json create mode 100644 reports/xcheck_official/lnfix.json create mode 100644 reports/xcheck_official/lpbkx.json create mode 100644 reports/xcheck_official/lptax.json create mode 100644 reports/xcheck_official/lqtvx.json create mode 100644 reports/xcheck_official/lttkx.json create mode 100644 reports/xcheck_official/lyrdx.json create mode 100644 reports/xcheck_official/masnx.json create mode 100644 reports/xcheck_official/mbbix.json create mode 100644 reports/xcheck_official/mdna.json create mode 100644 reports/xcheck_official/mdrvx.json create mode 100644 reports/xcheck_official/mfvzx.json create mode 100644 reports/xcheck_official/mgfox.json create mode 100644 reports/xcheck_official/mgrex.json create mode 100644 reports/xcheck_official/milnx.json create mode 100644 reports/xcheck_official/mizix.json create mode 100644 reports/xcheck_official/mlozx.json create mode 100644 reports/xcheck_official/mluzx.json create mode 100644 reports/xcheck_official/mmkux.json create mode 100644 reports/xcheck_official/mmqix.json create mode 100644 reports/xcheck_official/mmwix.json create mode 100644 reports/xcheck_official/mmwzx.json create mode 100644 reports/xcheck_official/mpdix.json create mode 100644 reports/xcheck_official/mpivx.json create mode 100644 reports/xcheck_official/mrcux.json create mode 100644 reports/xcheck_official/mrfux.json create mode 100644 reports/xcheck_official/mrgux.json create mode 100644 reports/xcheck_official/mrmux.json create mode 100644 reports/xcheck_official/mshyx.json create mode 100644 reports/xcheck_official/mspzx.json create mode 100644 reports/xcheck_official/msvzx.json create mode 100644 reports/xcheck_official/mucrx.json create mode 100644 reports/xcheck_official/mursx.json create mode 100644 reports/xcheck_official/mwatx.json create mode 100644 reports/xcheck_official/nmaex.json create mode 100644 reports/xcheck_official/nsfbx.json create mode 100644 reports/xcheck_official/nsfdx.json create mode 100644 reports/xcheck_official/nsfex.json create mode 100644 reports/xcheck_official/nsffx.json create mode 100644 reports/xcheck_official/nsfgx.json create mode 100644 reports/xcheck_official/nsfhx.json create mode 100644 reports/xcheck_official/nsfjx.json create mode 100644 reports/xcheck_official/nsfkx.json create mode 100644 reports/xcheck_official/nsflx.json create mode 100644 reports/xcheck_official/nsfmx.json create mode 100644 reports/xcheck_official/nubax.json create mode 100644 reports/xcheck_official/nwhix.json create mode 100644 reports/xcheck_official/nwifx.json create mode 100644 reports/xcheck_official/ofiix.json create mode 100644 reports/xcheck_official/oiemx.json create mode 100644 reports/xcheck_official/otcrx.json create mode 100644 reports/xcheck_official/paoix.json create mode 100644 reports/xcheck_official/pbatx.json create mode 100644 reports/xcheck_official/pcwqx.json create mode 100644 reports/xcheck_official/pdcjx.json create mode 100644 reports/xcheck_official/pdcrx.json create mode 100644 reports/xcheck_official/pedmx.json create mode 100644 reports/xcheck_official/pfsdx.json create mode 100644 reports/xcheck_official/pgmmx.json create mode 100644 reports/xcheck_official/plrrx.json create mode 100644 reports/xcheck_official/pmfmx.json create mode 100644 reports/xcheck_official/pmrix.json create mode 100644 reports/xcheck_official/pmzdx.json create mode 100644 reports/xcheck_official/poefx.json create mode 100644 reports/xcheck_official/ppzrx.json create mode 100644 reports/xcheck_official/prmfx.json create mode 100644 reports/xcheck_official/ptm.json create mode 100644 reports/xcheck_official/ptrix.json create mode 100644 reports/xcheck_official/pubdx.json create mode 100644 reports/xcheck_official/pzvlx.json create mode 100644 reports/xcheck_official/qiorx.json create mode 100644 reports/xcheck_official/qmorx.json create mode 100644 reports/xcheck_official/qsmrx.json create mode 100644 reports/xcheck_official/raaax.json create mode 100644 reports/xcheck_official/rbrcx.json create mode 100644 reports/xcheck_official/ricix.json create mode 100644 reports/xcheck_official/rmrgx.json create mode 100644 reports/xcheck_official/rpicx.json create mode 100644 reports/xcheck_official/rrsvx.json create mode 100644 reports/xcheck_official/rserx.json create mode 100644 reports/xcheck_official/saosx.json create mode 100644 reports/xcheck_official/schhx.json create mode 100644 reports/xcheck_official/schwfx.json create mode 100644 reports/xcheck_official/sdfix.json create mode 100644 reports/xcheck_official/shdix.json create mode 100644 reports/xcheck_official/shxix.json create mode 100644 reports/xcheck_official/shyax.json create mode 100644 reports/xcheck_official/spaax.json create mode 100644 reports/xcheck_official/spabx.json create mode 100644 reports/xcheck_official/spaix.json create mode 100644 reports/xcheck_official/ssbox.json create mode 100644 reports/xcheck_official/ssygx.json create mode 100644 reports/xcheck_official/stlg.json create mode 100644 reports/xcheck_official/subyx.json create mode 100644 reports/xcheck_official/tfsmx.json create mode 100644 reports/xcheck_official/tmgax.json create mode 100644 reports/xcheck_official/tqezx.json create mode 100644 reports/xcheck_official/trebx.json create mode 100644 reports/xcheck_official/tspcx.json create mode 100644 reports/xcheck_official/ttai.json create mode 100644 reports/xcheck_official/ttdax.json create mode 100644 reports/xcheck_official/txemf.json create mode 100644 reports/xcheck_official/vasfx.json create mode 100644 reports/xcheck_official/vgqrx.json create mode 100644 reports/xcheck_official/vigtx.json create mode 100644 reports/xcheck_official/vlsrx.json create mode 100644 reports/xcheck_official/vrsbx.json create mode 100644 reports/xcheck_official/vtrdx.json create mode 100644 reports/xcheck_official/vwrsx.json create mode 100644 reports/xcheck_official/wgcrx.json create mode 100644 reports/xcheck_official/winc.json create mode 100644 reports/xcheck_official/wtlvx.json diff --git a/README.md b/README.md index e3dcde4..dc5db2b 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,48 @@ partial refresh takes seconds instead of a full ~1 min rebuild. | `settings.json` | Persisted UI inputs (symbol/benchmark specs, scheme, costs, tax rates, period, curve/window mode) — restored on every page load and server restart; delete to reset. | | `app.py` | Streamlit UI: single "symbol or portfolio" spec field (page updates as soon as the input is valid; unknown symbols get click-to-fix "did you mean" suggestions) + a benchmark box with the same grammar (one benchmark per line; a line is a single symbol or a comma-joined portfolio, simulated with the same scheme/cost/tax rules — pre- and after-tax curves, first one drives beta/alpha), scheme/costs/tax rates, save + load/compare/delete portfolios (overlaid pre/after-tax curves), curve toggle (both / pre-tax only / after-tax only), stats table, allocation, per-year tax detail. | +## Data verification (Tier 3: against official filings) + +`~/prog/fin/stocks` is a Yahoo dump and gets re-downloaded (overwritten), +so fixes must live outside it. Pipeline: + +1. `scripts/audit_stale.py` — finds tickers whose latest history row is + old and whose fresh Yahoo download is empty (delisted/merged funds, + tickers Yahoo no longer serves). Snapshots their final + `{history,dividend,capitalGain}.csv` + `longName` into + `overrides/frozen/{SYM}.{ext|json}`. `data.py` shadows the data root + with the frozen copies, so a re-download can't clobber them. +2. `scripts/verify_official.py [syms | --stale]` — finds the fund's + shareholder report (EDGAR EFTS for `"TICKER"`, forms N-CSR/N-CSRS/ + N-14/N-2/497) and parses the per-class *Financial Highlights* (or + JPMorgan-style *Per share operating performance*) tables: period-by- + period distribution totals compared against local + dividends + capital-gains over the same windows, plus a spot check of + the NAV-per-share row against the local close. Verdicts per symbol in + `reports/xcheck_official/{sym}.json`: **ok** (all bounded fiscal + years agree), **mismatch** (class matched, some year off — the + report tells you which), **weak-match** (best class fit too poor to + trust), **not-found** (fund not in any candidate filing). The local + side applies the corrections overlay, so a corrected fund verifies + against its filing. When several filings parse (e.g. the 497 annual + and the N-CSRS, which can round differently), the best match wins. +3. Confirmed findings go into `overrides/corrections/{SYM}.json` as + auditable deltas (`remove`/`replace`/`add` of distribution rows, each + entry dated and valued — amounts are what Yahoo reports, not the + official filing's). `data.py` applies them on cache build. Examples: + - **CVSIX** — 2008-12-18 0.292 duplicate of the same day's 0.641 + (official FY09 = 0.81 balances without it); 2023-12-21 0.510 + capital-gain row duplicated next to the day's 0.691 dividend + (official FY2024-10 = 0.79 balances without it). + - **JLPSX** — 13 year-end capital-gain distributions duplicated into + the dividend file (FY2021–2025 all match the JPMorgan 497 after + removal). + +Known uncorrected Yahoo discrepancies (no per-fund official per-date +schedule to pick between same-date conflicting amounts — left for +manual review): FAEVX, FGIZX, FZAGX, FIKAX, GDEUX, GSOUX, OTCRX, SHXIX +(details in `reports/xcheck_official/*.json`). + ## Development - **Run**: `./run.sh` → http://localhost:8599 (fixed port; no-ops if a diff --git a/data.py b/data.py index 24d9b23..69d40e6 100644 --- a/data.py +++ b/data.py @@ -244,6 +244,8 @@ def _apply_changes(root: Path, cache: Path, old: dict, new: dict) -> None: updates: dict[str, dict] = {k: {} for k in _PANELS} # panel -> {sym: series} drops: set[str] = set() + authoritative: set[str] = set() # corrections-derived series: replace, + # don't combine (deletions must stick) # data-root files of frozen symbols are ignored: their canonical series # lives in the overrides dir, which is tracked in the same scan frozen = frozen_syms() @@ -273,6 +275,7 @@ def _apply_changes(root: Path, cache: Path, old: dict, new: dict) -> None: continue updates[key][sym] = _apply_corrections(sym, sfx, df[colname]) \ .fillna(0.0) + authoritative.add(sym) for fname in changed: if fname.startswith("corrections/"): @@ -341,10 +344,15 @@ def _apply_changes(root: Path, cache: Path, old: dict, new: dict) -> None: for sym, s in upd.items(): s = s.rename(sym) if sym in old: - # new values win where present; keep old values for dates - # the new file doesn't cover (e.g. a partial re-download) uidx = panel.index.union(s.index) - s = s.reindex(uidx).combine_first(old[sym].reindex(uidx)) + if sym in authoritative: + # corrections-derived: a date missing from the new + # series was intentionally removed, not "not covered" + s = s.reindex(uidx).fillna(0.0) + else: + # new values win where present; keep old values for + # dates the new file doesn't cover (partial download) + s = s.reindex(uidx).combine_first(old[sym].reindex(uidx)) extras.append(s) extra = pd.concat(extras, axis=1) extra.columns = list(upd) diff --git a/overrides/corrections/CVSIX.json b/overrides/corrections/CVSIX.json new file mode 100644 index 0000000..98edd3a --- /dev/null +++ b/overrides/corrections/CVSIX.json @@ -0,0 +1,13 @@ +{ + "symbol": "cvsix", + "note": "Two same-date double-listing rows removed, each confirmed against the official Calamos Investment Trust N-CSRS (modernized shareholder-report format). (1) 2008-12-18 0.292 (dividends): duplicate date of the real 0.641 distribution; official FY2009 (FYE 10-31) = 0.81 = 0.641+0.076+0.050+0.045 and FY2008 = 0.51 = 0.241+0.090+0.090+0.089 both balance without it. (2) 2023-12-21 0.510 (capitalGains): official FY2024-10 = 0.79 = 0.691+0.017+0.042+0.042, so the 0.510 cap-gain row on the same date as the 0.691 dividend is the spurious one.", + "verified": [ + "N-CSRS accession 0001104659-26-080185 (period 2026-04-30), CIK 0000826732: FY2025-10 0.25, FY2024-10 0.79, FY2023-10 0.20, FY2022-10 0.03 all match after corrections; NAV 14.63 @ 2021-10-29 exact" + ], + "dividends": { + "remove": [["2008-12-18", 0.292]] + }, + "capitalGains": { + "remove": [["2023-12-21", 0.510]] + } +} diff --git a/overrides/corrections/JLPSX.json b/overrides/corrections/JLPSX.json new file mode 100644 index 0000000..397d2a9 --- /dev/null +++ b/overrides/corrections/JLPSX.json @@ -0,0 +1,26 @@ +{ + "symbol": "jlpsx", + "name": "JPMorgan U.S. Large Cap Core Plus Fund (I shares)", + "note": "Yahoo listed each year-end capital-gain distribution in BOTH the dividend and capitalGains event files (identical date+amount). Official per-share data (JPMorgan Trust I 497 annual report, filed 2025-11-03, Class I, fiscal year ended June 30): FY2025 1.37 (NII 0.02 + CG 1.35), FY2024 2.03 (0.04 + 1.99), FY2023 4.86 (0.02 + 4.84), FY2022 6.78 (0 + 6.78), FY2021 6.89 (0.07 + 6.82). Local sums after removing the duplicated dividend-file copies match every one of those (1.368, 2.029, 4.859, 6.785, 6.889). The 2021-12-20 0.026 dividend row is removed because official FY2022 NII distributions are zero ('less than $0.005'). The 2019-08-08 4.138 dividend row is removed as the duplicate of the 4.077 capital-gain row (same mechanism; FY2016-FY2020 official figures were not retrievable, the 2021 497 is delisted from SEC Archives - mechanism-inferred for that year).", + "verified": [ + "FY2021-FY2025 exact match against 497 filed 2025-11-03 (accession 0001193125-25-261054, CIK 0000763852)" + ], + "dividends": { + "remove": [ + ["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-08-08", 4.138], + ["2020-12-11", 6.824], + ["2021-12-13", 6.785], + ["2021-12-20", 0.026], + ["2022-12-13", 4.841], + ["2023-12-13", 1.989], + ["2024-12-12", 1.347] + ] + } +} diff --git a/reports/xcheck_official/SUMMARY.md b/reports/xcheck_official/SUMMARY.md index c133c3c..93cda36 100644 --- a/reports/xcheck_official/SUMMARY.md +++ b/reports/xcheck_official/SUMMARY.md @@ -4,32 +4,265 @@ Verdicts: ok = all bounded fiscal periods agree; mismatch = class matched but so | Symbol | Verdict | Class | Periods (fy end, ~ = unbounded) | Detail | |---|---|---|---|---| +| AAALX | not-found | | | no candidate filing contained this fund (6 tried) | +| ABQZX | not-found | | | no candidate filing contained this fund (1 tried) | +| ADUSX | not-found | | | no candidate filing contained this fund (0 tried) | +| AECTX | weak-match | ? | 2012-12✗ 2032-12✗ 2013-12✗ 2029-12✗ 2023-12✗ 2011-12✗ 2009-12✗ 2010-12✗ 2028-12✗ 2018-12✗ 2022-12✗ 2015-12✗ 2027-12✗ 2016-12✗ 2008-12✗ 2021-12✗ 2005-12✗ 2001-12✗ 2014-12✗ 2040-12✗ 2020-12✗ 2003-12✗ 2026-12✗ 2017-12✗ 2019-12✗ 2024-12✗ 2006-12✗ 2030-12✗ 2002-12✗ 2036-12✗ 2038-12✗ 2033-12✗ 2034-12✗ 2025-12✗ 2035-12✗ 2039-12~ | | +| AFXPX | not-found | | | no candidate filing contained this fund (6 tried) | +| AGAZX | not-found | | | no candidate filing contained this fund (6 tried) | | AGG | not-found | | | no candidate filing contained this fund (6 tried) | +| AKREX | weak-match | ? | 2022-01✗ 2031-01✗ 2021-01✗ 2020-01✗ 2019-01✗ 2018-01✗ 2017-01~ | | +| ALASX | not-found | | | no candidate filing contained this fund (0 tried) | +| AMFZX | not-found | | | no candidate filing contained this fund (6 tried) | +| ANDRX | not-found | | | no candidate filing contained this fund (6 tried) | +| ARWDX | not-found | | | no candidate filing contained this fund (6 tried) | | ATESX | weak-match | ? | 2010-08✗ 2015-08✗ 2024-02✗ 2023-08✗ 2022-08✗ 2021-08✗ 2019-08~ | | +| ATEZX | not-found | | | no candidate filing contained this fund (4 tried) | +| ATMDX | not-found | | | no candidate filing contained this fund (6 tried) | | ATRFX | not-found | | | no candidate filing contained this fund (6 tried) | +| AVGYX | weak-match | Class A Shares | 2014-10✗ 2022-10✗ 2028-10✗ 2029-10✗ 2031-10✗ 2021-10✗ 2020-10✗ 2019-10~ | | +| BAFMX | not-found | | | no candidate filing contained this fund (6 tried) | +| BBGPX | not-found | | | no candidate filing contained this fund (5 tried) | +| BCMIX | weak-match | ? | 2024-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| BFSLX | not-found | | | no candidate filing contained this fund (6 tried) | +| BGAQX | not-found | | | no candidate filing contained this fund (5 tried) | +| BGRSX | not-found | | | no candidate filing contained this fund (1 tried) | +| BIGLX | not-found | | | no candidate filing contained this fund (2 tried) | +| BLVAX | not-found | | | no candidate filing contained this fund (6 tried) | | BND | ok | ETF Shares | 2025-12✓ 2024-12✓ 2023-12✓ 2022-12✓ 2021-12~ | | +| BTLKX | not-found | | | no candidate filing contained this fund (6 tried) | +| BXEYX | not-found | | | no candidate filing contained this fund (1 tried) | +| CAALX | not-found | | | no candidate filing contained this fund (0 tried) | +| CACSX | not-found | | | no candidate filing contained this fund (6 tried) | +| CFBUX | not-found | | | no candidate filing contained this fund (6 tried) | +| CFORX | not-found | | | no candidate filing contained this fund (4 tried) | +| CNEMX | not-found | | | no candidate filing contained this fund (4 tried) | +| CNEVX | not-found | | | no candidate filing contained this fund (4 tried) | +| CNLSX | not-found | | | no candidate filing contained this fund (4 tried) | +| CNMNX | not-found | | | no candidate filing contained this fund (4 tried) | +| CNMSX | not-found | | | no candidate filing contained this fund (4 tried) | +| COAGX | not-found | | | no candidate filing contained this fund (6 tried) | +| COGIX | not-found | | | no candidate filing contained this fund (6 tried) | | COSIX | not-found | | | no candidate filing contained this fund (4 tried) | -| CVSIX | mismatch | ? | 2011-10✓ 2010-10✓ 2009-10✗ 2008-10~ | | +| CPMNX | not-found | | | no candidate filing contained this fund (6 tried) | +| CRUPX | not-found | | | no candidate filing contained this fund (6 tried) | +| CVSIX | ok | ? | 2025-10✓ 2024-10✓ 2023-10✓ 2022-10✓ 2021-10~ | | +| DDEZ | not-found | | | no candidate filing contained this fund (6 tried) | +| DDJP | not-found | | | no candidate filing contained this fund (6 tried) | +| DIEYX | weak-match | Class A Shares | 2013-03✗ 2023-09✗ 2013-09✗ 2030-03✗ 2023-03✗ 2022-03✗ 2021-03✗ 2020-03✗ 2019-03~ | | +| DRIBX | weak-match | ? | 2010-12✗ 2013-12✗ 2020-12✗ 2025-12✗ 2030-12✗ 2024-12✗ 2031-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2019-12~ | | +| DSUM | not-found | | | no candidate filing contained this fund (6 tried) | +| DXUS | not-found | | | no candidate filing contained this fund (6 tried) | | EAGMX | not-found | | | no candidate filing contained this fund (6 tried) | | EFA | not-found | | | no candidate filing contained this fund (6 tried) | | EGRSX | not-found | | | no candidate filing contained this fund (4 tried) | +| EROAX | not-found | | | no candidate filing contained this fund (6 tried) | +| ESGA | not-found | | | no candidate filing contained this fund (6 tried) | +| ESRX | not-found | | | no candidate filing contained this fund (6 tried) | +| EVGBX | weak-match | ? | 2024-02✗ 2031-02✗ 2023-02✗ 2022-02✗ 2021-02✗ 2020-02✗ 2019-02✓ 2018-02~ | | +| FAEVX | mismatch | ? | 2024-11✗ 2023-11✗ 2022-11✗ 2021-11✓ 2020-11~ | | +| FAOSX | weak-match | ? | 2023-10✗ 2022-10✗ 2021-10✗ 2020-10~ | | +| FEXPX | not-found | | | no candidate filing contained this fund (1 tried) | +| FGBFX | ok | ? | 2023-12✓ 2022-12✓ 2021-12✓ 2020-12~ | | +| FGIZX | mismatch | ? | 2023-11✗ 2022-11✗ 2021-11✗ 2020-11~ | | +| FIBQX | weak-match | Class A | 2020-06✗ 2031-06✗ 2019-06✗ 2018-06✗ 2017-06✗ 2016-06✗ 2015-06~ | | +| FIDLX | weak-match | ? | 2024-11✗ 2023-11✗ 2022-11✗ 2021-11✗ 2020-11~ | | +| FIJZX | weak-match | ? | 2024-07✗ 2023-07✗ 2022-07✗ 2021-07~ | | +| FIKAX | mismatch | ? | 2024-07✗ 2023-07✗ 2022-07✗ 2021-07~ | | +| FIKHX | weak-match | ? | 2024-07✗ 2023-07✗ 2022-07✗ 2021-07~ | | +| FIKIX | weak-match | ? | 2024-07✗ 2023-07✗ 2022-07✗ 2021-07~ | | +| FIKKX | ok | ? | 2024-07✓ 2023-07✓ 2022-07✓ 2021-07✓ 2020-07~ | | +| FIQQX | not-found | | | no candidate filing contained this fund (0 tried) | +| FIQYX | ok | ? | 2023-12✓ 2022-12✓ 2021-12✓ 2020-12~ | | +| FKLSX | weak-match | Class A | 2022-05✗ 2021-05✗ 2020-05✗ 2019-05✗ 2018-05~ | | +| FKMAX | not-found | | | no candidate filing contained this fund (0 tried) | +| FKMZX | not-found | | | no candidate filing contained this fund (0 tried) | +| FLSRX | not-found | | | no candidate filing contained this fund (0 tried) | +| FMIL | ok | ? | 2025-07✓ 2024-07✓ 2023-07✓ 2022-07✓ 2021-07~ | | +| FOVL | not-found | | | no candidate filing contained this fund (6 tried) | +| FPNIX | not-found | | | no candidate filing contained this fund (6 tried) | +| FRCCX | not-found | | | no candidate filing contained this fund (4 tried) | +| FSMQX | not-found | | | no candidate filing contained this fund (1 tried) | +| FZAAX | not-found | | | no candidate filing contained this fund (6 tried) | +| FZADX | weak-match | ? | 2024-11✗ 2023-11✗ 2022-11✗ 2021-11✓ 2020-11~ | | +| FZAGX | mismatch | ? | 2024-11✗ 2023-11✗ 2022-11✗ 2021-11✓ 2020-11~ | | +| FZAKX | not-found | | | no candidate filing contained this fund (6 tried) | +| GAAMX | not-found | | | no candidate filing contained this fund (0 tried) | +| GDEUX | mismatch | Class R6 Shares | 2024-08✓ 2023-08✓ 2022-08✗ 2021-08✗ 2020-08~ | | +| GFCUX | weak-match | Institutional Shares | 2024-08✗ 2023-08✗ 2022-08✗ 2021-08~ | | +| GGRUX | weak-match | Institutional Shares | 2024-08✗ 2023-08✗ 2022-08✗ 2021-08~ | | +| GHPLX | not-found | | | no candidate filing contained this fund (6 tried) | | GLD | not-found | | | no candidate filing contained this fund (6 tried) | +| GLGAX | weak-match | ? | 2019-01✗ 2018-01✗ 2017-01✗ 2016-01~ | | +| GMNIX | not-found | | | no candidate filing contained this fund (0 tried) | +| GNDSX | not-found | | | no candidate filing contained this fund (6 tried) | +| GOPIX | not-found | | | no candidate filing contained this fund (6 tried) | +| GSEAX | not-found | | | no candidate filing contained this fund (6 tried) | +| GSOUX | mismatch | Institutional Shares | 2025-03✓ 2024-03✓ 2023-03✓ 2022-03✗ 2021-03~ | | +| GTORX | weak-match | Institutional Shares | 2024-08✗ 2023-08✗ 2022-08✗ 2021-08✗ 2020-08~ | | +| GUMNX | not-found | | | no candidate filing contained this fund (1 tried) | +| HAFVX | not-found | | | no candidate filing contained this fund (5 tried) | +| HDRW | not-found | | | no candidate filing contained this fund (6 tried) | +| HGSD | not-found | | | no candidate filing contained this fund (6 tried) | +| HLNAX | not-found | | | no candidate filing contained this fund (5 tried) | +| HSHRX | not-found | | | no candidate filing contained this fund (6 tried) | +| HSRT | not-found | | | no candidate filing contained this fund (6 tried) | +| INNNX | not-found | | | no candidate filing contained this fund (6 tried) | +| IONAX | weak-match | ? | 2016-12✗ 2030-12✗ 2015-12~ | | +| IONPX | weak-match | ? | 2016-12✗ 2030-12✗ 2015-12~ | | +| IQDAX | weak-match | ? | 2019-08✗ 2018-08✗ 2017-08✗ 2016-08~ | | +| IRBAX | not-found | | | no candidate filing contained this fund (6 tried) | +| IRNIX | error | | | HTTP Error 500: Internal Server Error | | IWM | not-found | | | no candidate filing contained this fund (6 tried) | -| JLPSX | not-found | | | no candidate filing contained this fund (5 tried) | +| JBORX | not-found | | | no candidate filing contained this fund (2 tried) | +| JFGFX | not-found | | | no candidate filing contained this fund (2 tried) | +| JHJRX | not-found | | | no candidate filing contained this fund (3 tried) | +| JHSMX | not-found | | | no candidate filing contained this fund (2 tried) | +| JIHRX | not-found | | | no candidate filing contained this fund (2 tried) | +| JIVMX | not-found | | | no candidate filing contained this fund (4 tried) | +| JLPSX | ok | Class I | 2025-06✓ 2024-06✓ 2023-06✓ 2022-06✓ 2021-06~ | | +| JMBUX | not-found | | | no candidate filing contained this fund (2 tried) | +| JOELX | not-found | | | no candidate filing contained this fund (0 tried) | +| JSALX | not-found | | | no candidate filing contained this fund (0 tried) | +| JSCCX | not-found | | | no candidate filing contained this fund (6 tried) | +| JSIMX | not-found | | | no candidate filing contained this fund (3 tried) | +| JSYRX | not-found | | | no candidate filing contained this fund (3 tried) | +| JTSRX | not-found | | | no candidate filing contained this fund (2 tried) | +| JTTYX | not-found | | | no candidate filing contained this fund (3 tried) | +| JWSOX | not-found | | | no candidate filing contained this fund (2 tried) | +| KCMTX | not-found | | | no candidate filing contained this fund (6 tried) | | LAMHX | not-found | | | no candidate filing contained this fund (5 tried) | +| LCDVX | not-found | | | no candidate filing contained this fund (6 tried) | | LCORX | weak-match | ? | 2023-09✗ 2022-09✗ 2021-09✓ 2020-09✗ 2019-09~ | | | LCRIX | weak-match | ? | 2023-09✗ 2022-09✗ 2021-09✓ 2020-09✗ 2019-09~ | | +| LDMVX | not-found | | | no candidate filing contained this fund (6 tried) | +| LEBKX | not-found | | | no candidate filing contained this fund (0 tried) | +| LIBKX | not-found | | | no candidate filing contained this fund (5 tried) | +| LLSOX | not-found | | | no candidate filing contained this fund (0 tried) | +| LMAMX | not-found | | | no candidate filing contained this fund (6 tried) | +| LMAPX | not-found | | | no candidate filing contained this fund (6 tried) | +| LNFIX | not-found | | | no candidate filing contained this fund (4 tried) | +| LPBKX | not-found | | | no candidate filing contained this fund (6 tried) | +| LPTAX | not-found | | | no candidate filing contained this fund (0 tried) | +| LQTVX | not-found | | | no candidate filing contained this fund (6 tried) | +| LTTKX | not-found | | | no candidate filing contained this fund (4 tried) | +| LYRDX | not-found | | | no candidate filing contained this fund (6 tried) | +| MASNX | not-found | | | no candidate filing contained this fund (6 tried) | +| MBBIX | not-found | | | no candidate filing contained this fund (2 tried) | | MBXIX | not-found | | | no candidate filing contained this fund (6 tried) | +| MDNA | not-found | | | no candidate filing contained this fund (0 tried) | +| MDRVX | not-found | | | no candidate filing contained this fund (1 tried) | +| MFVZX | not-found | | | no candidate filing contained this fund (2 tried) | +| MGFOX | ok | ? | 2024-10✓ 2023-10✓ 2022-10✓ 2021-10~ | | +| MGREX | not-found | | | no candidate filing contained this fund (6 tried) | +| MILNX | not-found | | | no candidate filing contained this fund (0 tried) | +| MIZIX | not-found | | | no candidate filing contained this fund (2 tried) | +| MLOZX | not-found | | | no candidate filing contained this fund (6 tried) | +| MLUZX | not-found | | | no candidate filing contained this fund (1 tried) | +| MMKUX | not-found | | | no candidate filing contained this fund (1 tried) | +| MMQIX | not-found | | | no candidate filing contained this fund (1 tried) | +| MMWIX | not-found | | | no candidate filing contained this fund (1 tried) | +| MMWZX | not-found | | | no candidate filing contained this fund (1 tried) | +| MPDIX | not-found | | | no candidate filing contained this fund (2 tried) | +| MPIVX | not-found | | | no candidate filing contained this fund (1 tried) | +| MRCUX | not-found | | | no candidate filing contained this fund (2 tried) | +| MRFUX | not-found | | | no candidate filing contained this fund (1 tried) | +| MRGUX | not-found | | | no candidate filing contained this fund (2 tried) | +| MRMUX | not-found | | | no candidate filing contained this fund (2 tried) | +| MSHYX | not-found | | | no candidate filing contained this fund (6 tried) | +| MSPZX | not-found | | | no candidate filing contained this fund (2 tried) | +| MSVZX | not-found | | | no candidate filing contained this fund (2 tried) | +| MUCRX | not-found | | | no candidate filing contained this fund (6 tried) | +| MURSX | not-found | | | no candidate filing contained this fund (6 tried) | +| MWATX | not-found | | | no candidate filing contained this fund (6 tried) | +| NMAEX | not-found | | | no candidate filing contained this fund (6 tried) | +| NSFBX | weak-match | Class Y | 2024-01✗ 2023-01✗ 2022-01✗ 2021-01✗ 2020-01~ | | +| NSFDX | weak-match | Class Y | 2024-01✗ 2023-01✗ 2022-01✗ 2021-01✗ 2020-01~ | | +| NSFEX | weak-match | Class Y | 2024-01✗ 2023-01✗ 2022-01✗ 2021-01✗ 2020-01~ | | +| NSFFX | weak-match | Class A | 2024-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| NSFGX | weak-match | Class A | 2024-12✗ 2023-12✗ 2022-12✓ 2021-12✗ 2020-12~ | | +| NSFHX | weak-match | Class A | 2024-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| NSFJX | weak-match | Class A | 2024-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| NSFKX | weak-match | Class A | 2024-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| NSFLX | weak-match | Class N | 2024-01✗ 2023-01✗ 2022-01✗ 2021-01✗ 2020-01~ | | +| NSFMX | weak-match | Class A | 2024-12✗ 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| NUBAX | not-found | | | no candidate filing contained this fund (6 tried) | +| NWHIX | not-found | | | no candidate filing contained this fund (1 tried) | +| NWIFX | not-found | | | no candidate filing contained this fund (6 tried) | +| OFIIX | not-found | | | no candidate filing contained this fund (6 tried) | +| OIEMX | not-found | | | no candidate filing contained this fund (6 tried) | +| OTCRX | mismatch | ? | 2024-10✓ 2023-10✗ 2022-10✗ 2021-10✓ 2020-10~ | | +| PAOIX | not-found | | | no candidate filing contained this fund (6 tried) | +| PBATX | not-found | | | no candidate filing contained this fund (2 tried) | +| PCWQX | not-found | | | no candidate filing contained this fund (6 tried) | +| PDCJX | not-found | | | no candidate filing contained this fund (6 tried) | +| PDCRX | not-found | | | no candidate filing contained this fund (6 tried) | +| PEDMX | error | | | HTTP Error 500: Internal Server Error | +| PFSDX | not-found | | | no candidate filing contained this fund (6 tried) | +| PGMMX | not-found | | | no candidate filing contained this fund (0 tried) | +| PLRRX | not-found | | | no candidate filing contained this fund (4 tried) | | PMAIX | ok | Class A | 2025-07✓ 2024-07✓ 2023-07✓ 2022-07✓ 2021-07~ | | | PMFKX | ok | Class R6 | 2025-07✓ 2024-07✓ 2023-07✓ 2022-07✓ 2021-07~ | | +| PMFMX | not-found | | | no candidate filing contained this fund (2 tried) | | PMORX | not-found | | | no candidate filing contained this fund (5 tried) | +| PMRIX | not-found | | | no candidate filing contained this fund (2 tried) | +| PMZDX | not-found | | | no candidate filing contained this fund (6 tried) | +| POEFX | not-found | | | no candidate filing contained this fund (1 tried) | +| PPZRX | not-found | | | no candidate filing contained this fund (6 tried) | +| PRMFX | not-found | | | no candidate filing contained this fund (2 tried) | +| PTM | not-found | | | no candidate filing contained this fund (6 tried) | +| PTRIX | not-found | | | no candidate filing contained this fund (6 tried) | +| PUBDX | not-found | | | no candidate filing contained this fund (6 tried) | +| PZVLX | weak-match | ? | 2016-04✗ 2029-04✗ 2028-04✗ 2020-04✗ 2019-04✗ 2018-04✓ 2017-02~ | | +| QIORX | not-found | | | no candidate filing contained this fund (6 tried) | +| QMORX | not-found | | | no candidate filing contained this fund (6 tried) | | QQQ | not-found | | | no candidate filing contained this fund (6 tried) | +| QSMRX | not-found | | | no candidate filing contained this fund (6 tried) | | QSPNX | not-found | | | no candidate filing contained this fund (6 tried) | +| RAAAX | weak-match | ? | 2010-12✗ 2030-12✗ 2031-12✗ 2025-12✗ 2024-12✗ 2023-12✓ 2022-12✗ 2021-12✗ 2020-12~ | | +| RBRCX | not-found | | | no candidate filing contained this fund (2 tried) | +| RICIX | not-found | | | no candidate filing contained this fund (6 tried) | +| RMRGX | weak-match | ? | 2019-12✗ 2022-12✗ 2026-12✗ 2014-12✓ 2020-12✓ 2020-10✓ 2020-04✗ 2019-04✗ 2017-05✗ 2018-04~ | | +| RPICX | not-found | | | no candidate filing contained this fund (0 tried) | +| RRSVX | not-found | | | no candidate filing contained this fund (2 tried) | +| RSERX | not-found | | | no candidate filing contained this fund (6 tried) | +| SAOSX | not-found | | | no candidate filing contained this fund (2 tried) | | SCHD | not-found | | | no candidate filing contained this fund (6 tried) | +| SCHHX | not-found | | | no candidate filing contained this fund (0 tried) | +| SCHWFX | not-found | | | no candidate filing contained this fund (0 tried) | +| SDFIX | not-found | | | no candidate filing contained this fund (6 tried) | +| SHDIX | weak-match | ? | 2025-06✗ 2024-06✗ 2023-06✗ 2022-06✗ 2021-06~ | | | SHV | not-found | | | no candidate filing contained this fund (6 tried) | +| SHXIX | mismatch | ? | 2025-06✓ 2024-06✓ 2023-06✗ 2022-06✗ 2021-06~ | | +| SHYAX | not-found | | | no candidate filing contained this fund (4 tried) | | SLV | not-found | | | no candidate filing contained this fund (6 tried) | +| SPAAX | not-found | | | no candidate filing contained this fund (0 tried) | +| SPABX | not-found | | | no candidate filing contained this fund (6 tried) | +| SPAIX | not-found | | | no candidate filing contained this fund (6 tried) | +| SSBOX | weak-match | Class K | 2023-12✗ 2022-12✗ 2021-12✗ 2020-12~ | | +| SSYGX | weak-match | ? | 2025-03✗ 2030-03✗ 2024-03✗ 2023-03✗ 2022-03✗ 2021-03✗ 2020-03~ | | +| STLG | not-found | | | no candidate filing contained this fund (6 tried) | +| SUBYX | not-found | | | no candidate filing contained this fund (6 tried) | | SVARX | not-found | | | no candidate filing contained this fund (5 tried) | +| TFSMX | not-found | | | no candidate filing contained this fund (6 tried) | +| TMGAX | not-found | | | no candidate filing contained this fund (0 tried) | +| TQEZX | weak-match | Class N | 2023-12✗ 2022-12✗ 2021-12✗ 2020-12✗ 2019-12~ | | +| TREBX | not-found | | | no candidate filing contained this fund (1 tried) | +| TSPCX | not-found | | | no candidate filing contained this fund (0 tried) | +| TTAI | not-found | | | no candidate filing contained this fund (6 tried) | +| TTDAX | ok | ? | 2025-04✓ 2024-04✓ 2023-04✓ 2022-04~ | | +| TXEMF | not-found | | | no candidate filing contained this fund (5 tried) | +| VASFX | not-found | | | no candidate filing contained this fund (6 tried) | | VEA | ok | FTSE Developed Markets ETF Shares | 2025-12✓ 2024-12✓ 2023-12✓ 2022-12✓ 2021-12~ | | +| VGQRX | not-found | | | no candidate filing contained this fund (6 tried) | +| VIGTX | not-found | | | no candidate filing contained this fund (3 tried) | +| VLSRX | not-found | | | no candidate filing contained this fund (6 tried) | +| VRSBX | not-found | | | no candidate filing contained this fund (5 tried) | | VTI | ok | ETF Shares | 2025-12✓ 2024-12✓ 2023-12✓ 2022-12✓ 2021-12~ | | +| VTRDX | weak-match | ? | 2014-12✗ 2019-12✗ 2005-12✗ 2021-12✗ 2011-12✗ 2021-05✗ 2011-05✗ 2017-05✗ 2028-05✗ 2034-05✗ 2014-05✗ 2024-05✗ 2027-05✗ 2029-05✗ 2015-05~ | | | VTSAX | ok | Admiral Shares | 2025-12✓ 2024-12✓ 2023-12✓ 2022-12✓ 2021-12~ | | | VWO | not-found | | | no candidate filing contained this fund (6 tried) | +| VWRSX | not-found | | | no candidate filing contained this fund (0 tried) | +| WGCRX | not-found | | | no candidate filing contained this fund (6 tried) | +| WINC | not-found | | | no candidate filing contained this fund (6 tried) | +| WTLVX | not-found | | | no candidate filing contained this fund (6 tried) | diff --git a/reports/xcheck_official/aaalx.json b/reports/xcheck_official/aaalx.json new file mode 100644 index 0000000..9f8db00 --- /dev/null +++ b/reports/xcheck_official/aaalx.json @@ -0,0 +1,6 @@ +{ + "symbol": "aaalx", + "name": "American Century Asset Allocation Portfolios Inc. - One Choice Blend 2015\u00a0Portfolio Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/abqzx.json b/reports/xcheck_official/abqzx.json new file mode 100644 index 0000000..2153d11 --- /dev/null +++ b/reports/xcheck_official/abqzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "abqzx", + "name": "AB Bond Fund, Inc. - AB Total Return Bond Portfolio", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/adusx.json b/reports/xcheck_official/adusx.json new file mode 100644 index 0000000..01460dc --- /dev/null +++ b/reports/xcheck_official/adusx.json @@ -0,0 +1,6 @@ +{ + "symbol": "adusx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/aectx.json b/reports/xcheck_official/aectx.json new file mode 100644 index 0000000..8db1f61 --- /dev/null +++ b/reports/xcheck_official/aectx.json @@ -0,0 +1,347 @@ +{ + "symbol": "aectx", + "name": "American Century World Mutual Funds, Inc. - Emerging Markets Small Cap Fund", + "filing": { + "accession": "0000872825-24-000033", + "doc": "ck0000872825-20240531.htm", + "period_end": "2024-05-31", + "display": "AMERICAN CENTURY WORLD MUTUAL FUNDS INC (CIK 0000872825)", + "ciks": [ + "0000872825" + ], + "score": 22.040518 + }, + "how": "ticker", + "n_bytes": 7568374, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.9028, + "nav_check": null, + "periods": [ + { + "period": "fy", + "end": "2012-12-31", + "official": 7.09, + "local": 0, + "diff": 7.09, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2032-12-31", + "official": 0.03, + "local": 5.469, + "diff": -5.439, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2013-12-31", + "official": 0.91, + "local": 0, + "diff": 0.91, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2029-12-31", + "official": 0.88, + "local": 0.216, + "diff": 0.664, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.36, + "local": 5.253, + "diff": -4.893, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2011-12-31", + "official": 0.36, + "local": 0, + "diff": 0.36, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2009-12-31", + "official": 7.6112, + "local": 0, + "diff": 7.6112, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2010-12-31", + "official": 0.87, + "local": 0, + "diff": 0.87, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2028-12-31", + "official": 2.08, + "local": 4.295, + "diff": -2.215, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-12-31", + "official": 0.94, + "local": 0, + "diff": 0.94, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 7.76, + "local": 5.253, + "diff": 2.507, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2015-12-31", + "official": 0.03, + "local": 0, + "diff": 0.03, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2027-12-31", + "official": 0.49, + "local": 5.345, + "diff": -4.855, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2016-12-31", + "official": 0.46, + "local": 0.124, + "diff": 0.336, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2008-12-31", + "official": 1.13, + "local": 0, + "diff": 1.13, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 1.13, + "local": 4.962, + "diff": -3.832, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2005-12-31", + "official": 7.097, + "local": 0, + "diff": 7.097, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2001-12-31", + "official": 0.72, + "local": 0, + "diff": 0.72, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2014-12-31", + "official": 2.09, + "local": 0, + "diff": 2.09, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2040-12-31", + "official": 0.5, + "local": 2.987, + "diff": -2.487, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 11.08, + "local": 2.482, + "diff": 8.598, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2003-12-31", + "official": 0.04, + "local": 0, + "diff": 0.04, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2026-12-31", + "official": 1.51, + "local": 5.123, + "diff": -3.613, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-12-31", + "official": 1.55, + "local": 0, + "diff": 1.55, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-12-31", + "official": 1.77, + "local": 0, + "diff": 1.77, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 1.77, + "local": 5.469, + "diff": -3.699, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2006-12-31", + "official": 7.76, + "local": 0, + "diff": 7.76, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-12-31", + "official": 16.87, + "local": 5.469, + "diff": 11.401, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2002-12-31", + "official": 2.1, + "local": 0, + "diff": 2.1, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2036-12-31", + "official": 0.46, + "local": 0, + "diff": 0.46, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2038-12-31", + "official": 11.23, + "local": 0, + "diff": 11.23, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2033-12-31", + "official": 0.08, + "local": 0, + "diff": 0.08, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2034-12-31", + "official": 1.371, + "local": 0, + "diff": 1.371, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-12-31", + "official": 0.29, + "local": 0, + "diff": 0.29, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2035-12-31", + "official": 1.44, + "local": 0, + "diff": 1.44, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2039-12-31", + "official": 1.44, + "local": 5.469, + "diff": -4.029, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/afxpx.json b/reports/xcheck_official/afxpx.json new file mode 100644 index 0000000..d044a40 --- /dev/null +++ b/reports/xcheck_official/afxpx.json @@ -0,0 +1,6 @@ +{ + "symbol": "afxpx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/agazx.json b/reports/xcheck_official/agazx.json new file mode 100644 index 0000000..9f30aad --- /dev/null +++ b/reports/xcheck_official/agazx.json @@ -0,0 +1,6 @@ +{ + "symbol": "agazx", + "name": "Allspring Funds Trust - Allspring Global Long/Short Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/akrex.json b/reports/xcheck_official/akrex.json new file mode 100644 index 0000000..677e0d0 --- /dev/null +++ b/reports/xcheck_official/akrex.json @@ -0,0 +1,89 @@ +{ + "symbol": "akrex", + "name": "Akre Focus Retail", + "filing": { + "accession": "0000898531-22-000158", + "doc": "akre-ncsrs.htm", + "period_end": "2022-01-31", + "display": "PROFESSIONALLY MANAGED PORTFOLIOS (CIK 0000811030)", + "ciks": [ + "0000811030" + ], + "score": 43.487453 + }, + "how": "ticker", + "n_bytes": 868407, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.9335, + "nav_check": null, + "periods": [ + { + "period": "fy", + "end": "2022-01-31", + "official": 2.34, + "local": 0, + "diff": 2.34, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2031-01-31", + "official": 1.33, + "local": 27.5947, + "diff": -26.2647, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-01-31", + "official": 0.19, + "local": 0, + "diff": 0.19, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-01-31", + "official": 0.2, + "local": 2.6617, + "diff": -2.4617, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-01-31", + "official": 0.05, + "local": 0.188, + "diff": -0.138, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-01-31", + "official": 0.002, + "local": 0.2, + "diff": -0.198, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-01-31", + "official": 0.002, + "local": 1.169, + "diff": -1.167, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/alasx.json b/reports/xcheck_official/alasx.json new file mode 100644 index 0000000..8f2b6a5 --- /dev/null +++ b/reports/xcheck_official/alasx.json @@ -0,0 +1,6 @@ +{ + "symbol": "alasx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/amfzx.json b/reports/xcheck_official/amfzx.json new file mode 100644 index 0000000..ce2e9b5 --- /dev/null +++ b/reports/xcheck_official/amfzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "amfzx", + "name": "Investment Managers Series Trust - 361 Managed Futures Strategy Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/andrx.json b/reports/xcheck_official/andrx.json new file mode 100644 index 0000000..f6c335d --- /dev/null +++ b/reports/xcheck_official/andrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "andrx", + "name": "AQR Funds - AQR International Defensive Style Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/arwdx.json b/reports/xcheck_official/arwdx.json new file mode 100644 index 0000000..09a92e5 --- /dev/null +++ b/reports/xcheck_official/arwdx.json @@ -0,0 +1,6 @@ +{ + "symbol": "arwdx", + "name": "American Century Asset Allocation Portfolios, Inc. - One Choice 2025 Portfolio", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/atezx.json b/reports/xcheck_official/atezx.json new file mode 100644 index 0000000..f1aa67a --- /dev/null +++ b/reports/xcheck_official/atezx.json @@ -0,0 +1,6 @@ +{ + "symbol": "atezx", + "name": "AB Sustainable Global Thematic Z", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/atmdx.json b/reports/xcheck_official/atmdx.json new file mode 100644 index 0000000..dd2b8c8 --- /dev/null +++ b/reports/xcheck_official/atmdx.json @@ -0,0 +1,6 @@ +{ + "symbol": "atmdx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/avgyx.json b/reports/xcheck_official/avgyx.json new file mode 100644 index 0000000..a2bd171 --- /dev/null +++ b/reports/xcheck_official/avgyx.json @@ -0,0 +1,104 @@ +{ + "symbol": "avgyx", + "name": "BNY Mellon Advantage Funds, Inc. - BNY Mellon Dynamic Total Return Fund", + "filing": { + "accession": "0000914775-23-000121", + "doc": "lp1-250.htm", + "period_end": "2023-10-31", + "display": "BNY Mellon Advantage Funds, Inc. (CIK 0000914775)", + "ciks": [ + "0000914775" + ], + "score": 24.680445 + }, + "how": "ticker", + "n_bytes": 3509145, + "verdict": "weak-match", + "class": "Class A Shares", + "mean_rel_err": 0.8416, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2023-10-31", + "official": 0.84, + "local": 7.5596, + "diff": -6.7196, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2014-10-31", + "official": 0.39, + "local": 0, + "diff": 0.39, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-10-31", + "official": 0.27, + "local": 0, + "diff": 0.27, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2028-10-31", + "official": 0.47, + "local": 0, + "diff": 0.47, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2029-10-31", + "official": 0.55, + "local": 0, + "diff": 0.55, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2031-10-31", + "official": 10.021, + "local": 7.8321, + "diff": 2.1889, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-10-31", + "official": 0.5112, + "local": 0, + "diff": 0.5112, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-10-31", + "official": 0.2912, + "local": 0.8891, + "diff": -0.5979, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-10-31", + "official": 0.3512, + "local": 0.846, + "diff": -0.4948, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/bafmx.json b/reports/xcheck_official/bafmx.json new file mode 100644 index 0000000..7b134f3 --- /dev/null +++ b/reports/xcheck_official/bafmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "bafmx", + "name": "Brown Advisory Mid-Cap Growth Instl", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/bbgpx.json b/reports/xcheck_official/bbgpx.json new file mode 100644 index 0000000..91d50db --- /dev/null +++ b/reports/xcheck_official/bbgpx.json @@ -0,0 +1,6 @@ +{ + "symbol": "bbgpx", + "name": "BlackRock ETF Trust II - iShares Mortgage-Backed Securities Active ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/bcmix.json b/reports/xcheck_official/bcmix.json new file mode 100644 index 0000000..90ad9fe --- /dev/null +++ b/reports/xcheck_official/bcmix.json @@ -0,0 +1,83 @@ +{ + "symbol": "bcmix", + "name": "Brown Capital Management Mutual Funds - The Brown Capital Management Mid Company Fund", + "filing": { + "accession": "0001999371-24-007304", + "doc": "bcm-ncsr_033124.htm", + "period_end": "2024-03-31", + "display": "Brown Capital Management Mutual Funds (CIK 0000869351)", + "ciks": [ + "0000869351" + ], + "score": 19.672508 + }, + "how": "ticker", + "n_bytes": 4826499, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.941, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 1.86, + "local": 0, + "diff": 1.86, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.5, + "local": 0, + "diff": 0.5, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.45, + "local": 0, + "diff": 0.45, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.61, + "local": 3.718, + "diff": -3.108, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 13.89, + "local": 1.0, + "diff": 12.89, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 11.89, + "local": 37.238, + "diff": -25.348, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/bfslx.json b/reports/xcheck_official/bfslx.json new file mode 100644 index 0000000..c5fbb1e --- /dev/null +++ b/reports/xcheck_official/bfslx.json @@ -0,0 +1,6 @@ +{ + "symbol": "bfslx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/bgaqx.json b/reports/xcheck_official/bgaqx.json new file mode 100644 index 0000000..660172b --- /dev/null +++ b/reports/xcheck_official/bgaqx.json @@ -0,0 +1,6 @@ +{ + "symbol": "bgaqx", + "name": "BMO Global Long/Short Equity Fund Class A", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/bgrsx.json b/reports/xcheck_official/bgrsx.json new file mode 100644 index 0000000..44342bf --- /dev/null +++ b/reports/xcheck_official/bgrsx.json @@ -0,0 +1,6 @@ +{ + "symbol": "bgrsx", + "name": "The RBB Fund, Inc. - Boston Partners Global Long/Short Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/biglx.json b/reports/xcheck_official/biglx.json new file mode 100644 index 0000000..b5b95d5 --- /dev/null +++ b/reports/xcheck_official/biglx.json @@ -0,0 +1,6 @@ +{ + "symbol": "biglx", + "name": "Blackrock Funds V - BlackRock Impact Mortgage Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/blvax.json b/reports/xcheck_official/blvax.json new file mode 100644 index 0000000..b38869f --- /dev/null +++ b/reports/xcheck_official/blvax.json @@ -0,0 +1,6 @@ +{ + "symbol": "blvax", + "name": "BMO Funds, Inc. - BMO Low Volatility Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/bnd.json b/reports/xcheck_official/bnd.json index 88c8b9e..6d983a6 100644 --- a/reports/xcheck_official/bnd.json +++ b/reports/xcheck_official/bnd.json @@ -1,18 +1,6 @@ { "symbol": "bnd", "name": "Vanguard Total Bond Market Index Fund ETF Shares", - "filing": { - "accession": "0001104659-26-102243", - "doc": "tm2620528d3_ncsrs.htm", - "period_end": "2026-06-30", - "display": "VANGUARD BOND INDEX FUNDS (CIK 0000794105)", - "ciks": [ - "0000794105" - ], - "score": 1.4955673 - }, - "how": "ticker", - "n_bytes": 69871730, "verdict": "ok", "class": "ETF Shares", "mean_rel_err": 0.0002, @@ -85,5 +73,17 @@ "Institutional Shares", "Institutional Plus Shares", "Institutional Select Shares" - ] + ], + "filing": { + "accession": "0001104659-26-102243", + "doc": "tm2620528d3_ncsrs.htm", + "period_end": "2026-06-30", + "display": "VANGUARD BOND INDEX FUNDS (CIK 0000794105)", + "ciks": [ + "0000794105" + ], + "score": 1.4954262 + }, + "how": "ticker", + "n_bytes": 69871730 } \ No newline at end of file diff --git a/reports/xcheck_official/btlkx.json b/reports/xcheck_official/btlkx.json new file mode 100644 index 0000000..6df0caa --- /dev/null +++ b/reports/xcheck_official/btlkx.json @@ -0,0 +1,6 @@ +{ + "symbol": "btlkx", + "name": "Baillie Gifford International Concentrated Growth Equities Fund - Class k", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/bxeyx.json b/reports/xcheck_official/bxeyx.json new file mode 100644 index 0000000..b547b0e --- /dev/null +++ b/reports/xcheck_official/bxeyx.json @@ -0,0 +1,6 @@ +{ + "symbol": "bxeyx", + "name": "MassMutual Advantage Funds - MassMutual Emerging Markets Debt Blended Total Return Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/caalx.json b/reports/xcheck_official/caalx.json new file mode 100644 index 0000000..0f1e6f9 --- /dev/null +++ b/reports/xcheck_official/caalx.json @@ -0,0 +1,6 @@ +{ + "symbol": "caalx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cacsx.json b/reports/xcheck_official/cacsx.json new file mode 100644 index 0000000..b105cb6 --- /dev/null +++ b/reports/xcheck_official/cacsx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cacsx", + "name": "AIM Investment Funds (Invesco Investment Funds) - Invesco Greater China Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cfbux.json b/reports/xcheck_official/cfbux.json new file mode 100644 index 0000000..562afa1 --- /dev/null +++ b/reports/xcheck_official/cfbux.json @@ -0,0 +1,6 @@ +{ + "symbol": "cfbux", + "name": "Lord Abbett Trust I - Climate Focused Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cforx.json b/reports/xcheck_official/cforx.json new file mode 100644 index 0000000..7c83f6d --- /dev/null +++ b/reports/xcheck_official/cforx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cforx", + "name": "Calvert Management Series - Floating Rate Advantage Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cnemx.json b/reports/xcheck_official/cnemx.json new file mode 100644 index 0000000..fa5759a --- /dev/null +++ b/reports/xcheck_official/cnemx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cnemx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cnevx.json b/reports/xcheck_official/cnevx.json new file mode 100644 index 0000000..7564920 --- /dev/null +++ b/reports/xcheck_official/cnevx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cnevx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cnlsx.json b/reports/xcheck_official/cnlsx.json new file mode 100644 index 0000000..de1fa95 --- /dev/null +++ b/reports/xcheck_official/cnlsx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cnlsx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cnmnx.json b/reports/xcheck_official/cnmnx.json new file mode 100644 index 0000000..b577726 --- /dev/null +++ b/reports/xcheck_official/cnmnx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cnmnx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cnmsx.json b/reports/xcheck_official/cnmsx.json new file mode 100644 index 0000000..3faf794 --- /dev/null +++ b/reports/xcheck_official/cnmsx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cnmsx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/coagx.json b/reports/xcheck_official/coagx.json new file mode 100644 index 0000000..0347646 --- /dev/null +++ b/reports/xcheck_official/coagx.json @@ -0,0 +1,6 @@ +{ + "symbol": "coagx", + "name": "Gator Capital Long/Short Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cogix.json b/reports/xcheck_official/cogix.json new file mode 100644 index 0000000..9078fdb --- /dev/null +++ b/reports/xcheck_official/cogix.json @@ -0,0 +1,6 @@ +{ + "symbol": "cogix", + "name": "Investment Managers Series Trust II - AXS Market Neutral Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cpmnx.json b/reports/xcheck_official/cpmnx.json new file mode 100644 index 0000000..7e0bcd5 --- /dev/null +++ b/reports/xcheck_official/cpmnx.json @@ -0,0 +1,6 @@ +{ + "symbol": "cpmnx", + "name": "Trust For Professional Managers - Convergence Market Neutral Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/crupx.json b/reports/xcheck_official/crupx.json new file mode 100644 index 0000000..947765c --- /dev/null +++ b/reports/xcheck_official/crupx.json @@ -0,0 +1,6 @@ +{ + "symbol": "crupx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/cvsix.json b/reports/xcheck_official/cvsix.json index c1f0145..411788b 100644 --- a/reports/xcheck_official/cvsix.json +++ b/reports/xcheck_official/cvsix.json @@ -1,77 +1,104 @@ { "symbol": "cvsix", "name": "Calamos Market Neutral Income A", - "filing": { - "accession": "0001193125-12-512223", - "doc": "d431187dncsr.htm", - "period_end": "2012-10-31", - "display": "CALAMOS INVESTMENT TRUST/IL (CIK 0000826732)", - "ciks": [ - "0000826732" - ], - "score": 27.455177 - }, - "how": "name:Calamos Market Neutral Income Fund (shared=4)", - "n_bytes": 7422370, - "verdict": "mismatch", + "verdict": "ok", "class": "?", - "mean_rel_err": 0.0939, + "mean_rel_err": 0.0384, "nav_check": { - "date": "2008-10-31", - "official": 10.97, - "local": 10.97, + "date": "2021-10-29", + "official": 14.63, + "local": 14.63, "rel": 0.0, "ok": true }, "periods": [ { "period": "current", - "end": "2012-10-31", - "official": 0.15, - "local": 0.153, - "diff": -0.003, + "end": "2026-04-30", + "official": 0.16, + "local": 0.159, + "diff": 0.001, "ok": true, "unbounded": false }, { "period": "fy", - "end": "2011-10-31", + "end": "2025-10-31", + "official": 0.25, + "local": 0.252, + "diff": -0.002, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-10-31", + "official": 0.79, + "local": 0.792, + "diff": -0.002, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-10-31", "official": 0.2, - "local": 0.2, - "diff": 0.0, - "ok": true, - "unbounded": false - }, - { - "period": "fy", - "end": "2010-10-31", - "official": 0.13, - "local": 0.128, + "local": 0.198, "diff": 0.002, "ok": true, "unbounded": false }, { "period": "fy", - "end": "2009-10-31", - "official": 0.81, - "local": 1.104, - "diff": -0.294, - "ok": false, + "end": "2022-10-31", + "official": 0.03, + "local": 0.026, + "diff": 0.004, + "ok": true, "unbounded": false }, { "period": "fy", - "end": "2008-10-31", - "official": 0.51, - "local": 14.311, - "diff": -13.801, + "end": "2021-10-31", + "official": 0.06, + "local": 20.003, + "diff": -19.943, "ok": false, "unbounded": true } ], "other_classes": [ + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", "?", "?" - ] + ], + "filing": { + "accession": "0001104659-26-080185", + "doc": "tm2618831d1_ncsrs.htm", + "period_end": "2026-04-30", + "display": "CALAMOS INVESTMENT TRUST/IL (CIK 0000826732)", + "ciks": [ + "0000826732" + ], + "score": 19.313204 + }, + "how": "ticker", + "n_bytes": 25711754 } \ No newline at end of file diff --git a/reports/xcheck_official/ddez.json b/reports/xcheck_official/ddez.json new file mode 100644 index 0000000..510daa0 --- /dev/null +++ b/reports/xcheck_official/ddez.json @@ -0,0 +1,6 @@ +{ + "symbol": "ddez", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ddjp.json b/reports/xcheck_official/ddjp.json new file mode 100644 index 0000000..23549fb --- /dev/null +++ b/reports/xcheck_official/ddjp.json @@ -0,0 +1,6 @@ +{ + "symbol": "ddjp", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/dieyx.json b/reports/xcheck_official/dieyx.json new file mode 100644 index 0000000..2d3c381 --- /dev/null +++ b/reports/xcheck_official/dieyx.json @@ -0,0 +1,113 @@ +{ + "symbol": "dieyx", + "name": "BNY Mellon Stock Funds - BNY Mellon International Core Equity Fund", + "filing": { + "accession": "0001199348-24-000005", + "doc": "lp1-720.htm", + "period_end": "2024-03-31", + "display": "BNY MELLON STOCK FUNDS (CIK 0001199348)", + "ciks": [ + "0001199348" + ], + "score": 26.70002 + }, + "how": "ticker", + "n_bytes": 721006, + "verdict": "weak-match", + "class": "Class A Shares", + "mean_rel_err": 0.7617, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2024-03-31", + "official": 1.21, + "local": 13.1918, + "diff": -11.9818, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2013-03-31", + "official": 1.19, + "local": 0, + "diff": 1.19, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-09-30", + "official": 4.79, + "local": 11.883, + "diff": -7.093, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2013-09-30", + "official": 0.9, + "local": 0, + "diff": 0.9, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-03-31", + "official": 1.02, + "local": 7.3745, + "diff": -6.3545, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-03-31", + "official": 0.7, + "local": 1.2855, + "diff": -0.5855, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-03-31", + "official": 38.5735, + "local": 8.548, + "diff": 30.0255, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-03-31", + "official": 0.3328, + "local": 0.9556, + "diff": -0.6228, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-03-31", + "official": 0.2743, + "local": 1.0939, + "diff": -0.8196, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-03-31", + "official": 0.1236, + "local": 0, + "diff": 0.1236, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/dribx.json b/reports/xcheck_official/dribx.json new file mode 100644 index 0000000..f7c13e1 --- /dev/null +++ b/reports/xcheck_official/dribx.json @@ -0,0 +1,131 @@ +{ + "symbol": "dribx", + "name": "DFA Investment Dimensions Group Inc. - Dimensional 2010 Target Date Retirement Income Fund", + "filing": { + "accession": "0001193125-24-176340", + "doc": "d822051dncsrs.htm", + "period_end": "2024-04-30", + "display": "DFA INVESTMENT DIMENSIONS GROUP INC (CIK 0000355437)", + "ciks": [ + "0000355437" + ], + "score": 0.47045898 + }, + "how": "name:Target Date Retirement Income Fund (shared=4)", + "n_bytes": 118507006, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.715, + "nav_check": { + "date": "2019-12-31", + "official": 13.44, + "local": 11.26, + "rel": 0.1622, + "ok": true + }, + "periods": [ + { + "period": "fy", + "end": "2010-12-31", + "official": 0.24, + "local": 0, + "diff": 0.24, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2013-12-31", + "official": 0.49, + "local": 0, + "diff": 0.49, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 1.37, + "local": 0, + "diff": 1.37, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-12-31", + "official": 0.78, + "local": 0, + "diff": 0.78, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-12-31", + "official": 0.21, + "local": 0.0056, + "diff": 0.2044, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.26, + "local": 0, + "diff": 0.26, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2031-12-31", + "official": 0.23, + "local": 0.2481, + "diff": -0.0181, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.51, + "local": 0.3566, + "diff": 0.1534, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 1.14, + "local": 0.593, + "diff": 0.547, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.76, + "local": 1.1228, + "diff": -0.3628, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-12-31", + "official": 0.25, + "local": 0.3101, + "diff": -0.0601, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/dsum.json b/reports/xcheck_official/dsum.json new file mode 100644 index 0000000..163e78e --- /dev/null +++ b/reports/xcheck_official/dsum.json @@ -0,0 +1,6 @@ +{ + "symbol": "dsum", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/dxus.json b/reports/xcheck_official/dxus.json new file mode 100644 index 0000000..47d7dfb --- /dev/null +++ b/reports/xcheck_official/dxus.json @@ -0,0 +1,6 @@ +{ + "symbol": "dxus", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/eroax.json b/reports/xcheck_official/eroax.json new file mode 100644 index 0000000..a3c9c23 --- /dev/null +++ b/reports/xcheck_official/eroax.json @@ -0,0 +1,6 @@ +{ + "symbol": "eroax", + "name": "Eaton Vance Special Investment Trust - Eaton Vance Hedged Stock Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/esga.json b/reports/xcheck_official/esga.json new file mode 100644 index 0000000..16b177c --- /dev/null +++ b/reports/xcheck_official/esga.json @@ -0,0 +1,6 @@ +{ + "symbol": "esga", + "name": "American Century Large Cap Equity ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/esrx.json b/reports/xcheck_official/esrx.json new file mode 100644 index 0000000..9c6e038 --- /dev/null +++ b/reports/xcheck_official/esrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "esrx", + "name": "Express Scripts Holding Company", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/evgbx.json b/reports/xcheck_official/evgbx.json new file mode 100644 index 0000000..a9a0bdf --- /dev/null +++ b/reports/xcheck_official/evgbx.json @@ -0,0 +1,103 @@ +{ + "symbol": "evgbx", + "name": "The RBB Fund Trust - Evermore Global Value Fund", + "filing": { + "accession": "0001398344-24-008550", + "doc": "fp0087283-1_ncsrs.htm", + "period_end": "2024-02-29", + "display": "RBB Fund Trust (CIK 0001618627)", + "ciks": [ + "0001618627" + ], + "score": 36.980515 + }, + "how": "ticker", + "n_bytes": 2433597, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.4978, + "nav_check": { + "date": "2019-02-28", + "official": 11.7, + "local": 12.64, + "rel": 0.0803, + "ok": true + }, + "periods": [ + { + "period": "fy", + "end": "2024-02-29", + "official": 0.24, + "local": 0, + "diff": 0.24, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2031-02-29", + "official": 0.21, + "local": 0.2352, + "diff": -0.0252, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-02-29", + "official": 0.36, + "local": 0.2093, + "diff": 0.1507, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-02-29", + "official": 0.02, + "local": 0.3606, + "diff": -0.3406, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-02-29", + "official": 0.36, + "local": 0.0198, + "diff": 0.3402, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-02-29", + "official": 0.28, + "local": 0.2605, + "diff": 0.0195, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-02-29", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-02-29", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/faevx.json b/reports/xcheck_official/faevx.json new file mode 100644 index 0000000..4b56120 --- /dev/null +++ b/reports/xcheck_official/faevx.json @@ -0,0 +1,88 @@ +{ + "symbol": "faevx", + "name": "Fidelity Advisor Series I - Fidelity Advisor Equity Value Fund", + "filing": { + "accession": "0000722574-25-000227", + "doc": "filing8969.htm", + "period_end": "2025-05-31", + "display": "FIDELITY ADVISOR SERIES I (CIK 0000722574)", + "ciks": [ + "0000722574" + ], + "score": 21.54176 + }, + "how": "name:EPI-SANN-0725 Fidelity Advisor Equity Value Fund Semi-Annual Report May (shared=4)", + "n_bytes": 16040764, + "verdict": "mismatch", + "class": "?", + "mean_rel_err": 0.1686, + "nav_check": { + "date": "2020-11-30", + "official": 19.26, + "local": 19.26, + "rel": 0.0, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-05-31", + "official": 1.35, + "local": 1.75, + "diff": -0.4, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-11-30", + "official": 0.86, + "local": 0.948, + "diff": -0.088, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-11-30", + "official": 0.45, + "local": 0.338, + "diff": 0.112, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-11-30", + "official": 0.8, + "local": 1.192, + "diff": -0.392, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-11-30", + "official": 0.27, + "local": 0.271, + "diff": -0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-11-30", + "official": 1.06, + "local": 2.292, + "diff": -1.232, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/faosx.json b/reports/xcheck_official/faosx.json new file mode 100644 index 0000000..30222e4 --- /dev/null +++ b/reports/xcheck_official/faosx.json @@ -0,0 +1,74 @@ +{ + "symbol": "faosx", + "name": "Fidelity Advisor Series VIII - Fidelity Advisor Overseas Fund", + "filing": { + "accession": "0000729218-24-000053", + "doc": "filing8248.htm", + "period_end": "2024-10-31", + "display": "FIDELITY ADVISOR SERIES VIII (CIK 0000729218)", + "ciks": [ + "0000729218" + ], + "score": 18.705416 + }, + "how": "name:Fidelity Advisor Series VIII (shared=3)", + "n_bytes": 9922644, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.4074, + "nav_check": { + "date": "2020-10-30", + "official": 30.73, + "local": 25.280001, + "rel": 0.1774, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2024-10-31", + "official": 0.36, + "local": 0.349, + "diff": 0.011, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-10-31", + "official": 0.2, + "local": 0.222, + "diff": -0.022, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-10-31", + "official": 1.64, + "local": 1.438, + "diff": 0.202, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-10-31", + "official": 0.67, + "local": 0, + "diff": 0.67, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-10-31", + "official": 0.08, + "local": 1.855, + "diff": -1.775, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/fexpx.json b/reports/xcheck_official/fexpx.json new file mode 100644 index 0000000..4519bda --- /dev/null +++ b/reports/xcheck_official/fexpx.json @@ -0,0 +1,6 @@ +{ + "symbol": "fexpx", + "name": "Fidelity Summer Street Trust - Fidelity Export and Multinational Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fgbfx.json b/reports/xcheck_official/fgbfx.json new file mode 100644 index 0000000..b78f925 --- /dev/null +++ b/reports/xcheck_official/fgbfx.json @@ -0,0 +1,74 @@ +{ + "symbol": "fgbfx", + "name": "Fidelity School Street Trust - Fidelity Global Credit Fund", + "filing": { + "accession": "0000215829-25-000012", + "doc": "filing8414.htm", + "period_end": "2024-12-31", + "display": "FIDELITY SCHOOL STREET TRUST (CIK 0000215829)", + "ciks": [ + "0000215829" + ], + "score": 17.213408 + }, + "how": "name:Fidelity School Street Trust (shared=3)", + "n_bytes": 13087836, + "verdict": "ok", + "class": "?", + "mean_rel_err": 0.0312, + "nav_check": { + "date": "2020-12-31", + "official": 10.23, + "local": 10.03, + "rel": 0.0196, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2024-12-31", + "official": 0.397, + "local": 0.291, + "diff": 0.106, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.293, + "local": 0.279, + "diff": 0.014, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.518, + "local": 0.53, + "diff": -0.012, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.302, + "local": 0.295, + "diff": 0.007, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 0.673, + "local": 1.111, + "diff": -0.438, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/fgizx.json b/reports/xcheck_official/fgizx.json new file mode 100644 index 0000000..a7d3491 --- /dev/null +++ b/reports/xcheck_official/fgizx.json @@ -0,0 +1,76 @@ +{ + "symbol": "fgizx", + "name": "Fidelity Advisor Series I - Fidelity Advisor Growth & Income Fund", + "filing": { + "accession": "0000722574-25-000054", + "doc": "filing8326.htm", + "period_end": "2024-11-30", + "display": "FIDELITY ADVISOR SERIES I (CIK 0000722574)", + "ciks": [ + "0000722574" + ], + "score": 21.274221 + }, + "how": "ticker", + "n_bytes": 20418389, + "verdict": "mismatch", + "class": "?", + "mean_rel_err": 0.2805, + "nav_check": { + "date": "2020-11-30", + "official": 19.73, + "local": 28.52, + "rel": 0.4455, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2024-11-30", + "official": 0.87, + "local": 1.529, + "diff": -0.659, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-11-30", + "official": 0.68, + "local": 0.797, + "diff": -0.117, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-11-30", + "official": 3.45, + "local": 2.633, + "diff": 0.817, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-11-30", + "official": 4.36, + "local": 2.363, + "diff": 1.997, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-11-30", + "official": 1.92, + "local": 14.803, + "diff": -12.883, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fibqx.json b/reports/xcheck_official/fibqx.json new file mode 100644 index 0000000..4fe21f5 --- /dev/null +++ b/reports/xcheck_official/fibqx.json @@ -0,0 +1,92 @@ +{ + "symbol": "fibqx", + "name": "Templeton Income Trust - Templeton International Bond Fund", + "filing": { + "accession": "0001193125-20-234108", + "doc": "d915778dncsrs.htm", + "period_end": "2020-06-30", + "display": "TEMPLETON INCOME TRUST (CIK 0000795402)", + "ciks": [ + "0000795402" + ], + "score": 11.072643 + }, + "how": "name:Contents Semiannual Report Templeton International Bond Fund (shared=3)", + "n_bytes": 4945649, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.8757, + "nav_check": { + "date": "2025-08-08", + "official": 9.77, + "local": 6.55, + "rel": 0.3296, + "ok": false + }, + "periods": [ + { + "period": "fy", + "end": "2020-06-30", + "official": 0.12, + "local": 0, + "diff": 0.12, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2031-06-30", + "official": 0.56, + "local": 2.064, + "diff": -1.504, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-06-30", + "official": 0.61, + "local": 0.2895, + "diff": 0.3205, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-06-30", + "official": 0.28, + "local": 0, + "diff": 0.28, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-06-30", + "official": 0.02, + "local": 0, + "diff": 0.02, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2016-06-30", + "official": 0.13, + "local": 0, + "diff": 0.13, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2015-06-30", + "official": 0.45, + "local": 0, + "diff": 0.45, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/fidlx.json b/reports/xcheck_official/fidlx.json new file mode 100644 index 0000000..38330b1 --- /dev/null +++ b/reports/xcheck_official/fidlx.json @@ -0,0 +1,88 @@ +{ + "symbol": "fidlx", + "name": "Fidelity Advisor Series I - Fidelity Advisor Large Cap Fund", + "filing": { + "accession": "0000722574-25-000227", + "doc": "filing8969.htm", + "period_end": "2025-05-31", + "display": "FIDELITY ADVISOR SERIES I (CIK 0000722574)", + "ciks": [ + "0000722574" + ], + "score": 21.57109 + }, + "how": "name:SO-SANN-0725 Fidelity Advisor Large Cap Fund Semi-Annual Report May (shared=4)", + "n_bytes": 16040764, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.3802, + "nav_check": { + "date": "2020-11-30", + "official": 33.93, + "local": 33.93, + "rel": 0.0, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-05-31", + "official": 3.19, + "local": 5.954, + "diff": -2.764, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-11-30", + "official": 1.53, + "local": 2.619, + "diff": -1.089, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-11-30", + "official": 0.87, + "local": 1.242, + "diff": -0.372, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-11-30", + "official": 2.65, + "local": 4.551, + "diff": -1.901, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-11-30", + "official": 1.87, + "local": 3.054, + "diff": -1.184, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-11-30", + "official": 2.8, + "local": 11.007, + "diff": -8.207, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fijzx.json b/reports/xcheck_official/fijzx.json new file mode 100644 index 0000000..1dacec1 --- /dev/null +++ b/reports/xcheck_official/fijzx.json @@ -0,0 +1,76 @@ +{ + "symbol": "fijzx", + "name": "Fidelity Advisor Series VII - Fidelity Advisor Consumer Discretionary Fund", + "filing": { + "accession": "0000315700-25-000127", + "doc": "filing9889.htm", + "period_end": "2025-07-31", + "display": "FIDELITY ADVISOR SERIES VII (CIK 0000315700)", + "ciks": [ + "0000315700" + ], + "score": 17.1229 + }, + "how": "name:Fidelity Advisor Biotechnology Fund Fidelity Advisor Consumer Discretionary Fund Fidelity Advisor Energy (shared=4)", + "n_bytes": 13326472, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.8581, + "nav_check": { + "date": "2021-07-30", + "official": 23.59, + "local": 50.099998, + "rel": 1.1238, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2025-07-31", + "official": 0.42, + "local": 5.528, + "diff": -5.108, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-07-31", + "official": 0.88, + "local": 0, + "diff": 0.88, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-07-31", + "official": 0.9, + "local": 2.704, + "diff": -1.804, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-07-31", + "official": 0.58, + "local": 6.256, + "diff": -5.676, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-07-31", + "official": 0.59, + "local": 3.066, + "diff": -2.476, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fikax.json b/reports/xcheck_official/fikax.json new file mode 100644 index 0000000..e0d68bc --- /dev/null +++ b/reports/xcheck_official/fikax.json @@ -0,0 +1,76 @@ +{ + "symbol": "fikax", + "name": "Fidelity Advisor Series VII - Fidelity Advisor Energy Fund", + "filing": { + "accession": "0000315700-25-000127", + "doc": "filing9889.htm", + "period_end": "2025-07-31", + "display": "FIDELITY ADVISOR SERIES VII (CIK 0000315700)", + "ciks": [ + "0000315700" + ], + "score": 17.12263 + }, + "how": "name:Fidelity Advisor Biotechnology Fund Fidelity Advisor Consumer Discretionary Fund Fidelity Advisor Energy (shared=3)", + "n_bytes": 13326472, + "verdict": "mismatch", + "class": "?", + "mean_rel_err": 0.1509, + "nav_check": { + "date": "2021-07-30", + "official": 23.59, + "local": 24.91, + "rel": 0.056, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-07-31", + "official": 0.42, + "local": 0.488, + "diff": -0.068, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-07-31", + "official": 0.88, + "local": 1.033, + "diff": -0.153, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-07-31", + "official": 0.9, + "local": 1.044, + "diff": -0.144, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-07-31", + "official": 0.58, + "local": 0.696, + "diff": -0.116, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-07-31", + "official": 0.59, + "local": 1.282, + "diff": -0.692, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fikhx.json b/reports/xcheck_official/fikhx.json new file mode 100644 index 0000000..57c37f8 --- /dev/null +++ b/reports/xcheck_official/fikhx.json @@ -0,0 +1,76 @@ +{ + "symbol": "fikhx", + "name": "Fidelity Advisor Series VII - Fidelity Advisor Technology Fund", + "filing": { + "accession": "0000315700-25-000127", + "doc": "filing9889.htm", + "period_end": "2025-07-31", + "display": "FIDELITY ADVISOR SERIES VII (CIK 0000315700)", + "ciks": [ + "0000315700" + ], + "score": 17.063541 + }, + "how": "name:Fund Fidelity Advisor Semiconductors Fund Fidelity Advisor Technology Fund Fidelity Advisor Utilities (shared=3)", + "n_bytes": 13326472, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.8923, + "nav_check": { + "date": "2021-07-30", + "official": 23.59, + "local": 112.809998, + "rel": 3.7821, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2025-07-31", + "official": 0.42, + "local": 19.917, + "diff": -19.497, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-07-31", + "official": 0.88, + "local": 8.288, + "diff": -7.408, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-07-31", + "official": 0.9, + "local": 4.628, + "diff": -3.728, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-07-31", + "official": 0.58, + "local": 25.834, + "diff": -25.254, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-07-31", + "official": 0.59, + "local": 27.733, + "diff": -27.143, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fikix.json b/reports/xcheck_official/fikix.json new file mode 100644 index 0000000..abfdbd9 --- /dev/null +++ b/reports/xcheck_official/fikix.json @@ -0,0 +1,76 @@ +{ + "symbol": "fikix", + "name": "Fidelity Advisor Series VII - Fidelity Advisor Utilities Fund", + "filing": { + "accession": "0000315700-25-000127", + "doc": "filing9889.htm", + "period_end": "2025-07-31", + "display": "FIDELITY ADVISOR SERIES VII (CIK 0000315700)", + "ciks": [ + "0000315700" + ], + "score": 17.12263 + }, + "how": "name:Fund Fidelity Advisor Semiconductors Fund Fidelity Advisor Technology Fund Fidelity Advisor Utilities (shared=3)", + "n_bytes": 13326472, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.646, + "nav_check": { + "date": "2021-07-30", + "official": 23.59, + "local": 35.380001, + "rel": 0.4998, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2025-07-31", + "official": 0.42, + "local": 4.231, + "diff": -3.811, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-07-31", + "official": 0.88, + "local": 1.888, + "diff": -1.008, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-07-31", + "official": 0.9, + "local": 3.093, + "diff": -2.193, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-07-31", + "official": 0.58, + "local": 1.903, + "diff": -1.323, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-07-31", + "official": 0.59, + "local": 4.389, + "diff": -3.799, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fikkx.json b/reports/xcheck_official/fikkx.json new file mode 100644 index 0000000..6927909 --- /dev/null +++ b/reports/xcheck_official/fikkx.json @@ -0,0 +1,81 @@ +{ + "symbol": "fikkx", + "name": "Fidelity Advisor Series VII - Fidelity Advisor Global Real Estate Fund", + "filing": { + "accession": "0000315700-25-000021", + "doc": "filing8514.htm", + "period_end": "2025-01-31", + "display": "FIDELITY ADVISOR SERIES VII (CIK 0000315700)", + "ciks": [ + "0000315700" + ], + "score": 17.670238 + }, + "how": "ticker", + "n_bytes": 11877903, + "verdict": "ok", + "class": "?", + "mean_rel_err": 0.0155, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2025-01-31", + "official": 0.28, + "local": 0.296, + "diff": -0.016, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-07-31", + "official": 0.27, + "local": 0.271, + "diff": -0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-07-31", + "official": 0.12, + "local": 0.118, + "diff": 0.002, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-07-31", + "official": 0.18, + "local": 0.177, + "diff": 0.003, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-07-31", + "official": 0.16, + "local": 0.156, + "diff": 0.004, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-07-31", + "official": 0.63, + "local": 1.298, + "diff": -0.668, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fiqqx.json b/reports/xcheck_official/fiqqx.json new file mode 100644 index 0000000..9698298 --- /dev/null +++ b/reports/xcheck_official/fiqqx.json @@ -0,0 +1,6 @@ +{ + "symbol": "fiqqx", + "name": "Fidelity Advisor Series VIII - Fidelity Advisor Global Equity Income Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fiqyx.json b/reports/xcheck_official/fiqyx.json new file mode 100644 index 0000000..bdc2834 --- /dev/null +++ b/reports/xcheck_official/fiqyx.json @@ -0,0 +1,74 @@ +{ + "symbol": "fiqyx", + "name": "Fidelity School Street Trust - Fidelity Global Credit Fund", + "filing": { + "accession": "0000215829-25-000012", + "doc": "filing8414.htm", + "period_end": "2024-12-31", + "display": "FIDELITY SCHOOL STREET TRUST (CIK 0000215829)", + "ciks": [ + "0000215829" + ], + "score": 17.266653 + }, + "how": "name:Fidelity School Street Trust (shared=3)", + "n_bytes": 13087836, + "verdict": "ok", + "class": "?", + "mean_rel_err": 0.0232, + "nav_check": { + "date": "2020-12-31", + "official": 10.23, + "local": 10.04, + "rel": 0.0186, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2024-12-31", + "official": 0.397, + "local": 0.298, + "diff": 0.099, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.293, + "local": 0.286, + "diff": 0.007, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.518, + "local": 0.53, + "diff": -0.012, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.302, + "local": 0.295, + "diff": 0.007, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 0.673, + "local": 0.932, + "diff": -0.259, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/fklsx.json b/reports/xcheck_official/fklsx.json new file mode 100644 index 0000000..845caec --- /dev/null +++ b/reports/xcheck_official/fklsx.json @@ -0,0 +1,83 @@ +{ + "symbol": "fklsx", + "name": "Franklin Alternative Strategies Funds - Franklin K2 Long Short Credit Fund", + "filing": { + "accession": "0001193125-23-019820", + "doc": "d402347dncsrs.htm", + "period_end": "2022-11-30", + "display": "Franklin Alternative Strategies Funds (CIK 0001535538)", + "ciks": [ + "0001535538" + ], + "score": 3.945961 + }, + "how": "name:Contents Semiannual Report Franklin K2 Long Short Credit Fund (shared=4)", + "n_bytes": 8420428, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.7597, + "nav_check": { + "date": "2019-05-31", + "official": 10.45, + "local": 10.44, + "rel": 0.001, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2022-11-30", + "official": 0.2, + "local": 0, + "diff": 0.2, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-05-31", + "official": 0.37, + "local": 0.229, + "diff": 0.141, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-05-31", + "official": 0.27, + "local": 2.089, + "diff": -1.819, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-05-31", + "official": 0.29, + "local": 2.409, + "diff": -2.119, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-05-31", + "official": 0.4, + "local": 4.314, + "diff": -3.914, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-05-31", + "official": 0.36, + "local": 9.696, + "diff": -9.336, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/fkmax.json b/reports/xcheck_official/fkmax.json new file mode 100644 index 0000000..17ce5d4 --- /dev/null +++ b/reports/xcheck_official/fkmax.json @@ -0,0 +1,6 @@ +{ + "symbol": "fkmax", + "name": "Franklin Alternative Strategies Funds - K2 Global Macro Opportunities Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fkmzx.json b/reports/xcheck_official/fkmzx.json new file mode 100644 index 0000000..b4409f3 --- /dev/null +++ b/reports/xcheck_official/fkmzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "fkmzx", + "name": "Franklin Alternative Strategies Funds - K2 Global Macro Opportunities Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/flsrx.json b/reports/xcheck_official/flsrx.json new file mode 100644 index 0000000..dcc2789 --- /dev/null +++ b/reports/xcheck_official/flsrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "flsrx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fmil.json b/reports/xcheck_official/fmil.json new file mode 100644 index 0000000..96bb24d --- /dev/null +++ b/reports/xcheck_official/fmil.json @@ -0,0 +1,79 @@ +{ + "symbol": "fmil", + "name": "Fidelity Fundamental Large Cap Core ETF", + "filing": { + "accession": "0000945908-26-000098", + "doc": "filing11210.htm", + "period_end": "2026-01-31", + "display": "FIDELITY COVINGTON TRUST (CIK 0000945908)", + "ciks": [ + "0000945908" + ], + "score": 25.989212 + }, + "how": "name:Fundamental Large Cap Growth ETF Fidelity Fundamental Large Cap Value ETF Fidelity (shared=4)", + "n_bytes": 9528857, + "verdict": "ok", + "class": "?", + "mean_rel_err": 0.0055, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2026-01-31", + "official": 0.34, + "local": 0.337, + "diff": 0.003, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-07-31", + "official": 0.46, + "local": 0.459, + "diff": 0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-07-31", + "official": 0.25, + "local": 0.248, + "diff": 0.002, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-07-31", + "official": 0.4, + "local": 0.404, + "diff": -0.004, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-07-31", + "official": 0.53, + "local": 0.531, + "diff": -0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-07-31", + "official": 0.37, + "local": 0.389, + "diff": -0.019, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fovl.json b/reports/xcheck_official/fovl.json new file mode 100644 index 0000000..cdfefbf --- /dev/null +++ b/reports/xcheck_official/fovl.json @@ -0,0 +1,6 @@ +{ + "symbol": "fovl", + "name": "iShares Focused Value Factor ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fpnix.json b/reports/xcheck_official/fpnix.json new file mode 100644 index 0000000..b5e1519 --- /dev/null +++ b/reports/xcheck_official/fpnix.json @@ -0,0 +1,6 @@ +{ + "symbol": "fpnix", + "name": "FPA New Income - Institutional", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/frccx.json b/reports/xcheck_official/frccx.json new file mode 100644 index 0000000..9f00080 --- /dev/null +++ b/reports/xcheck_official/frccx.json @@ -0,0 +1,6 @@ +{ + "symbol": "frccx", + "name": "Delaware Group Equity Funds IV - Delaware Covered Call Strategy Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fsmqx.json b/reports/xcheck_official/fsmqx.json new file mode 100644 index 0000000..bacb2e6 --- /dev/null +++ b/reports/xcheck_official/fsmqx.json @@ -0,0 +1,6 @@ +{ + "symbol": "fsmqx", + "name": "Franklin Strategic Mortgage Portfolio Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fzaax.json b/reports/xcheck_official/fzaax.json new file mode 100644 index 0000000..5b50a0d --- /dev/null +++ b/reports/xcheck_official/fzaax.json @@ -0,0 +1,6 @@ +{ + "symbol": "fzaax", + "name": "Fidelity Advisor Series I - Fidelity Advisor Balanced Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/fzadx.json b/reports/xcheck_official/fzadx.json new file mode 100644 index 0000000..1a32717 --- /dev/null +++ b/reports/xcheck_official/fzadx.json @@ -0,0 +1,82 @@ +{ + "symbol": "fzadx", + "name": "Fidelity Advisor Series I - Fidelity Advisor Dividend Growth Fund", + "filing": { + "accession": "0000722574-25-000227", + "doc": "filing8969.htm", + "period_end": "2025-05-31", + "display": "FIDELITY ADVISOR SERIES I (CIK 0000722574)", + "ciks": [ + "0000722574" + ], + "score": 21.565294 + }, + "how": "name:GO-SANN-0725 Fidelity Advisor Dividend Growth Fund Semi-Annual Report May (shared=4)", + "n_bytes": 16040764, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.3074, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2025-05-31", + "official": 1.92, + "local": 3.761, + "diff": -1.841, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-11-30", + "official": 0.65, + "local": 1.01, + "diff": -0.36, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-11-30", + "official": 1.62, + "local": 2.926, + "diff": -1.306, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-11-30", + "official": 1.4, + "local": 2.388, + "diff": -0.988, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-11-30", + "official": 0.3, + "local": 0.304, + "diff": -0.004, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-11-30", + "official": 0.84, + "local": 18.453, + "diff": -17.613, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fzagx.json b/reports/xcheck_official/fzagx.json new file mode 100644 index 0000000..6564377 --- /dev/null +++ b/reports/xcheck_official/fzagx.json @@ -0,0 +1,82 @@ +{ + "symbol": "fzagx", + "name": "Fidelity Advisor Series I - Fidelity Advisor Equity Income Fund", + "filing": { + "accession": "0000722574-25-000227", + "doc": "filing8969.htm", + "period_end": "2025-05-31", + "display": "FIDELITY ADVISOR SERIES I (CIK 0000722574)", + "ciks": [ + "0000722574" + ], + "score": 21.565294 + }, + "how": "name:ADGF-SANN-0725 Fidelity Advisor Equity Income Fund Semi-Annual Report May (shared=4)", + "n_bytes": 16040764, + "verdict": "mismatch", + "class": "?", + "mean_rel_err": 0.288, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2025-05-31", + "official": 2.21, + "local": 3.965, + "diff": -1.755, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-11-30", + "official": 1.69, + "local": 2.489, + "diff": -0.799, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-11-30", + "official": 1.93, + "local": 3.102, + "diff": -1.172, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-11-30", + "official": 3.61, + "local": 6.527, + "diff": -2.917, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-11-30", + "official": 0.77, + "local": 0.775, + "diff": -0.005, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-11-30", + "official": 2.43, + "local": 29.457, + "diff": -27.027, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/fzakx.json b/reports/xcheck_official/fzakx.json new file mode 100644 index 0000000..c120359 --- /dev/null +++ b/reports/xcheck_official/fzakx.json @@ -0,0 +1,6 @@ +{ + "symbol": "fzakx", + "name": "Fidelity Advisor Series I - Fidelity Advisor Leveraged Company Stock Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/gaamx.json b/reports/xcheck_official/gaamx.json new file mode 100644 index 0000000..ba42a2a --- /dev/null +++ b/reports/xcheck_official/gaamx.json @@ -0,0 +1,6 @@ +{ + "symbol": "gaamx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/gdeux.json b/reports/xcheck_official/gdeux.json new file mode 100644 index 0000000..3154a56 --- /dev/null +++ b/reports/xcheck_official/gdeux.json @@ -0,0 +1,83 @@ +{ + "symbol": "gdeux", + "name": "Goldman Sachs Trust -Goldman Sachs Enhanced Core Equity Fund", + "filing": { + "accession": "0001193125-25-103328", + "doc": "d217079dncsrs.htm", + "period_end": "2025-02-28", + "display": "GOLDMAN SACHS TRUST (CIK 0000822977)", + "ciks": [ + "0000822977" + ], + "score": 23.260307 + }, + "how": "ticker", + "n_bytes": 22774661, + "verdict": "mismatch", + "class": "Class R6 Shares", + "mean_rel_err": 0.247, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2025-02-28", + "official": 0.17, + "local": 0.174, + "diff": -0.004, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-08-31", + "official": 0.15, + "local": 0.146, + "diff": 0.004, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-08-31", + "official": 0.12, + "local": 0.119, + "diff": 0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-08-31", + "official": 0.39, + "local": 0.732, + "diff": -0.342, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-08-31", + "official": 1.73, + "local": 3.365, + "diff": -1.635, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-08-31", + "official": 0.65, + "local": 14.774, + "diff": -14.124, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A Shares", + "Institutional Shares", + "Investor Shares", + "Class R Shares", + "Class P Shares" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/gfcux.json b/reports/xcheck_official/gfcux.json new file mode 100644 index 0000000..6849e84 --- /dev/null +++ b/reports/xcheck_official/gfcux.json @@ -0,0 +1,91 @@ +{ + "symbol": "gfcux", + "name": "Goldman Sachs Enhanced U.S. Equity R6", + "filing": { + "accession": "0001193125-25-264139", + "doc": "d860414dncsr.htm", + "period_end": "2025-08-31", + "display": "GOLDMAN SACHS TRUST (CIK 0000822977)", + "ciks": [ + "0000822977" + ], + "score": 21.525898 + }, + "how": "ticker", + "n_bytes": 34620199, + "verdict": "weak-match", + "class": "Institutional Shares", + "mean_rel_err": 0.4003, + "nav_check": { + "date": "2021-08-31", + "official": 40.01, + "local": 18.52, + "rel": 0.5371, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2025-08-31", + "official": 4.25, + "local": 0.8808, + "diff": 3.3692, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-08-31", + "official": 0.23, + "local": 0.368, + "diff": -0.138, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-08-31", + "official": 2.16, + "local": 1.1771, + "diff": 0.9829, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-08-31", + "official": 3.42, + "local": 2.1521, + "diff": 1.2679, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-08-31", + "official": 1.15, + "local": 8.2534, + "diff": -7.1034, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A Shares", + "Class C Shares", + "Institutional Shares", + "Investor Shares", + "Class R6 Shares", + "Class R Shares", + "Class P Shares", + "Class A Shares", + "Class C Shares", + "Service Shares", + "Investor Shares", + "Class R6 Shares", + "Class R Shares", + "Class P Shares", + "Class A Shares", + "Institutional Shares" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/ggrux.json b/reports/xcheck_official/ggrux.json new file mode 100644 index 0000000..7e5ecca --- /dev/null +++ b/reports/xcheck_official/ggrux.json @@ -0,0 +1,78 @@ +{ + "symbol": "ggrux", + "name": "Goldman Sachs Strategic Growth R6", + "filing": { + "accession": "0001193125-25-264139", + "doc": "d860414dncsr.htm", + "period_end": "2025-08-31", + "display": "GOLDMAN SACHS TRUST (CIK 0000822977)", + "ciks": [ + "0000822977" + ], + "score": 19.99786 + }, + "how": "ticker", + "n_bytes": 34620199, + "verdict": "weak-match", + "class": "Institutional Shares", + "mean_rel_err": 0.4978, + "nav_check": { + "date": "2021-08-31", + "official": 14.5, + "local": 14.46, + "rel": 0.0028, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-08-31", + "official": 0.91, + "local": 1.8122, + "diff": -0.9022, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-08-31", + "official": 0.5, + "local": 0.9923, + "diff": -0.4923, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-08-31", + "official": 0.98, + "local": 1.9537, + "diff": -0.9737, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-08-31", + "official": 1.51, + "local": 3.0136, + "diff": -1.5036, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-08-31", + "official": 1.77, + "local": 14.9753, + "diff": -13.2053, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Investor Shares", + "Class R6 Shares", + "Class P Shares" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/ghplx.json b/reports/xcheck_official/ghplx.json new file mode 100644 index 0000000..51b219b --- /dev/null +++ b/reports/xcheck_official/ghplx.json @@ -0,0 +1,6 @@ +{ + "symbol": "ghplx", + "name": "Fundvantage Trust - Gotham Hedged Plus Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/glgax.json b/reports/xcheck_official/glgax.json new file mode 100644 index 0000000..786a256 --- /dev/null +++ b/reports/xcheck_official/glgax.json @@ -0,0 +1,79 @@ +{ + "symbol": "glgax", + "name": "American Beacon Funds - American Beacon GLG Total Return Fund", + "filing": { + "accession": "0001193125-20-100342", + "doc": "d869203dncsr.htm", + "period_end": "2020-01-31", + "display": "AMERICAN BEACON FUNDS (CIK 0000809593)", + "ciks": [ + "0000809593" + ], + "score": 24.172703 + }, + "how": "ticker", + "n_bytes": 5783041, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.5533, + "nav_check": { + "date": "2017-01-31", + "official": 8.93, + "local": 10.66, + "rel": 0.1937, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2020-01-31", + "official": 0.67, + "local": 0, + "diff": 0.67, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-01-31", + "official": 0.67, + "local": 0.636, + "diff": 0.034, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-01-31", + "official": 0.62, + "local": 0.137, + "diff": 0.483, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-01-31", + "official": 0.63, + "local": 0.107, + "diff": 0.523, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2016-01-31", + "official": 0.59, + "local": 0, + "diff": 0.59, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/gmnix.json b/reports/xcheck_official/gmnix.json new file mode 100644 index 0000000..e389b8d --- /dev/null +++ b/reports/xcheck_official/gmnix.json @@ -0,0 +1,6 @@ +{ + "symbol": "gmnix", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/gndsx.json b/reports/xcheck_official/gndsx.json new file mode 100644 index 0000000..def4d72 --- /dev/null +++ b/reports/xcheck_official/gndsx.json @@ -0,0 +1,6 @@ +{ + "symbol": "gndsx", + "name": "AIM Growth Series (Invesco Growth Series) - Invesco Income Advantage International Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/gopix.json b/reports/xcheck_official/gopix.json new file mode 100644 index 0000000..a72d975 --- /dev/null +++ b/reports/xcheck_official/gopix.json @@ -0,0 +1,6 @@ +{ + "symbol": "gopix", + "name": "abrdn Funds - abrdn China A Share Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/gseax.json b/reports/xcheck_official/gseax.json new file mode 100644 index 0000000..59bf387 --- /dev/null +++ b/reports/xcheck_official/gseax.json @@ -0,0 +1,6 @@ +{ + "symbol": "gseax", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/gsoux.json b/reports/xcheck_official/gsoux.json new file mode 100644 index 0000000..5fd0fd4 --- /dev/null +++ b/reports/xcheck_official/gsoux.json @@ -0,0 +1,97 @@ +{ + "symbol": "gsoux", + "name": "Goldman Sachs Trust - Goldman Sachs Government Income Fund", + "filing": { + "accession": "0001193125-25-306725", + "doc": "d10339dncsrs.htm", + "period_end": "2025-09-30", + "display": "GOLDMAN SACHS TRUST (CIK 0000822977)", + "ciks": [ + "0000822977" + ], + "score": 22.39064 + }, + "how": "ticker", + "n_bytes": 45892827, + "verdict": "mismatch", + "class": "Institutional Shares", + "mean_rel_err": 0.0984, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2025-09-30", + "official": 0.23, + "local": 0.227, + "diff": 0.003, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-03-31", + "official": 0.39, + "local": 0.385, + "diff": 0.005, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-03-31", + "official": 0.35, + "local": 0.351, + "diff": -0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-03-31", + "official": 0.26, + "local": 0.263, + "diff": -0.003, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-03-31", + "official": 0.38, + "local": 0.6, + "diff": -0.22, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-03-31", + "official": 0.2, + "local": 1.707, + "diff": -1.507, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A Shares", + "Class C Shares", + "Service Shares", + "Investor Shares", + "Class R6 Shares", + "Class R Shares", + "Class P Shares", + "Class A Shares", + "Class C Shares", + "Institutional Shares", + "Investor Shares", + "Class R6 Shares", + "Class R Shares", + "Class P Shares", + "Class A Shares", + "Class C Shares", + "Institutional Shares", + "Investor Shares", + "Class R6 Shares" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/gtorx.json b/reports/xcheck_official/gtorx.json new file mode 100644 index 0000000..96d9b43 --- /dev/null +++ b/reports/xcheck_official/gtorx.json @@ -0,0 +1,89 @@ +{ + "symbol": "gtorx", + "name": "Goldman Sachs ETF Trust - Goldman Sachs Technology Opportunities ETF", + "filing": { + "accession": "0001193125-25-103328", + "doc": "d217079dncsrs.htm", + "period_end": "2025-02-28", + "display": "GOLDMAN SACHS TRUST (CIK 0000822977)", + "ciks": [ + "0000822977" + ], + "score": 23.260307 + }, + "how": "ticker", + "n_bytes": 22774661, + "verdict": "weak-match", + "class": "Institutional Shares", + "mean_rel_err": 0.9054, + "nav_check": { + "date": "2020-08-31", + "official": 15.8, + "local": 34.59, + "rel": 1.1892, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2025-02-28", + "official": 0.17, + "local": 2.456, + "diff": -2.286, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-08-31", + "official": 0.14, + "local": 0, + "diff": 0.14, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-08-31", + "official": 0.11, + "local": 7.9715, + "diff": -7.8615, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-08-31", + "official": 0.39, + "local": 10.6061, + "diff": -10.2161, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-08-31", + "official": 1.74, + "local": 5.3075, + "diff": -3.5675, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-08-31", + "official": 0.65, + "local": 12.476, + "diff": -11.826, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A Shares", + "Investor Shares", + "Class R6 Shares", + "Class R Shares", + "Class P Shares" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/gumnx.json b/reports/xcheck_official/gumnx.json new file mode 100644 index 0000000..7d556aa --- /dev/null +++ b/reports/xcheck_official/gumnx.json @@ -0,0 +1,6 @@ +{ + "symbol": "gumnx", + "name": "New Age Alpha Funds Trust - NAA Market Neutral Real Estate Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/hafvx.json b/reports/xcheck_official/hafvx.json new file mode 100644 index 0000000..c798972 --- /dev/null +++ b/reports/xcheck_official/hafvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "hafvx", + "name": "The Hartford Mutual Funds, Inc. - Hartford AARP Balanced Retirement Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/hdrw.json b/reports/xcheck_official/hdrw.json new file mode 100644 index 0000000..4c31ce4 --- /dev/null +++ b/reports/xcheck_official/hdrw.json @@ -0,0 +1,6 @@ +{ + "symbol": "hdrw", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/hgsd.json b/reports/xcheck_official/hgsd.json new file mode 100644 index 0000000..07bfceb --- /dev/null +++ b/reports/xcheck_official/hgsd.json @@ -0,0 +1,6 @@ +{ + "symbol": "hgsd", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/hlnax.json b/reports/xcheck_official/hlnax.json new file mode 100644 index 0000000..6f83df7 --- /dev/null +++ b/reports/xcheck_official/hlnax.json @@ -0,0 +1,6 @@ +{ + "symbol": "hlnax", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/hshrx.json b/reports/xcheck_official/hshrx.json new file mode 100644 index 0000000..33abd7e --- /dev/null +++ b/reports/xcheck_official/hshrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "hshrx", + "name": "The Hartford Mutual Funds II, Inc - Hartford Schroders China A Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/hsrt.json b/reports/xcheck_official/hsrt.json new file mode 100644 index 0000000..d75b745 --- /dev/null +++ b/reports/xcheck_official/hsrt.json @@ -0,0 +1,6 @@ +{ + "symbol": "hsrt", + "name": "Hartford AAA CLO ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/innnx.json b/reports/xcheck_official/innnx.json new file mode 100644 index 0000000..cd4f6fe --- /dev/null +++ b/reports/xcheck_official/innnx.json @@ -0,0 +1,6 @@ +{ + "symbol": "innnx", + "name": "North Square Global Resources & Infrastructure Fund Class I Shares", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ionax.json b/reports/xcheck_official/ionax.json new file mode 100644 index 0000000..6b6642e --- /dev/null +++ b/reports/xcheck_official/ionax.json @@ -0,0 +1,56 @@ +{ + "symbol": "ionax", + "name": "American Beacon Ionic Strategic Arbitrage Fund Class A", + "filing": { + "accession": "0001193125-17-077099", + "doc": "d330036dncsr.htm", + "period_end": "2016-12-31", + "display": "AMERICAN BEACON FUNDS (CIK 0000809593)", + "ciks": [ + "0000809593" + ], + "score": 35.180668 + }, + "how": "name:American Beacon Ionic Strategic Arbitrage Fund SM (shared=5)", + "n_bytes": 6330630, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.9249, + "nav_check": { + "date": "2015-12-31", + "official": 9.06, + "local": 9.88, + "rel": 0.0905, + "ok": true + }, + "periods": [ + { + "period": "fy", + "end": "2016-12-31", + "official": 0.97, + "local": 0, + "diff": 0.97, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-12-31", + "official": 0.26, + "local": 1.732, + "diff": -1.472, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2015-12-31", + "official": 0.97, + "local": 0.055, + "diff": 0.915, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/ionpx.json b/reports/xcheck_official/ionpx.json new file mode 100644 index 0000000..cc115fe --- /dev/null +++ b/reports/xcheck_official/ionpx.json @@ -0,0 +1,56 @@ +{ + "symbol": "ionpx", + "name": "American Beacon Ionic Strategic Arbitrage Fund Investor Class", + "filing": { + "accession": "0001193125-17-077099", + "doc": "d330036dncsr.htm", + "period_end": "2016-12-31", + "display": "AMERICAN BEACON FUNDS (CIK 0000809593)", + "ciks": [ + "0000809593" + ], + "score": 4.050476 + }, + "how": "name:American Beacon Ionic Strategic Arbitrage Fund SM (shared=5)", + "n_bytes": 6330630, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.9244, + "nav_check": { + "date": "2015-12-31", + "official": 9.06, + "local": 9.88, + "rel": 0.0905, + "ok": true + }, + "periods": [ + { + "period": "fy", + "end": "2016-12-31", + "official": 0.97, + "local": 0, + "diff": 0.97, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-12-31", + "official": 0.26, + "local": 1.719, + "diff": -1.459, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2015-12-31", + "official": 0.97, + "local": 0.055, + "diff": 0.915, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/iqdax.json b/reports/xcheck_official/iqdax.json new file mode 100644 index 0000000..94ddde8 --- /dev/null +++ b/reports/xcheck_official/iqdax.json @@ -0,0 +1,76 @@ +{ + "symbol": "iqdax", + "name": "Trust For Advised Portfolios - Infinity Q Diversified Alpha Fund", + "filing": { + "accession": "0001104659-20-122600", + "doc": "tm2033418d2_ncsr.htm", + "period_end": "2020-08-31", + "display": "Trust for Advised Portfolios (CIK 0001261788)", + "ciks": [ + "0001261788" + ], + "score": 28.891718 + }, + "how": "ticker", + "n_bytes": 3059360, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.7849, + "nav_check": { + "date": "2016-08-31", + "official": 9.9, + "local": 9.86, + "rel": 0.004, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2020-08-31", + "official": 0.19, + "local": 0, + "diff": 0.19, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-08-31", + "official": 0.24, + "local": 0.372, + "diff": -0.132, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-08-31", + "official": 0.19, + "local": 0, + "diff": 0.19, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-08-31", + "official": 0.0, + "local": 0.22, + "diff": -0.22, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2016-08-31", + "official": 0.0, + "local": 0.678, + "diff": -0.678, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/irbax.json b/reports/xcheck_official/irbax.json new file mode 100644 index 0000000..3c99257 --- /dev/null +++ b/reports/xcheck_official/irbax.json @@ -0,0 +1,6 @@ +{ + "symbol": "irbax", + "name": "Ivy Funds - Ivy Pictet Targeted Return Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/irnix.json b/reports/xcheck_official/irnix.json new file mode 100644 index 0000000..06a1435 --- /dev/null +++ b/reports/xcheck_official/irnix.json @@ -0,0 +1,6 @@ +{ + "symbol": "irnix", + "Unified Series Trust - Iron Strategic Income Fund": "Unified Series Trust - Iron Strategic Income Fund", + "verdict": "error", + "detail": "HTTP Error 500: Internal Server Error" +} \ No newline at end of file diff --git a/reports/xcheck_official/jborx.json b/reports/xcheck_official/jborx.json new file mode 100644 index 0000000..e5da575 --- /dev/null +++ b/reports/xcheck_official/jborx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jborx", + "name": "John Hancock Bond Trust - ESG Core Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jfgfx.json b/reports/xcheck_official/jfgfx.json new file mode 100644 index 0000000..af5ee90 --- /dev/null +++ b/reports/xcheck_official/jfgfx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jfgfx", + "name": "John Hancock Funds II - John Hancock Fundamental Global Franchise Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jhjrx.json b/reports/xcheck_official/jhjrx.json new file mode 100644 index 0000000..5009ba1 --- /dev/null +++ b/reports/xcheck_official/jhjrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jhjrx", + "name": "John Hancock Investment Trust - John Hancock ESG Large Cap Core Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (3 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jhsmx.json b/reports/xcheck_official/jhsmx.json new file mode 100644 index 0000000..6845aa1 --- /dev/null +++ b/reports/xcheck_official/jhsmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jhsmx", + "name": "John Hancock Funds II - John Hancock International Small Company Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jihrx.json b/reports/xcheck_official/jihrx.json new file mode 100644 index 0000000..3e0e686 --- /dev/null +++ b/reports/xcheck_official/jihrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jihrx", + "name": "JPMorgan Trust IV - JPMorgan International Hedged Equity Laddered Overlay ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jivmx.json b/reports/xcheck_official/jivmx.json new file mode 100644 index 0000000..1add91a --- /dev/null +++ b/reports/xcheck_official/jivmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jivmx", + "name": "JPMorgan Trust I -JPMorgan Fundamental Data Science Large Value ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jlpsx.json b/reports/xcheck_official/jlpsx.json index b474931..2d6d0e2 100644 --- a/reports/xcheck_official/jlpsx.json +++ b/reports/xcheck_official/jlpsx.json @@ -1,6 +1,103 @@ { "symbol": "jlpsx", "name": "JPMorgan US Large Cap Core Plus I", - "verdict": "not-found", - "detail": "no candidate filing contained this fund (5 tried)" + "verdict": "ok", + "class": "Class I", + "mean_rel_err": 0.0007, + "nav_check": null, + "periods": [ + { + "period": "fy", + "end": "2025-06-30", + "official": 1.37, + "local": 1.368, + "diff": 0.002, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-06-30", + "official": 2.03, + "local": 2.029, + "diff": 0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-06-30", + "official": 4.86, + "local": 4.859, + "diff": 0.001, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-06-30", + "official": 6.78, + "local": 6.785, + "diff": -0.005, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-06-30", + "official": 6.89, + "local": 34.518, + "diff": -27.628, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A", + "Class C", + "Class I", + "Class L", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class I", + "Class L", + "Class A", + "Class C", + "Class I", + "Class A", + "Class C", + "Class A", + "Class I", + "Class A" + ], + "filing": { + "accession": "0001193125-25-261051", + "doc": "d43102d497.htm", + "period_end": "2025-11-03", + "display": "JPMorgan Trust I (CIK 0001217286)", + "ciks": [ + "0001217286" + ], + "score": 8.33269 + }, + "how": "per-share-data", + "n_bytes": 23648659 } \ No newline at end of file diff --git a/reports/xcheck_official/jmbux.json b/reports/xcheck_official/jmbux.json new file mode 100644 index 0000000..883e9bb --- /dev/null +++ b/reports/xcheck_official/jmbux.json @@ -0,0 +1,6 @@ +{ + "symbol": "jmbux", + "name": "J.P. Morgan Exchange-Traded Fund Trust - JPMorgan Mortgage-Backed Securities ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/joelx.json b/reports/xcheck_official/joelx.json new file mode 100644 index 0000000..093c161 --- /dev/null +++ b/reports/xcheck_official/joelx.json @@ -0,0 +1,6 @@ +{ + "symbol": "joelx", + "name": "JPMorgan Trust I - JPMorgan Opportunistic Equity Long/Short Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jsalx.json b/reports/xcheck_official/jsalx.json new file mode 100644 index 0000000..5fbf2fc --- /dev/null +++ b/reports/xcheck_official/jsalx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jsalx", + "name": "JPMorgan Trust I - JPMorgan Systematic Alpha Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jsccx.json b/reports/xcheck_official/jsccx.json new file mode 100644 index 0000000..8322b3e --- /dev/null +++ b/reports/xcheck_official/jsccx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jsccx", + "name": "John Hancock Funds II - John Hancock Small Cap Core Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jsimx.json b/reports/xcheck_official/jsimx.json new file mode 100644 index 0000000..135bc77 --- /dev/null +++ b/reports/xcheck_official/jsimx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jsimx", + "name": "J.P. Morgan Exchange-Traded Fund Trust - JPMorgan Flexible Debt ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (3 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jsyrx.json b/reports/xcheck_official/jsyrx.json new file mode 100644 index 0000000..84a3449 --- /dev/null +++ b/reports/xcheck_official/jsyrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jsyrx", + "name": "JPMorgan Trust I - JPMorgan SmartRetirement Blend 2020 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (3 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jtsrx.json b/reports/xcheck_official/jtsrx.json new file mode 100644 index 0000000..4be8f2b --- /dev/null +++ b/reports/xcheck_official/jtsrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jtsrx", + "name": "Hancock John Bond Trust - Government Income Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jttyx.json b/reports/xcheck_official/jttyx.json new file mode 100644 index 0000000..16e457e --- /dev/null +++ b/reports/xcheck_official/jttyx.json @@ -0,0 +1,6 @@ +{ + "symbol": "jttyx", + "name": "JPMorgan Trust I - JPMorgan SmartRetirement 2020 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (3 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/jwsox.json b/reports/xcheck_official/jwsox.json new file mode 100644 index 0000000..5de34aa --- /dev/null +++ b/reports/xcheck_official/jwsox.json @@ -0,0 +1,6 @@ +{ + "symbol": "jwsox", + "name": "John Hancock Funds II - John Hancock New Opportunities Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/kcmtx.json b/reports/xcheck_official/kcmtx.json new file mode 100644 index 0000000..7dc0279 --- /dev/null +++ b/reports/xcheck_official/kcmtx.json @@ -0,0 +1,6 @@ +{ + "symbol": "kcmtx", + "name": "Investment Managers Series Trust II - AXS Multi-Strategy Alternatives Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lcdvx.json b/reports/xcheck_official/lcdvx.json new file mode 100644 index 0000000..dea7659 --- /dev/null +++ b/reports/xcheck_official/lcdvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lcdvx", + "name": "Lord Abbett Global Fund, Inc. - Lord Abbett Emerging Markets Corporate Debt Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ldmvx.json b/reports/xcheck_official/ldmvx.json new file mode 100644 index 0000000..f4cf03c --- /dev/null +++ b/reports/xcheck_official/ldmvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "ldmvx", + "name": "Lord Abbett Global Fund, Inc. - Lord Abbett Emerging Markets Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lebkx.json b/reports/xcheck_official/lebkx.json new file mode 100644 index 0000000..ba62ebd --- /dev/null +++ b/reports/xcheck_official/lebkx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lebkx", + "name": "Blackrock Funds III - Lifepath ESG Index 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/libkx.json b/reports/xcheck_official/libkx.json new file mode 100644 index 0000000..403c4b2 --- /dev/null +++ b/reports/xcheck_official/libkx.json @@ -0,0 +1,6 @@ +{ + "symbol": "libkx", + "name": "BlackRock Funds III - BlackRock LifePath Index 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/llsox.json b/reports/xcheck_official/llsox.json new file mode 100644 index 0000000..0b66f42 --- /dev/null +++ b/reports/xcheck_official/llsox.json @@ -0,0 +1,6 @@ +{ + "symbol": "llsox", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lmamx.json b/reports/xcheck_official/lmamx.json new file mode 100644 index 0000000..0f0ddca --- /dev/null +++ b/reports/xcheck_official/lmamx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lmamx", + "name": "Legg Mason Global Asset Management Trust - Legg Mason BW Alternative Credit Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lmapx.json b/reports/xcheck_official/lmapx.json new file mode 100644 index 0000000..ebfef0a --- /dev/null +++ b/reports/xcheck_official/lmapx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lmapx", + "name": "Legg Mason Global Asset Management Trust - Legg Mason BW Alternative Credit Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lnfix.json b/reports/xcheck_official/lnfix.json new file mode 100644 index 0000000..f9dfb8e --- /dev/null +++ b/reports/xcheck_official/lnfix.json @@ -0,0 +1,6 @@ +{ + "symbol": "lnfix", + "name": "Legg Mason Global Asset Management Trust - Franklin Global Market Neutral Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lpbkx.json b/reports/xcheck_official/lpbkx.json new file mode 100644 index 0000000..0a53a31 --- /dev/null +++ b/reports/xcheck_official/lpbkx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lpbkx", + "name": "BlackRock Funds III - BlackRock LifePath Dynamic 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lptax.json b/reports/xcheck_official/lptax.json new file mode 100644 index 0000000..0ceaa06 --- /dev/null +++ b/reports/xcheck_official/lptax.json @@ -0,0 +1,6 @@ +{ + "symbol": "lptax", + "name": "EnTrust Global - Alternative Core Fund Class A", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lqtvx.json b/reports/xcheck_official/lqtvx.json new file mode 100644 index 0000000..ea4dd80 --- /dev/null +++ b/reports/xcheck_official/lqtvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lqtvx", + "name": "Theta Income Fund Investor Class", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lttkx.json b/reports/xcheck_official/lttkx.json new file mode 100644 index 0000000..f4012db --- /dev/null +++ b/reports/xcheck_official/lttkx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lttkx", + "name": "MFS Series Trust XII - MFS Lifetime 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/lyrdx.json b/reports/xcheck_official/lyrdx.json new file mode 100644 index 0000000..232ed27 --- /dev/null +++ b/reports/xcheck_official/lyrdx.json @@ -0,0 +1,6 @@ +{ + "symbol": "lyrdx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/masnx.json b/reports/xcheck_official/masnx.json new file mode 100644 index 0000000..dfee037 --- /dev/null +++ b/reports/xcheck_official/masnx.json @@ -0,0 +1,6 @@ +{ + "symbol": "masnx", + "name": "Litman Gregory Funds Trust - iMGP Alternative Strategies Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mbbix.json b/reports/xcheck_official/mbbix.json new file mode 100644 index 0000000..ef536af --- /dev/null +++ b/reports/xcheck_official/mbbix.json @@ -0,0 +1,6 @@ +{ + "symbol": "mbbix", + "name": "Massmutual Premier Funds - MassMutual Balanced Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mdna.json b/reports/xcheck_official/mdna.json new file mode 100644 index 0000000..e77b0ab --- /dev/null +++ b/reports/xcheck_official/mdna.json @@ -0,0 +1,6 @@ +{ + "symbol": "mdna", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mdrvx.json b/reports/xcheck_official/mdrvx.json new file mode 100644 index 0000000..37a6a93 --- /dev/null +++ b/reports/xcheck_official/mdrvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mdrvx", + "name": "Massmutual Select Funds - MassMutual RetireSMART by JPMorgan In Retirement Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mfvzx.json b/reports/xcheck_official/mfvzx.json new file mode 100644 index 0000000..f801546 --- /dev/null +++ b/reports/xcheck_official/mfvzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mfvzx", + "name": "MassMutual Select Funds - MassMutual Equity Opportunities Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mgfox.json b/reports/xcheck_official/mgfox.json new file mode 100644 index 0000000..22bf6e5 --- /dev/null +++ b/reports/xcheck_official/mgfox.json @@ -0,0 +1,79 @@ +{ + "symbol": "mgfox", + "name": "Morgan Stanley ETF Trust - Eaton Vance Income Opportunities ETF", + "filing": { + "accession": "0001104659-26-000188", + "doc": "tm2530347d3_ncsr.htm", + "period_end": "2025-10-31", + "display": "MORGAN STANLEY INCOME OPPORTUNITIES FUND (CIK 0000882381)", + "ciks": [ + "0000882381" + ], + "score": 27.239618 + }, + "how": "ticker", + "n_bytes": 7192750, + "verdict": "ok", + "class": "?", + "mean_rel_err": 0.0081, + "nav_check": { + "date": "2021-10-29", + "official": 5.75, + "local": 5.75, + "rel": 0.0, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-10-31", + "official": 0.3, + "local": 0.2997, + "diff": 0.0003, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-10-31", + "official": 0.28, + "local": 0.2794, + "diff": 0.0006, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-10-31", + "official": 0.34, + "local": 0.3376, + "diff": 0.0024, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-10-31", + "official": 0.23, + "local": 0.2335, + "diff": -0.0035, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-10-31", + "official": 0.17, + "local": 0.5502, + "diff": -0.3802, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A Shares", + "Class L Shares", + "Class I Shares", + "Class C Shares" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/mgrex.json b/reports/xcheck_official/mgrex.json new file mode 100644 index 0000000..e92a8df --- /dev/null +++ b/reports/xcheck_official/mgrex.json @@ -0,0 +1,6 @@ +{ + "symbol": "mgrex", + "name": "Morgan Stanley Institutional Fund, Inc. - Global Real Estate Portfolio", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/milnx.json b/reports/xcheck_official/milnx.json new file mode 100644 index 0000000..dab7660 --- /dev/null +++ b/reports/xcheck_official/milnx.json @@ -0,0 +1,6 @@ +{ + "symbol": "milnx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mizix.json b/reports/xcheck_official/mizix.json new file mode 100644 index 0000000..64adfb1 --- /dev/null +++ b/reports/xcheck_official/mizix.json @@ -0,0 +1,6 @@ +{ + "symbol": "mizix", + "name": "MassMutual Premier Funds - MassMutual International Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mlozx.json b/reports/xcheck_official/mlozx.json new file mode 100644 index 0000000..30171e4 --- /dev/null +++ b/reports/xcheck_official/mlozx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mlozx", + "name": "Cohen & Steers ETF Trust - Cohen & Steers Future of Energy Active ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mluzx.json b/reports/xcheck_official/mluzx.json new file mode 100644 index 0000000..0a469e4 --- /dev/null +++ b/reports/xcheck_official/mluzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mluzx", + "name": "MassMutual Select Funds - MassMutual Mid Cap Value Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mmkux.json b/reports/xcheck_official/mmkux.json new file mode 100644 index 0000000..2757843 --- /dev/null +++ b/reports/xcheck_official/mmkux.json @@ -0,0 +1,6 @@ +{ + "symbol": "mmkux", + "name": "MassMutual RetireSMART by JPMorgan 2045 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mmqix.json b/reports/xcheck_official/mmqix.json new file mode 100644 index 0000000..c43b18d --- /dev/null +++ b/reports/xcheck_official/mmqix.json @@ -0,0 +1,6 @@ +{ + "symbol": "mmqix", + "name": "MassMutual Select Funds - MassMutual Small Cap Value Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mmwix.json b/reports/xcheck_official/mmwix.json new file mode 100644 index 0000000..01667bc --- /dev/null +++ b/reports/xcheck_official/mmwix.json @@ -0,0 +1,6 @@ +{ + "symbol": "mmwix", + "name": "MassMutual RetireSMART by JPMorgan 2060 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mmwzx.json b/reports/xcheck_official/mmwzx.json new file mode 100644 index 0000000..b965f0b --- /dev/null +++ b/reports/xcheck_official/mmwzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mmwzx", + "name": "MassMutual RetireSMART by JPMorgan 2055 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mpdix.json b/reports/xcheck_official/mpdix.json new file mode 100644 index 0000000..4c3e378 --- /dev/null +++ b/reports/xcheck_official/mpdix.json @@ -0,0 +1,6 @@ +{ + "symbol": "mpdix", + "name": "MassMutual Premier Funds - MassMutual Disciplined Growth Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mpivx.json b/reports/xcheck_official/mpivx.json new file mode 100644 index 0000000..89537b1 --- /dev/null +++ b/reports/xcheck_official/mpivx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mpivx", + "name": "MassMutual Premier Funds - MassMutual Disciplined Value Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mrcux.json b/reports/xcheck_official/mrcux.json new file mode 100644 index 0000000..8bb94c3 --- /dev/null +++ b/reports/xcheck_official/mrcux.json @@ -0,0 +1,6 @@ +{ + "symbol": "mrcux", + "name": "MassMutual Select Funds - MassMutual Select 20/80 Allocation Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mrfux.json b/reports/xcheck_official/mrfux.json new file mode 100644 index 0000000..09e6c4a --- /dev/null +++ b/reports/xcheck_official/mrfux.json @@ -0,0 +1,6 @@ +{ + "symbol": "mrfux", + "name": "MassMutual RetireSMART by JPMorgan 2040 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mrgux.json b/reports/xcheck_official/mrgux.json new file mode 100644 index 0000000..625bbe0 --- /dev/null +++ b/reports/xcheck_official/mrgux.json @@ -0,0 +1,6 @@ +{ + "symbol": "mrgux", + "name": "MassMutual Select Funds - RetireSmart Growth Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mrmux.json b/reports/xcheck_official/mrmux.json new file mode 100644 index 0000000..208eaf4 --- /dev/null +++ b/reports/xcheck_official/mrmux.json @@ -0,0 +1,6 @@ +{ + "symbol": "mrmux", + "name": "MassMutual Select Funds - RetireSMART Moderate Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mshyx.json b/reports/xcheck_official/mshyx.json new file mode 100644 index 0000000..8827f22 --- /dev/null +++ b/reports/xcheck_official/mshyx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mshyx", + "name": "Morgan Stanley Institutional Fund Trust - High Yield Portfolio", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mspzx.json b/reports/xcheck_official/mspzx.json new file mode 100644 index 0000000..6bc91fe --- /dev/null +++ b/reports/xcheck_official/mspzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mspzx", + "name": "MassMutual Select Funds - MassMutual Select Total Return Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/msvzx.json b/reports/xcheck_official/msvzx.json new file mode 100644 index 0000000..4c8322c --- /dev/null +++ b/reports/xcheck_official/msvzx.json @@ -0,0 +1,6 @@ +{ + "symbol": "msvzx", + "name": "MassMutual Select Funds - MassMutual Small Company Value Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mucrx.json b/reports/xcheck_official/mucrx.json new file mode 100644 index 0000000..29f0381 --- /dev/null +++ b/reports/xcheck_official/mucrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mucrx", + "name": "Victory Portfolios - Victory INCORE Total Return Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mursx.json b/reports/xcheck_official/mursx.json new file mode 100644 index 0000000..2581263 --- /dev/null +++ b/reports/xcheck_official/mursx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mursx", + "name": "Morgan Stanley Institutional Fund, Inc. - U.S. Real Estate Portfolio", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/mwatx.json b/reports/xcheck_official/mwatx.json new file mode 100644 index 0000000..7d5949e --- /dev/null +++ b/reports/xcheck_official/mwatx.json @@ -0,0 +1,6 @@ +{ + "symbol": "mwatx", + "name": "Metropolitan West Funds - Metropolitan West AlphaTrak 500 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/nmaex.json b/reports/xcheck_official/nmaex.json new file mode 100644 index 0000000..ca58268 --- /dev/null +++ b/reports/xcheck_official/nmaex.json @@ -0,0 +1,6 @@ +{ + "symbol": "nmaex", + "name": "Nuveen Investment Trust - Nuveen Equity Market Neutral Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfbx.json b/reports/xcheck_official/nsfbx.json new file mode 100644 index 0000000..e3f35c4 --- /dev/null +++ b/reports/xcheck_official/nsfbx.json @@ -0,0 +1,81 @@ +{ + "symbol": "nsfbx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2015 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 3.811203 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class Y", + "mean_rel_err": 0.5176, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2024-07-31", + "official": 0.27, + "local": 0.1077, + "diff": 0.1623, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-01-31", + "official": 0.29, + "local": 0.166, + "diff": 0.124, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-01-31", + "official": 0.31, + "local": 0.4139, + "diff": -0.1039, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-01-31", + "official": 0.83, + "local": 1.8197, + "diff": -0.9897, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-01-31", + "official": 0.44, + "local": 2.8942, + "diff": -2.4542, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-01-31", + "official": 2.25, + "local": 1.512, + "diff": 0.738, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A", + "Class C", + "Class N" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfdx.json b/reports/xcheck_official/nsfdx.json new file mode 100644 index 0000000..9f9ccb2 --- /dev/null +++ b/reports/xcheck_official/nsfdx.json @@ -0,0 +1,81 @@ +{ + "symbol": "nsfdx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2020 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.96418 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class Y", + "mean_rel_err": 0.4248, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2024-07-31", + "official": 0.27, + "local": 0.0199, + "diff": 0.2501, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-01-31", + "official": 0.29, + "local": 0.2037, + "diff": 0.0863, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-01-31", + "official": 0.31, + "local": 0.5554, + "diff": -0.2454, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-01-31", + "official": 0.83, + "local": 0.8718, + "diff": -0.0418, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-01-31", + "official": 0.44, + "local": 4.9862, + "diff": -4.5462, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-01-31", + "official": 2.25, + "local": 1.6671, + "diff": 0.5829, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A", + "Class C", + "Class N" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfex.json b/reports/xcheck_official/nsfex.json new file mode 100644 index 0000000..4c9c11e --- /dev/null +++ b/reports/xcheck_official/nsfex.json @@ -0,0 +1,81 @@ +{ + "symbol": "nsfex", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2025 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.860836 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class Y", + "mean_rel_err": 0.4855, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2024-07-31", + "official": 0.27, + "local": 0.3602, + "diff": -0.0902, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-01-31", + "official": 0.29, + "local": 0.1617, + "diff": 0.1283, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-01-31", + "official": 0.31, + "local": 0.407, + "diff": -0.097, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-01-31", + "official": 0.83, + "local": 1.738, + "diff": -0.908, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-01-31", + "official": 0.44, + "local": 1.6859, + "diff": -1.2459, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-01-31", + "official": 2.25, + "local": 1.7361, + "diff": 0.5139, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A", + "Class C", + "Class N" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsffx.json b/reports/xcheck_official/nsffx.json new file mode 100644 index 0000000..4116595 --- /dev/null +++ b/reports/xcheck_official/nsffx.json @@ -0,0 +1,87 @@ +{ + "symbol": "nsffx", + "name": "Natixis Funds Trust IV - NatixisTarget Retirement 2030 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 3.8079166 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.406, + "nav_check": { + "date": "2025-07-29", + "official": 12.45, + "local": 10.3868, + "rel": 0.1657, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.26, + "local": 2.458, + "diff": -2.198, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.27, + "local": 1.1019, + "diff": -0.8319, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.27, + "local": 0.2218, + "diff": 0.0482, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.8, + "local": 0.8396, + "diff": -0.0396, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.4, + "local": 1.1218, + "diff": -0.7218, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 2.22, + "local": 3.2171, + "diff": -0.9971, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class C", + "Class N", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfgx.json b/reports/xcheck_official/nsfgx.json new file mode 100644 index 0000000..a6b8944 --- /dev/null +++ b/reports/xcheck_official/nsfgx.json @@ -0,0 +1,87 @@ +{ + "symbol": "nsfgx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2035 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.860836 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.5296, + "nav_check": { + "date": "2025-07-29", + "official": 12.45, + "local": 9.9547, + "rel": 0.2004, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.26, + "local": 3.1089, + "diff": -2.8489, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.27, + "local": 1.1582, + "diff": -0.8882, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.27, + "local": 0.6278, + "diff": -0.3578, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.8, + "local": 0.8082, + "diff": -0.0082, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.4, + "local": 1.751, + "diff": -1.351, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 2.22, + "local": 3.7345, + "diff": -1.5145, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class C", + "Class N", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfhx.json b/reports/xcheck_official/nsfhx.json new file mode 100644 index 0000000..5581424 --- /dev/null +++ b/reports/xcheck_official/nsfhx.json @@ -0,0 +1,87 @@ +{ + "symbol": "nsfhx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2040 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.96421 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.4846, + "nav_check": { + "date": "2025-07-29", + "official": 12.45, + "local": 8.2451, + "rel": 0.3377, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.26, + "local": 4.8057, + "diff": -4.5457, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.27, + "local": 1.234, + "diff": -0.964, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.27, + "local": 0.3806, + "diff": -0.1106, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.8, + "local": 0.7038, + "diff": 0.0962, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.4, + "local": 1.5779, + "diff": -1.1779, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 2.22, + "local": 4.6856, + "diff": -2.4656, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class C", + "Class N", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfjx.json b/reports/xcheck_official/nsfjx.json new file mode 100644 index 0000000..3fd023f --- /dev/null +++ b/reports/xcheck_official/nsfjx.json @@ -0,0 +1,87 @@ +{ + "symbol": "nsfjx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2045 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.783684 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.5433, + "nav_check": { + "date": "2025-07-29", + "official": 12.45, + "local": 6.8436, + "rel": 0.4503, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.26, + "local": 6.8446, + "diff": -6.5846, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.27, + "local": 1.225, + "diff": -0.955, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.27, + "local": 0.6408, + "diff": -0.3708, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.8, + "local": 0.7657, + "diff": 0.0343, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.4, + "local": 1.7545, + "diff": -1.3545, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 2.22, + "local": 4.0765, + "diff": -1.8565, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class C", + "Class N", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfkx.json b/reports/xcheck_official/nsfkx.json new file mode 100644 index 0000000..e61313b --- /dev/null +++ b/reports/xcheck_official/nsfkx.json @@ -0,0 +1,87 @@ +{ + "symbol": "nsfkx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2060 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.86087 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.5027, + "nav_check": { + "date": "2025-07-29", + "official": 12.45, + "local": 7.1354, + "rel": 0.4269, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.26, + "local": 6.6856, + "diff": -6.4256, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.27, + "local": 1.022, + "diff": -0.752, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.27, + "local": 0.5182, + "diff": -0.2482, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.8, + "local": 0.7322, + "diff": 0.0678, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.4, + "local": 1.3853, + "diff": -0.9853, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 2.22, + "local": 4.9094, + "diff": -2.6894, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class C", + "Class N", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsflx.json b/reports/xcheck_official/nsflx.json new file mode 100644 index 0000000..bbec978 --- /dev/null +++ b/reports/xcheck_official/nsflx.json @@ -0,0 +1,81 @@ +{ + "symbol": "nsflx", + "name": "Natixis Funds Trust IV - Natixis Target Retirement 2055 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 32.96418 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class N", + "mean_rel_err": 0.5352, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2024-07-31", + "official": 0.28, + "local": 0.3202, + "diff": -0.0402, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-01-31", + "official": 0.3, + "local": 0.5586, + "diff": -0.2586, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-01-31", + "official": 0.31, + "local": 0.5834, + "diff": -0.2734, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-01-31", + "official": 0.84, + "local": 1.3417, + "diff": -0.5017, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-01-31", + "official": 0.44, + "local": 2.6715, + "diff": -2.2315, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-01-31", + "official": 2.26, + "local": 2.5981, + "diff": -0.3381, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class A", + "Class C", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nsfmx.json b/reports/xcheck_official/nsfmx.json new file mode 100644 index 0000000..6822863 --- /dev/null +++ b/reports/xcheck_official/nsfmx.json @@ -0,0 +1,87 @@ +{ + "symbol": "nsfmx", + "name": "Natixis Funds Trust IV - Sustainable Future 2060 Fund", + "filing": { + "accession": "0001193125-24-231773", + "doc": "d804568dncsrs.htm", + "period_end": "2024-07-31", + "display": "Natixis Funds Trust IV (CIK 0001095726)", + "ciks": [ + "0001095726" + ], + "score": 25.066257 + }, + "how": "ticker", + "n_bytes": 15209335, + "verdict": "weak-match", + "class": "Class A", + "mean_rel_err": 0.5473, + "nav_check": { + "date": "2025-07-29", + "official": 12.45, + "local": 7.3173, + "rel": 0.4123, + "ok": false + }, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.26, + "local": 6.1331, + "diff": -5.8731, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.27, + "local": 1.2638, + "diff": -0.9938, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.27, + "local": 0.4997, + "diff": -0.2297, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.8, + "local": 0.6956, + "diff": 0.1044, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.4, + "local": 2.1365, + "diff": -1.7365, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 2.22, + "local": 5.1903, + "diff": -2.9703, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class C", + "Class N", + "Class Y" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/nubax.json b/reports/xcheck_official/nubax.json new file mode 100644 index 0000000..0c5f92b --- /dev/null +++ b/reports/xcheck_official/nubax.json @@ -0,0 +1,6 @@ +{ + "symbol": "nubax", + "name": "Neuberger Berman Unconstrained Bond Fund Class A", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/nwhix.json b/reports/xcheck_official/nwhix.json new file mode 100644 index 0000000..e48b081 --- /dev/null +++ b/reports/xcheck_official/nwhix.json @@ -0,0 +1,6 @@ +{ + "symbol": "nwhix", + "name": "Nationwide Mutual Funds - Nationwide Destination 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/nwifx.json b/reports/xcheck_official/nwifx.json new file mode 100644 index 0000000..645ee73 --- /dev/null +++ b/reports/xcheck_official/nwifx.json @@ -0,0 +1,6 @@ +{ + "symbol": "nwifx", + "name": "Nuveen Investment Trust II - Nuveen International Small Cap Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ofiix.json b/reports/xcheck_official/ofiix.json new file mode 100644 index 0000000..c6cdfe6 --- /dev/null +++ b/reports/xcheck_official/ofiix.json @@ -0,0 +1,6 @@ +{ + "symbol": "ofiix", + "name": "Aim Investment Securities Funds(Invesco Investment Securities)-Invesco Intermediate Bond Factor Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/oiemx.json b/reports/xcheck_official/oiemx.json new file mode 100644 index 0000000..00a4553 --- /dev/null +++ b/reports/xcheck_official/oiemx.json @@ -0,0 +1,6 @@ +{ + "symbol": "oiemx", + "name": "The Oberweis Funds - Oberweis Emerging Markets Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/otcrx.json b/reports/xcheck_official/otcrx.json new file mode 100644 index 0000000..a8dac7f --- /dev/null +++ b/reports/xcheck_official/otcrx.json @@ -0,0 +1,79 @@ +{ + "symbol": "otcrx", + "name": "Professionally Managed Portfolios - Otter Creek Long/Short Opportunity Fund", + "filing": { + "accession": "0001133228-25-007092", + "doc": "oclofsa-efp16456_ncsrs.htm", + "period_end": "2025-04-30", + "display": "PROFESSIONALLY MANAGED PORTFOLIOS (CIK 0000811030)", + "ciks": [ + "0000811030" + ], + "score": 42.582333 + }, + "how": "ticker", + "n_bytes": 867904, + "verdict": "mismatch", + "class": "?", + "mean_rel_err": 0.2254, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2025-04-30", + "official": 0.08, + "local": 0.0836, + "diff": -0.0036, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-10-31", + "official": 0.37, + "local": 0.3692, + "diff": 0.0008, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-10-31", + "official": 0.85, + "local": 1.6155, + "diff": -0.7655, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-10-31", + "official": 0.3, + "local": 0.5138, + "diff": -0.2138, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-10-31", + "official": 0.23, + "local": 0.2322, + "diff": -0.0022, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-10-31", + "official": 0.0, + "local": 0.008, + "diff": -0.008, + "ok": true, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/paoix.json b/reports/xcheck_official/paoix.json new file mode 100644 index 0000000..750f628 --- /dev/null +++ b/reports/xcheck_official/paoix.json @@ -0,0 +1,6 @@ +{ + "symbol": "paoix", + "name": "Capitol Series Trust - Preserver Alternative Opportunities Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pbatx.json b/reports/xcheck_official/pbatx.json new file mode 100644 index 0000000..9199426 --- /dev/null +++ b/reports/xcheck_official/pbatx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pbatx", + "name": "Putnam RetirementReady Funds - Retirement Advantage 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pcwqx.json b/reports/xcheck_official/pcwqx.json new file mode 100644 index 0000000..c177fbc --- /dev/null +++ b/reports/xcheck_official/pcwqx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pcwqx", + "name": "The Target Portfolio Trust - PGIM Corporate Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pdcjx.json b/reports/xcheck_official/pdcjx.json new file mode 100644 index 0000000..8589600 --- /dev/null +++ b/reports/xcheck_official/pdcjx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pdcjx", + "name": "Prudential Investment Portfolios 5 - Day One 2015 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pdcrx.json b/reports/xcheck_official/pdcrx.json new file mode 100644 index 0000000..20f42ae --- /dev/null +++ b/reports/xcheck_official/pdcrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pdcrx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pedmx.json b/reports/xcheck_official/pedmx.json new file mode 100644 index 0000000..b87a226 --- /dev/null +++ b/reports/xcheck_official/pedmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pedmx", + "Principal Funds, Inc. - EDGE Midcap Fund": "Principal Funds, Inc. - EDGE Midcap Fund", + "verdict": "error", + "detail": "HTTP Error 500: Internal Server Error" +} \ No newline at end of file diff --git a/reports/xcheck_official/pfsdx.json b/reports/xcheck_official/pfsdx.json new file mode 100644 index 0000000..97824ee --- /dev/null +++ b/reports/xcheck_official/pfsdx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pfsdx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pgmmx.json b/reports/xcheck_official/pgmmx.json new file mode 100644 index 0000000..9dc1352 --- /dev/null +++ b/reports/xcheck_official/pgmmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pgmmx", + "name": "Principal Multi-Manager Equity Long/Short Fund Class A", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/plrrx.json b/reports/xcheck_official/plrrx.json new file mode 100644 index 0000000..133030a --- /dev/null +++ b/reports/xcheck_official/plrrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "plrrx", + "name": "Principal Funds, Inc. - Principal Lifetime Hybrid 2015 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pmaix.json b/reports/xcheck_official/pmaix.json index d810907..d9d5064 100644 --- a/reports/xcheck_official/pmaix.json +++ b/reports/xcheck_official/pmaix.json @@ -1,18 +1,6 @@ { "symbol": "pmaix", "name": "Victory Pioneer Multi-Asset Income A", - "filing": { - "accession": "0001193125-26-146416", - "doc": "d126036dncsrs.htm", - "period_end": "2026-01-31", - "display": "Victory Portfolios IV (CIK 0002042316)", - "ciks": [ - "0002042316" - ], - "score": 34.46095 - }, - "how": "ticker", - "n_bytes": 5355742, "verdict": "ok", "class": "Class A", "mean_rel_err": 0.0037, @@ -82,8 +70,19 @@ "other_classes": [ "Class C", "Class R6", - "Class Y", "Class A", "Class Y" - ] + ], + "filing": { + "accession": "0001193125-26-146416", + "doc": "d126036dncsrs.htm", + "period_end": "2026-01-31", + "display": "Victory Portfolios IV (CIK 0002042316)", + "ciks": [ + "0002042316" + ], + "score": 16.037079 + }, + "how": "ticker", + "n_bytes": 5355742 } \ No newline at end of file diff --git a/reports/xcheck_official/pmfmx.json b/reports/xcheck_official/pmfmx.json new file mode 100644 index 0000000..58ec2d3 --- /dev/null +++ b/reports/xcheck_official/pmfmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pmfmx", + "name": "", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pmrix.json b/reports/xcheck_official/pmrix.json new file mode 100644 index 0000000..404423f --- /dev/null +++ b/reports/xcheck_official/pmrix.json @@ -0,0 +1,6 @@ +{ + "symbol": "pmrix", + "name": "", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pmzdx.json b/reports/xcheck_official/pmzdx.json new file mode 100644 index 0000000..599c2e8 --- /dev/null +++ b/reports/xcheck_official/pmzdx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pmzdx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/poefx.json b/reports/xcheck_official/poefx.json new file mode 100644 index 0000000..e7b666d --- /dev/null +++ b/reports/xcheck_official/poefx.json @@ -0,0 +1,6 @@ +{ + "symbol": "poefx", + "name": "Principal Funds, Inc. - Origin Emerging Markets Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ppzrx.json b/reports/xcheck_official/ppzrx.json new file mode 100644 index 0000000..ee674d5 --- /dev/null +++ b/reports/xcheck_official/ppzrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "ppzrx", + "name": "PIMCO Equity Series - PIMCO RealPath Blend 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/prmfx.json b/reports/xcheck_official/prmfx.json new file mode 100644 index 0000000..2a178ab --- /dev/null +++ b/reports/xcheck_official/prmfx.json @@ -0,0 +1,6 @@ +{ + "symbol": "prmfx", + "name": "Putnam Target Date Funds - Putnam Sustainable Retirement 2025 Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ptm.json b/reports/xcheck_official/ptm.json new file mode 100644 index 0000000..aa0361d --- /dev/null +++ b/reports/xcheck_official/ptm.json @@ -0,0 +1,6 @@ +{ + "symbol": "ptm", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ptrix.json b/reports/xcheck_official/ptrix.json new file mode 100644 index 0000000..2b08da3 --- /dev/null +++ b/reports/xcheck_official/ptrix.json @@ -0,0 +1,6 @@ +{ + "symbol": "ptrix", + "name": "PIMCO ETF Trust - PIMCO Mortgage-Backed Securities Active Exchange-Traded Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pubdx.json b/reports/xcheck_official/pubdx.json new file mode 100644 index 0000000..50bd403 --- /dev/null +++ b/reports/xcheck_official/pubdx.json @@ -0,0 +1,6 @@ +{ + "symbol": "pubdx", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/pzvlx.json b/reports/xcheck_official/pzvlx.json new file mode 100644 index 0000000..9445585 --- /dev/null +++ b/reports/xcheck_official/pzvlx.json @@ -0,0 +1,90 @@ +{ + "symbol": "pzvlx", + "name": "Pzena Long/Short Value Fund Investor Class", + "filing": { + "accession": "0000898531-20-000227", + "doc": "pf-ncsra.htm", + "period_end": "2020-02-29", + "display": "ADVISORS SERIES TRUST (CIK 0001027596)", + "ciks": [ + "0001027596" + ], + "score": 13.893856 + }, + "how": "ticker", + "n_bytes": 3340088, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.8233, + "nav_check": null, + "periods": [ + { + "period": "fy", + "end": "2016-04-27", + "official": 0.08, + "local": 0, + "diff": 0.08, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2029-04-27", + "official": 0.45, + "local": 0, + "diff": 0.45, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2028-04-27", + "official": 0.86, + "local": 0, + "diff": 0.86, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-04-27", + "official": 0.01, + "local": 0.166, + "diff": -0.156, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-04-27", + "official": 0.0, + "local": 0.35, + "diff": -0.35, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-04-27", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-02-28", + "official": 0.0, + "local": 0.868, + "diff": -0.868, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/qiorx.json b/reports/xcheck_official/qiorx.json new file mode 100644 index 0000000..0915097 --- /dev/null +++ b/reports/xcheck_official/qiorx.json @@ -0,0 +1,6 @@ +{ + "symbol": "qiorx", + "name": "AQR Funds - AQR International Momentum Style Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/qmorx.json b/reports/xcheck_official/qmorx.json new file mode 100644 index 0000000..2673114 --- /dev/null +++ b/reports/xcheck_official/qmorx.json @@ -0,0 +1,6 @@ +{ + "symbol": "qmorx", + "name": "AQR Funds - AQR Large Cap Momentum Style Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/qsmrx.json b/reports/xcheck_official/qsmrx.json new file mode 100644 index 0000000..02b63d0 --- /dev/null +++ b/reports/xcheck_official/qsmrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "qsmrx", + "name": "AQR Funds - AQR Small Cap Momentum Style Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/raaax.json b/reports/xcheck_official/raaax.json new file mode 100644 index 0000000..12a059a --- /dev/null +++ b/reports/xcheck_official/raaax.json @@ -0,0 +1,107 @@ +{ + "symbol": "raaax", + "name": "Northern Lights Fund Trust - Altegris/AACA Opportunistic Real Estate Fund", + "filing": { + "accession": "0001580642-25-005929", + "doc": "altegris-aaca_ncsrs.htm", + "period_end": "2025-06-30", + "display": "Northern Lights Fund Trust (CIK 0001314414)", + "ciks": [ + "0001314414" + ], + "score": 51.92452 + }, + "how": "ticker", + "n_bytes": 934626, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.8039, + "nav_check": null, + "periods": [ + { + "period": "fy", + "end": "2010-12-31", + "official": 0.02, + "local": 0, + "diff": 0.02, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-12-31", + "official": 0.89, + "local": 0, + "diff": 0.89, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2031-12-31", + "official": 2.66, + "local": 0, + "diff": 2.66, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-12-31", + "official": 1.53, + "local": 0.0615, + "diff": 1.4685, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-12-31", + "official": 0.0, + "local": 0.0815, + "diff": -0.0815, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.0, + "local": 1.7702, + "diff": -1.7702, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 10.06, + "local": 5.3216, + "diff": 4.7384, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 12.61, + "local": 5.0597, + "diff": 7.5503, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/rbrcx.json b/reports/xcheck_official/rbrcx.json new file mode 100644 index 0000000..050e1ed --- /dev/null +++ b/reports/xcheck_official/rbrcx.json @@ -0,0 +1,6 @@ +{ + "symbol": "rbrcx", + "name": "RBC Funds Trust - RBC Small Cap Core Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ricix.json b/reports/xcheck_official/ricix.json new file mode 100644 index 0000000..8036581 --- /dev/null +++ b/reports/xcheck_official/ricix.json @@ -0,0 +1,6 @@ +{ + "symbol": "ricix", + "name": "T. Rowe Price International Funds, Inc. - T. Rowe Price International Disciplined Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/rmrgx.json b/reports/xcheck_official/rmrgx.json new file mode 100644 index 0000000..faf4919 --- /dev/null +++ b/reports/xcheck_official/rmrgx.json @@ -0,0 +1,113 @@ +{ + "symbol": "rmrgx", + "name": "Financial Investors Trust - Redmont Resolute Fund I", + "filing": { + "accession": "0001398344-21-000350", + "doc": "fp0060640_ncsrs.htm", + "period_end": "2020-10-31", + "display": "FINANCIAL INVESTORS TRUST (CIK 0000915802)", + "ciks": [ + "0000915802" + ], + "score": 17.456396 + }, + "how": "ticker", + "n_bytes": 10354770, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.6433, + "nav_check": null, + "periods": [ + { + "period": "fy", + "end": "2019-12-31", + "official": 0.09, + "local": 0, + "diff": 0.09, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.09, + "local": 0, + "diff": 0.09, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2026-12-31", + "official": 0.03, + "local": 12.248, + "diff": -12.218, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2014-12-31", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-10-31", + "official": 0.0, + "local": 0, + "diff": 0.0, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-04-30", + "official": 0.0, + "local": 0.242, + "diff": -0.242, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-04-30", + "official": 1.77, + "local": 8.518, + "diff": -6.748, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-05-02", + "official": 0.87, + "local": 0, + "diff": 0.87, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2018-04-30", + "official": 0.45, + "local": 13.184, + "diff": -12.734, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/rpicx.json b/reports/xcheck_official/rpicx.json new file mode 100644 index 0000000..b9b7e4f --- /dev/null +++ b/reports/xcheck_official/rpicx.json @@ -0,0 +1,6 @@ +{ + "symbol": "rpicx", + "name": "T. Rowe Price Global Funds, Inc. - T. Rowe Price Institutional International Disciplined Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/rrsvx.json b/reports/xcheck_official/rrsvx.json new file mode 100644 index 0000000..1a0dbd6 --- /dev/null +++ b/reports/xcheck_official/rrsvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "rrsvx", + "name": "RBC Small Cap Value R6", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/rserx.json b/reports/xcheck_official/rserx.json new file mode 100644 index 0000000..ed21e8f --- /dev/null +++ b/reports/xcheck_official/rserx.json @@ -0,0 +1,6 @@ +{ + "symbol": "rserx", + "name": "Victory Portfolios - Victory Sophus Emerging Markets Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/saosx.json b/reports/xcheck_official/saosx.json new file mode 100644 index 0000000..c79d5e0 --- /dev/null +++ b/reports/xcheck_official/saosx.json @@ -0,0 +1,6 @@ +{ + "symbol": "saosx", + "name": "NAA Opportunity Fund P", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (2 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/schhx.json b/reports/xcheck_official/schhx.json new file mode 100644 index 0000000..7fb5fd7 --- /dev/null +++ b/reports/xcheck_official/schhx.json @@ -0,0 +1,6 @@ +{ + "symbol": "schhx", + "name": "", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/schwfx.json b/reports/xcheck_official/schwfx.json new file mode 100644 index 0000000..9950b0a --- /dev/null +++ b/reports/xcheck_official/schwfx.json @@ -0,0 +1,6 @@ +{ + "symbol": "schwfx", + "name": "", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/sdfix.json b/reports/xcheck_official/sdfix.json new file mode 100644 index 0000000..3f03ec7 --- /dev/null +++ b/reports/xcheck_official/sdfix.json @@ -0,0 +1,6 @@ +{ + "symbol": "sdfix", + "name": "Northern Lights Fund Trust III - Swan Defined Risk Emerging Markets Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/shdix.json b/reports/xcheck_official/shdix.json new file mode 100644 index 0000000..35421c1 --- /dev/null +++ b/reports/xcheck_official/shdix.json @@ -0,0 +1,86 @@ +{ + "symbol": "shdix", + "name": "American Beacon Shapiro SMID Cap Eq R5", + "filing": { + "accession": "0001193125-26-093444", + "doc": "d77876dncsrs.htm", + "period_end": "2025-12-31", + "display": "AMERICAN BEACON FUNDS (CIK 0000809593)", + "ciks": [ + "0000809593" + ], + "score": 32.609108 + }, + "how": "name:Contents American Beacon Shapiro SMID Cap Equity Fund SM (shared=5)", + "n_bytes": 11151296, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.4833, + "nav_check": { + "date": "2021-06-30", + "official": 13.69, + "local": 13.69, + "rel": 0.0, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-12-31", + "official": 0.66, + "local": 0.6645, + "diff": -0.0045, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-06-30", + "official": 0.46, + "local": 0.916, + "diff": -0.456, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-06-30", + "official": 0.87, + "local": 1.7243, + "diff": -0.8543, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-06-30", + "official": 0.22, + "local": 0.4273, + "diff": -0.2073, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-06-30", + "official": 1.57, + "local": 2.8795, + "diff": -1.3095, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-06-30", + "official": 0.13, + "local": 2.2852, + "diff": -2.1552, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/shxix.json b/reports/xcheck_official/shxix.json new file mode 100644 index 0000000..16718d1 --- /dev/null +++ b/reports/xcheck_official/shxix.json @@ -0,0 +1,89 @@ +{ + "symbol": "shxix", + "name": "American Beacon Shapiro Equity Opps R5", + "filing": { + "accession": "0001193125-26-093444", + "doc": "d77876dncsrs.htm", + "period_end": "2025-12-31", + "display": "AMERICAN BEACON FUNDS (CIK 0000809593)", + "ciks": [ + "0000809593" + ], + "score": 32.45401 + }, + "how": "name:Contents American Beacon Shapiro Equity Opportunities Fund SM (shared=4)", + "n_bytes": 11151296, + "verdict": "mismatch", + "class": "?", + "mean_rel_err": 0.2497, + "nav_check": { + "date": "2021-06-30", + "official": 16.77, + "local": 16.77, + "rel": 0.0, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2025-12-31", + "official": 0.95, + "local": 0.9557, + "diff": -0.0057, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-06-30", + "official": 0.11, + "local": 0.1059, + "diff": 0.0041, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-06-30", + "official": 0.12, + "local": 0.1175, + "diff": 0.0025, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-06-30", + "official": 1.01, + "local": 1.9358, + "diff": -0.9258, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-06-30", + "official": 1.08, + "local": 2.009, + "diff": -0.929, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-06-30", + "official": 0.28, + "local": 1.8425, + "diff": -1.5625, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?", + "?", + "?", + "?", + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/shyax.json b/reports/xcheck_official/shyax.json new file mode 100644 index 0000000..b8de01d --- /dev/null +++ b/reports/xcheck_official/shyax.json @@ -0,0 +1,6 @@ +{ + "symbol": "shyax", + "name": "SEI Exchange Traded Funds - SEI High Yield Bond & Alternative Credit ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (4 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/spaax.json b/reports/xcheck_official/spaax.json new file mode 100644 index 0000000..1a002a5 --- /dev/null +++ b/reports/xcheck_official/spaax.json @@ -0,0 +1,6 @@ +{ + "symbol": "spaax", + "name": "?", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/spabx.json b/reports/xcheck_official/spabx.json new file mode 100644 index 0000000..3e15cbd --- /dev/null +++ b/reports/xcheck_official/spabx.json @@ -0,0 +1,6 @@ +{ + "symbol": "spabx", + "name": "Investment Managers Series Trust - SilverPepper Merger Arbitrage Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/spaix.json b/reports/xcheck_official/spaix.json new file mode 100644 index 0000000..45195c6 --- /dev/null +++ b/reports/xcheck_official/spaix.json @@ -0,0 +1,6 @@ +{ + "symbol": "spaix", + "name": "Investment Managers Series Trust - SilverPepper Merger Arbitrage Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ssbox.json b/reports/xcheck_official/ssbox.json new file mode 100644 index 0000000..37ffd7f --- /dev/null +++ b/reports/xcheck_official/ssbox.json @@ -0,0 +1,76 @@ +{ + "symbol": "ssbox", + "name": "State Street Institutional Investment Trust - Target Retirement 2020 Fund", + "filing": { + "accession": "0001193125-25-048021", + "doc": "d834955dncsr.htm", + "period_end": "2024-12-31", + "display": "STATE STREET INSTITUTIONAL INVESTMENT TRUST (CIK 0001107414)", + "ciks": [ + "0001107414" + ], + "score": 12.350471 + }, + "how": "ticker", + "n_bytes": 84223997, + "verdict": "weak-match", + "class": "Class K", + "mean_rel_err": 0.4305, + "nav_check": { + "date": "2020-12-31", + "official": 11.97, + "local": 12.23, + "rel": 0.0217, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2024-12-31", + "official": 0.64, + "local": 1.146, + "diff": -0.506, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.57, + "local": 0.819, + "diff": -0.249, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.53, + "local": 1.197, + "diff": -0.667, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.83, + "local": 1.457, + "diff": -0.627, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 0.19, + "local": 3.547, + "diff": -3.357, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class I" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/ssygx.json b/reports/xcheck_official/ssygx.json new file mode 100644 index 0000000..60a37bd --- /dev/null +++ b/reports/xcheck_official/ssygx.json @@ -0,0 +1,94 @@ +{ + "symbol": "ssygx", + "name": "BNY Mellon Investment Funds I - BNY Mellon Small Cap Growth Fund", + "filing": { + "accession": "0000799295-25-000027", + "doc": "output.htm", + "period_end": "2025-03-31", + "display": "BNY Mellon Investment Funds I (CIK 0000799295)", + "ciks": [ + "0000799295" + ], + "score": 34.18299 + }, + "how": "ticker", + "n_bytes": 4594705, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.9877, + "nav_check": { + "date": "2020-03-31", + "official": 3.91, + "local": 27.93, + "rel": 6.1432, + "ok": false + }, + "periods": [ + { + "period": "fy", + "end": "2025-03-31", + "official": 0.28, + "local": 0, + "diff": 0.28, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2030-03-31", + "official": 6.92, + "local": 0.2812, + "diff": 6.6388, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-03-31", + "official": 2.17, + "local": 0, + "diff": 2.17, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-03-31", + "official": 36.3138, + "local": 0, + "diff": 36.3138, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-03-31", + "official": 0.0632, + "local": 13.844, + "diff": -13.7808, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-03-31", + "official": 0.1231, + "local": 4.3436, + "diff": -4.2205, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-03-31", + "official": 0.285, + "local": 62.059, + "diff": -61.774, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/stlg.json b/reports/xcheck_official/stlg.json new file mode 100644 index 0000000..ba17b4e --- /dev/null +++ b/reports/xcheck_official/stlg.json @@ -0,0 +1,6 @@ +{ + "symbol": "stlg", + "name": "iShares MSCI USA Quality GARP ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/subyx.json b/reports/xcheck_official/subyx.json new file mode 100644 index 0000000..ae67a67 --- /dev/null +++ b/reports/xcheck_official/subyx.json @@ -0,0 +1,6 @@ +{ + "symbol": "subyx", + "name": "Carillon Reams Unconstrained Bond Y", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/tfsmx.json b/reports/xcheck_official/tfsmx.json new file mode 100644 index 0000000..4522dd0 --- /dev/null +++ b/reports/xcheck_official/tfsmx.json @@ -0,0 +1,6 @@ +{ + "symbol": "tfsmx", + "name": "TFS Capital Investment Trust - TFS Market Neutral Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/tmgax.json b/reports/xcheck_official/tmgax.json new file mode 100644 index 0000000..320e8e1 --- /dev/null +++ b/reports/xcheck_official/tmgax.json @@ -0,0 +1,6 @@ +{ + "symbol": "tmgax", + "name": "Touchstone Funds Group Trust - Touchstone Merger Arbitrage Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/tqezx.json b/reports/xcheck_official/tqezx.json new file mode 100644 index 0000000..781fc0a --- /dev/null +++ b/reports/xcheck_official/tqezx.json @@ -0,0 +1,82 @@ +{ + "symbol": "tqezx", + "name": "AMG Funds - AMG TimesSquare Emerging Markets Small Cap Fund", + "filing": { + "accession": "0001193125-24-062150", + "doc": "d722403dncsr.htm", + "period_end": "2023-12-31", + "display": "AMG FUNDS (CIK 0001089951)", + "ciks": [ + "0001089951" + ], + "score": 46.00896 + }, + "how": "ticker", + "n_bytes": 9203516, + "verdict": "weak-match", + "class": "Class N", + "mean_rel_err": 0.6606, + "nav_check": null, + "periods": [ + { + "period": "current", + "end": "2031-12-31", + "official": 0.03, + "local": 3.114, + "diff": -3.084, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-12-31", + "official": 0.86, + "local": 0.239, + "diff": 0.621, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-12-31", + "official": 0.1, + "local": 0.37, + "diff": -0.27, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 10.76, + "local": 8.659, + "diff": 2.101, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2020-12-31", + "official": 9.5, + "local": 0.045, + "diff": 9.455, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-12-31", + "official": 12.5, + "local": 3.063, + "diff": 9.437, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "Class I", + "Class Z", + "Class I", + "Class Z" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/trebx.json b/reports/xcheck_official/trebx.json new file mode 100644 index 0000000..15d7933 --- /dev/null +++ b/reports/xcheck_official/trebx.json @@ -0,0 +1,6 @@ +{ + "symbol": "trebx", + "name": "T. Rowe Price Instl Emerging Mkts Bond", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (1 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/tspcx.json b/reports/xcheck_official/tspcx.json new file mode 100644 index 0000000..59a5324 --- /dev/null +++ b/reports/xcheck_official/tspcx.json @@ -0,0 +1,6 @@ +{ + "symbol": "tspcx", + "name": "Turner Funds - Turner Titan Long/Short Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ttai.json b/reports/xcheck_official/ttai.json new file mode 100644 index 0000000..f9c3403 --- /dev/null +++ b/reports/xcheck_official/ttai.json @@ -0,0 +1,6 @@ +{ + "symbol": "ttai", + "name": "Abacus FCF International Leaders ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/ttdax.json b/reports/xcheck_official/ttdax.json new file mode 100644 index 0000000..6f9515c --- /dev/null +++ b/reports/xcheck_official/ttdax.json @@ -0,0 +1,74 @@ +{ + "symbol": "ttdax", + "name": "Toews Managed Risk Equity", + "filing": { + "accession": "0001580642-26-004275", + "doc": "toewsfunds_ncsr.htm", + "period_end": "2026-04-30", + "display": "Northern Lights Fund Trust (CIK 0001314414)", + "ciks": [ + "0001314414" + ], + "score": 25.746136 + }, + "how": "name:Toews Managed Risk Equity Fund (shared=4)", + "n_bytes": 2363941, + "verdict": "ok", + "class": "?", + "mean_rel_err": 0.0159, + "nav_check": { + "date": "2022-04-29", + "official": 10.7, + "local": 10.7, + "rel": 0.0, + "ok": true + }, + "periods": [ + { + "period": "current", + "end": "2026-04-30", + "official": 0.22, + "local": 0.2232, + "diff": -0.0032, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2025-04-30", + "official": 0.33, + "local": 0.3275, + "diff": 0.0025, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-04-30", + "official": 0.25, + "local": 0.2549, + "diff": -0.0049, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2023-04-30", + "official": 0.1, + "local": 0.0979, + "diff": 0.0021, + "ok": true, + "unbounded": false + }, + { + "period": "fy", + "end": "2022-04-30", + "official": 3.06, + "local": 10.5967, + "diff": -7.5367, + "ok": false, + "unbounded": true + } + ], + "other_classes": [] +} \ No newline at end of file diff --git a/reports/xcheck_official/txemf.json b/reports/xcheck_official/txemf.json new file mode 100644 index 0000000..4d7f940 --- /dev/null +++ b/reports/xcheck_official/txemf.json @@ -0,0 +1,6 @@ +{ + "symbol": "txemf", + "name": "Templeton Emerging Markets Investment Trust plc", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/vasfx.json b/reports/xcheck_official/vasfx.json new file mode 100644 index 0000000..25d24f9 --- /dev/null +++ b/reports/xcheck_official/vasfx.json @@ -0,0 +1,6 @@ +{ + "symbol": "vasfx", + "name": "Vanguard Trustees Equity Fund - Alternative Strategies Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/vgqrx.json b/reports/xcheck_official/vgqrx.json new file mode 100644 index 0000000..387c94f --- /dev/null +++ b/reports/xcheck_official/vgqrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "vgqrx", + "name": "Virtus Equity Trust - Virtus KAR Global Quality Dividend Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/vigtx.json b/reports/xcheck_official/vigtx.json new file mode 100644 index 0000000..17c6602 --- /dev/null +++ b/reports/xcheck_official/vigtx.json @@ -0,0 +1,6 @@ +{ + "symbol": "vigtx", + "name": "Voya Separate Portfolios Trust - Voya Investment Grade Credit Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (3 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/vlsrx.json b/reports/xcheck_official/vlsrx.json new file mode 100644 index 0000000..5354aee --- /dev/null +++ b/reports/xcheck_official/vlsrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "vlsrx", + "name": "Virtus Alternative Solutions Trust - Virtus KAR Long/Short Equity Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/vrsbx.json b/reports/xcheck_official/vrsbx.json new file mode 100644 index 0000000..2df5e5d --- /dev/null +++ b/reports/xcheck_official/vrsbx.json @@ -0,0 +1,6 @@ +{ + "symbol": "vrsbx", + "name": "Virtus Asset Trust - Virtus Seix Corporate Bond Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (5 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/vtrdx.json b/reports/xcheck_official/vtrdx.json new file mode 100644 index 0000000..5db95cd --- /dev/null +++ b/reports/xcheck_official/vtrdx.json @@ -0,0 +1,166 @@ +{ + "symbol": "vtrdx", + "name": "Voya Separate Portfolios Trust - Voya Target Retirement 2025 Fund", + "filing": { + "accession": "0001104659-25-010891", + "doc": "tm254258d1_ncsrs.htm", + "period_end": "2024-11-30", + "display": "Voya Separate Portfolios Trust (CIK 0001392116)", + "ciks": [ + "0001392116" + ], + "score": 34.04657 + }, + "how": "ticker", + "n_bytes": 8377074, + "verdict": "weak-match", + "class": "?", + "mean_rel_err": 0.9082, + "nav_check": { + "date": "2025-08-07", + "official": 12.07, + "local": 12.68, + "rel": 0.0505, + "ok": true + }, + "periods": [ + { + "period": "fy", + "end": "2014-12-31", + "official": 2011.72, + "local": 0, + "diff": 2011.72, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2019-12-31", + "official": 0.22, + "local": 0.891, + "diff": -0.671, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2005-12-31", + "official": 0.45, + "local": 0, + "diff": 0.45, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-12-31", + "official": 0.67, + "local": 2.785, + "diff": -2.115, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2011-12-31", + "official": 0.2, + "local": 0, + "diff": 0.2, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2021-05-31", + "official": 0.29, + "local": 1.228, + "diff": -0.938, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2011-05-31", + "official": 0.49, + "local": 0, + "diff": 0.49, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2017-05-31", + "official": 11.905, + "local": 0, + "diff": 11.905, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2028-05-31", + "official": 0.53, + "local": 0, + "diff": 0.53, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2034-05-31", + "official": 0.95, + "local": 3.44, + "diff": -2.49, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2014-05-31", + "official": 0.95, + "local": 0, + "diff": 0.95, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2024-05-31", + "official": 0.951, + "local": 0, + "diff": 0.951, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2027-05-31", + "official": 0.7957, + "local": 0, + "diff": 0.7957, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2029-05-31", + "official": 12.07, + "local": 3.44, + "diff": 8.63, + "ok": false, + "unbounded": false + }, + { + "period": "fy", + "end": "2015-05-31", + "official": 0.16, + "local": 0, + "diff": 0.16, + "ok": false, + "unbounded": true + } + ], + "other_classes": [ + "?" + ] +} \ No newline at end of file diff --git a/reports/xcheck_official/vwrsx.json b/reports/xcheck_official/vwrsx.json new file mode 100644 index 0000000..fe46eb2 --- /dev/null +++ b/reports/xcheck_official/vwrsx.json @@ -0,0 +1,6 @@ +{ + "symbol": "vwrsx", + "name": "", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (0 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/wgcrx.json b/reports/xcheck_official/wgcrx.json new file mode 100644 index 0000000..909b716 --- /dev/null +++ b/reports/xcheck_official/wgcrx.json @@ -0,0 +1,6 @@ +{ + "symbol": "wgcrx", + "name": "Wells Fargo Advantage Funds- Global Investment Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/winc.json b/reports/xcheck_official/winc.json new file mode 100644 index 0000000..c44c099 --- /dev/null +++ b/reports/xcheck_official/winc.json @@ -0,0 +1,6 @@ +{ + "symbol": "winc", + "name": "Western Asset Short Duration Income ETF", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/reports/xcheck_official/wtlvx.json b/reports/xcheck_official/wtlvx.json new file mode 100644 index 0000000..798e291 --- /dev/null +++ b/reports/xcheck_official/wtlvx.json @@ -0,0 +1,6 @@ +{ + "symbol": "wtlvx", + "name": "Allspring Funds Trust - Allspring Large Company Value Fund", + "verdict": "not-found", + "detail": "no candidate filing contained this fund (6 tried)" +} \ No newline at end of file diff --git a/scripts/verify_official.py b/scripts/verify_official.py index 2ebf959..1ea761a 100644 --- a/scripts/verify_official.py +++ b/scripts/verify_official.py @@ -65,8 +65,8 @@ ROOT = D.DEFAULT_ROOT REPORT_DIR = Path(__file__).resolve().parent.parent / "reports" / "xcheck_official" FUNDS = Path(__file__).resolve().parent.parent / "funds.json" -EFTS_URL = "https://efts.sec.gov/LATEST/search-index?q={q}&forms=N-CSR,N-CSRS,10-K,10-Q" -FORMS = ("N-CSR", "N-CSRS", "10-K", "10-Q") +EFTS_URL = "https://efts.sec.gov/LATEST/search-index?q={q}&forms=N-CSR,N-CSRS,10-K,10-Q,497,497K" +FORMS = ("N-CSR", "N-CSRS", "10-K", "10-Q", "497", "497K") _STOP = {"fund", "funds", "inc", "ltd", "llc", "trust", "company", "the", "and", "of", "for", "class", "series", "shares", "share", "in", "on", "at", "to", "a", "an", "with", "portfolio", "portfolios", @@ -74,6 +74,9 @@ _STOP = {"fund", "funds", "inc", "ltd", "llc", "trust", "company", "the", "institutional", "etf", "plus", "select", "retail", "wholesale", "group", "capital", "global", "us", "u.s."} +# 'Financial Highlights' often sits in separate table cells +# ("Financial |Highlights"); tolerate pipes/whitespace between the words +FH = r"Financial[\s|]+Highlights" TOL_REL = 0.015 # 1.5% per year TOL_ABS = 0.015 # or $0.015/share (official figures are 3-dp) NAV_TOL = 0.25 # class match: |local_close - official_nav| / nav @@ -214,8 +217,12 @@ def parse_highlights(text: str) -> list[dict]: tag-stripped). A block starts at a 'Net asset value, beginning' row (both Vanguard's 'Net Asset Value, Beginning of Period' and Victory's 'Net asset value, beginning of period' style).""" + # Row labels are often split across table cells ("Net | asset | value, + # beginning"); pattern searches run on a pipe-flattened copy (1:1 + # offsets). Cell-based label extraction below uses the original. + flat = text.replace("|", " ") starts = [m.start() for m in - re.finditer(r"net\s+asset\s+value,\s*beginning", text, re.I)] + re.finditer(r"net\s+asset\s+value,\s*beginning", flat, re.I)] blocks = [] for i, s in enumerate(starts): end = starts[i + 1] if i + 1 < len(starts) else s + 25000 @@ -233,41 +240,41 @@ def parse_highlights(text: str) -> list[dict]: # "Table of Contents" page footer (its page numbers would be read # as bare year columns) h0 = max(0, s - 2000) - toc = text.rfind("Table of Contents", h0, s) - fh = text.rfind("Financial Highlights", h0, s) + toc = flat.rfind("Table of Contents", h0, s) + fh = max([m.end() for m in re.finditer(FH, flat[h0:s])] or [h0]) + h0 h0 = max(h0, toc, fh) - periods = _header_periods(text, h0, s) + periods = _header_periods(flat, h0, s) if len(periods) < 2: continue n = len(periods) - i_end = min(end, text.find("See accompanying", s) if - text.find("See accompanying", s) != -1 else end) + i_end = min(end, flat.find("See accompanying", s) if + flat.find("See accompanying", s) != -1 else end) def row(pattern: str) -> Optional[list]: - mm = re.search(pattern, text[s:i_end], re.I) + mm = re.search(pattern, flat[s:i_end], re.I) if not mm: return None i0, i1 = s + mm.end(), i_end for b in [x.start() for x in re.finditer(_ROW_LBL, - text[s:i_end], re.I)]: + flat[s:i_end], re.I)]: if b > mm.end(): i1 = s + b break - return _decimals(text, i0, i1, n) + return _decimals(flat, i0, i1, n) # distribution rows: prefer explicit "from net investment income" / # "from realized capital gains" labels (Vanguard); otherwise the # "Distributions to shareholders:" sub-table (Victory), where the # NII row is the first "Net investment income" after that header ni = row(r"dividends?\s+from\s+(?:net\s+)?investment\s+income") - cg = row(r"(?:distributions?|dividends?)\s+from\s+(?:net\s+)?realized\s+capital\s+gains?") + cg = row(r"(?:distributions?|dividends?)\s+from\s+(?:net\s+)?realized\s+(?:capital\s+)?gains?") if ni is None: - dm = re.search(r"distributions?\s+to\s+shareholders", text[s:i_end], re.I) + dm = re.search(r"distributions?\s+to\s+shareholders", flat[s:i_end], re.I) if dm: - mm = re.search(r"net\s+investment\s+income", text[s + dm.end():i_end], re.I) + mm = re.search(r"net\s+investment\s+income", flat[s + dm.end():i_end], re.I) if mm: i0 = s + dm.end() + mm.end() - ni = _decimals(text, i0, i_end, n) + ni = _decimals(flat, i0, i_end, n) tot = row(r"total\s+distributions?\b") if ni is None and tot is None: continue @@ -286,11 +293,81 @@ def parse_highlights(text: str) -> list[dict]: return blocks +def _cellnum(c: str) -> Optional[float]: + """One table cell -> number. Dashes (a zero with a footnote) count as + 0.0; footnote-only and junk cells are None.""" + c = c.replace("$", "").replace(",", "").replace(" ", " ").strip() + if not c: + return None + if c.startswith("—") or c in ("-", "–"): + return 0.0 + m = re.fullmatch(r"(\()?(\d+\.\d+|\.\d+)(\))?(\s*\([a-z]\))?", c) + if m: + return -float(m.group(2)) if m.group(1) else float(m.group(2)) + return None + + +def parse_per_share_blocks(text: str) -> list[dict]: + """JPMorgan-style shareholder-report layout ('Per share operating + performance'): each class block lists, per 'Year Ended ' column, + NAV beginning, NII, realized/unrealized gain, total from operations, + distribution NII, distribution capital gain, total distributions. + Cell-based (not _decimals): dash columns are real zeros, and the value + window must not run into the next year's column. Returns blocks + compatible with parse_highlights().""" + cells = [re.sub(r"\s+", " ", c).strip().replace("—", "—") + .replace(" ", "").replace(" ", "") + for c in text.split("|")] + events: list[tuple] = [] + for i, c in enumerate(cells): + m = re.fullmatch(r"Year[s]?\s+Ended\s+(.+)", c) + if m and _parse_date(m.group(1)): + events.append((i, "year", m.group(1))) + elif re.fullmatch(r"Class\s+[A-Z0-9]{1,3}", c): + events.append((i, "class", c)) + blocks: list[dict] = [] + cur = None + for j, (i, kind, val) in enumerate(events): + if kind == "class": + cur = {"class": val, "periods": [], "nii": [], "capg": [], + "total": [], "nav_begin": [], "nav_end": None} + blocks.append(cur) + continue + if cur is None: + continue + d = _parse_date(val) + stop = events[j + 1][0] if j + 1 < len(events) else len(cells) + vals: list[float] = [] + for c in cells[i + 1:stop]: + if re.fullmatch(r"Year[s]?\s+Ended\s+.+", c): + break + v = _cellnum(c) + if v is None: + continue + vals.append(v) + if len(vals) == 7: + break + if len(vals) != 7: + continue + cur["periods"].append({"end": d, "year": d[:4], "kind": "fy"}) + cur["nav_begin"].append(abs(vals[0])) + cur["nii"].append(abs(vals[4])) + cur["capg"].append(abs(vals[5])) + cur["total"].append(abs(vals[6])) + return [b for b in blocks if len(b["periods"]) >= 2] + + def html_to_cells_text(html: bytes) -> str: t = re.sub(rb"<\s*(br|/p|/div|/tr|/h[1-6])[^>]*>", b"|\n", html, flags=re.I) t = re.sub(rb"<[^>]+>", b"|", t) t = t.decode("utf-8", "replace") - t = re.sub(r" ?;", " ", t) + # numeric entities (  narrow nbsp,   nbsp, ...) break literal + # searches like "Financial Highlights"; keep dashes (zero markers), + # collapse the rest to plain spaces + t = (t.replace("—", "—").replace("–", "–") + .replace("—", "—").replace("–", "–")) + t = re.sub(r"&#\d+;", " ", t) + t = re.sub(r"&[a-z]+;", " ", t) return t @@ -301,14 +378,20 @@ def _efits(q: str) -> list[dict]: d = json.loads(edgar.sec_get(EFTS_URL.format(q=urllib.parse.quote(q))) .decode("utf-8", "replace")) out, seen = [], set() - for h in d.get("hits", {}).get("hits", [])[:20]: + # EFTS returns up to 100; small filings (497K notices) rank above the + # large combined reports, so keep the whole page and let the + # find_filings re-ranking pick the real thing + for h in d.get("hits", {}).get("hits", [])[:100]: src = h.get("_source", {}) acc, _, doc = h.get("_id", "").partition(":") if acc in seen or not doc.lower().endswith((".htm", ".html")): continue seen.add(acc) out.append({"accession": acc, "doc": doc, - "period_end": src.get("period_ending") or "", + # 497s carry no period_ending; file_date keeps them + # orderable + "period_end": src.get("period_ending") + or src.get("file_date") or "", "display": src.get("display_names", ["?"])[0], "ciks": src.get("ciks", []), "score": h.get("_score", 0)}) @@ -316,11 +399,25 @@ def _efits(q: str) -> list[dict]: return out +def _brand(name: str) -> Optional[str]: + """First distinctive word of the fund name, usually the family brand + (iShares, Fidelity, JPMorgan, SPDR, Invesco...).""" + for w in re.findall(r"[A-Za-z][A-Za-z\-'.]{2,}", name): + if w.lower() not in _STOP: + return w + return None + + def find_filings(ticker: str, name: str, limit: int = 6) -> list[dict]: """Candidate filings, best first. A bare ticker matches hundreds of - unrelated documents, so: (1) the full fund name as one phrase (it only - appears in the fund's own filings), (2) ticker + distinctive name - words, (3) the bare ticker.""" + unrelated documents, so: (1) the full fund name as one phrase, (2) + ticker + family brand, (3) ticker + distinctive name words, (4) the + bare ticker. Results are then ranked: a registrant whose display name + contains the ticker (single-fund trusts like 'SPDR GOLD TRUST (GLD)') + or the brand words (families like iShares Trust) ranks first, newest + filing first within a registrant. EFTS itself scores bag-of-words, + so unrelated prospectuses often outrank the fund's own 10-K — this + re-ranking is what makes ETF verification possible.""" def merge(f: list[dict]) -> None: for x in f: if x["accession"] not in {y["accession"] for y in out}: @@ -328,14 +425,43 @@ def find_filings(ticker: str, name: str, limit: int = 6) -> list[dict]: out: list[dict] = [] words = [w for w in re.findall(r"[A-Za-z][A-Za-z\-'.]{2,}", name) if w.lower() not in _STOP] + brand = _brand(name) if len(words) >= 4: merge(_efits('"' + name + '"')) + if brand: + merge(_efits('"' + ticker + '" AND "' + brand + '"')) if len(out) < limit and words: merge(_efits('"' + ticker + '" AND ' + " AND ".join('"' + w + '"' for w in words[:3]))) if len(out) < limit: merge(_efits('"' + ticker + '"')) - return out[:limit] + name_words = {w.lower() for w in re.findall(r"[A-Za-z][A-Za-z\-'.]{3,}", + name) + if w.lower() not in _STOP} + scored = [] + for f in out: + disp = f["display"].lower() + s = 4 * (1 if ticker.lower() in disp else 0) \ + + sum(1 for w in name_words if w in disp) + scored.append((s, f["period_end"], f)) + scored.sort(key=lambda t: (t[0], t[1]), reverse=True) + per_cik: dict = {} + res = [] + for s, pe, f in scored: + key = tuple(f["ciks"]) or (f["display"],) + if per_cik.get(key, 0) >= 2: # at most 2 filings per registrant + continue + per_cik[key] = per_cik.get(key, 0) + 1 + res.append(f) + if len(res) >= limit: + break + return res + + +def _flex(s: str) -> str: + """A word pattern that tolerates pipes/whitespace between words + (fund names often sit in one cell per word).""" + return r"[\s|]+".join(re.escape(w) for w in s.split()) def _title_runs(seg: str) -> list[str]: @@ -376,13 +502,71 @@ def fund_region(text: str, ticker: str, name: str) -> Optional[str]: if len(words) < 4: continue for tail_n in range(len(words), 3, -1): - anchor = " ".join(words[-tail_n:]) - for m in re.finditer(re.escape(anchor), text, re.I): - fh = text.find("Financial Highlights", m.start(), m.start() + 4000) - if fh == -1: + anchor = _flex(" ".join(words[-tail_n:])) + for m in re.finditer(anchor, text, re.I): + fhm = re.search(FH, text[m.start():m.start() + 4000]) + if not fhm: continue + fh = m.start() + fhm.start() reg = text[fh:fh + 150000] - if parse_highlights(reg): + if parse_highlights(reg) or parse_per_share_blocks(reg): + return reg + return None + + +def _name_pats(name: str) -> list[str]: + """Pipe-tolerant name patterns. Yahoo longNames and filing names differ + ("JPMorgan US Large Cap Core Plus I" vs "JPMorgan U.S. Large Cap Core + Plus Fund"), so match on runs of 3-4 distinctive words, dots optional. + Trailing single-letter / RC# class designators are dropped.""" + if not name: + return [] + words = [re.sub(r"\.", "", w) for w in name.split()] + while words and (len(words[-1]) <= 2 and words[-1].isalpha()): + words.pop() + pats = [] + def mk(ws: list[str]) -> str: + # optional dots between letters: "US" matches "U.S." and vice versa + return r"[\s|]+".join(r"(?:" + r"\.?".join(re.escape(ch) for ch in w) + + r"\.?)" for w in ws) + # tail runs (the distinctive part) and the head (brand + next words) + for n in (4, 3): + if len(words) >= n: + pats.append(mk(words[-n:])) + if len(words) > n: + pats.append(mk(words[:n])) + pats.append(mk(words)) + return pats + + +def region_per_share(text: str, ticker: str, name: str, + loc: Optional[dict] = None) -> Optional[str]: + """Region finder for the 'Per share operating performance' layout + (JPMorgan-style shareholder reports). Anchors on the fund name or + ticker; when `loc` (local series) is given, a candidate region is only + accepted if one of its class blocks actually matches the local + distributions — name mentions in notes/TOC of a 58 MB combined report + would otherwise attribute another fund's tables.""" + pats = _name_pats(name) + pats.append(rf"(? best[0]: best = (shared, reg, cand) @@ -420,7 +604,10 @@ def region_by_name(text: str, name: str, min_shared: int = 3): # ---------------------------------------------------------------- compare def local_series(sym: str, root: Path, frozen: Path) -> dict: """Local (date, amount) distributions and close series; frozen copies - shadow the data root.""" + shadow the data root, and the overrides/corrections overlay (confirmed + official fixes, see overrides/corrections/) is applied on top so a + corrected fund verifies against its filing rather than the raw dump.""" + import pandas as pd def read(sfx: str): p = frozen / f"{sym}-{sfx}.csv" if not p.exists(): @@ -432,7 +619,12 @@ def local_series(sym: str, root: Path, frozen: Path) -> dict: parts = line.split(",") if len(parts) >= 2: out.append((parts[0][:10], float(parts[1]))) - return out + ser = pd.Series({pd.Timestamp(d): v for d, v in out}, dtype=float) + try: + ser = D._apply_corrections(sym, sfx, ser) + except Exception: + pass + return [(ts.strftime("%Y-%m-%d"), float(v)) for ts, v in ser.items()] dist = sorted(read("dividend") + read("capitalGain")) p = frozen / f"{sym}-history.csv" if not p.exists(): @@ -575,6 +767,8 @@ def main() -> int: raise RuntimeError("json-only") cands = find_filings(sym.upper(), name) rec = {"symbol": sym, "name": name} + loc = local_series(sym, ROOT, D.FROZEN_DIR) + best = None for filing in cands: try: doc = edgar.sec_get( @@ -593,23 +787,34 @@ def main() -> int: rb = region_by_name(text, name) if rb: region, how = rb[1], f"name:{rb[2]} (shared={rb[0]})" + if region is None: + rp = region_per_share(text, sym.upper(), name, loc) + if rp: + region, how = rp, "per-share-data" if region is None: continue # wrong document; try next candidate - rec["filing"] = filing - rec["how"] = how - rec["n_bytes"] = len(doc) - blocks = parse_highlights(region) - loc = local_series(sym, ROOT, D.FROZEN_DIR) + blocks = (parse_highlights(region) + or parse_per_share_blocks(region)) res = compare(sym, blocks, loc) - rec.update(res) - rec["verdict"] = res["verdict"] - break + res.update({"symbol": sym, "name": name, "filing": filing, + "how": how, "n_bytes": len(doc)}) + # different official docs can disagree by a cent or two + # (N-CSRS vs 497 rounding); keep the best match but stop + # early on a clean "ok" + key = (res["verdict"] != "ok", res.get("mean_rel_err", 1.0)) + if best is None or key < (best["verdict"] != "ok", + best.get("mean_rel_err", 1.0)): + best = res + if res["verdict"] == "ok": + break + if best is not None: + rec.update(best) else: rec["verdict"] = "not-found" rec["detail"] = ("no candidate filing contained this fund " f"({len(cands)} tried)") except Exception as e: - rec = {"symbol": sym, name: name, "verdict": "error", + rec = {"symbol": sym, "name": name, "verdict": "error", "detail": str(e)[:300]} out.write_text(json.dumps(rec, indent=1)) summary.append(rec)