f/fundlab/nport_cache/qspnx.json
Greg Pomerantz 54d26939dc Fund Lab: N-PORT holdings page for the 16-fund shortlist
- fundlab/nport.py: parse the fund's own category/percentage lines,
  as-of date, net assets and dollar-valued positions from N-PORT
  schedules of investments (handles per-fund and combined multi-fund
  family filings; conservative keyword bucketing of positions)
- fundlab/nport_cache/<sym>.json: parsed snapshots for 15 of 16 funds
  (raw SOI HTML kept locally, gitignored; source URLs + filing dates in
  nport_manifest.json, md5-verified against EDGAR)
- atesx: no current SOI found (Anchor's recent filings cover the Income
  fund) - listed with an honest note
- app.py: new 'Fund Lab' tab - pick a fund, see objective, reported
  composition (bar + table), rough keyword buckets, top positions, and
  the prospectus strategy excerpt
- tests: parser unit tests (section finding, category regex, buckets)
2026-08-26 09:59:24 -04:00

453 lines
5.9 KiB
JSON

{
"sym": "qspnx",
"as_of": "March 31, 2026",
"net_assets": 28667858.0,
"n_positions": 270,
"categories": [
{
"name": "LONG POSITIONS",
"pct": 211.3
},
{
"name": "COMMON STOCKS",
"pct": 164.0
},
{
"name": "Australia",
"pct": 5.1
},
{
"name": "Austria",
"pct": 0.0
},
{
"name": "Belgium",
"pct": 0.7
},
{
"name": "Brazil",
"pct": 0.4
},
{
"name": "Burkina Faso",
"pct": 0.0
},
{
"name": "Canada",
"pct": 6.2
},
{
"name": "Chile",
"pct": 0.0
},
{
"name": "China",
"pct": 0.8
},
{
"name": "Denmark",
"pct": 1.3
},
{
"name": "Finland",
"pct": 1.2
},
{
"name": "France",
"pct": 5.0
},
{
"name": "Germany",
"pct": 5.0
},
{
"name": "Hong Kong",
"pct": 0.7
},
{
"name": "Italy",
"pct": 3.6
},
{
"name": "Ivory Coast",
"pct": 0.0
},
{
"name": "Japan",
"pct": 17.1
},
{
"name": "Luxembourg",
"pct": 0.1
},
{
"name": "Mexico",
"pct": 0.2
},
{
"name": "Netherlands",
"pct": 2.2
},
{
"name": "Norway",
"pct": 1.4
},
{
"name": "Portugal",
"pct": 0.0
},
{
"name": "Singapore",
"pct": 0.6
},
{
"name": "South Africa",
"pct": 0.1
},
{
"name": "Spain",
"pct": 2.6
},
{
"name": "Sweden",
"pct": 2.6
},
{
"name": "Switzerland",
"pct": 2.3
},
{
"name": "Turkiye",
"pct": 0.0
},
{
"name": "United Kingdom",
"pct": 7.2
},
{
"name": "United States",
"pct": 97.6
},
{
"name": "NO. OF RIGHTS RIGHTS",
"pct": 0.0
},
{
"name": "SHARES SHORT-TERM INVESTMENTS",
"pct": 47.0
},
{
"name": "INVESTMENT COMPANIES",
"pct": 26.8
},
{
"name": "Instruments Fund, Institutional Shares,",
"pct": 3.52
},
{
"name": "Limited Purpose Cash Investment Fund,",
"pct": 3.65
},
{
"name": "AMOUNT U.S. TREASURY OBLIGATIONS",
"pct": 20.2
},
{
"name": "Treasury Bills",
"pct": 3.77
},
{
"name": "TREASURY OBLIGATIONS",
"pct": 20.2
},
{
"name": "NO. OF CONTRACTS PURCHASED OPTIONS",
"pct": 0.3
},
{
"name": "Put Option s",
"pct": 0.3
},
{
"name": "Over-the-Counter Equity Index Options",
"pct": 0.3
},
{
"name": "NOTIONAL AMOUNT Interest Rate Swaptions",
"pct": 0.0
},
{
"name": "Rate Swap, Pays SOFR Quarterly, Receives",
"pct": 3.23
},
{
"name": "Quarterly JPMC Exercise Rate",
"pct": 3.23
},
{
"name": "TOTAL INVESTMENTS IN SECURITIES AT VALUE",
"pct": 62.2
},
{
"name": "OTHER ASSETS IN EXCESS OF LIABILITIES",
"pct": 37.8
},
{
"name": "Represents less than",
"pct": 0.05
},
{
"name": "SHORT-TERM INVESTMENTS",
"pct": 25.2
},
{
"name": "CORRA Semi",
"pct": 3.0
},
{
"name": "SOFR Annual",
"pct": 4.0
},
{
"name": "SONIA Annual",
"pct": 4.5
},
{
"name": "BBR Qtrly",
"pct": 4.0
},
{
"name": "NIBOR Semi",
"pct": 5.0
},
{
"name": "TONAR Annual",
"pct": 1.5
},
{
"name": "BBR Semi",
"pct": 5.0
},
{
"name": "EURIBOR Semi",
"pct": 3.0
},
{
"name": "SARON Annual",
"pct": 0.0
},
{
"name": "STIBOR Qtrly",
"pct": 2.0
}
],
"buckets": [
{
"name": "Other",
"value": 547333.0,
"pct": 100.0
}
],
"top": [
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "6/12/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "6/18/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "6/18/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "6/12/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/11/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/11/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "6/18/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "6/18/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "9/17/2036",
"value": 2036.0,
"cat": ""
},
{
"text": "01/13/2031",
"value": 2031.0,
"cat": ""
},
{
"text": "03/28/2031",
"value": 2031.0,
"cat": ""
},
{
"text": "03/28/2031",
"value": 2031.0,
"cat": ""
},
{
"text": "03/28/2031",
"value": 2031.0,
"cat": ""
},
{
"text": "04/12/2030",
"value": 2030.0,
"cat": ""
},
{
"text": "10/11/2030",
"value": 2030.0,
"cat": ""
},
{
"text": "04/11/2030",
"value": 2030.0,
"cat": ""
},
{
"text": "6/21/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "6/21/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/20/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/20/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/20/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/20/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "6/14/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "6/14/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/13/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/13/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/20/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "9/20/2028",
"value": 2028.0,
"cat": ""
},
{
"text": "6/21/2028",
"value": 2028.0,
"cat": ""
}
]
}