Yeah, neither do we.
Your broker shows you what institutions held last quarter. These funds publish their holdings every single day — to public websites, for free. We just read them before everyone else does.
13F filings. Updated quarterly, published with a 45-day delay. By the time you see it, the trade is 90+ days old and the move already happened.
Actively-managed ETFs publish their full holdings every market day on their websites. We scrape, normalize, and diff them before the opening bell.
14 ETFs. 6 providers. Every position, every day. Cross-fund conviction scoring, streak tracking, and option flow — decoded.
Signals weighted by fund AUM. A $6.8B ARK buy ranks higher than a $50M fund's identical move.
Know when an institution has been accumulating a position for 3, 5, or 10 consecutive days.
Visual grid: tickers × funds. Color intensity = weight delta. See the whole market in one glance.
Look up any stock — see every fund holding it, their weights, recent changes, and options exposure.
Flagged when funds within the same family take opposite positions. That's rare. That's a signal.
Paste your Discord webhook once. Get the full daily briefing delivered to your server every morning.
We translate covered calls and cash-secured puts into plain English — so you know what the fund actually thinks.
Other tools charge $19–$500/mo for ETF data. We cross multiple fund families AND add intelligence on top.
| Feature | TickerTrace | 13F Filings | ETF Research Center | Cathie's ARK Tracker |
|---|---|---|---|---|
| Update frequency | Daily | Quarterly | Daily | Daily |
| Data delay | Same day | 90+ days | Same day | Same day |
| Cross-fund coverage | 14 ETFs, 6 providers | All 13F filers | Broad | ARK only (6 ETFs) |
| Conviction scoring | ✓ | ✗ | ✗ | ✗ |
| Streak tracking | ✓ | ✗ | ✗ | ✗ |
| Option flow decoded | ✓ | ✗ | ✗ | ✗ |
| Divergence alerts | ✓ | ✗ | ✗ | ✗ |
| Discord alerts | ✓ | ✗ | ✗ | ✗ |
| Activity heatmap | ✓ | ✗ | ✗ | ✗ |
| JSON API | ✓ | ✗ | $29/mo | ✗ |
| Price | Free / $15mo | Free | $29/mo | Free |
If you know of an ETF that publishes daily holdings, we can add it — usually in under an hour. Same provider? One line of code.
Request a FundIf you manage a Discord community, newsletter, or trading group — we'll give your members access and share 40% of revenue you refer. Forever.
Apply to PartnerStart free. Upgrade when you're ready.
Top signals, sector flow, briefing card.
Full access, Discord alerts, JSON API, historical data.
We believe in radical transparency. That includes the embarrassing parts.
Every option-income fund now has a strategy profile pulled from its actual prospectus. BLOX selling ATM calls? That's on-strategy — not a penalty. EGGS mandates hedging? The hedge ratio metric now weighs 25% for them, 8% for funds that don't. Scoring finally matches what the fund says it does.
Rebuilt the entire scoring system from scratch. Black-Scholes Greeks, notional-weighted scoring, continuous Gaussian curves instead of step-function cliffs. Seven metric categories: strike selection, DTE management, spread efficiency, roll behavior, premium capture, hedge ratio, concentration risk. A DTE of 6.9 and 7.0 now score almost identically. As they should.
Three new active equity + options overlay ETFs from NestYield (Tidal). EGGQ does OTM call spreads on tech. EGGY targets 25% yield with selective covered calls. EGGS hedges with laddered puts and targets capital preservation. Scraper, API, dashboard, and effectiveness engine all updated in one session.
Found stale provider maps and inconsistent junk filtering. Some tickers were getting through that shouldn't have been, others were being eaten. Centralized everything into _is_junk_ticker() and applied it everywhere. Also cleaned up the fund profile categorization because the old one was held together with hopes and dreams.
Added X and Reddit share buttons right next to the Discord webhook. Your friends should know what ARK is doing. Also quietly fixed every single URL still pointing at the old Vercel subdomain — 10 references, 6 files. The domain has been tickertrace.pro for weeks. We noticed.
The REX CSV returns holdings under the internal name 'REX_ULTI'. Our scraper trusted the source data. That was a mistake. Then our CUSIP resolver labeled every ticker 'OTHER'. 'OTHER' is in our junk filter. 88 rows, zero visible. Three engineers, zero brain cells.
We bought the domain, pointed DNS at Namecheap, then our AI tried to fight Apache for port 80 by installing nginx. On a server that already had Apache. It lost. We used Apache instead. SSL via Let's Encrypt.
Replaced our hand-rolled auth with Firebase. Had to generate a service account key from the console because gcloud wasn't installed. The AI tried to navigate the Firebase console in a browser. It could not. Instructions were given instead.
Three new ETFs in one session. ULTI (REX Shares) required a POST request to download CSV. SLTY (YieldMax) just worked. BLOX was fine until we realized their CSV uses 'Account' as their ticker column. Scraper didn't care. Dashboard did.
The 'Upgrade to Pro' button was pointing to localhost:8100. On production. For 12 hours. Nobody noticed because we didn't have any users yet. Fixed by someone who was definitely not the same person who wrote it.
Some funds only publish CUSIP identifiers (9-char codes), not ticker symbols. Built a cache + OpenFIGI fallback. Cache hit rate: ~95%. Cost: $0. Time spent debugging why 'N97284108' wasn't resolving: too long.