PATTERN+ PREDICTIONS
Updated

Methodology · how every number is made

Methodology

How every number on PatternPlus is sourced, dated and computed, which pages are indexed, what the site refuses to do, and how to request a correction.

How it is made

How these pages are made

as of · .github/workflows/nightly.yml · web/freeze.py

Every page here is generated by code from public data and rebuilt every night. Nobody types a number in by hand, and every number carries its date.

Public data in. The nightly build fetches token and market data from CoinPaprika, daily prices from Binance (and from MEXC, Gate or KuCoin for coins Binance does not list), TVL from DefiLlama, unlock schedules from on-chain vesting contracts (Sablier, Hedgey, UNCX, Team Finance, Streamflow and Jupiter Lock), hacks from DeFiHackLabs' open incident list, contract security from GoPlus and Jupiter, developer activity from GitHub, and listings and delistings from the exchanges' own instrument lists and announcements. It then recomputes every event's price move, every pattern, prediction, setup and score, and writes every page from those numbers. Fresh data goes live around 04:00 UTC.

What the predictions are built from. Price history and a few dated facts: each coin's daily closes and trading volume, Bitcoin's trend, scheduled token unlocks, the coin's size and its type. Today's situation is matched to every similar past moment across every coin we track, and what happened next is counted (how predictions are made).

Checked automatically, every night. The build refuses to publish when its database holds no real data. The full test suite runs on a separate demo database before anything goes live, so live data never decides a test. The export follows every internal link and lists any that break, and a page stays out of search until its own data clears a threshold and most of its text is its own (which pages are indexed).

Dated, and misses kept. Each block names its source and the day its data was fetched or computed. The backtest is re-run every night using only what each past date knew; live predictions are stored the night they are made and scored when their window closes; patterns that failed stay on the Lab's board as failed, and the scorecard prints our hit rate next to the lazy guesses, edge or no edge. Corrections are logged, never edited in silently.

How we measure what followed an event

How we measure what followed an event

as of · PatternPlus

Every event carries six numbers: the price change from the last daily close before the event to the close 1, 7, 30 and 90 days after, the change over the 7 days before, and the difference between the token's 30-day move and Bitcoin's over the same window.

Closes are daily UTC closes from Binance (the spot market, or the perpetual market for a coin without a spot pair). A coin Binance does not list takes them from MEXC, Gate or KuCoin, the first that trades it against USDT, and only when that exchange's latest price for the ticker is within 10% of the coin's own price, so a ticker two coins share never lends one the other's history. The reference close is the close of the day before the event, so an announcement during the day is compared with the close of the previous day; when a listing is the coin's first day of trading there is no such close, so the first close on or after the event is the base and the run-up before it stays empty.

r_1 = close(event + 1 day) / close(event − 1 day) − 1; r_7, r_30 and r_90 use the same base. r_pre7 = close(event − 1 day) / close(event − 8 days) − 1. vs BTC 30 = r_30(token) − r_30(BTC), in percentage points.

Worked example, read off the record: OKX listed DOS on Aug 13, 2026. The Aug 12, 2026 close was the base; the Aug 14, 2026 close was 15.1% lower (day 1) and the Sep 12, 2026 close 34.7% lower (day 30); BTC moved +21.7% over the same 30 days, so vs BTC 30 is −56 points. Every listing and its numbers.

A number is empty, printed as "—", when the price series does not cover the window: the event is older than the series, or the window has not closed yet. Pending windows print the day the number will be recorded. Unlocks on the same date are aggregated into one event; a hack and its audit are separate events.

Medians per venue and kind (event_stats) are computed over every measured event on record; a median over fewer than five events is printed but not ranked. 2,224 effects are pending or unmeasurable as of Oct 4, 2026.

Limitations: daily closes hide intraday moves; listing dates come from instrument APIs and announcements and may lag the first trade by hours; effects are measured returns, never causation.

