- cef_universe_run.py: resumable batch over all 295 CEFs -> cef_annual_all.json (241 parsed, actual per-share character). - cef_rank_all.json: 239-fund ranking, actual char x (t5 + 0.4 vol5); surfaces FXBY and DPG beyond the original shortlist. - share fractions now use the component sum as denominator (always sum to 1); dist_tot remains the validity gate. Fixes CEE-style 111% sums when the NAV-identity fallback total is short. - server watchdog + app CEF tab; RESEARCH.md updated.
1 line
560 B
JSON
1 line
560 B
JSON
{"sym": "HPI", "cik": 1176199, "name": "JOHN HANCOCK PREFERRED INCOME FUND", "bdc": false, "n_tender": 1, "ticker": "HPI", "report_filed": "2025-10-02", "ncols": 5, "nav_beg": [16.13, 15.31, 17.99, 20.81, 18.43], "nav_end": [16.02, 16.13, 15.31, 17.99, 20.81], "mkt_end": [], "dist_tot": [1.48, 1.48, 1.48, 1.48, 1.48], "divs": [1.15, 1.19, 1.22, 1.35, 1.34], "gains": [0.0, 0.0, 0.0, 0.0, 0.0], "roc": [0.33, 0.29, 0.26, 0.13, 0.14], "ops": [1.37, 2.3, -1.2, -1.34, 3.86], "share_div": 0.8445945945945945, "share_gains": 0.0, "share_roc": 0.15540540540540537} |