BlockShield/Metrics/Cycle Position Index

Cycle Position Index

A 0-100 cycle RISK score from five dimensions. Opposite polarity to Market Regime, fitted to three cycles, and honest that it cannot be validated on them.

Drawn on the Market Regime tabAPI /api/v1/market/cyclethe shared paginated BTC cycle candle series (Binance)halving and cycle constants with published provenance

What it measures

Where Bitcoin sits inside its four-year cycle, on a 0-100 scale where 0 is a cycle bottom and 100 is a cycle top.

This scores cycle RISK. 80 here means euphoria and distribution, which is the opposite of what 80 means on the Market Regime score. A reader who carries one intuition into the other reads the market exactly backwards, so both surfaces state their direction.

How it is built

Five dimensions, each mapped to the risk scale and weighted: cycle time, drawdown depth, the Mayer multiple, momentum and volatility.

The drawdown is never taken from a fixed candle window. The exchange returns at most 1000 candles and, without an explicit start, the LAST 1000 — so a short request stopped containing the cycle high once it aged, and reported a drawdown roughly fifteen points shallower than the truth while a deep-bear gate sat unreachable. Both cycle engines read the same paginated, cached cycle series instead.

Cycle constants have one definition, in one module. They were copied three ways in the project this feature came from; the frontend reads them from the API and never restates them.

The scoring is deliberately not shared with the Market Regime engine even though the candle series is. Mapping a Mayer multiple to bullishness and mapping it to cycle risk are different functions, and collapsing them would make one of the two lie.

The heavy walk-forward backtest runs off the event loop, caches for hours, and is warmed at boot. A cold cache answers 'computing' rather than holding a request open.

What to watch

The weights, the phase thresholds and the bottom extrapolation are fitted to three cycles and cannot be validated against those same three cycles. The backtest measures in-sample behaviour and says so in its own payload.

Three cycles is a small sample for a claim about cycles. Treat this as a framing device, not a forecast — nothing here is advice.

Read it beside the Market Regime score rather than instead of it. They are not redundant and they are not on the same scale.

Open the live Market Regime tab →

Related metrics

Market Regime Score
A single 0-100 score for how bullish the market currently is, plus a six-phase cycle label from Deep Bear through Accumulation….
MVRV Ratio
MVRV is market capitalisation divided by realized capitalisation: what the market says the coins are worth, over what the marke….
Bitcoin Supply in Loss
A coin's cost basis is the market price on the day it last moved on-chain.
Altcoin Season Index
How broadly the market's larger alternatives are outperforming Bitcoin over the measurement window, expressed 0-100.
Every rule above is enforced in code and pinned by a test. The doctrine they all follow — NULL is not zero, partial cannot erase, an unfinished period is not evidence — is published on the methodology page.
Descriptive, not advice. Every score, band and verdict on this platform is an automated heuristic over public data and can be wrong in both directions. All metrics · Methodology · About · Dashboard