VenueKindnMedian next dayMedian 7 daysMedian 30 daysUp after 30 daysMean 30 days
all venues · all-time highall-time high429−4.1%−17.7%−40.3%6.1%−38.9%
all venues · US CPI releaseUS CPI release31+1.1%+2.8%+2.4%61.3%+3.0%
all venues · delistingdelisting16−16.3%−23.3%−18.9%6.2%−19.3%
all venues · Fed rate decisionFed rate decision21+0.1%−0.8%−1.9%47.6%+1.9%
all venues · perpetual delistingperpetual delisting11+2.3%−7.4%−16.1%0.0%−18.2%
all venues · perpetual listingperpetual listing147−2.1%−13.9%−23.0%29.9%−8.7%
all venues · hackhack75−5.4%−7.1%−14.3%30.7%−10.2%
all venues · hallmarkhallmark27−1.7%−3.2%−4.3%40.7%−0.8%
all venues · spot listingspot listing178−1.9%−10.2%−21.7%29.2%−9.1%
all venues · recorded eventrecorded event1−3.1%−1.3%+127.7%100.0%+127.7%
all venues · unlockunlock89−0.6%−2.5%−3.1%41.6%+10.1%
Binance · delistingdelisting3−21.5%−30.9%−6.7%0.0%−13.8%
Binance · perpetual delistingperpetual delisting10+1.6%−5.7%−19.2%0.0%−19.8%
Binance · perpetual listingperpetual listing9−0.1%−1.5%−31.6%22.2%−6.7%
Binance · spot listingspot listing71−1.9%−10.4%−19.0%31.0%−1.1%
OKX · delistingdelisting13−6.8%−8.9%−22.0%7.7%−20.6%
OKX · perpetual delistingperpetual delisting1+2.3%−11.5%−2.7%0.0%−2.7%
OKX · perpetual listingperpetual listing138−2.6%−14.1%−22.7%30.4%−8.8%
OKX · spot listingspot listing107−2.3%−10.1%−22.3%28.0%−14.4%

computed 2026-10-04 from every measured event on record

How odds are counted

How odds are counted

as of · data/odds.py · patterns + event_odds

Every odds figure on this site counts similar past cases — "N of M were higher" with a 90% range (a Wilson interval). Our predictions are built from those counts: what usually happens next, how likely it is, and how often we have been right. Prediction from past patterns, not financial advice; past patterns can stop working.

A pattern is a set of conditions on an event and its token at the time: the event kind; the venue; the token's market-cap bucket at the event date (micro under $50M, small $50–500M, mid $500M–$5B, large above $5B, from the nearest daily snapshot); its category group (meme, DEX and DeFi, L1 and L2, other); the unlock's size bucket when the kind is an unlock (under 0.5%, 0.5–2%, over 2% of circulating supply); and Bitcoin's trend (its close above or below its own 50-day average on the event date).

Patterns are built from broad to specific — kind only, kind + venue, kind + size bucket, and so on — and a combination is kept only once at least 8 past cases have a measured next-day move. Shares of cases that were higher carry Wilson 90% intervals, so a thin pattern prints a wide band.

Recent-cases check: a pattern with 20 or more measured cases is re-counted on its older 60% of cases against the newest 40%. When the majority side flips across 50%, the pattern is flagged as flipped on its page and on every chip and card that shows it; older and newer cases disagree and the page says so.

A scheduled event is matched to the most specific stored pattern whose every condition it satisfies; ties go to the larger case count. Pattern pages are indexed from 10 measured cases; thinner patterns are served and linked but marked noindex, like every other thin page on this site.

223 patterns have odds from past cases as of Oct 4, 2026, 125 scheduled or recent events match one, and the pattern index lists every one with all of its past cases.

The same counts at each point (next day, 7, 30 and 90 days, each held to the same 8-case minimum) feed the 0–100 score on every token page, whose arithmetic, weights and backtest are printed on the predictions page. The data behind these pages is published as dated, versioned JSON: /api/predictions.json, /api/scores.json and /api/odds.json, rebuilt with the site.

How predictions are made

How predictions are made

as of · data/predict.py · predictions + prediction_calibration

Every token with at least 120 days of prices gets a prediction for the next day, the next 7 days and the next 30 days: the chance its price ends higher, the typical move, the likely range (where 8 in 10 similar past cases ended) and the number of similar past cases behind it. Prediction from past patterns, not financial advice.

The situation. On the day of the prediction we describe each coin with a few plain facts, using only data dated on or before that day: is a token unlock of 0.5–2% or more than 2% of the circulating supply scheduled inside the window; is Bitcoin above or below its 50-day average; is the coin up more than 10%, down more than 10% or roughly flat over 30 days, and the same over 7 days at 7%; is it within 20% of its all-time high, 20–60% below, or more than 60% below; did its dollar volume just jump more than two standard deviations above its 30-day normal; its size (under $50M, $50–500M, $500M–$5B, above); and its type (memecoin, DEX and DeFi, layer 1 and 2, other).

The matches. We sample every coin we track every third day across its whole history and keep the past moments that share the same facts, dropping the least important fact until at least 40 matches remain. The chance is the share of those matches that ended higher, pulled toward the overall up-rate of the time so that a small or lucky group cannot print an extreme number. Strong means the chance is at least 10 points from 50%, the case count is 60 or more and its 90% range excludes 50%; lean means at least 5 points; anything closer is a coin flip.

The range. Past moves are compared in units of each coin's own recent volatility and scaled back to this coin's, so a quiet coin gets a narrow cone and a wild one a wide cone. The cone on each token page draws the 10th, 25th, 50th, 75th and 90th percentile of those matched outcomes at the days the engine computes (1, 3, 7, 14, 21 and 30), interpolated in between; the typical move is the 50th percentile, the bad case the 10th and the good case the 90th.

