PerpDesk logoPerpDesk

Luma

Signal aggregation and directional bias from exchange derivatives data.

What Luma Does

Luma finds moments where independent signals across exchanges agree. When open interest, funding rates, volume, and cross-exchange flow all lean the same direction, that's conviction — not noise.

Luma runs on every candle close (default trigger: 5m, faster than Vanta) and publishes a directional bias score that Riven uses in the consensus debate.

What Luma Reads

Luma pulls derivatives data from the exchanges PerpDesk integrates with. It does not scrape social media, news, or on-chain wallets. The inputs are:

  • Open interest — trends and cross-exchange divergence
  • Funding rates — outliers and cross-venue spread
  • Volume — conviction, concentration, and delta
  • Cross-exchange flow — where positioning is building vs. unwinding
  • Candles (20 per timeframe) for price-signal correlation

How the Bias Score Works

Four components, each scored ±25, sum to a composite in the range -100 to +100:

ComponentWhat it measures
OICross-exchange open interest trends
FundingRate extremes and cross-venue spread
VolumeConviction and concentration
FlowPositioning shifts across venues

The composite produces a bias label (bullish / bearish / neutral) with strength and confidence. A score of +62 means "moderately bullish, multiple sources agreeing." A score near zero means "no consensus across exchanges."

What Luma Publishes

A structured read containing the bias label, the four component breakdowns, and the composite score. Riven reads this as one of three inputs to the consensus debate.

Configuration

SettingOptionsDefault
SensitivityCalm / Alert / HyperAlert
Trigger timeframe1m / 5m / 15m / 1h5m
Signal filterAll / Strong onlyAll

Under the Hood

Type: candle-triggered, LLM-powered analysis agent.

Trigger: candle close on configured timeframe (default 5m).

Candle limit: 20 per timeframe.

Signal sources: OI, funding, and volume pulled from all connected exchanges.

Output: publishes a structured analysis per symbol via the event bus. Persisted to the database and hot-cached.

Upstream dependencies: none. Luma is first-layer.

On this page