f/fundlab/nport_cache/aflix.json
Greg Pomerantz a09861f39f N-PORT cross-check: verify top candidates' actual holdings
fundlab/xcheck.py - for each screen candidate, resolve the fund's OWN
registrant CIK (browse-edgar; the 497-cover CIK is the family/trust),
get the exact series name for the ticker (the only reliable
disambiguator between sibling funds), walk the 4 most recent NPORT-P
filing dates, and parse holdings from the interactive NPORT XML
(primary_doc.xml at the accession root - NOT the XSL-rendered view the
submissions API points at). Exact seriesName match > best htm exhibit
parse. Buckets from the authoritative assetCat+issuerCat codes (ABS-O,
ABS-CBDO, DBT+UST/CORP/MUN/NUSS, LON, STIV, RA, EC+RF=fund, ...), not
position-name keywords. Resumable; raw filings cached under
nport_cache/raw/ (gitignored).

nport.py - _SECTION gains the "INVESTMENT PORTFOLIO (unaudited)"
variant (NPORT-EX Sch-F files); find_section/build gain a frac
token-tolerance param (Yahoo names drift from filing names); CMBS/ABS
bucket gains CLO/CBDO/DAC terms.

app Fund Lab - "N-PORT cross-check" expander: per-candidate table
(as-of, n, t5, top code-bucket, #1 position) + per-fund holdings
detail.

RESEARCH.md - cross-check verdicts. 21/22 resolved (qcmmrx is an MMF,
no holdings). The screen's top names are REAL:
- hmezx/mervx = genuine merger arb (equity in deal targets + escrow)
- egrix = 100% wrapper in one macro managed portfolio (underlying not
  NPORT-disclosed); etsix = fund of EV internal multi-strat accounts
- wmnux = discounted/zero-coupon corporate bonds + equity swaps (the
  "equity names" are bond issuers/swap underlyings)
- scfzx/rctix/aflix = securitized credit/CLO/distressed/levered loans
- hicox/fhmix/usmsx/btmix (munis), aguax/femdx (EM sovereign), anglx
  (agency MBS), lpxax (rotated out of prefs into bank/financial debt)
  = genuine missing-factor exposures the 35-sleeve model lacks
- fhcox/dultx/safex = short-duration carry (a short-duration sleeve
  would explain them)

tests/test_fundlab.py - test_xcheck (14 checks): parse_interactive,
code buckets, name-match normalization, series-name disambiguation.
Also: untrack fundlab/streamlit.log; gitignore raw/ + xcheck_run.log.

84 fundlab / 32 app / 14 data tests pass.
2026-08-27 12:43:17 -04:00

245 lines
4.2 KiB
JSON

{
"sym": "aflix",
"as_of": "April 30, 2026",
"net_assets": 226928491.0,
"n_positions": 21,
"categories": [
{
"name": "ASSET BACKED SECURITIES",
"pct": 15.0
},
{
"name": "CLO",
"pct": 15.0
},
{
"name": "COLLATERALIZED MORTGAGE OBLIGATIONS",
"pct": 0.0
},
{
"name": "CORPORATE BONDS",
"pct": 65.6
},
{
"name": "ASSET MANAGEMENT",
"pct": 5.4
},
{
"name": "AUTOMOTIVE",
"pct": 10.3
},
{
"name": "BANKING",
"pct": 18.6
},
{
"name": "BIOTECH & PHARMA",
"pct": 1.4
},
{
"name": "COMMERCIAL SUPPORT SERVICES",
"pct": 0.7
},
{
"name": "ELECTRIC UTILITIES",
"pct": 7.1
},
{
"name": "ENTERTAINMENT CONTENT",
"pct": 0.4
},
{
"name": "HEALTH CARE FACILITIES & SERVICES",
"pct": 0.4
},
{
"name": "INSTITUTIONAL FINANCIAL SERVICES",
"pct": 2.1
},
{
"name": "LEISURE FACILITIES & SERVICES",
"pct": 6.5
},
{
"name": "OIL & GAS PRODUCERS",
"pct": 3.7
},
{
"name": "REAL ESTATE INVESTMENT TRUSTS",
"pct": 0.6
},
{
"name": "SPECIALTY FINANCE",
"pct": 8.0
},
{
"name": "TRANSPORTATION & LOGISTICS",
"pct": 0.4
},
{
"name": "TERM LOANS",
"pct": 11.7
},
{
"name": "ADVERTISING & MARKETING",
"pct": 0.2
},
{
"name": "CONTAINERS & PACKAGING",
"pct": 0.6
},
{
"name": "DISCRETIONARY",
"pct": 1.3
},
{
"name": "SEMICONDUCTORS",
"pct": 0.3
},
{
"name": "U.S. GOVERNMENT & AGENCIES",
"pct": 3.1
},
{
"name": "TREASURY BILLS",
"pct": 3.1
},
{
"name": "OTHER ASSETS IN EXCESS OF LIABILITIES",
"pct": 1.6
},
{
"name": "Percentage rounds to less than",
"pct": 0.1
}
],
"buckets": [
{
"name": "US govt",
"value": 232125182.0,
"pct": 51.54499246003661
},
{
"name": "IG credit / munis",
"value": 147661804.0,
"pct": 32.78931871258761
},
{
"name": "Agency MBS",
"value": 43865906.0,
"pct": 9.740725993367986
},
{
"name": "Other",
"value": 26682186.0,
"pct": 5.924962834007792
}
],
"top": [
{
"text": "TOTAL INVESTMENTS - 98.4% (Cost $225,152,344)",
"value": 225152344.0,
"cat": "TREASURY BILLS"
},
{
"text": "TOTAL CORPORATE BONDS (Cost $147,661,804)",
"value": 147661804.0,
"cat": "TRANSPORTATION & LOGISTICS"
},
{
"text": "TOTAL ASSET BACKED SECURITIES (Cost $34,162,120)",
"value": 34162120.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "TOTAL TERM LOANS (Cost $26,663,952)",
"value": 26663952.0,
"cat": "TRANSPORTATION & LOGISTICS"
},
{
"text": "TOTAL COLLATERALIZED MORTGAGE OBLIGATIONS (Cost $9,691,630)",
"value": 9691630.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "TOTAL U.S. GOVERNMENT & AGENCIES (Cost $6,972,838)",
"value": 6972838.0,
"cat": "TREASURY BILLS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": ""
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "COLLATERALIZED MORTGAGE OBLIGATIONS"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "AUTOMOTIVE"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "BIOTECH & PHARMA"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "LEISURE FACILITIES & SERVICES"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "SPECIALTY FINANCE"
},
{
"text": "April 30, 2026",
"value": 2026.0,
"cat": "SEMICONDUCTORS"
},
{
"text": "06/22/2026",
"value": 2026.0,
"cat": "NET ASSETS"
},
{
"text": "07/01/2026",
"value": 2026.0,
"cat": "NET ASSETS"
},
{
"text": "06/22/2026",
"value": 2026.0,
"cat": "NET ASSETS"
}
]
}