Commit Graph

3 Commits

Author SHA1 Message Date
857dfce19f CEF universe verification: 241/295 parsed + component-sum fractions
- 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.
2026-08-28 16:04:19 -04:00
22faeef2ec CEF stage 2b complete: 48/50 shortlist verified (47 parsed + DXYZ zero-dist)
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.
2026-08-28 14:50:46 -04:00
6f8bde4c35 CEF stage 2b: per-share financial-highlights parser (cef_annual.py)
Joint backtracking placement for CEF tables that drop zero columns;
NAV-identity fallback when the printed total row is short; 4 fund-
family layouts verified (Franklin/classic/abrdn/Korea). 16/50 of the
CEF shortlist now have a verified div/gains/ROC split + FY-end
discount series. 17 new parser unit tests (123/123 green).
2026-08-28 07:30:16 -04:00