What the numbers on this site mean, how often they change, and how we check them against ourselves.
Currently flagged: ast-fun, alpaca-finance. Flagged assets keep their page but their price is not treated as reliable until the disagreement clears.
A current price and a price history reach us through separate paths. That redundancy is useful: if the two disagree by an order of magnitude, one of them is wrong, and the disagreement is visible without needing an outside reference to compare against.
Every few hours we compare each asset's current price against the most recent candle in its own stored history. The tolerance is wide on purpose — a volatile coin can move a long way in a day — so the check is looking for unit and mapping errors rather than for price movement.
It is not a theoretical safeguard. It is how we found that an entire class of currency pairs was being stored inverted, and how we found ten coins that had picked up a different project's price history because the two share a ticker symbol. Both were fixed; the check is what surfaced them.
Different markets move at different speeds and we do not pretend otherwise. Each value is classified by the feed that produced it, not by its category: crypto is polled every three minutes where Binance carries the pair and every fifteen otherwise; metals are front-month COMEX futures that Yahoo Finance publishes about ten minutes behind the exchange, so they are labelled delayed rather than live; foreign-exchange rates are European Central Bank reference rates published once per business day. Presenting a once-a-day rate as an intraday quote would be misleading regardless of how recently we fetched it, and so would presenting a ten-minute-old futures quote as one.
Prices are recorded as they happen and kept. That matters for a reason worth stating plainly: a chart assembled on demand from somewhere else disappears the day that source changes its terms, while a history we have stored does not.
Where an asset trades on a venue with a public candle feed, we store real open, high, low and close values. Where it does not, we currently store no candles at all rather than manufacture them, so those assets show a price and no chart.
This page previously said we build daily bars from our own price samples in that case. That was not true — no such code existed, and at our present sampling rate a bar built that way would rest on a handful of readings whose high and low would be fiction. The gap is real and we are closing it with a second candle source rather than by inventing the data.
Chart patterns, candlestick patterns and indicator events are detected automatically from stored candles. Where we quote a historical success rate, it is measured against a baseline: the rate at which price moved the same way over the same period without any signal at all. A raw win rate in a trending market mostly measures the trend.
That comparison sometimes produces unflattering results, and we publish those too. Several widely followed signals — including the 50/200 moving-average crossover — have performed no better than the market did on its own across the history we hold. A statistic is only worth showing if it is allowed to say no.
Rates are withheld entirely below thirty recorded occurrences. A percentage over a handful of cases invites a conclusion the data cannot support, and a footnote does not undo that.
Chart patterns are detected geometrically from stored candles. The percentage on a pattern card labeled shape fit measures how closely the price structure matches the textbook geometry — it is not a probability of success and is never presented as one.
Success probabilities come from backtests instead: every historical occurrence of a pattern type is replayed against what price actually did next, aggregated across all assets of a class. Each published rate appears beside its sample size and a random-walk baseline — the rate a coin-flip entry with the same target and stop would achieve — because a hit rate without its baseline quietly poses as skill. Detections also pass a quality gate first: impossible levels, targets inside an asset's ordinary daily noise, and stablecoin noise are rejected before publication, with the rejection reason stored.
The score (0–100) is a market-strength reading computed from six measured components: trend versus the asset's own moving averages, momentum, the accumulated edge of its recent signals, quality-gated pattern activity weighted by backtested edge, volume against its own 30-day median, and news attention. Weights are fixed and documented; when a component's data is missing it drops out and the rest renormalize — absence is never treated as neutrality.
Every stored score carries its algorithm version and full component breakdown, so any number the site has ever shown can be traced to the formula that produced it. It is not a buy or sell rating, and the interface says so wherever it appears. We have no news-sentiment feed, so the attention component measures how much the market is talking about an asset — not what it is saying — and is labeled accordingly.
Descriptive text on asset pages is generated from each asset's own recorded facts and must pass an automated QA gate before publication — checks for duplicated words, leaked formatter values, unresolved placeholders and impossible figures. A failing document never replaces previously published good content. The standards it is held to are in the editorial policy.
For tokens with a published contract address we read what the contract itself permits — whether supply can still be minted, whether an authority can freeze or seize balances, whether the owner is hidden, whether trading can be blocked. This describes code, not conduct. It cannot tell you whether a team will deliver or whether reserves exist.
The scanner returns the same finding for a regulated stablecoin as for an anonymous token: an authority can freeze balances. For one of those that is the exit, and for the other it is the disclosed design — Circle can freeze USDC because law requires it to, and minting is how redemption works at all. Reporting “USDC: high risk” would be both wrong and unfair to a real issuer.
So powers that are standard for an asset class are listed separately as issuer controls and excluded from the verdict, while the facts stay on the page — a holder genuinely should know who can freeze their balance. Anything outside that list is counted in full: a hidden owner, a creator with a history of abandoned tokens, or a modifiable transaction fee is explained by no asset class and is reported as found.
A token with no report shows no panel. Absence of a scan is not a clean result, and an empty box in that position would be read as one.
A page shows what exists rather than filling gaps with placeholders. If we hold no project description, there is no description section; if an asset has too little history for a chart, the chart is absent rather than drawn from two points.
Pages that do not yet rest on enough asset-specific data are published and browsable but are not submitted to search engines. They become eligible automatically once enough material accumulates — nothing is manually promoted.
If a figure looks wrong, it may well be. Reach us through the contact page with the asset and what you expected to see. Data errors are worth more to us than they are to you, and the integrity check above exists because they happen.