The factors. Under each prediction, "why we think this" lists the facts that moved the chance most: for each one, how often coins in that one situation ended higher against how often coins did overall.

The scorecard. Every week of the past year we re-ran the method using only data available on that date and scored it: how often the direction was right, how often the outcome landed inside the ranges (aim 50% and 80%) and a Brier score against simply using the overall up-rate. Live predictions are stored the night they are made, never edited, and scored separately once their window closes. All of it is on How often are we right?, including where the calls do no better than the base rate.

Setups are separate, named rules re-measured on our own prices every day; each lists its past cases, win rate and whether it held up on its newest cases, at /setups.

Which pages are indexed

Which pages are indexed

as of · seo.page_score

A page is indexed only when its own data clears a threshold; below it the page is served, linked and marked noindex,follow until the nightly rebuild promotes it.

Token pages need at least 25 data points, 12 generated sentences and one rich block (three measured events, a security row, an unlock schedule, a DefiLlama slug or a person). A data point is a non-null displayed field or one child row: each event, contract, alias, market, listing, unlock, allocation, raise, hack, audit, repository, person or treasury row counts once.

People need one position on an indexed token and either a description, links or a second position. Exchanges need 10 measured events or 50 markets; investors 3 rounds; auditors 3 audits; creator wallets 3 launches; hubs 5 indexed members; month archives 10 events.

Launch pages are indexed when the token graduated, lived 72 hours, reached a 3x peak, or died with a creator holding three or more launches; other dead launches are served and linked but not indexed, so they never dilute the site.

Each page prints its own score in the footer. The same function feeds the meta robots tag, the sitemaps and the build report.

Sources and freshness

Sources and freshness

as of · sources table

43 sources feed the site; each block on every page names the source it used and the time it was fetched.

