Output¶
data/08_reporting/lookthrough.csv¶
One row per constituent ISIN per input ISIN, plus one unresolved weight row per input.
Column |
Meaning |
|---|---|
|
The ISIN asked for. |
|
The security held. Empty on the unresolved row. |
|
Security name: the issuer for a stock, the issue title for a bond. |
|
Percent of the input’s net assets, multiplied through sub-funds. |
|
From N-PORT’s asset category, e.g. |
|
Where the holdings came from: |
|
Holdings date of that source. |
|
The issuer. For a bond this is who owes the money. |
|
|
|
From OpenFIGI. An empty |
|
0 for direct holdings, 1 for holdings of a sub-fund, and so on. |
|
How many routes reach this ISIN (e.g. held directly and via a sub-fund). |
|
The fund whose holdings list the row came from. |
|
Filing accession number, the iShares or SPDR file URL, or TickerInside’s citation. |
Unresolved weight¶
weight_pct on the unresolved row is 100 - sum(constituent weights).
Nothing is rescaled, so this is the share of the fund the output does not
explain. It can be negative: funds report each position as a percent of
net assets, and the positions add up to more than 100 when a fund has
liabilities or purchases not yet paid for.
data/08_reporting/lookthrough_summary.csv¶
One row per input: the fund matched and how (matched_via), the top-level
source and as_of, sources_used with the weight each contributed,
reported_total_pct, resolved_pct, unresolved_pct,
unidentified_lines_pct (lines with no ISIN, e.g. cash and swaps) and
n_constituents. note says when a proxy was used, and flags inputs where
one ISIN-less line holds 50% or more, as in swap-based ETFs.
data/08_reporting/lookthrough_unidentified.csv¶
Every line with no ISIN, with its weight, name, CUSIP and reason, so the
unresolved weight can be checked line by line.
data/07_model_output/lookthrough_positions.parquet¶
The rows before ISINs reached by several routes are summed, with the full path through sub-funds.
Derivatives¶
Some funds hold their exposure through derivatives: a buffer ETF holds FLEX
options on SPY, a synthetic fund holds a swap on an index fund. N-PORT says
which instrument each derivative references (DESC_REF_OTHER), so openbasket
follows it:
A derivative on a fund is broken down into that fund’s companies, using the fund’s own holdings (SPY’s daily file, for example). Each company’s weight is the derivative’s market value as a percent of the fund’s net assets, times the company’s weight in the underlying fund.
A derivative on a single company becomes a row for that company’s ISIN, marked
isin_source = derivative_reference.
These rows say via derivatives in via_fund and exposure = derivative,
and the fund’s note gives the share held this way. Market value is not the
same as economic exposure: buffers, caps, leverage and option deltas are not
modelled, so read the weights as “what the fund’s derivatives are written on”,
not as shares it owns. Set lookthrough.look_through_derivatives: false to
turn this off.