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
578 B
JSON
1 line
578 B
JSON
{"sym": "CET", "cik": 18748, "name": "CENTRAL SECURITIES CORP", "bdc": false, "n_tender": 4, "ticker": "CET", "report_filed": "2026-02-24", "ncols": 5, "nav_beg": [54.26, 46.49, 40.48, 48.87, 39.49], "nav_end": [60.5, 54.26, 46.49, 40.48, 48.87], "mkt_end": [50.71, 45.69, 37.77, 33.39, 44.58], "dist_tot": [2.7, 2.25, 1.85, 2.45, 3.75], "divs": [0.85, 0.61, 0.5, 0.55, 0.86], "gains": [1.85, 1.64, 1.35, 1.9, 2.89], "roc": [0.0, 0.0, 0.0, 0.0, 0.0], "ops": [9.15, 10.15, 8.01, -5.81, 13.47], "share_div": 0.2592307692307692, "share_gains": 0.7407692307692308, "share_roc": 0.0} |