- 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)
35 lines
606 B
JSON
35 lines
606 B
JSON
{
|
|
"sym": "lcorx",
|
|
"as_of": "December 31, 2025",
|
|
"net_assets": 69463709.0,
|
|
"n_positions": 2,
|
|
"categories": [
|
|
{
|
|
"name": "EXCHANGE TRADED FUNDS",
|
|
"pct": 91.7
|
|
},
|
|
{
|
|
"name": "Money Market Deposit Account",
|
|
"pct": 8.4
|
|
}
|
|
],
|
|
"buckets": [
|
|
{
|
|
"name": "Fund holdings",
|
|
"value": 110547276.0,
|
|
"pct": 100.0
|
|
}
|
|
],
|
|
"top": [
|
|
{
|
|
"text": "TOTAL EXCHANGE TRADED FUNDS (Cost $55,273,638)",
|
|
"value": 55273638.0,
|
|
"cat": "EXCHANGE TRADED FUNDS"
|
|
},
|
|
{
|
|
"text": "TOTAL INVESTMENTS - 91.7% ( Cost $55,273,638 )",
|
|
"value": 55273638.0,
|
|
"cat": "EXCHANGE TRADED FUNDS"
|
|
}
|
|
]
|
|
} |