Skip to main content
All six views require stats.read. Counts, cohorts, and rankings include only traders whose signals the caller can access. These are current calculations, not generated narrative summaries or backtests.

Views and controls

REST paths below start with /v2/signals/. Each ranked view accepts limit, which defaults to 50 and cannot exceed 50. There is no cursor pagination. Unknown parameters are rejected. Count thresholds are positive integers. Win rate ranges from 0 to 100. Movement thresholds must be positive. Early Opportunities supports 1, 7, or 30 days and requires minTraders <= maxTraders. Defaults select two or three same-direction holders.

Calculation rules

  • Trending ranks the change in net open trader count between now and the earlier cutoff. This is not activity across two adjacent windows.
  • Specialist Ideas uses YTD positions and their earliest 30D evaluation. Only ready evaluations with a return count. Assets with qualifying clusters in both directions are excluded.
  • Early Opportunities ranks start-to-current movement in the held direction, not the largest move within the window. movementPercent is signed market movement, so qualifying short rows have negative values.
  • Crowd Fade ranks the crowded direction’s open return, then shows the opposite fadeDirection. Missing returns sort last. A positive return is not required.
  • Smart Money ranks traders by median 30D return on YTD positions, with at least 10 scored positions by default. minLeaderEvaluations changes this minimum without changing specialist eligibility. The top 20% of eligible traders and same-asset specialists form Smart Money, without double counting. Crowd is everyone else eligible. Each net percentage includes non-holders in its denominator. gap is the absolute percentage-point difference between opposing net positions.
  • Leaders’ Book uses a curated roster of 30 traders, independent of Smart Money’s leaders. It includes each accessible listed trader who has an eligible open position and returns their full eligible open portfolio. Portfolios rank by median 30D return on YTD positions. Traders without scored positions have medianReturnPercent: null and evaluatedCount: 0 and sort after all scored traders, including negative performers. Ties sort by trader ID.
  • Leaders’ Book confluence includes assets with at least two listed traders holding the same side and positive net positioning. Unscored traders contribute too. Groups rank by net trader count, then highest unrounded open return, with a cap of 10 applied after ranking. Missing returns sort last within equal net counts; remaining ties use asset ID and direction. It does not fill empty slots with another trader’s positions. Ranking is recalculated on each request using the latest stored prices.
Leaders’ Book reports minLeaderEvaluations: 0 because its roster has no evaluation minimum. Its leaderCount: 30 describes the roster size, not the number of returned portfolios. Missing performance, hidden traders, and closed positions do not cause substitutions from outside the roster. The response echoes applied parameters and calculationAt. Rankings and thresholds use unrounded values. Display percentages use two decimal places. Group openReturnPercent compares the average entry with the current price. It is null when any required entry or current price is missing. Asset, trader, and position IDs use the same canonical IDs as the existing discovery and position reads.

Prices and incomplete results

Current prices come from the latest-price table. currentQuoteAt preserves each quote’s actual timestamp. The API does not refresh prices on demand. Early Opportunities requests historical prices for candidate assets at one shared historicalRequestedAt minute. End prices can have different timestamps, so effective window lengths can differ. historicalQuoteAt stays null when Core does not expose the actual quote timestamp. coverage counts available, missing, failed, and explicitly known insufficient-history assets. Early Opportunities returns separate latest and historical coverage. Unknown missing data is not labeled insufficient history. Missing prices do not become zero returns. Partial coverage can return valid results. Early Opportunities omits groups that lack a required price and reports missingPriceGroups. If every required retrieval fails, REST returns 503 SIGNAL_PRICES_UNAVAILABLE and MCP returns an error result. A calculation that exceeds its execution budget returns 504 SIGNAL_TIMEOUT over REST or an MCP error result.
Last modified on September 30, 2026