fundlab/rocdetect.py: for a fund's latest N-CSR annual report, parses the per-share "Financial Highlights" distribution table (NII / gains / (tax) return of capital / total), with whitespace normalization, dollar-basis and fiscal-year-column rejection, per-column arithmetic placement of short rows (NII+gains+ROC==total), and family-report disambiguation by current-NAV match. SEC 503 backoff, per-fund cache in roc_cache/. Verified over the 38 core funds: - HMEZX: 18.3% of 5y distributions were return of capital (0.62 + 0.37 per share in 2 of 5 fiscal years) - reinforces the IRA placement. - 17 funds verified zero ROC (AFLIX, ANGLX, ATESX, BTMIX, the EV macro funds, FHCOX/FHMIX, LCORX/LCRIX, PMAIX/PMFKX, SVARX, WMNUX). - 14 unverified (non-standard report layouts - prototype parser), PMORX/QCMMRX tickers not EDGAR-resolvable. Also verified (form-type history on EDGAR): CVSIX, QSPNX, MBXIX, ATRFX, ATESX, EAGMX, PBAIX, WISEX, EBSAX all file NPORT-P + N-CSR + 497 -> registered RICs, not pass-throughs; the whole 497-filer universe is registered, so no candidate can pass through capital losses. Proof case for ROC: PGSIX per-share table shows a tax return-of-capital line and NAV eroded 11.87 -> 7.88 (-34%) over 5 fiscal years while paying out every year. RESEARCH.md: full write-up. No app change (analysis artifact).
40 lines
2.4 KiB
Plaintext
40 lines
2.4 KiB
Plaintext
fund ROC 5y NAV 5y dist/yr (most recent first) filing
|
|
HMEZX 18.3% -3.6% tot -1.01/roc -0.62 tot -1.00/roc -0.37 to 2025-09-08
|
|
AFLIX -0.0% - tot -0.78 2026-07-09
|
|
AGUAX (no per-share table found)
|
|
ANGLX -0.0% - tot -0.47 2026-04-08
|
|
ATESX -0.0% - tot -1.14 2026-08-10
|
|
ATRFX (no per-share table found)
|
|
BTMIX -0.0% -2.8% tot -0.31 tot -0.29 tot -0.25 tot -0.13 2026-03-04
|
|
COIAX (no per-share table found)
|
|
COSIX (no per-share table found)
|
|
CVSIX (no per-share table found)
|
|
DMSZX (no per-share table found)
|
|
DULTX - - tot 0.00 2026-06-09
|
|
EAGMX -0.0% - tot -2.05 2026-03-31
|
|
EGRIX -0.0% - tot -2.05 2026-03-31
|
|
EGRSX -0.0% - tot -2.05 2026-03-31
|
|
ETSIX -0.0% - tot -2.05 2026-03-31
|
|
FEMDX - +5.3% tot 0.00 tot 0.00 tot 0.00 tot 0.00 tot 2025-09-26
|
|
FHCOX -0.0% - tot -1.21 tot -0.81 tot -0.63 tot -0.34 2026-08-25
|
|
FHMIX -0.0% - tot -1.21 tot -0.81 tot -0.63 tot -0.34 2026-08-25
|
|
HICOX (no per-share table found)
|
|
JLPSX (no per-share table found)
|
|
LAMHX - - tot 0.00 2026-02-04
|
|
LCORX -0.0% - tot -1.20 tot 0.00 tot 0.00 tot 0.00 tot 2026-08-04
|
|
LCRIX -0.0% - tot -1.20 tot 0.00 tot 0.00 tot 0.00 tot 2026-08-04
|
|
LPXAX - +2.5% tot 0.00 tot 0.00 tot 0.00 tot 0.00 tot 2026-07-02
|
|
MBXIX (no per-share table found)
|
|
MERVX (no per-share table found)
|
|
PMAIX -0.0% - tot -6.32 tot -1.99 tot -1.10 tot -1.06 2026-06-08
|
|
PMFKX -0.0% - tot -6.32 tot -1.99 tot -1.10 tot -1.06 2026-06-08
|
|
PMORX (CIK not found)
|
|
QCMMRX (CIK not found)
|
|
QSPNX (no per-share table found)
|
|
RCTIX (no per-share table found)
|
|
SAFEX (no per-share table found)
|
|
SCFZX (no per-share table found)
|
|
SVARX -0.0% - tot -3.72 2026-03-10
|
|
USMSX (no per-share table found)
|
|
WMNUX -0.0% - tot -0.31 2026-08-03
|