Transparency
How the rank is built
This page describes the exact formula the site runs. The numbers below are read from the same constants the ranking module uses, so this text cannot drift away from the implementation.
The score
| Component | Weight | From | Definition |
|---|---|---|---|
| Quality | 50% | Stored feature AG_RANK | The cross-sectional quality rank stored by the pipeline. It combines the position of the short-term average above the long-term average, the distance of RSI 14 from its midpoint, relative volume and the share of positive days. |
| Trend | 25% | Stored features SMA_20, SMA_50 | A three-state reading of the 20-day against the 50-day simple moving average: above scores 75, below scores 30, equal scores the neutral value. |
| Momentum | 15% | Stored feature RSI_14 | A reading of RSI 14. Extended momentum (70 or above) and depressed momentum (30 or below) both score above the middle, because both are states worth watching. |
| Liquidity | 10% | Stored feature RVOL_20 | Relative volume scaled to a 0–100 range and clamped, so a single spike cannot dominate the score. |
| Sector position | 20% | Rank within the sector | Applied when ranking a whole market. Switched off inside a sector page, where the percentile would be the rank order itself. |
What the site refuses to do
- No invented values. A missing indicator renders as a dash. A pillar without input falls back to the neutral score of 50 instead of zero, so incomplete data is neither rewarded nor punished into an extreme.
- No silent rounding into a claim. Sub-scores are rounded for display only; the rank itself is computed on the unrounded values.
- No freshness theatre. The age of a dataset is measured against the newest bar it actually contains, not against the calendar, so a weekend does not make a fresh dataset look stale.
- No orders. InScan analyses stored data. It does not place, route or execute trades, and nothing here is personalised advice.
Where the data comes from
Prices and indicator values are ingested on a schedule from free market data feeds, normalised, and stored with a source, a known-at timestamp and a quality state per row. The site reads that store and adds no values of its own.
The universe, its sector and industry classification, and the date each instrument entered the index are reference data, not market data. They are curated rather than inferred.
Known limitations
- Fundamentals are not part of the score. Free market feeds do not provide a reliable fundamental history, so no valuation or profitability pillar is claimed. Adding one would be honest only with a data source that carries a point-in-time history.
- A rank is a statement about a dataset. It says an instrument compares well against its peers on these four inputs on this date. It is not a forecast and not a recommendation.
- Coverage is narrower than the market. The universe is a curated index membership, not every listed instrument. An instrument outside the universe cannot appear, however strong it is.
- Sentiment is not a signal. Where a sentiment value is shown, it comes from the ingestion pipeline and is displayed as-is, without weighting it into any score.
Generated 2026-09-27 11:35 UTC. Questions about the method belong in the repository that builds this site, not in a comment field. Back to the rankings.