Per-share financial-highlights parser (cef_annual.py) now reconciles divs+gains+ROC==distributions and the full NAV chain per column for 48 of 50 shortlist funds, from three layout families (inline, transposed, + repair rules for footnotes/split-decimals/sign- magnitude/combined-rows). DXYZ is a correct zero-distribution result; STEW is a documented columnar-stream exception. cef_merged.json character column now uses actual data. 123/123 tests.
1 line
605 B
JSON
1 line
605 B
JSON
{"sym": "FUND", "cik": 825202, "name": "SPROTT FOCUS TRUST INC.", "bdc": false, "n_tender": 2, "ticker": "FUND", "report_filed": "2026-03-09", "ncols": 5, "nav_beg": [8.36, 8.91, 8.49, 9.07, 8.08], "nav_end": [9.61, 8.36, 8.91, 8.49, 9.07], "mkt_end": [8.68, 7.32, 8.0, 7.97, 8.6], "dist_tot": [0.58, 0.6, 0.5, 0.54, 0.76], "divs": [0.16, 0.18, 0.18, 0.1, 0.35], "gains": [0.42, 0.42, 0.32, 0.44, 0.41], "roc": [0.0, 0.0, 0.0, 0.0, 0.0], "ops": [1.8299999999999998, 0.06000000000000001, 0.9299999999999999, -0.03, 1.73], "share_div": 0.325503355704698, "share_gains": 0.6744966442953021, "share_roc": 0.0} |