SPUS rows daily · HLAL linked out
The list, as the funds publish it
Every row below is a position that appears on a Shariah-focused ETF's own published holdings page. We show the fund, the weight the issuer published, the fund's as-of date, and a link to the page the row came from, so you can check any line against its source.
Loading the latest snapshot…
This is data, not investment advice
SafaStack reports what named funds published as held on a given date. Nothing here is a recommendation, a rating, a target price or advice, and nothing here tells you to buy, hold or sell anything. We do not certify compliance and we do not issue rulings: "held by SPUS" is not the same statement as "halal". Check the linked source, and speak to a licensed professional where it matters.
HLAL is not mirrored here. Wahed's terms don't permit us to republish its page content, so we link out to Wahed's own list instead, and the history we can publish comes from the fund's SEC filings at quarter end (SEC EDGAR full-text search for the fund). We checked the Wahed page on 2026-09-12 and found no dated holdings table, so we make no daily claim for HLAL.
Rows are read in your browser from our published JSON: the pointer file data/holdings/latest.json and the dated snapshot it names. There's no backend and no login, and nothing here is tracked. Data schema: docs/holdings-schema.md. Page behaviour and QA notes: docs/holdings-page.md.
The rows are published as plain HTML too, so a reader without JavaScript and a search crawler see the same data this page sorts: the full list carries every row and one page per fund starts with SPUS. The daily ingest run writes both files from the snapshot JSON described above.
Current holdings
Sort by any column, filter by fund, or search for a ticker or a company name. All of it runs in your browser; the only thing we fetch is our own JSON.
Loading the latest snapshot…
No daily snapshot has been published yet
SafaStack's ingest pipeline is built and tested, but no dated snapshot has been committed to this site yet,
so there is nothing to show. We would rather show you an empty table than an invented one: every row here has
to come from a fund's own published holdings page, with the source URL and as-of date recorded alongside it.
The scheduled daily run writes data/holdings/latest.json and
data/holdings/YYYY-MM-DD.json; this page fills in as
soon as the first run lands.
What will be here: the ticker, company name, fund, published weight and as-of date for every holding, each with a link to the issuer page it came from.
We could not load the snapshot
The data file did not load.
You appear to be opening this page straight from disk (a file:// address). Browsers block a page
from reading local JSON that way. Serve the folder over HTTP (for example npx serve or
python3 -m http.server) and reload.
Note on the last ingest run
| Source |
|---|
Weight % is the percentage of net assets the issuer's page shows for that row, reproduced as published. Where the issuer's cell was not usable as a number we record that rather than guess. As of is the fund's own holdings date, not the date we fetched it. Our files store dates and never wall-clock times, which is why there is no time of day here.
What each fund contributed
| Fund | Issuer | Status | Holdings as of | Rows here | Issuer page |
|---|
Funds not listed in the table above
We track these funds, but their rows are not stored or republished here. Each entry says why, and links to the fund's own page so you can read the list at the source. Where a fund files its holdings with the SEC, those filings are the history we can publish, and each one carries its own as-of date.
Join the waitlist
The list is free. You'll get an email when the daily SPUS list goes live, then only on the days a stock enters or leaves SPUS. HLAL changes come from the fund's quarter-end SEC filings.
Everything on this page comes from a fund's own published holdings, with the source linked on the row. We haven't launched, so there's no crowd to quote at you yet.