Skip to content

ETF Research Methodology Wiki

Strength model, ETF support scoring, and screening workflow

Core Concepts

The app separates two questions:

  1. Ticker Strength: whether the stock itself has strong trend, momentum, relative strength, and price action.
  2. ETF Support: whether the configured ETFs that hold the stock create a broad and consistent supportive backdrop.
Important: being held by many ETFs only measures breadth. Support becomes more reliable when those ETFs are strong and span multiple universes.

Daily Decision Brief

The Today page is a monitoring brief for the next 1–5 market sessions. It combines ETF breadth, signal changes, disclosures, and one valid premarket or postmarket session to prioritize follow-up and risk checks. It is not personalized investment advice or a trading instruction.

  • Comparison baseline: only the immediately prior US market session is eligible. A missing or stale predecessor is shown as unavailable instead of treating an older snapshot as a daily change.
  • Posture: the scale runs from defensive, selective, balanced, and constructive to risk on. ETF scores ≥ 65 count toward strong breadth and scores ≤ 40 toward weak breadth; the full rule also uses the average score and strong/weak shares, subject to data-quality confidence caps.
  • Changes: signals are separated into new risks, new positives, persistent high impact, resolved, or current signals that cannot be classified because the baseline is unavailable.
  • Event window: disclosures are new only after the previous brief was generated and through the current build. A politician-trade disclosure is independently material from a $15,001 minimum amount; a smaller one needs same-direction corroboration. If both extended-hours reports qualify, only the more recently generated session is active.

The Watchlist holds at most three risk controls, three opportunities, and two event-driven names. Every row has machine-evaluable confirmation and invalidation conditions; unresolved rows expire on the fifth monitored session. The prior review only classifies conditions as confirmed, invalidated, still watching, or not evaluable; it does not calculate investment returns.

ETF And Ticker Strength Score

ETFs and stocks use the same local 0-100 model. Daily OHLCV and ETF holdings are raw inputs; this composite score is calculated locally.

ComponentWeightMain Inputs
Trend25Close location versus SMA20 / SMA50 / SMA200
Momentum2520-day and 60-day returns
Relative Strength2520-day and 60-day excess return versus SPY
Price Action2520-day range position, drawdown from 60-day high, and volume/price quality

score ≥ 65 is treated as strong, score ≤ 40 is treated as weak, and the middle range represents neutral, rotation, or transition regimes.

ETF Support Score

Support Score ranks the ETF backdrop for each ticker on a 0-100 scale:

Support = 45% × Weighted ETF Score + 25% × Strong ETF Share + 20% × ETF Breadth + 10% × Universe Diversity
InputCalculationPurpose
Weighted ETF Score Weighted average of ETF strength by the ticker's holding weight in each ETF Measures the quality of the most relevant ETFs
Strong ETF Share Strong ETF count divided by tracked ETF count Separates broad support from a few isolated leaders
ETF Breadth min(ETF count ÷ 5, 1) Rewards multi-ETF confirmation, capped at five ETFs
Universe Diversity min(universe type count ÷ 3, 1) Rewards cross-confirmation across universe types, capped at three

If ETF holding weights are missing, Weighted ETF Score falls back to a simple ETF strength average. Support Score does not include the ticker's own score, so the ETF backdrop and the stock itself can be evaluated independently. Support Score only uses tracked ETFs with local strength scores; the ticker detail exposure table also shows the full ETF exposure list, and untracked ETFs do not enter the score.

ETF Consensus Labels

LabelRuleInterpretation
Broad SupportAt least three strong ETFs and no weak ETFsThe ETF backdrop provides broad positive confirmation
Broad HeadwindAt least two weak ETFs and no strong ETFsMultiple ETF contexts are under pressure together
MixedBoth strong and weak ETFs are presentThemes or industries are diverging
LimitedNo rule above is metCoverage is thin or consensus has not formed

13D Ownership Activity

The 13D Activity view pulls recent SC 13D and SC 13D/A beneficial ownership filings. Ticker detail pages show only filings that match the app's ticker universe.

SC 13D is usually the highest-value signal: it is an active beneficial ownership disclosure above the 5% threshold and can include purpose, influence, or control intent. SC 13D/A is an amendment to an existing 13D and is useful when it updates stake size, intent, or other material details. SC 13G is more passive or institution-specific beneficial ownership disclosure, is not shown in the default 13D Activity view, and should not be weighted the same as 13D.

