- 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
535 B
JSON
1 line
535 B
JSON
{"sym": "BTO", "cik": 925683, "name": "JOHN HANCOCK FINANCIAL OPPORTUNITIES FUND", "bdc": false, "n_tender": 0, "ticker": "BTO", "report_filed": "2026-02-26", "ncols": 5, "nav_beg": [35.11, 30.57, 32.82, 39.82, 28.48], "nav_end": [36.04, 35.11, 30.57, 32.82, 39.82], "mkt_end": [], "dist_tot": [2.6, 2.6, 2.6, 2.5, 2.2], "divs": [0.75, 0.7, 0.62, 0.47, 0.62], "gains": [1.85, 1.9, 1.98, 2.03, 1.58], "roc": [0.0, 0.0, 0.0, 0.0, 0.0], "ops": [3.53, 7.14, 0.31, -4.53, 13.5], "share_div": 0.2528, "share_gains": 0.7472, "share_roc": 0.0} |