How a Belphor signal's outcome is measured
Updated 3 October 2026 · by AtroX · Belphor Research · the data behind this guide
What does a signal peak measure?
The highest price Belphor saw after a signal, compared with the price when the signal was detected. It shows that the coin traded that high at some point. It does not show that anyone could sell there, where the coin ended, or what a trade earned after fees and slippage, which is why every table that prints a peak also prints a later reading.
Peak, printed as "reached +X%": the highest price observed after detection, divided by the detection price.
From the live weekly page, updated 2026-10-10 (the seven days to 2026-10-10, n 302): "Of the 302 ignitions with a later reading, 49% reached +15% and 21% reached +50%, while 12% were at a fifth of their detection price or lower." The first two shares are peaks; the last is the latest reading, and one coin can be in both.
Read next: how this is measured, on the live weekly data page.
Every signal is measured against its price at detection: "reached +X%" uses the highest price seen after it, "down 80% or more" uses the most recent price reading taken at least six hours after it, and, where a table applies the ten-reading rule, a share computed over fewer than ten such readings is printed as "too few readings" instead of a number. The six tables at belphor.com/data are recomputed daily from the raw record; this page describes their method as it stood on 3 October 2026.
- The reference is the price at detection; every multiple is a later price divided by it.
- "Reached +X%" is a peak: the coin traded there at some point. It says nothing about where it ended.
- "Down 80% or more" is the latest reading, at least six hours after detection, at 20% of the reference or lower. It replaced the label "went to zero" on 23 September 2026, because the measure never was zero.
- Where a table applies the ten-reading rule, a share over fewer than ten readings prints "too few readings" (null in the JSON), and two rows are compared in words only when both hold 30 or more and differ by more than two points.
The reference price
Every outcome starts from one price: the price at detection. For a takeover it is the price when the takeover instruction executed, for a migration the price when the new pool appeared, for an ignition the price when the scanner found the pool. Every multiple on the data pages, a peak of 1.56x or a latest reading of 0.50x, is a later price divided by that one. Prices come from Belphor's own snapshot record of DexScreener pair data.
"Reached +X%": the peak
A signal reached +50% when the highest price observed after detection was at least 50% above the detection price. The peak says the coin traded there at some point. It does not say a buyer could have sold there, and it says nothing about where the coin ended, which is why every table that prints a peak also prints a later reading.
"Down 80% or more", and why it is not "went to zero"
A signal is down 80% or more when its most recent price reading, taken at least six hours after detection, was 20% of the detection price or lower. On the ignition table a pool that drained below $1k of liquidity counts as zero. Until 23 September 2026 the same column was labelled "went to zero"; the label changed because the measure never was zero. A coin at 0.19x of its detection price, the median latest reading of the takeovers between $15k and $50k as of 3 October 2026, is down 80% or more without being at zero.
Covered: which signals have a later reading
A signal is covered when Belphor holds a price reading for it at least six hours after detection. Every "down 80% or more" share is computed over covered signals only, and the covered count is printed beside it in the "With a later reading" column. Where coverage is partial the share describes the covered coins, not the whole set: on the takeover table, 22 of 352 takeovers are covered, so the share down 80% or more describes only the 22 covered coins. The other 330 have no qualifying later reading, so the rate for all 352 is unknown. For CTO outcomes, peak rates use the eligible takeover count. The weekly page computes its rates over covered signals. Use the denominator stated by each table.
The ten-reading rule, and why the JSON prints null
Some outcome rates are suppressed below ten qualifying observations. This is not a universal rule across the six tables: time-to-peak distributions include smaller samples. Read each table's denominator and suppression rule. Where the rule applies, the page shows "too few readings" in that cell, the CSV leaves it empty beside the covered count, and the JSON prints null for the rate. The JSON keeps the raw share under a key of the same name ending in _raw, so the arithmetic stays checkable, and the file says plainly that it is not an estimate. Belphor's guides never quote a _raw value.
When two rows differ: the thirty rule
The data pages compare two rows in words only when both rows hold at least 30 signals and their shares differ by more than two points. Otherwise the page says "the record does not separate them", whatever the numbers look like. Every guide built on these tables uses the same rule, which is why the entry-timing guide, on twelve takeovers, separates nothing.
What gets left out
Demo and test rows are excluded everywhere. A radar signal is excluded when its price cannot be verified: a market cap above $250M at detection, or a peak of 100x or more with no matching price snapshot in the record. The count of excluded rows is printed under each table it would have changed. Periods when part of the detection was not recording or not alerting are written into a detection record on the pages they affect, so a gap in a table is never silent.
The six tables
| Page | Window | Who counts | Sample | Formula |
|---|---|---|---|---|
| This week | 7 days | Eligible detections in the window; rates require a reading at least 6 hours later | 2,225 signals, 2,102 covered | v1.1 |
| CTO outcomes | 90 days | Takeover at least 24 hours old | 352 takeovers, 22 covered | v1.2 |
| CTO entry timing | 45 days | At least 37 hours old, 30 or more minute readings in the 36 hours after | 12 takeovers | v1.2 |
| CTO time to peak | 60 days | As entry timing, and a peak at least 10% above the alert | 9 of 12 takeovers | v1.2 |
| Ignition survival | 8 August to 3 October 2026 | A reading at least 6 hours after detection | 9,510 signals | v1.3 |
| Migration outcomes | 25 August to 3 October 2026 | A reading at least 6 hours after migration | 8,590 migrations | v1.3 |
Fetched from the public JSON of each page on 3 October 2026. Every page is recomputed daily from the raw record; this table is a dated snapshot of their samples.
Reproducing a number
Each page carries a "Cite as" line with its formula version, the first characters of an input hash, and the covered and missing counts. The weekly page also freezes the source row ids and the values it read, and hashes them into that line, so any week can be reproduced after the fact. Every page has a JSON and a CSV twin with the same numbers, under a CC BY 4.0 license: reuse them with attribution to Belphor.
What the method does not do
It does not measure trades. A detection is not an entry: a real buyer arrives later, pays network and platform fees and slippage, and exits by a rule that may sell long before the peak or long after it. The cost side is in crypto trading fees explained, and testing a rule against live prices before risking money is in paper trading crypto. The guides built on this method: takeover success rate, entry timing, time to peak, migration outcomes, death rate by pool age and the score against outcomes.
Belphor Data: the six public tables this method describes, each with its sample size, its window, its method block and its JSON and CSV twins. Recomputed daily.
Frequently asked
What does down 80% or more mean on Belphor's data pages?
The most recent price reading, taken at least six hours after detection, was 20% of the detection price or lower. It is not the same as zero: a coin trading at a fifth of its detection price counts, and so does one that no longer trades.
Why does Belphor's JSON print null for some rates?
Where a table applies the ten-reading rule, a rate computed over fewer than ten readings is printed as null in the JSON and as too few readings on the page. The raw share stays in the JSON under a key ending in _raw, and it is not an estimate.
Are Belphor's outcomes trading results?
No. They are outcomes of detected signals measured from the detection price, before fees and slippage. A trade enters after the detection, pays costs and exits by its own rule, so its result differs.
Belphor records pump.fun takeovers on-chain, scores each signal 0 to 100 and publishes measured outcomes with their sample sizes, windows and missing readings. Reflex Bot is coming soon and priced separately. The tables in this guide come from that record.
Explore Belphor →