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
590 B
JSON
1 line
590 B
JSON
{"sym": "NML", "cik": 1562051, "name": "Neuberger Energy Infrastructure & Income Fund Inc.", "bdc": false, "n_tender": 0, "ticker": "NML", "report_filed": "2026-02-03", "ncols": 5, "nav_beg": [10.33, 8.02, 8.73, 6.32, 4.27], "nav_end": [9.72, 10.33, 8.02, 8.73, 6.32], "mkt_end": [8.7, 9.44, 6.91, 7.21, 5.02], "dist_tot": [0.7, 0.7, 0.7, 0.24, 0.18], "divs": [0.59, 0.7, 0.65, 0.22, 0.0], "gains": [0.0, 0.0, 0.0, 0.0, 0.0], "roc": [0.11, 0.0, 0.05, 0.02, 0.18], "ops": [0.09, 3.01, -0.01, 2.65, 2.23], "share_div": 0.8571428571428572, "share_gains": 0.0, "share_roc": 0.14285714285714285} |