SourceWhat it gave this pageLast successful fetchLast errorLink
binance_announcements0 events (delisting) 2026-10-04 19:24 UTCnonewww.binance.com/bapi/composite/v1/public/cms/article/list/query
binance_instruments— —2026-10-04T19:24:42+00:00 451 Client Error: for url: https://fapi.binance.com/fapi/v1/exchangeInfofapi.binance.com/fapi/v1/exchangeInfo
binance_klines486 closes; 942 symbols without Binance klines 2026-10-04 19:26 UTCnoneapi.binance.com/api/v3/klines
binance_spot_instruments776 symbols 2026-10-04 19:24 UTCnone—
buildthe nightly rebuild 2026-10-04 19:35 UTCnone—
bybit_announcements— —2026-10-04T19:24:46+00:00 403 Client Error: Forbidden for url: https://api.bybit.com/v5/announcements/index?locale=en-US&type=delistings&limit=50&page=1api.bybit.com/v5/announcements/index
bybit_instruments— —2026-10-04T19:24:43+00:00 403 Client Error: Forbidden for url: https://api.bybit.com/v5/market/instruments-info?category=linear&limit=1000api.bybit.com/v5/market/instruments-info
calcthe trade planner: real past-case price paths behind each prediction 2026-10-04 19:30 UTCnone—
coinbase_instruments406 symbols 2026-10-04 19:24 UTCnone—
coinpaprika55 calls, 70 cached, 0 stale; 1495 tokens, 38 coin details, 7 people, 1086 exchanges 2026-10-04 18:37 UTCnoneapi.coinpaprika.com/v1
collector_csvbirths: 1536 rows; births_extra: 1320 rows; rug_extra: 1471 rows; panel: 196877 rows; hands: 912 rows; state: 1566 rows; trades: 112 rows; folder /home/runner/work/dasterm/dasterm/collector 2026-10-04 19:24 UTCnone—
curated0 schedules applied (0 checked by hand, 0 matched to the supply history; 0 rows, 0 unlock events), 24 drafts waiting 2026-10-04 19:24 UTCnone—
defihacklabs541 incidents from 6 files (Apache-2.0) 2026-10-04 18:50 UTCnonegithub.com/SunWeb3Sec/DeFiHackLabs
defillama407 requests, 400 cache hits 2026-10-04 18:50 UTCnoneapi.llama.fi
dexscreenerpairs, liquidity, first pool date, paid boosts, socials 2026-10-04 19:21 UTCnoneapi.dexscreener.com
effects3249 effects, 19 stats rows 2026-10-04 19:28 UTCnone—
etherscanskipped: no ETHERSCAN_KEY in data/config_local.py or the environment —noneapi.etherscan.io/v2
ethplorerEthereum mainnet holder count, owner, transfers 2026-10-04 19:21 UTC2026-10-04T19:21:17+00:00 HTTP 429 https://api.ethplorer.io/getTokenInfo/0x0828096494ad6252f0f853abfc5b6ec9dfe9fdadapi.ethplorer.io
gate_candles114 coins Binance does not list 2026-10-04 19:28 UTCnoneapi.gateio.ws/api/v4/spot/candlesticks
github16 requests, 12 cache hits, 0 failed 2026-10-04 18:50 UTCnoneapi.github.com
goplusEVM and Solana issuer powers, holders, LP locks, taxes, creator 2026-10-04 19:21 UTCnoneapi.gopluslabs.io
hedgey0 of 5 coins hold Hedgey vesting; 43 contracts still being read for the first time —2026-10-04T19:23:55+00:00 Ethereum logs: no ETHERSCAN_KEY; Optimism logs: HTTP 429; Polygon logs: no ETHERSCAN_KEY; Base logs: HTTP 429; Arbitrum logs: no ETHERSCAN_KEYhedgey.finance
intraday— 2026-10-04 19:33 UTCnone—
jupiter22 of 39 coins hold Jupiter Lock vesting 2026-10-04 19:23 UTCnoneapi.mainnet-beta.solana.com
kucoin_candles8 coins Binance does not list 2026-10-04 19:28 UTCnoneapi.kucoin.com/api/v1/market/candles
macro73 Fed decisions (to 2027-12-08), 71 CPI releases (to 2026-12-10); 144 new, 0 removed; Bitcoin's next-day move measured for 54 2026-10-04 19:24 UTCnone—
mexc_klines396 coins Binance does not list 2026-10-04 19:28 UTCnoneapi.mexc.com/api/v3/klines
modelspattern lines: each named pattern's own 30-day path, its chance of a higher price and how often its calls were right 2026-10-04 19:28 UTCnone—
oddsodds from similar past cases 2026-10-04 19:28 UTCnone—
okx_announcements0 events (delisting) 2026-10-04 19:24 UTCnonewww.okx.com/api/v5/support/announcements
okx_instruments484 symbols 2026-10-04 19:24 UTCnone—
okx_spot_instruments404 symbols 2026-10-04 19:24 UTCnone—
predictpredictions: chance of a higher price, typical move, likely range and our track record 2026-10-04 19:28 UTCnone—
sablier69 of 451 coins hold Sablier vesting 2026-10-04 19:23 UTCnoneindexer.hyperindex.xyz/53b7e25/v1/graphql
scorethe 0–100 score and its backtest 2026-10-04 19:33 UTCnone—
setupssetups re-measured on our own prices 2026-10-04 19:28 UTCnone—
snapshotdaily snapshots and the change log 2026-10-04 19:33 UTCnone—
streamflow20 of 39 coins hold Streamflow vesting 2026-10-04 19:23 UTCnoneapi.streamflow.finance/v2/api/token-dashboards/SOLANA/
supply_history5 of 378 coins due fetched (24 with schedule files, 354 of the top 400); no CoinGecko id for 1: DYDX; stopped: HTTP 429 2026-10-04 19:24 UTCnoneapi.coingecko.com/api/v3
supply_pattern3 of 5 coins with 120+ days of supply history release on a monthly or quarterly pattern; 14 releases projected: APT (monthly, day 14), ARB (quarterly, day 18), ENA (monthly, day 6) 2026-10-04 19:24 UTCnone—
teamfinance0 of 5 coins hold Team Finance vesting; 4 contracts still being read for the first time —2026-10-04T19:23:55+00:00 Ethereum logs: no ETHERSCAN_KEY; Optimism logs: HTTP 429; Polygon logs: no ETHERSCAN_KEY; Base logs: HTTP 429; Arbitrum logs: no ETHERSCAN_KEYwww.team.finance
uncx1 of 5 coins hold UNCX vesting 2026-10-04 19:23 UTCnoneuncx.network
upbit_instruments359 symbols 2026-10-04 19:24 UTCnone—

When a fetch fails, the block says "Last successful update {date}; latest fetch failed" and shows the older numbers with that date rather than presenting them as current.

What we do not do

What we do not do

as of

No buy or sell calls, no ratings, no accusations. The site says what the issuer can do, what happened last time, what usually happens next and how often our predictions have been right; the reader makes the call.

Outcomes are measured returns, never causes: "the price was 18% lower 30 days after the listing", never "the listing crashed the price". Auditor pages state days between audit and hack and never imply blame.

Wallets carry count-based labels only ("12 launches, 11 dead within 24 hours"). Pulled liquidity is described with the fixed phrase "liquidity was pulled" and never with slang. People are named exactly as the source writes them, with public professional links only.

Facts are compiled from public sources and public blockchain data. Nothing on this site is financial advice.

Corrections

Corrections

as of · page_changes note=correction

Send a correction with the page URL and the source to [email protected]; applied corrections are logged on the page's change log and here, never edited silently.

No correction has been needed yet as of Oct 4, 2026; the first one will be listed here with its date.