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
633 B
JSON
1 line
633 B
JSON
{"sym": "ECAT", "cik": 1864843, "name": "BlackRock ESG Capital Allocation Term Trust", "bdc": false, "n_tender": 0, "ticker": "ECAT", "report_filed": "2026-03-05", "ncols": 5, "nav_beg": [16.43, 17.25, 16.84, 20.9, 21.05], "nav_end": [15.23, 16.43, 17.25, 16.84, 20.9], "mkt_end": [14.16, 15.15, 14.95, 13.87, 19.45], "dist_tot": [3.32, 2.65, 1.51, 1.25, 1.25], "divs": [0.35, 0.54, 0.58, 0.99, 0.75], "gains": [0.0, 0.0, 0.0, 0.0, 0.03], "roc": [2.97, 2.11, 0.93, 0.26, 0.47], "ops": [2.12, 1.83, 1.9200000000000002, -2.81, 1.1], "share_div": 0.3216432865731463, "share_gains": 0.003006012024048096, "share_roc": 0.6753507014028055} |