How the data set is built, how conviction and social signal scores are constructed, and where the honest limits of this MVP are.
Live data · Jul 27, 2026
No investment advice
Tilo provides research context, social signal analysis, and educational information only. Nothing on this platform is a recommendation to buy or sell any security. All performance figures are virtual, historical, and do not guarantee future results.
Data status
This build runs on data generated from public sources, last updated Jul 27, 2026. Every signal links back to its original source; missing values are shown as n/a — never estimated.
Sources
cboeDaily OHLCV via cdn.cboe.com delayed quotes, 1718 tickers, data through 2026-07-23
edgar13f13F-HR information tables for 25 funds (CIKs verified against EDGAR on 2026-07-11), last 20 quarters each (~5 years; younger filers honestly show fewer — daten-tranche-1-v1 §B). 13F-HR/A amendments are applied to their quarter (RESTATEMENT replaces, NEW HOLDINGS extends); this run: 62 applied, 0 skipped. Quarters stay dated at the ORIGINAL filing (amendments can arrive after the next quarter's 13F — dating at the amendment would flip the NAV timeline). — Berkshire Hathaway, Scion Asset Management, Pershing Square, Duquesne Family Office, Appaloosa, Bridgewater Associates, Fisher Asset Management, Sands Capital, Coatue Management, Gardner Russo & Quinn, Eagle Capital Management, PRIMECAP Management, Tiger Global, ARK Investment Management, Gotham Asset Management, GAMCO Investors, Soros Fund Management, Saba Capital, Maverick Capital, Caxton Associates, Graham Capital Management, HBK Investments, Woodline Partners, Semper Augustus, Situational Awareness
redditArctic Shift archive API; 385 raw posts (top-scored DD sample + author history), 200 verified signals from 31 authors
xOfficial X API v2 (pay-per-use), 14 curated handles + 1 engine source(s), originals only (retweets & replies excluded server-side); 0 new posts this run (~$0.00 in reads), 9783 total in the snapshot. 193 verified signals from 11/14 curated handles; signals are dated at the POST time (no disclosure lag).
inverseCramerF42 Inverse Cramer Tracker (docs/signal-engine/inverse-cramer-v1.md; compliance memo 2026-07-26 BINDING). @jimcramer is an ENGINE SOURCE (no tracker profile): 599 raw posts on file, 106 verified unambiguous stock calls (extraction: manual-llm/claude-fable-5 (static file), 36 posts discarded with documented reasons — ambiguity/irony/questions/sector calls are never classified), 106 executable after pricing. Mechanical rule v1: bullish call -> virtual short, bearish call -> virtual buy; conviction sizing; next-trading-day close; ruin rule active; shorts frictionless (documented limitation). Launch gate >= 30 executable signals: passed.
xVisionF45 image ground truth (docs/signal-engine/x-vision-v1.md) over media of HolySmokas, kevinxu: 42 committed vision results (extraction model recorded per result; 2026-07-27 pass extracted manually by Claude (fable-5) from the cached images — same doctrine as the text extraction; the throttled claude-sonnet-5 API runner in scripts/ingest/x-vision-extract.ts takes over once an ANTHROPIC_API_KEY exists. Applied only at confidence >= 0.75). 9 full-portfolio snapshots verified, 9 applied as post-dated rebalances (priced-coverage guard >= 60%: 0 skipped); 12 trade receipts verified, 12 became signals at documented conviction 80 (0 suppressed in favor of an existing verified text signal on the same post). Not applied: 22 irrelevant images, 0 below confidence, 0 partial snapshots, 0 structurally invalid. Collision rule: on a snapshot day, 0 same-day text/receipt events were superseded by the snapshot (signals stay visible). Extraction spend so far: 0 Anthropic requests, ~$0.00.
housePtrHouse Clerk financial-disclosure index (disclosures-clerk.house.gov, yearly ZIP/XML 2020-2026) + electronic PTR PDFs parsed via pdftotext; 5460 transactions (after amendment dedup) -> 3685 stock + option signals for 8 politicians. Option rule v2: [OP] transactions signal the DIRECTION of the underlying (calls buy = bullish, puts buy = bearish, sales inverted). Signals are dated at the FILING date (STOCK-Act lag up to 45 days, intentional and visible); amounts stay disclosure ranges. Senate eFD is follow-up work (bot-protected, see limitations).
quiverTrumpTrump financial disclosures via QuiverQuant bulk/trumpstocktrades (STOCK Act, OGE Form 278-T; transaction-level, modeled like a PTR tracker). bulk/trumpstocktrades, 4790 rows fetched (pre-dedup) across 24 pages. 4790 rows -> 2313 signals after full-row dedup (20 duplicates); skipped per reason: {"no-ticker":176}. History starts with the 2026-05 filing — presidential periodic disclosures are new in the dataset; depth grows with future filings.
quiverSenateSenate STOCK-Act disclosures via QuiverQuant bulk/congresstrading V2 (per verified BioGuide id — never a top-N grab: the dataset also contains FEC candidates). bulk/congresstrading V2 per bioguide_id, 6 senators Signal date = 'Filed'; ranges stay ranges; option rule v2 via TickerType/Description; full-row dedup against feed duplicates. Original eFD filings are not linkable from this feed — source links open Quiver's politician dataset pages (documented exception).
quiverInsidersInsider Transactions (SEC Form 4) via QuiverQuant live/insiders — one request per fundamentals-universe ticker, 365-day window anchored at asOf. live/insiders, 366/423 tickers with Form-4 rows in the 365-day window. Roles come strictly from the filing (officerTitle / director / 10%-owner flags), no enrichment; per-row source links are EDGAR full-text-search deep links (filer name + Form 4 + filing date), exact accession links come with the EDGAR-direct migration (design doc §C4).
curated7 curated list(s) from data/curated/watchlists.json (curator: Tilo Research); dateAdded tracked in data/curated/first-seen.json
edgarFundamentalsXBRL companyfacts via data.sec.gov for 298/1701 tickers (8 fiscal quarters + Current, priced with CBOE closes); 125 tickers skipped (see skippedTickers, prefix "fundamentals:")
logosSelf-hosted PNGs in public/logos (FMP image-stock; source evaluation, ToS + nominative-fair-use rationale: docs/signal-engine/stock-logos-v1.md). 1696/1701 universe tickers covered; missing tickers render the deterministic monogram glyph. Light-glyph scan (M1 2026-07-18): 182 white-on-transparent logos flagged (>92% of visible pixels above 92% luminance) — the UI renders these on a dark neutral disc so they stay visible in both themes. Manifest: src/data/generated/logos.json.
Portfolio saba-capital: skipped event 2022-02-14 (rebalance: no price for PDX on 2022-02-15)
Portfolio saba-capital: skipped event 2022-02-14 (rebalance: no price for BTX on 2022-02-15)
Portfolio saba-capital: skipped event 2022-05-16 (rebalance: no price for PDX on 2022-05-17)
Portfolio saba-capital: skipped event 2022-08-15 (rebalance: no price for PDX on 2022-08-16)
Portfolio saba-capital: skipped event 2022-11-14 (rebalance: no price for PDX on 2022-11-15)
Portfolio saba-capital: skipped event 2022-11-14 (rebalance: no price for BTX on 2022-11-15)
Portfolio saba-capital: skipped event 2023-02-14 (rebalance: no price for PDX on 2023-02-15)
Portfolio saba-capital: skipped event 2023-02-14 (rebalance: no price for BTX on 2023-02-15)
Portfolio saba-capital: skipped event 2023-05-15 (rebalance: no price for BTX on 2023-05-16)
Portfolio saba-capital: skipped event 2023-05-15 (rebalance: no price for PDX on 2023-05-16)
Portfolio saba-capital: skipped event 2023-08-14 (rebalance: no price for BTX on 2023-08-15)
Portfolio saba-capital: skipped event 2023-08-14 (rebalance: no price for PDX on 2023-08-15)
Portfolio saba-capital: skipped event 2023-11-14 (rebalance: no price for PDX on 2023-11-15)
Portfolio nancy-pelosi: skipped event 2020-02-11 (buy: no price for FB on 2020-02-12)
Portfolio josh-gottheimer: skipped event 2020-02-10 (buy: no price for CRY on 2020-02-11)
Portfolio josh-gottheimer: skipped event 2020-05-13 (buy: no price for FB on 2020-05-14)
Portfolio josh-gottheimer: skipped event 2020-09-20 (buy: no price for FB on 2020-09-21)
Portfolio josh-gottheimer: skipped event 2020-11-05 (buy: no price for CRY on 2020-11-06)
Portfolio josh-gottheimer: skipped event 2021-05-07 (buy: no price for FB on 2021-05-10)
Portfolio josh-gottheimer: skipped event 2021-06-15 (buy: no price for FB on 2021-06-16)
Portfolio josh-gottheimer: skipped event 2022-01-10 (buy: no price for CCXI on 2022-01-11)
Portfolio josh-gottheimer: skipped event 2022-05-16 (buy: no price for CCXI on 2022-05-17)
Portfolio scott-peters: the virtual portfolio never held a position (only sales or unexecutable events were tracked) — NAV stayed 100% cash, so portfolio returns and alpha vs SPY are intentionally omitted (all-cash state, not a data error).
Portfolio tommy-tuberville: skipped event 2021-07-23 (buy: no price for FB on 2021-07-26)
Portfolio sheldon-whitehouse: skipped event 2015-04-23 (buy: no price for UA on 2015-04-24)
Portfolio sheldon-whitehouse: skipped event 2015-09-24 (buy: no price for FB on 2015-09-25)
Portfolio sheldon-whitehouse: skipped event 2016-01-20 (buy: no price for UA on 2016-01-21)
Portfolio sheldon-whitehouse: skipped event 2016-02-23 (buy: no price for FB on 2016-02-24)
Portfolio sheldon-whitehouse: skipped event 2016-04-04 (buy: no price for FB on 2016-04-05)
Portfolio sheldon-whitehouse: skipped event 2016-06-16 (buy: no price for FB on 2016-06-17)
Portfolio sheldon-whitehouse: skipped event 2016-08-22 (buy: no price for FB on 2016-08-23)
Portfolio sheldon-whitehouse: skipped event 2016-09-09 (buy: no price for FB on 2016-09-12)
Portfolio sheldon-whitehouse: skipped event 2016-10-07 (buy: no price for FB on 2016-10-10)
Portfolio sheldon-whitehouse: skipped event 2016-12-12 (buy: no price for FB on 2016-12-13)
Portfolio sheldon-whitehouse: skipped event 2017-02-14 (buy: no price for IR on 2017-02-15)
Portfolio shelley-moore-capito: skipped event 2018-05-14 (buy: no price for PX on 2018-05-15)
Portfolio susan-collins: skipped event 2014-01-31 (buy: no price for FB on 2014-02-03)
Portfolio susan-collins: skipped event 2014-02-11 (buy: no price for FB on 2014-02-12)
Portfolio susan-collins: skipped event 2014-02-25 (buy: no price for FB on 2014-02-26)
Portfolio susan-collins: skipped event 2014-03-19 (buy: no price for FB on 2014-03-20)
Portfolio susan-collins: skipped event 2014-05-16 (buy: no price for SE on 2014-05-19)
Portfolio susan-collins: skipped event 2014-06-27 (buy: no price for PX on 2014-06-30)
Portfolio susan-collins: skipped event 2014-08-14 (buy: no price for EMC on 2014-08-15)
Portfolio susan-collins: skipped event 2014-12-01 (buy: no price for DD on 2014-12-02)
Portfolio susan-collins: skipped event 2016-05-03 (buy: no price for PX on 2016-05-04)
Portfolio susan-collins: skipped event 2017-06-06 (buy: no price for FB on 2017-06-07)
Portfolio bahtmann: the virtual portfolio never held a position (only sales or unexecutable events were tracked) — NAV stayed 100% cash, so portfolio returns and alpha vs SPY are intentionally omitted (all-cash state, not a data error).
Portfolio chungwueggwua: the virtual portfolio never held a position (only sales or unexecutable events were tracked) — NAV stayed 100% cash, so portfolio returns and alpha vs SPY are intentionally omitted (all-cash state, not a data error).
Portfolio quixotus: the virtual portfolio never held a position (only sales or unexecutable events were tracked) — NAV stayed 100% cash, so portfolio returns and alpha vs SPY are intentionally omitted (all-cash state, not a data error).
Portfolio martinshkreli: the virtual portfolio never held a position (only sales or unexecutable events were tracked) — NAV stayed 100% cash, so portfolio returns and alpha vs SPY are intentionally omitted (all-cash state, not a data error).
Portfolio holysmokas: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio chriscamillo: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio kevinxu: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio kevinxu: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio kevinxu: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio inverse-cramer: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio inverse-cramer: skipped event 2026-07-23 (no trading day after 2026-07-23)
Portfolio inverse-cramer: skipped event 2026-07-24 (no trading day after 2026-07-24)
Portfolio inverse-cramer: skipped event 2026-07-24 (no trading day after 2026-07-24)
Portfolio inverse-cramer: NAV fell to 0 on 2026-06-15 and the portfolio was liquidated (ruin rule) — NAV stays at 0 from that day; the 25 signal(s) dated after the wipeout were not executed.
WSB Consensus watchlist rule v1: a stock is included once it has >= 2 bullish r/wallstreetbets signals from tracked authors, OR a single bullish WSB signal with conviction >= 75. dateAdded = date of the signal that first satisfied the rule (never back-dated to the first mention). Currently 22 stocks qualify, derived from 88 bullish WSB signals — every membership is backed by clickable signals.
Curated watchlists (physical-ai, semis, memory, quantum, rare-earths, nanotechnology-pharma, green-csr-clean-etfs) are human-authored by Tilo Research; stock membership is editorial, not signal-derived. dateAdded per stock = the as-of date of the first ingest run that priced the ticker in that list (data/curated/first-seen.json) — performanceSinceAdded starts at that date and is never back-dated, so fresh additions start at 0%.
Congress Buys watchlist rule v1: a stock is included once >= 3 tracked politicians disclosed buys of it within any 180-day window (calibrated 2026-07 against variants; target size 8-20, currently 38). dateAdded = filing date of the disclosure that first completed such a cluster — never back-dated.
Politician signals (source 'Congress PTR') come from TWO pipelines: HOUSE trackers are primary-source (Clerk index + electronic PTR PDFs, parsed by us); SENATE trackers (6 curated senators since 2026-07-27) come from the QuiverQuant congress-trading API, because the Senate eFD site blocks non-browser clients (Akamai 403, verified 2026-07-15/26 — spike verdict: docs/signal-engine/senate-spike-v1.md). Senate rows carry the FILING date (bulk V2 'Filed'), disclosure ranges and an option type where eFD provides one; original eFD filing URLs are NOT derivable from the feed, so senate source links open Quiver's per-politician dataset page with a #filed-<date> fragment (documented source-link exception; design + API verification: docs/signal-engine/quiver-integration-v1.md).
Quiver senate data quality (verified 2026-07-27): identical duplicate rows occur inside the feed and are conservatively deduplicated on full-row identity (two genuinely identical same-day trades would collapse into one — fewer signals, never invented ones; counts in sources.quiverSenate). Rows with TickerType null (older eFD years) are treated as STOCK transactions with a visible note in the signal summary, per the founder brief. Unclassifiable option rows, bonds, exchanges and unparseable ranges are skipped and counted per reason. Quiver's amendment semantics are undocumented (Status was 'New' on every row in the verified corpus); non-'New' rows would be flagged in limitations.
Senate tracker deep history (2014+ for Whitehouse/Collins) carries SURVIVORSHIP in its tradable set: tickers that have since delisted have no current CBOE price series, so their signals are dropped from the priced universe (reported in skippedTickers) — the virtual NAV can only ever hold still-listed names. The House pipeline (2020+) shares this limitation with a shorter window.
QuiverQuant licensing (founder decision 2026-07-26): current usage is non-commercial (development/testing behind login) and tier-conformant; a commercial license is a LAUNCH BLOCKER tracked in the backlog before any public availability of Quiver-derived data (senate trackers, Trump tracker, and later tranches).
Trump tracker (F40, source 'Financial Disclosure'): built from the President's STOCK-Act periodic transaction reports (OGE Form 278-T) as aggregated by QuiverQuant — TRANSACTION-level data (not holdings), so it is modeled exactly like a PTR tracker with signal date = filing date. Honesty findings (verified 2026-07-27): the dataset starts with the 2026-05-13 filing (shallow history — two filings covering trades 2026-01..2026-05 at integration time, grows with future filings); rows without a ticker (unmapped funds/bonds, ~4% of the verified corpus) are counted and skipped, never guessed; the feed exposes NEITHER asset types NOR option details, so every ticker row is tracked as a plain stock transaction; original filing documents are not linkable from the feed — source links open Quiver's aggregated dataset page. The Qualified rule follows the PTR range logic ($50,001+ lower bound), same disclosure regime, same range buckets.
Insider Transactions (SEC Form 4, F41): the per-stock section and the cluster monitor cover the FUNDAMENTALS universe only (politician-only tickers are excluded — same runtime guard as EDGAR fundamentals); 366 tickers carry Form-4 rows in the 365-day window. Quiver's insider feed does NOT mark Form 4/A amendments and ships no accession numbers, so amendments cannot be deduplicated against originals (documented limitation, design doc §C3); identical duplicate rows are conservatively full-row-deduplicated. Rows are capped per ticker (newest 40 + every open-market buy); aggregates are computed over the full window BEFORE the cap. Where the API's ~1000-row cap truncates a heavy ticker's window, agg.windowTruncated is true and the UI must say the counts undercount. Per-row source links are EDGAR full-text-search deep links (name + Form 4 + filing date) — exact accession links come with the EDGAR-direct migration.
Insider Cluster Buys Monitor rule v1: a stock joins once >= 3 distinct insiders report open-market purchases (Form 4 transaction code P, acquired) within a 30-day transaction-date window with a combined reported value >= $200,000 (missing prices contribute $0 — a cluster is never formed on guessed value). dateAdded = the FILING date that completed the cluster (look-ahead guard). Currently 22 stocks qualify. Distinctness is by FILER NAME as filed — a person filing alongside their investment vehicles counts as multiple filers (identity resolution would require enrichment beyond the filing, which the compliance frame forbids; every filer name is listed in the member reason). Wording is compliance-bound (memo 2026-07-26): descriptive screen, mechanically generated, not a recommendation.
Politician signals are dated at the PTR FILING date, never at the trade date. The STOCK Act allows up to 30 days after the member learns of a trade (max 45 days after execution) — that lag is the real-world information delay a follower would face, and it is intentional and visible (as with 13F).
Only ELECTRONIC House PTRs are parseable (text PDFs); paper filings are scans without a text layer, so heavy paper filers (e.g. Ro Khanna, Michael McCaul) cannot be tracked in v1 — the roster was selected among electronic filers by filing activity.
Politician OPTION transactions ([OP] with a parseable ticker) become signals since rule v2 (2026-07-26): buying calls / selling puts = Bullish on the underlying, buying puts / selling calls = Bearish; the virtual portfolio tracks the DIRECTION of the underlying stock only — option leverage, strikes and expiries are NOT modeled (an option's payoff is nonlinear; our tracker holds the plain stock). Every option signal names the instrument in its summary and carries a Call/Put Options tag; [OP] rows whose call/put type cannot be determined from the filing text are skipped and counted as OP-unclassified. Bonds, munis, funds and private placements remain skipped, counted per asset-type code in sources.housePtr.
Politician transaction amounts are STOCK-Act disclosure RANGES (e.g. $1,000,001-$5,000,000). They are shown only as ranges, never as exact numbers; the conviction score is a documented function of the range's lower bound (docs/signal-engine/politician-trades-v1.md, section 5).
Qualified-signal rule (v2, 2026-07-16): a signal is Qualified at conviction >= 60, EXCEPT Congress PTR signals, which are Qualified when the disclosed transaction range's lower bound is >= $50,001 (= conviction >= 50 under the documented PTR conviction function). Rationale: for PTRs the noise Qualified exists to filter is the flood of $1,001-$15,000 micro-trades; a reported $50k+ position is an economically meaningful trade. Single source of truth: src/lib/conviction.ts. Hit rate (90D) is computed over Qualified signals only.
Politician partial sales ('S (partial)') close the entire virtual position — the portfolio engine has no partial-close action (v1 limitation). Sales of positions the virtual portfolio never held are no-ops, as for Reddit signals.
PTR amendments are deduplicated against their originals (since 2026-07-26): a transaction filed with Filing Status 'Amended' replaces its original in place (amended amount/description win; the signal stays dated at the ORIGINAL filing — the first public disclosure), 'Deleted' removes the original, and amended transactions without a findable original count as first disclosures dated at the amendment. Match key: owner + ticker + transaction type + trade date (amount deliberately excluded — it is what amendments correct). Counts in sources.housePtr.amendments.
Tickers traded ONLY by politicians (1429 of them) are priced and profiled but excluded from the EDGAR fundamentals step to keep the pipeline runtime bounded — their KPI tables show 'n/a'.
Inverse Cramer Tracker (F42, compliance memo 2026-07-26 BINDING): a virtual, satirical engine portfolio that mechanically inverts @jimcramer's public X stock calls (bullish -> virtual short, bearish -> virtual buy). Its signals record the SOURCE call's original direction (the true fact about the post) with a neutral-mechanical summary naming the inversion; per-signal hit rate and alpha are intentionally omitted for the synthetic influencer (they would measure the call side, not the inverse position — Inverse-WSB precedent). Data basis is ONLY his public X posts, NOT Mad Money/CNBC TV segments — a documented coverage gap versus TV-based inverse products; ambiguous or ironic posts are discarded, never classified (§ 824 BGB prophylaxis; every discard carries a reason in data/raw/x/cramer-extracted.json). Shorts are frictionless (no borrow fees/margin/squeeze risk) and have no unwind mechanism in the source — a counter-call nets the position arithmetically; the ruin rule liquidates the book the first day NAV reaches 0. The backtest result vs SPY is reported whichever direction it takes.
X coverage (F5) uses the OFFICIAL X API only (pay-per-use; compliance memo 2026-07-12): one timeline request per handle per run, original public posts only (retweets and replies excluded server-side — signal threads continued in self-replies are missed in v1). Quote tweets are kept and flagged. Without the X_BEARER_TOKEN secret the step degrades to the committed snapshot without failing the run.
X signal extraction was performed manually by an LLM (Claude) at build preparation time and committed to data/raw/x/extracted-signals.json; every signal's evidence quote is verified verbatim against the raw tweet at build time (author + quote match, failures dropped and reported). Unlike Reddit (>= 2 signals for anonymous authors), one verified signal qualifies a curated roster handle.
X roster handles without extractable single-stock signals in the fetched window (news aggregation, macro commentary, principles content) get NO influencer profile and NO portfolio — nothing is invented; they appear in meta.sources.x with 0 signals and join automatically once a real signal exists.
X deep-backfill coverage (daten-tranche-2 §B, 2026-07-26): every timeline was paginated back to the API's ~3,200-most-recent-tweets cap (replies/retweets count against the cap, so heavy repliers yield short original-post windows — that is the API's hard limit, not a budget choice). Signal extraction over the backfilled corpus was TRIAGED, not exhaustive: candidate posts were pre-filtered for cashtags plus first-person position/conviction language before manual LLM extraction with verbatim verification. Posts outside that filter (notably the cashtag-free macro styles of @RayDalio, @zephyr_z9 and @jukan05's news firehose) were not individually reviewed in this pass — absence of a backfill signal is not evidence of absence.
Off-X channels (Substack/YouTube/Podcasts) of the tracked X voices are a compliance-memo requirement (risk diversification + signal source); v1 ships the per-handle offX registry in scripts/ingest/x.ts and meta.sources.x — the actual off-X ingestion (RSS/transcripts through the same verified-extraction pattern) is documented follow-up work (docs/signal-engine/x-ingestion-v1.md §6). No unverified channel URLs are registered.
Some X-named tickers are non-US listings without CBOE price data (e.g. SIVE Stockholm, LPKFF OTC); their signals are extracted for completeness but dropped from the priced universe and reported in skippedTickers — never silently mapped to a similarly named US ticker.
Kevin Xu tracker (F45): an all-in swing trader's EXIT is only recorded when a disclosure (receipt image, realized-P&L card or explicit text) shows it — an undisclosed exit (e.g. the RCAX position, whose sale is implied by the next all-in buy but never shown) persists in the virtual book until first disclosed. Sells are never invented. Several of his teaser posts redact the ticker of a completed order; those images are counted as unusable, nothing is guessed.
X image ground truth (F45, docs/signal-engine/x-vision-v1.md): some voices post their exact portfolio or trades as IMAGES, invisible to text extraction. For the media handles (HolySmokas, kevinxu) image attachments are fetched via the official API, cached, and extracted by a vision-capable LLM (2026-07-27 pass: manual extraction by Claude fable-5 from the cached images, committed and verified at build time — the same doctrine as the Reddit/X text extraction; a throttled claude-sonnet-5 API runner exists for future passes). Rules: (1) results below confidence 0.75 or failing structural validation are NEVER applied; (2) full-portfolio screenshots rebalance the tracker at the POST date (13F-style snapshot calibration; deviations from the previous virtual book materialize as one trade whose source link is the post) — partial screenshots and snapshots with < 60% priceable weight are skipped; unpriceable positions stay cash, never renormalized away; (3) broker trade receipts become signals/trades at documented conviction 80 ('Very High' — a receipt discloses an executed trade, not an opinion); (4) collision rule: image ground truth beats text — on a snapshot day, same-day text/receipt events of that handle are superseded (their signals stay visible), and a receipt duplicating a verified text signal on the same post is not emitted twice. Only committed, verified results feed the build (no live LLM call); videos/GIFs are not extracted in v1.
Reddit coverage is a sample: r/wallstreetbets was filtered server-side by DD flair; r/stocks, r/ValueInvesting and r/StockMarket were sampled in ~5-day windows via the Arctic Shift archive API (not exhaustively paginated). Deviation from the original spec note: Reddit raw data was fetched via the Arctic Shift API instead of a browser session.
Reddit signal extraction was performed manually by an LLM (Claude) at build preparation time and committed to data/raw/reddit/extracted-signals.json; every signal's evidence quote is verified verbatim against the raw post at build time. A programmatic Anthropic-API extractor can be plugged in via the SignalExtractor interface.
Only Reddit authors with >= 2 extracted signals become influencers; single-signal authors were dropped (their posts remain in the raw data).
KpiData fields without a verified source (P/E, margins, growth, balance sheet, cash flow, beta, short interest, payout, buybacks, shares outstanding, enterprise value) are 'n/a' — Nasdaq's free endpoints only provide market cap, sector/industry, 52W range, average volume and dividend yield.
Marcel's r/StockMarket post 1ucvxpv is a verbatim crosspost of r/ValueInvesting post 1ucvtuv and was deliberately extracted only once.
Duquesne Family Office reports 13F values in thousands of dollars (legacy convention); weights are scale-invariant, and the price sanity check accepts both conventions.
13F depth is 20 quarters per fund (~5 years, daten-tranche-1-v1 §B). 13F-HR/A amendments are applied to their quarter (RESTATEMENT replaces the holdings, NEW HOLDINGS extends them; unsupported/unparseable amendments are skipped and listed in sources.edgar13f). The amended composition stays DATED at the original filing — same honesty rule as PTR amendments: the quarter's book was first public at the original filing, the amendment refines it; dating at the amendment (which can arrive after the NEXT quarter's 13F) would order rebalances backwards.
Older 13F quarters reference CUSIPs of long-exited positions that the manual CUSIP->ticker map does not cover; unmapped holdings are dropped from tracker weights (top-15 weights renormalize over mapped positions) and every unmapped CUSIP is listed in skippedTickers — deep-history books are therefore slightly less complete than recent ones, never silently wrong.
13F Split-Guard (docs/signal-engine/split-guard-v1.md, seit 2026-07-27): 13F-Werte und -Stückzahlen stehen NOMINAL zum Quartalsende im Filing, unsere Kurshistorie ist rückwirkend splitbereinigt. Das Verhältnis aus implizertem Preis (valueUsd/shares) und Quartals-Close IST deshalb der kumulierte Kapitalmassnahmen-Faktor — er wird gemessen (SEC + CBOE, zwei unabhängige Quellen), nicht geschätzt, und nur akzeptiert, wenn er auf ein einfaches Split-Verhältnis passt (1 %), über die Zeit nicht steigt, an ein erklärtes Nachbarquartal anschliesst und von mindestens zwei unabhängigen Filings getragen wird. In diesem Lauf: 22 Kapitalmassnahme(n) erkannt (u. a. AMZN, GOOGL, GOOG, CMG, NFLX, BN, SHOP, NVDA). Akzeptierte Faktoren normalisieren die STÜCKZAHLEN auf heutige Basis — die in Signaltexten genannte Stückzahl ist damit das splitbereinigte Äquivalent der Filing-Zahl, nicht deren Wortlaut; valueUsd und alle daraus abgeleiteten Gewichte bleiben unverändert as-filed. Ohne diese Normalisierung erzeugte jeder Split ein Phantom-Signal ('Position um 1.900 % erhöht'), weil die 13F-Diff-Logik Stückzahl-Änderungen auswertet.
13F-Faktoren, die die Prüfkriterien NICHT bestehen, werden ausgelassen statt geschätzt: 10 (Ticker, Quartal)-Kombination(en) und 54 einzelne Filing-Zeile(n) von 165819 fallen weg — jeweils mit Grund und Zahlen in skippedTickers. Verworfen wird in dieser Reihenfolge: einzelne Zeile, dann die CUSIP-Zuordnung (1 in diesem Lauf), und erst wenn ein Ticker keine belastbare CUSIP mehr hat, der Ticker selbst (0 in diesem Lauf). Die betroffenen Fonds-Bücher sind in diesen Quartalen um die jeweilige Position unvollständig; die Gewichte der übrigen Positionen renormieren entsprechend.
Bewertungs-Stichtag einzelner 13F-Filings: 1 Filing(s) bewerten ihr Buch erkennbar nicht zum Quartalsende (Median-Abweichung quer durch alle Positionen, z. B. CIK 1697748 2022-06-30: 12 %). Der Offset wird bei der Zeilenprüfung herausgerechnet (der Fehler liegt im gemeldeten WERT, nicht in den Stückzahlen), aber nicht korrigiert: die Gewichte dieser Quartale tragen die Abweichung des Filings.
Ticker universe is 1701 names (spec soft cap ~60 was exceeded to keep every verified Reddit influencer's signal set complete).
AMC's CBOE price series is not adjusted identically to other vendors around the 2023 reverse split era; window returns for periods crossing corporate actions rely on CBOE's adjustments.
CBOE price series are not adjusted for spin-offs and special distributions. Confirmed case: HON shows an unadjusted ~51% price gap on 2026-06-29 from Honeywell's corporate separation (spin-off distribution) — window returns crossing that date (e.g. HON 1M ≈ −48%) reflect the distribution, not a market loss.
CBOE price series are per ticker SYMBOL, not per company — a reused symbol carries the previous listing's history in the same series. A continuity guard truncates every series at gaps > 365 days, so window returns are always computed inside the current listing only. Confirmed case: SNDK — SanDisk Corp traded 2004–2016 (acquired by Western Digital), and the symbol re-listed on 2025-02-24 for the spun-off new Sandisk Corp. SNDK's displayed windows (including the extreme 1Y return) lie entirely inside the new listing and are verified free of splice artifacts; the guard exists so this stays true as windows lengthen. This run: ACMR: dropped 1483 bars before a listing gap (2006-01-03…2011-11-18); windows use only the current listing starting 2017-11-03. ADT: dropped 916 bars before a listing gap (2012-10-01…2016-05-23); windows use only the current listing starting 2018-01-19. AGCO: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-05-04. AHL: dropped 3872 bars before a listing gap (2004-01-02…2019-05-20); windows use only the current listing starting 2025-05-08. AL: dropped 864 bars before a listing gap (2006-01-03…2009-06-09); windows use only the current listing starting 2011-04-19. ALC: dropped 1670 bars before a listing gap (2006-11-20…2013-07-11); windows use only the current listing starting 2019-04-09. ALHC: dropped 202 bars before a listing gap (2008-06-12…2010-01-15); windows use only the current listing starting 2021-03-26. AMC: dropped 316 bars before a listing gap (2006-11-01…2008-04-09); windows use only the current listing starting 2013-12-18. AMPH: dropped 1049 bars before a listing gap (2006-01-03…2010-11-30); windows use only the current listing starting 2014-06-25. AMR: dropped 1 bars before a listing gap (2017-08-10…2017-08-10); windows use only the current listing starting 2018-11-09. AMRX: dropped 754 bars before a listing gap (2004-01-02…2006-12-28); windows use only the current listing starting 2009-01-14. AON: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-12-01. APLS: dropped 26 bars before a listing gap (2006-01-03…2010-03-26); windows use only the current listing starting 2017-11-09. APO: dropped 622 bars before a listing gap (2006-10-31…2009-12-30); windows use only the current listing starting 2011-03-30. ASML: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2007-05-10. AVNS: dropped 1463 bars before a listing gap (2006-01-03…2012-10-08); windows use only the current listing starting 2014-11-03. BBVA: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-12-14. BE: dropped 514 bars before a listing gap (2006-11-01…2008-11-14); windows use only the current listing starting 2018-07-25. BEAM: dropped 2095 bars before a listing gap (2006-01-03…2014-04-30); windows use only the current listing starting 2020-02-06. BOOT: dropped 1468 bars before a listing gap (2006-01-03…2012-08-16); windows use only the current listing starting 2014-10-30. BSY: dropped 1103 bars before a listing gap (2006-01-03…2010-05-20); windows use only the current listing starting 2020-09-23. CACI: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-05-04. CART: dropped 2883 bars before a listing gap (2006-10-31…2020-04-03); windows use only the current listing starting 2022-06-22. CCS: dropped 1288 bars before a listing gap (2007-06-13…2012-07-20); windows use only the current listing starting 2014-06-18. CCXI: dropped 2963 bars before a listing gap (2012-02-08…2024-08-23); windows use only the current listing starting 2026-02-09. CEG: dropped 1559 bars before a listing gap (2006-01-03…2012-03-12); windows use only the current listing starting 2022-02-02. CENT: dropped 630 bars before a listing gap (2006-01-03…2012-12-11); windows use only the current listing starting 2015-08-13. CENTA: dropped 316 bars before a listing gap (2007-02-15…2012-12-11); windows use only the current listing starting 2015-03-19. CHRD: dropped 1082 bars before a listing gap (2006-01-03…2010-04-21); windows use only the current listing starting 2022-07-05. CHTR: dropped 1 bars before a listing gap (2009-04-07…2009-04-07); windows use only the current listing starting 2010-09-15. CHWY: dropped 53 bars before a listing gap (2009-10-13…2009-12-28); windows use only the current listing starting 2019-06-14. CHX: dropped 713 bars before a listing gap (2006-01-03…2009-11-13); windows use only the current listing starting 2018-05-09. CLH: dropped 512 bars before a listing gap (2004-01-02…2006-01-12); windows use only the current listing starting 2008-12-15. CNR: dropped 1480 bars before a listing gap (2010-04-21…2016-08-18); windows use only the current listing starting 2017-11-29. CPAY: dropped 475 bars before a listing gap (2006-11-01…2008-10-17); windows use only the current listing starting 2010-12-15. CRWD: dropped 5 bars before a listing gap (2012-12-17…2015-02-20); windows use only the current listing starting 2019-06-12. CRWV: dropped 107 bars before a listing gap (2011-07-28…2012-01-30); windows use only the current listing starting 2025-03-28. CRY: dropped 3 bars before a listing gap (2023-11-06…2024-04-29); windows use only the current listing starting 2026-04-28. CSW: dropped 676 bars before a listing gap (2006-11-01…2012-10-23); windows use only the current listing starting 2015-10-01. CSWI: dropped 676 bars before a listing gap (2006-11-01…2012-10-23); windows use only the current listing starting 2015-10-01. DAVA: dropped 1 bars before a listing gap (2009-06-16…2009-06-16); windows use only the current listing starting 2018-07-27. DBX: dropped 581 bars before a listing gap (2006-01-03…2009-12-29); windows use only the current listing starting 2018-03-23. DD: dropped 3556 bars before a listing gap (2004-01-02…2018-02-16); windows use only the current listing starting 2019-06-03. DKNG: dropped 711 bars before a listing gap (2012-01-05…2016-06-13); windows use only the current listing starting 2019-07-25. DRAM: dropped 2850 bars before a listing gap (2006-01-03…2017-07-03); windows use only the current listing starting 2026-04-02. DT: dropped 1124 bars before a listing gap (2006-01-03…2010-06-21); windows use only the current listing starting 2019-08-01. DWAC: dropped 393 bars before a listing gap (2016-09-21…2018-04-13); windows use only the current listing starting 2021-09-30. EMC: dropped 3194 bars before a listing gap (2004-01-02…2016-09-08); windows use only the current listing starting 2023-05-15. EPC: dropped 200 bars before a listing gap (2009-03-25…2010-04-20); windows use only the current listing starting 2015-07-01. ES: dropped 1340 bars before a listing gap (2007-12-10…2013-05-24); windows use only the current listing starting 2015-02-19. EVTC: dropped 370 bars before a listing gap (2008-06-09…2009-12-03); windows use only the current listing starting 2013-04-12. EYE: dropped 793 bars before a listing gap (2006-01-03…2009-02-26); windows use only the current listing starting 2017-10-26. FB: dropped 154 bars before a listing gap (2022-06-09…2024-04-29); windows use only the current listing starting 2025-06-26. FBTC: dropped 480 bars before a listing gap (2006-11-01…2008-10-21); windows use only the current listing starting 2024-01-11. FEP: dropped 767 bars before a listing gap (2006-01-03…2010-02-24); windows use only the current listing starting 2011-04-26. FIG: dropped 2750 bars before a listing gap (2007-02-21…2018-01-22); windows use only the current listing starting 2022-05-17. FLEX: dropped 1191 bars before a listing gap (2004-01-02…2011-02-18); windows use only the current listing starting 2013-07-26. FLT: dropped 475 bars before a listing gap (2006-11-01…2008-10-17); windows use only the current listing starting 2010-12-15. FLY: dropped 3567 bars before a listing gap (2007-10-09…2022-01-18); windows use only the current listing starting 2025-08-07. FNA: dropped 524 bars before a listing gap (2008-06-09…2010-07-08); windows use only the current listing starting 2021-10-15. FOXA: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2013-07-01. FRPT: dropped 1503 bars before a listing gap (2006-01-03…2011-12-19); windows use only the current listing starting 2014-11-07. FTGC: dropped 130 bars before a listing gap (2011-07-05…2012-09-28); windows use only the current listing starting 2013-10-23. GMS: dropped 858 bars before a listing gap (2006-01-03…2009-06-01); windows use only the current listing starting 2016-05-26. GOLF: dropped 1403 bars before a listing gap (2006-11-01…2012-07-24); windows use only the current listing starting 2016-10-28. GOOGL: dropped 346 bars before a listing gap (2004-08-19…2005-12-30); windows use only the current listing starting 2013-12-18. HCC: dropped 2995 bars before a listing gap (2004-01-02…2015-11-23); windows use only the current listing starting 2017-04-12. IR: dropped 1906 bars before a listing gap (2006-01-03…2013-07-30); windows use only the current listing starting 2017-05-12. LB: dropped 87 bars before a listing gap (2021-08-03…2022-01-18); windows use only the current listing starting 2024-06-28. LBRT: dropped 4 bars before a listing gap (2012-12-27…2013-05-03); windows use only the current listing starting 2018-01-12. MBC: dropped 780 bars before a listing gap (2009-05-22…2016-10-03); windows use only the current listing starting 2022-12-15. MC: dropped 482 bars before a listing gap (2006-11-01…2008-10-17); windows use only the current listing starting 2014-04-16. MD: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-01-02. MICC: dropped 1362 bars before a listing gap (2006-01-03…2011-05-31); windows use only the current listing starting 2025-12-08. MMI: dropped 347 bars before a listing gap (2011-01-05…2012-05-21); windows use only the current listing starting 2013-10-31. MRP: dropped 534 bars before a listing gap (2006-01-03…2008-12-29); windows use only the current listing starting 2025-02-07. MSI: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2011-01-05. NAVI: dropped 1148 bars before a listing gap (2006-01-03…2011-04-20); windows use only the current listing starting 2014-05-01. NEE: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2010-06-24. NEO: dropped 454 bars before a listing gap (2004-03-16…2005-12-30); windows use only the current listing starting 2012-10-02. NVT: dropped 634 bars before a listing gap (2006-01-03…2008-10-17); windows use only the current listing starting 2018-05-01. OSCR: dropped 59 bars before a listing gap (2008-06-13…2008-11-17); windows use only the current listing starting 2021-03-03. OTTR: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-08-13. OUST: dropped 1030 bars before a listing gap (2008-02-11…2017-05-26); windows use only the current listing starting 2020-10-09. OWL: dropped 1452 bars before a listing gap (2006-01-03…2018-08-22); windows use only the current listing starting 2020-12-14. PDD: dropped 142 bars before a listing gap (2008-06-10…2010-08-20); windows use only the current listing starting 2018-07-26. PDX: dropped 755 bars before a listing gap (2006-01-03…2008-12-31); windows use only the current listing starting 2023-11-21. PECO: dropped 1 bars before a listing gap (2008-09-26…2008-09-26); windows use only the current listing starting 2021-07-15. PENG: dropped 183 bars before a listing gap (2008-11-13…2010-01-19); windows use only the current listing starting 2017-05-24. PHR: dropped 1226 bars before a listing gap (2008-07-22…2013-06-12); windows use only the current listing starting 2019-07-18. PINS: dropped 42 bars before a listing gap (2013-02-13…2013-12-23); windows use only the current listing starting 2019-04-18. PJT: dropped 1435 bars before a listing gap (2006-01-03…2011-09-14); windows use only the current listing starting 2015-10-01. PPC: dropped 1028 bars before a listing gap (2004-01-02…2008-12-01); windows use only the current listing starting 2009-12-29. PRE: dropped 3094 bars before a listing gap (2004-01-02…2016-04-18); windows use only the current listing starting 2022-05-18. RACE: dropped 6 bars before a listing gap (2009-06-12…2010-04-01); windows use only the current listing starting 2015-10-21. RAND: dropped 889 bars before a listing gap (2008-06-09…2017-12-27); windows use only the current listing starting 2020-04-01. REAL: dropped 399 bars before a listing gap (2006-01-03…2013-06-20); windows use only the current listing starting 2019-06-28. REX: dropped 448 bars before a listing gap (2006-11-01…2008-09-10); windows use only the current listing starting 2010-06-11. RIO: dropped 1342 bars before a listing gap (2004-01-02…2009-05-01); windows use only the current listing starting 2010-10-13. ROC: dropped 3016 bars before a listing gap (2005-08-17…2024-08-23); windows use only the current listing starting 2026-02-20. RRR: dropped 1238 bars before a listing gap (2007-06-04…2012-04-30); windows use only the current listing starting 2016-04-27. RTX: dropped 225 bars before a listing gap (2007-10-29…2008-10-17); windows use only the current listing starting 2020-04-03. S: dropped 4092 bars before a listing gap (2004-01-02…2020-04-03); windows use only the current listing starting 2021-06-30. SANM: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-09-14. SARO: dropped 353 bars before a listing gap (2006-01-03…2009-04-17); windows use only the current listing starting 2024-10-02. SLVM: dropped 330 bars before a listing gap (2008-06-23…2016-03-08); windows use only the current listing starting 2021-10-01. SMPL: dropped 557 bars before a listing gap (2012-11-13…2015-02-27); windows use only the current listing starting 2017-07-10. SNDK: dropped 3113 bars before a listing gap (2004-01-02…2016-05-13); windows use only the current listing starting 2025-02-24. SNEX: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2010-12-16. SUSA: dropped 124 bars before a listing gap (2012-04-24…2013-11-19); windows use only the current listing starting 2017-07-13. SWTX: dropped 166 bars before a listing gap (2011-03-18…2011-11-28); windows use only the current listing starting 2019-09-13. TE: dropped 534 bars before a listing gap (2006-01-03…2010-04-22); windows use only the current listing starting 2020-01-10. TEAM: dropped 1243 bars before a listing gap (2006-01-03…2010-12-13); windows use only the current listing starting 2015-12-10. THRM: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2012-06-13. TKO: dropped 974 bars before a listing gap (2006-01-03…2009-11-12); windows use only the current listing starting 2023-09-12. TLN: dropped 393 bars before a listing gap (2015-06-02…2016-12-19); windows use only the current listing starting 2024-07-10. TREX: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2009-11-23. TRU: dropped 1775 bars before a listing gap (2006-01-03…2013-01-29); windows use only the current listing starting 2015-06-25. TWLO: dropped 116 bars before a listing gap (2006-01-03…2009-05-08); windows use only the current listing starting 2016-06-23. USAR: dropped 23 bars before a listing gap (2016-02-22…2016-03-23); windows use only the current listing starting 2025-03-14. USIG: dropped 1433 bars before a listing gap (2007-01-23…2012-09-28); windows use only the current listing starting 2014-06-12. UTZ: dropped 2127 bars before a listing gap (2006-01-03…2014-07-24); windows use only the current listing starting 2018-11-26. VITL: dropped 712 bars before a listing gap (2006-01-03…2008-10-29); windows use only the current listing starting 2020-07-31. VR: dropped 2777 bars before a listing gap (2007-08-10…2018-08-20); windows use only the current listing starting 2022-04-28. VYX: dropped 1220 bars before a listing gap (2004-01-02…2008-11-13); windows use only the current listing starting 2011-01-05. WMG: dropped 1396 bars before a listing gap (2006-01-03…2011-07-19); windows use only the current listing starting 2020-06-03. WSC: dropped 1380 bars before a listing gap (2006-01-03…2011-06-24); windows use only the current listing starting 2017-11-30. WT: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2011-07-26. WWD: dropped 504 bars before a listing gap (2004-01-02…2005-12-30); windows use only the current listing starting 2011-02-01.
Fundamentals (F21) are self-computed from SEC EDGAR XBRL companyfacts x CBOE closes (rules: docs/signal-engine/fundamentals-v1.md). The field evEbitdaOperating uses OPERATING EBITDA = operating income + D&A and MUST be labeled 'EV/EBITDA (operating)' in the UI — deliberately NOT Yahoo's bottom-up NetIncome+interest+taxes+D&A, which absorbs non-operating swings (decision verified on GOOGL 2026: 56.3B TTM equity gains make Yahoo show 19.7 where the operating ratio is 26.7). Forward P/E and PEG need analyst estimates we do not have — the fields do not exist in the data model. ETFs and IFRS/20-F filers (foreign issuers) have no us-gaap quarterly facts and are skipped with reasons in skippedTickers. Banks/insurers rarely tag OperatingIncomeLoss, so EV/EBITDA (operating) is honestly n/a there. Share counts are sanity-anchored against the Nasdaq market cap; dual-class filers whose dei cover-page count is per-class fall back to weighted-average diluted shares (noted per ticker).
Skipped tickers (8931)
8931 items were skipped during ingestion — mostly unmapped CUSIPs and non-equity 13F lines, plus non-US listings and fetch failures — and are therefore absent from the universe.
…and 8731 more — the full list lives in src/data/generated/meta.json.
Core principle
Hype language alone never creates a high score. A short but precise signal from a historically strong voice can score higher than a viral, low-quality post. Engagement is considered but is never the primary factor.
Conviction Score (0–100)
Scored per individual signal
Clarity of direction
Is the directional view unambiguous?
High
Strength of argument
Quality and specificity of the reasoning.
High
Depth of reasoning
First- vs second-order analysis and evidence.
High
Historical accuracy of the voice
Track record of the contributor on similar calls.
High
Repetition over time
Consistency and reinforcement across posts.
Medium
Source quality
Primary research vs reposted commentary.
Medium
Position disclosure
Whether the author discloses a position (if available).
Medium
Confirmation by other credible voices
Clustering of independent, quality sources.
Medium
Confirmation by earnings or KPIs
Whether fundamentals corroborate the thesis.
Medium
Engagement
Considered, but never the primary factor.
Low
Conviction labels:Low <40Medium 40–59High 60–79Very High 80+
Social Signal Score (0–100)
Aggregated per stock
The stock-level score aggregates the underlying signals, weighting the quality and independence of voices over raw volume.
Number of relevant mentions
Quality of voices
Sentiment
Sentiment change
Conviction of signals
Frequency over time
Clustering across multiple voices
Watchlist confirmation
Earnings or KPI confirmation (if available)
What counts as a Qualified Signal
The platform tracks Qualified Bullish Signals and Qualified Bearish Signals
Counts as qualified
A relevant voice clearly expresses a directional stock thesis with enough conviction and reasoning — a bull case, bear case, thesis change, or position disclosure backed by an argument. Concretely: a signal is Qualified at a conviction score of 60+.
STOCK-Act disclosure exception: trade disclosures (Congress PTRs and executive-branch financial disclosures such as the President's OGE Form 278-T filings) carry no written thesis, so their conviction score is a documented function of the disclosed amount range. Such a signal is Qualified when the reported transaction range starts at $50,001 or more (conviction 50+) — the flood of $1,001–$15,000 micro-trades is exactly the noise the Qualified filter exists to remove, while large disclosed buys and sales stay in.
Does not count
Jokes and memes
Pure news reposts
Vague “interesting” comments
Retweets without an own opinion
Automated bot posts
Unclear or ambiguous mentions
Insider Transactions (SEC Form 4)
Per-stock disclosure section and the Cluster Buys Monitor
Legally required disclosures of trades by corporate executives, directors and 10% owners, filed with the SEC (Form 4). These are lawful, reported transactions — not to be confused with illegal insider trading.
Per-stock section
Stock pages show the newest Form-4 rows of the last 12 months with the transaction date AND the filing date side by side (the lag is part of the data), the role exactly as filed, and a source link into SEC EDGAR per row. Values appear only where the filing reports both share count and price — never estimated. “Buy”/“Sale” wording is used only for open-market codes P/S; awards, grants, gifts and option exercises keep their own labels.
Cluster Buys Monitor (rule v1)
A stock joins once open-market purchases (Form 4 code P) by 3+ distinct insiders land within a 30-day window with a combined reported value of $200,000+ (rule calibrated 2026-07 against the real data; variants documented in the pipeline). Membership is dated at the FILING that completed the cluster — never back-dated to the trades; missing prices contribute $0, so a cluster is never formed on guessed value. Distinctness is by filer name as filed — a person filing alongside their investment vehicles counts as multiple filers, and every filer name is shown in the membership reason. Descriptive screen, mechanically generated. Not a recommendation.
Coverage
Form-4 data covers the fundamentals universe (tickers traded only by politicians are excluded for runtime, documented in the data status above). Where the source feed caps a heavy ticker's history, the section says its counts undercount.
Known limitation
The current feed (aggregated by QuiverQuant) does not mark Form 4/A amendments and ships no accession numbers, so amendments cannot be deduplicated against originals yet — the planned EDGAR-direct migration fixes this and adds exact filing links.
The deterministic rules behind every performance number
When a Qualified Signal is created, we record the influencer, ticker, signal date, signal price, direction, conviction, source, and thesis summary. Signal performance is tracked over 7, 30, 90, 180, and 365 days versus a benchmark; windows that have not elapsed yet stay empty — they are never extrapolated.
Virtual start capital
Each voice gets a virtual 100,000 portfolio starting on the day of its first signal.
No look-ahead
Trades execute at the close of the NEXT trading day after a signal — never at prices the signal could not have known.
13F funds
On each filing date the portfolio rebalances to the filing's top-15 positions by value. The signal date is the filing date — the ~45-day reporting lag stays visible. History covers the last ~6 quarterly filings per fund; each quarter-over-quarter difference is recorded as trades on the filing date.
Stock splits in 13F data
A 13F reports share counts and values as of the quarter end and is never restated afterwards, while our price history is adjusted backwards for splits. We measure the ratio between a filing's implied share price and the adjusted close of that quarter — that ratio IS the cumulative split factor since then, derived from two independent sources rather than a split calendar. It is only accepted when it matches a simple split ratio, never grows over time, connects to an explained neighbouring quarter, and is confirmed by at least two independent filings; accepted factors put every quarter's share counts on today's basis, so a split can never masquerade as a fund buying more. Share counts named in a signal are therefore the split-adjusted equivalent of the filed number, not its literal wording — the position VALUE, and every weight derived from it, stays exactly as filed. Ratios that fail these checks are left out and listed with their numbers, never estimated: we drop the individual filing line first, then the CUSIP mapping, and only a ticker that has no reliable mapping left at all.
Theme & engine lists
Curated theme lists rebalance monthly; engine lists (e.g. Fresh 13F Buys) follow their stated rule, and rule-driven exits appear as list-update trades. Their backfilled history is an honest backtest of the CURRENT list applied to the past 12 months — list-selection decisions are not back-dated, so this history carries survivorship bias and is labeled as such on each portfolio.
X voices
Voice trackers (category “Voices”) rebuild positions from an account's own public posts via the official X API. Their history starts at the first real post we ingested — it is never extended with invented past trades.
Image-posted portfolios & trade receipts
Some voices post their exact portfolio or trades as IMAGES. For those accounts we fetch the attachments via the official X API and extract them with a documented vision pipeline (results below a 0.75 confidence threshold or failing structural checks are never used). A full-portfolio screenshot is snapshot ground truth: the tracker rebalances to the pictured positions at the POST date, 13F-style, and the deviation from the previous virtual book is recorded as one trade linking the original post; pictured weight we cannot price stays in cash — never renormalized away. A broker trade receipt becomes a signal at fixed conviction 80 (“Very High” — it discloses an executed trade, not an opinion). Image ground truth beats text: on a snapshot day, same-day text signals keep appearing in the feed but their portfolio effect is superseded by the snapshot.
STOCK-Act trackers
Politician trackers (House PTRs, Senate disclosures, the President's OGE 278-T financial disclosures) date every signal at the FILING, never the trade — the up-to-45-day disclosure lag is the real information delay a follower faces. Amounts stay disclosure ranges; disclosed sales close the whole virtual position; option rows map to the direction of the underlying only, where the source provides option data at all.
Social voices
A bullish signal buys a target weight of min(25%, conviction/100 × 20%) from cash; a bearish signal on a held position closes it. Cash earns no interest.
Inverse Cramer rule
The Inverse Cramer Tracker mechanically inverts stock calls posted by @jimcramer on X: a post classified as a bullish call on a specific stock becomes a virtual SHORT, a bearish call a virtual BUY — sized by the same conviction formula as every buy and executed at the next trading day's close. Classification admits only unambiguous single-stock calls; ambiguous, ironic, question-form, sector-level or analyst-attributed posts are discarded with documented reasons. Data basis is ONLY his public X posts (not TV segments — a narrower subset than TV-based inverse products). Shorts are frictionless (no borrow fees, margin or squeeze risk) and have no unwind mechanism in the source — a counter-call nets the position; the ruin rule liquidates the book the first day NAV reaches 0. Virtual, satirical tracker portfolio — not investment advice or a recommendation to buy, sell or short any security; not affiliated with or endorsed by Jim Cramer or CNBC; performance simulated and reported against SPY whichever direction it takes.
Returns & alpha
NAV is computed daily. Window returns (30/90/180/365D) are NAV returns; alpha is the NAV return minus the S&P 500 (SPY) return over the same window.
Hit rate (90D)
Share of QUALIFIED bullish signals with positive 90-day alpha. Only fully elapsed windows count — voices without qualified signals show no hit rate.
Trades
Every composition change of a tracking portfolio is recorded as a virtual trade, dated at the public disclosure (filing or post date) — never the earlier transaction date. Signals without a composition effect never create a trade.
Performance is virtual (no real money) and historical — it does not guarantee future results. Voices below the minimum signal threshold are flagged as small sample to avoid ranking on a single lucky call.