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
598 B
JSON
1 line
598 B
JSON
{"sym": "CRF", "cik": 33934, "name": "CORNERSTONE TOTAL RETURN FUND INC", "bdc": false, "n_tender": 10, "ticker": "CRF", "report_filed": "2026-03-04", "ncols": 5, "nav_beg": [6.69, 6.49, 6.24, 9.88, 9.56], "nav_end": [6.52, 6.69, 6.49, 6.24, 9.88], "mkt_end": [8.01, 8.69, 7.06, 7.1, 13.75], "dist_tot": [1.4, 1.25, 1.42, 2.08, 1.84], "divs": [0.02, 0.03, 0.03, 0.03, 0.01], "gains": [0.59, 0.51, 0.51, 0.22, 1.12], "roc": [0.79, 0.71, 0.88, 1.83, 0.71], "ops": [1.02, 1.45, 1.67, -1.98, 1.83], "share_div": 0.015018773466833541, "share_gains": 0.36921151439299127, "share_roc": 0.6157697121401752} |