Every signal forwarded through RebateMax, graded against exchange candle data. The same 2934 trades are profitable or unprofitable depending on a single decision — so both figures are published, side by side, at the same size.
1023 trades sit on the fence. Each one touched a profit target and then reversed into its stop. Book at the target and they're wins. Hold and they're full losses. Flip the switch above and watch them move.
Graded
3076
Trades
2934
Delivered
3076
Channels
9
Ungradeable
549
Two counts, kept separate: the 3076 graded are channel-quality figures. 0 were recovered after a July outage and never delivered to subscribers, so 3076 is the delivered-and-graded count. Outage-replay signals count toward a channel's record but never toward any "delivered" figure.
01By channel
The left bar is the scale-out figure. The right is the same channel if you never take profit. A channel where the second bar collapses produces trades that go your way first and then reverse — those demand that you actually book. The pale gold band behind the scale-out bar is the 95% confidence interval; where it is wide, the sample is too small to rank.
Bars clamp at −1.7R to +3R so one outlier doesn't compress the rest; a confidence band running past the edge is marked with a chevron rather than silently truncated. Channels below 20 graded signals are shown for completeness, not as a ranking — at those sizes the interval spans most of the plausible range and the mean is close to meaningless.
02The fine print, which is the point
Win — price reached the final target. Scored at the R that target represents.
Partial — price reached at least one target but not the last one. Scored at the highest target touched. This splits two ways: 247 reached a target and then the seven-day window expired with the position still open, and 1023 reached a target and then hit the stop. Under scale-out both are positive. Under hold-to-exit, the second group are full losses.
Loss — the stop was hit and no target was ever reached. Scored at −1.00R. There are 722 of these.
Expired unfilled — the entry zone was never touched inside seven days. Not a trade. Scored at zero and shown separately (142 of them, excluded from every mean on this page), because averaging a non-trade into a trading record drags the mean toward zero for no reason.
Expired open — still open at the seven-day timeout, marked to its level at that point (32 signal). Counts as a trade in both conventions.
Unresolvable — the signal could not be graded. 549 of these exist and they are excluded from every number on this page. Reasons are in 05.
The rules are frozen. They were written before the data existed and they are not re-tuned when the numbers come out unflattering.
Entry — a signal fills when price touches the entry zone. For R purposes the entry is the touched boundary of the zone, not its midpoint. Resolution — stops and targets resolve on touch, using one-minute candles. Ties go against the signal: if a candle contains both the stop and a target, the stop wins — the pessimistic reading, deliberately. Timeout — seven days from post; a position still open then resolves at the highest target reached, or as unresolvable if nothing was reached. R is (exit − entry) ÷ (entry − stop), signed by direction, so a stopped-out trade is exactly −1.00R by construction. Source errors are never repaired — a typo, a missing stop, or an impossible target is marked unresolvable and left that way.
Fees, funding and slippage. Every figure is gross — R is computed from the signal's own levels and does not model what you pay to trade. A small positive R gross can be negative net of costs. Mid-trade management: two source channels post follow-up instructions (take partial, move the stop to entry); the resolver doesn't read them and grades the original signal as posted — which misses the protection they give and also credits runs management would have exited. Cancellations: a source withdrawing a signal mid-flight isn't reflected; outcomes are derived from price action. Your execution: these are the signal's levels, not your fills — slippage, latency, sizing and selection all change the result. Nobody's real record matches a backtest.
The resolver tries exchange candles in this order: Binance futures, then OKX, then BingX. That is the configured order, and for a long time we described it as though it were the outcome. It isn't. Binance blocks our server's region, so the first call fails every time and falls through. Measured across the 2,214 graded trades published here (16 October 2026): OKX supplied 1,597 of them (72%), BingX 582 (26%), and Binance none at all. BingX is our referral partner — we earn commission on trading fees generated there, so better than a quarter of this record is graded against data from the venue that pays us. That is a conflict, and you should weigh every number on this page knowing it. BingX was added because the neutral sources don't list many smaller alts; before it, those signals couldn't be graded at all, and their absence made every channel look better than it was, because ungraded pairs skew toward the thin and volatile. Adding it moved most channels' numbers down. We would rather publish the real split than the intended one.
549 signals could not be resolved and are excluded from every figure on this page:
Most are source data errors — a target, stop, or entry on the wrong side of the trade, a mis-scaled price, or a post we couldn't parse. Only two omit a stop loss entirely, which makes R undefined. None are pairs no supported exchange lists; adding BingX closed that gap. A high unresolvable rate on a channel is a data-quality signal about that channel, not a neutral gap — we show it rather than quietly dropping those rows.
Sample size: 3076 signals across 19 weeks — enough to see shape, not enough to be confident about any individual channel, and nowhere near enough to project forward. Some numbers aren't comparable across time: three changes altered what gets graded — an ingestion fix that stopped no-stop-loss signals being counted, the addition of BingX price data, and the removal of duplicate posts — so figures before and after each aren't like-for-like.
Verification is thinner than this page has implied. An audit on 1 August 2026 established how these outcomes are actually produced, and the answer is not what the section above describes.
Every signal is rewritten into a standard format by a language model before it is graded. The resolver reads that rewrite, not the original message. Of 311 scored signals, 311 had their R computed from the rewrite. None were computed from the source text.
A separate source-side check does run at ingest, but it can only read three of the seven channel formats - it reaches about 18% of the book. For the other 82%, including the two largest channels, it passed by comparing nothing to nothing.
The audit compared every rewrite against its source message. 307 of 311 were byte-identical on every price. Four were not: three had a fifth target dropped by the rewrite template, none of which changed an outcome, and one had a source typo silently corrected - which is a thing the rules above say never happens.
That row has been voided. It was a winning trade and its R was arithmetically correct, but a reader applying the published rules to the source message would have marked it unresolvable, and could not have arrived at the number shown. Reproducibility is the claim; the row failed it.
What this means for the figures above: no published number was wrong, and the correction moved the aggregate by less than a hundredth of an R. What was wrong was this page's account of how the numbers are made. Source-side grading and full-dialect coverage are the fix, and neither is built yet. This note will be updated with a date when they are.
Update, 16 October 2026 — the check is now reproducible, and has been re-run on the whole book. The 1 August audit was done by hand and the script was never kept, so for ten weeks we published a result nobody could reproduce, ourselves included. That script now exists as scripts/recon.mjs in the repository and anyone can run it. Re-run across all 3076 graded trades: every entry bound, every stop and every take-profit the resolver graded on appears verbatim in the message the provider actually sent — no discrepancies. Of the winning trades whose exit target can be identified, all of them exited at a price present in the source. Before trusting a clean sweep we tested the checker against cases it must reject — a stop off by one digit, a number appearing only inside a longer number, a number absent entirely — and it rejects all of them, so the result is not an artefact of a check that cannot fail.
What that update does not say. It is a transcription check: it asks whether we graded the numbers the provider sent. It does not re-grade anything against candles, and it is not the source-side grading promised in the paragraph above, which is still not built. A clean transcription result says our arithmetic was applied to the right numbers. It says nothing about whether the signals were any good — that is what the two averages at the top of this page are for.
03Check it yourself
Pick any channel, take a signal from the community history, and run it: find the entry, stop and targets, pull the one-minute candles for that pair from the exchange, and see which level price touched first. That is the entire method — about five minutes per signal. If you find one graded wrong, say so publicly and it gets corrected here with a note.
Why grade signals this way at all, and what the answer turned out to be: Do crypto signals actually work?
Past results do not predict future results. This is general information, not financial advice. RebateMax aggregates third-party signals and does not generate them.