When structured beneficial ownership data can match the same ticker filing, the page shows the reporting person, current beneficial ownership amount, percent of class, and an inferred increase, decrease, new position, exit, or unchanged state by comparing the same reporting person's prior disclosed amount. The current structured fields do not include transaction price; they provide filing date and accepted date.

These records are regulatory disclosure events. They do not enter the Support Score and do not change ETF or ticker strength scores.

Politician Trading Activity

The Politician Trades view backfills the configured historical window from US congressional disclosure feeds and keeps rows whose ticker is in the current ticker universe. Ticker detail pages show matching disclosures with direction, amount range, and filing links.

These records are disclosure events. They do not enter the Support Score and do not change ETF or ticker strength scores.

How To Use It

  1. Open Ticker Support and set Minimum ETFs to 3+ or 5+.
  2. Sort Support descending and focus first on Broad Support tickers with Types ≥ 2.
  3. Compare Ticker Score. High support plus high ticker score means a strong stock inside a strong ETF context.
  4. High support plus a weaker ticker score means the backdrop is good, but the stock still needs its own price action to confirm.
  5. Broad Headwind plus low ticker score can be used to screen for downside continuation.
  6. Stocks that outperform a weak ETF can be found in the Rebound group inside an ETF's holdings view.
  7. Click a ticker to inspect the exact ETFs, holding weights, ETF strength, and relative performance versus SPY. This helps avoid results driven by one small ETF weight.

Strength Velocity

Historical strength can be interpreted with first and second derivatives:

  • Velocity: the recent slope of the strength score. Positive values mean strength is improving; negative values mean it is deteriorating.
  • Acceleration: the change in velocity. Positive values mean improvement is speeding up; negative values mean momentum is slowing.

The most useful combinations are usually a high absolute score with positive velocity, or an early repair setup where velocity and acceleration turn positive from a low-score area. Derivatives are noise-sensitive and should be read alongside absolute score, relative strength, and price structure.

RRG Rotation Trails

The home-page RRG uses 60-day relative return versus SPY on the X axis and RS20 - RS60 on the Y axis. Positive X indicates medium-term relative leadership; positive Y indicates improving short-term relative momentum. The 5D, 13D, and 21D controls show movement through Leading, Weakening, Lagging, and Improving quadrants.

To reduce overlap, the page defaults to sector ETFs and a 5-day trail. Every ETF's latest position remains visible, while only the six largest moves show trails by default. Hovering temporarily focuses any ETF; clicking keeps it focused and opens its detail view. Axis limits use the 95th percentile of absolute values so a single outlier does not compress the chart.

This is an RRG-style local approximation, not the proprietary JdK RS-Ratio / RS-Momentum calculation.

Data Scope And Updates

  • Prices, holdings, ETF exposure, and SEC filing metadata are used to build model inputs and display fields.
  • Benchmark: SPY.
  • ETF Universe: configured sector, thematic, style, regional, country, industry, and any other *_etfs groups.
  • Index Universe: configured index_universe sources only add index membership. They do not create ETF strength scores and do not enter Support Score.
  • Each ETF analyzes at least the top 25 US-tradable tickers by weight. If cumulative US-tradable weight is below 80%, the app keeps adding holdings up to 50. Non-US holdings stay in detail data, but are hidden from the UI by default and excluded from signal screens.
  • Ticker Support only scores tracked ETFs with local strength scores; ticker detail pages show the full ETF exposure list.
  • 13D activity uses the configured lookback window and form type list; the default is the latest 180 days of SC 13D and SC 13D/A.
  • The static site shows the latest build snapshot. The scheduled job updates after the U.S. market close.

Limits

This is a screening and context model, not a trading instruction.
  • ETF holdings can lag real portfolio changes, and issuers update at different frequencies.
  • A stock's weights across ETFs cannot be added into a total market ownership percentage.
  • The model does not understand earnings, valuation, news, liquidity, options positioning, or macro events.
  • Multiple ETFs can overlap heavily, so ETF count is not the same as independent information sources.
  • Historical momentum can reverse. Real use still needs entry rules, invalidation levels, and risk budgets.