Skip to content

Methodology

Signals

Signals are versioned rules over scores and features (signals-v1.0), evaluated on every compute tick. Each one states why it fired in neutral, factual language and carries historical analog statistics — statistical context, not a promise.

Rules

All conditions must pass (AND) unless grouped with OR. A condition on a missing value fails, except where a rule says “or unknown”. Rule versions look like early_acceleration@1.0 and are stored with every firing.

SignalFires when
Early acceleration
early_acceleration@1.0
Thesis velocity 1h > 2 AND Unique author growth 1h > 0.5 AND Crowding < 35 AND Early Quality > 70 AND Unique authors 1h ≥ 10
Broad attention
broad_attention@1.0
Unique authors 24h ≥ 80 AND Crowding < 22 AND Momentum > 70
High-quality cohort
high_quality_cohort@1.0
High-quality authors ≥ 8 AND Thesis velocity 1h > 2 AND (Early Quality > 85 OR Smart Cohort > 65)
Crowding risk
crowding_risk@1.0
Crowding > 75 AND Theses 24h ≥ 15
Social leading price
social_leading_price@1.0
Divergence ≥ 65 AND Divergence state is EARLY_SOCIAL AND Social activity z ≥ 5 AND Theses 1h ≥ 6 AND Momentum > 80
Price leading social
price_leading_social@1.0
Divergence ≤ -50 AND Divergence state is LAGGING_SOCIAL AND Price move z ≥ 2.5 AND Unique authors 24h ≥ 10
Attention cooling
attention_cooling@1.0
Attention acceleration < -0.7 AND Theses in the prior hour ≥ 15 AND Momentum < 30
Conviction building
conviction_building@1.0
Conviction > 80 AND Repeat author ratio > 0.5 AND Active days (7d) ≥ 6 AND Unique authors 24h ≥ 20
Narrative breakout
narrative_breakout@1.0
Narrative Velocity > 82 AND Narrative growth 24h > 1 AND Theses 1h ≥ 3
False breakout risk
false_breakout_risk@1.0
Thesis velocity 1h > 3.5 AND Crowding > 70 AND Early Quality (or unknown) < 35 (or unknown)

Lifecycle

  • Fire — when a rule passes on the latest snapshot and no active signal of that type exists for the token.
  • End — after 2 consecutive failing ticks, or at most 6 hours after firing.
  • Cooldown — the same type does not re-fire on the same token within 2 hours of ending.
  • Strength (0–1) — the average margin beyond each threshold: 0 = just passing, 1 = at or beyond the “full strength” level of every condition.
  • Analog statistics — attached at fire time from earlier firings of the same rule (any token, same dataset) whose 24h outcome had already resolved: N, median 24h return, worst 24h drawdown, positive share and confidence (N < 10 LOW, < 30 MEDIUM, else HIGH).

Anatomy of a signal

Every signal carries the scores at fire time, its why lines, its rule version and analog statistics. The detail endpoint adds each condition's threshold and actual value, the feature snapshot and prior firings on the token.

Example · signal (illustrative inputs, real engine)
{
  "type": "EARLY_ACCELERATION",
  "label": "Early acceleration",
  "rule_version": "early_acceleration@1.0",
  "strength": 0.214,
  "why": [
    "thesis velocity +218%",
    "unique authors +71% (12 authors this hour)",
    "crowding low (24)",
    "early-quality cohort elevated (76)"
  ],
  "analogs": {
    "n": 27,
    "median_24h": 0.168,
    "worst_drawdown_24h": -0.284,
    "positive_share": 0.59,
    "confidence": "MEDIUM"
  }
}

Catalogue

Limitations that apply to every signal:

  • Fomo activity is a sample of social attention; a signal describes what the network is doing, not what price will do.
  • Signals are statistical context, not a promise — historical analog statistics are attached at fire time with their sample size.
Early accelerationearly_acceleration@1.0 · tone accelerating

Thesis activity is accelerating early, with broad participation and historically strong early posters.

Thesis velocity 1h > 2 AND Unique author growth 1h > 0.5 AND Crowding < 35 AND Early Quality > 70 AND Unique authors 1h ≥ 10

Full strength at: thesis_velocity_1h 6 · unique_author_growth_1h 2 · crowding 10 · early_quality 90 · unique_authors_1h 24

  • — Requires an Early Quality value, so tokens whose early authors have no resolved history cannot fire it.
Broad attentionbroad_attention@1.0 · tone broad

Many independent authors are posting; attention is not concentrated in a few accounts.

Unique authors 24h ≥ 80 AND Crowding < 22 AND Momentum > 70

Full strength at: unique_authors_24h 150 · crowding 8 · momentum 92

  • — Breadth counts accounts, and related accounts cannot be detected from public activity.
High-quality cohorthigh_quality_cohort@1.0 · tone quality

Several historically consistent early posters are active on this token.

High-quality authors ≥ 8 AND Thesis velocity 1h > 2 AND (Early Quality > 85 OR Smart Cohort > 65)

Full strength at: high_quality_author_count 16 · thesis_velocity_1h 6 · early_quality 97 · smart_cohort 90

  • — High quality = research score ≥ 70 with at least MEDIUM confidence, from outcomes resolved before the signal time.
  • — Requires current activity (last-hour theses more than three times the token's hourly baseline), so a track record that posted yesterday does not keep it firing.
Crowding riskcrowding_risk@1.0 · tone caution

Attention is concentrated among a small number of accounts.

Crowding > 75 AND Theses 24h ≥ 15

Full strength at: crowding 95 · theses_24h 60

  • — A caution state: it describes concentration of attention, not a forecast.
Social leading pricesocial_leading_price@1.0 · tone accelerating

Social activity is rising faster than price and volume.

Divergence ≥ 65 AND Divergence state is EARLY_SOCIAL AND Social activity z ≥ 5 AND Theses 1h ≥ 6 AND Momentum > 80

Full strength at: divergence 95 · social_z 10 · theses_1h 20 · momentum 95

  • — Needs market data; tokens without price history never fire it.
  • — Requires at least 6 theses in the hour, so a quiet token's single post cannot read as social activity leading.
Price leading socialprice_leading_social@1.0 · tone broad

Price and volume are moving ahead of thesis activity.

Divergence ≤ -50 AND Divergence state is LAGGING_SOCIAL AND Price move z ≥ 2.5 AND Unique authors 24h ≥ 10

Full strength at: divergence -95 · price_z 6 · unique_authors_24h 40

  • — Needs market data; tokens without price history never fire it.
  • — Only tokens with at least 10 authors in 24h qualify — for a token nobody discusses, price always “leads”.
Attention coolingattention_cooling@1.0 · tone cooling

Thesis activity is decelerating versus the prior window.

Attention acceleration < -0.7 AND Theses in the prior hour ≥ 15 AND Momentum < 30

Full strength at: attention_acceleration -0.95 · theses_prev_1h 45 · momentum 8

  • — Hour-on-hour comparisons are noisy for low-activity tokens; the prior hour must have at least 15 theses.
Conviction buildingconviction_building@1.0 · tone quality

Authors keep returning to this token across multiple windows.

Conviction > 80 AND Repeat author ratio > 0.5 AND Active days (7d) ≥ 6 AND Unique authors 24h ≥ 20

Full strength at: conviction 95 · repeat_author_ratio 0.85 · active_days_7d 7 · unique_authors_24h 50

  • — A small group posting repeatedly also builds conviction — check Crowding alongside it.
  • — Requires at least 20 authors in 24h so a handful of loyal accounts cannot fire it alone.
Narrative breakoutnarrative_breakout@1.0 · tone accelerating

The token's narrative is spreading faster than its usual pace.

Narrative Velocity > 82 AND Narrative growth 24h > 1 AND Theses 1h ≥ 3

Full strength at: narrative_velocity 97 · narrative_growth_24h 3 · theses_1h 15

  • — Narratives come from keyword classification of thesis text; every token of a narrative shares the narrative-level inputs, so the token itself must have at least 3 theses in the hour.
False breakout riskfalse_breakout_risk@1.0 · tone caution

A spike in activity with weak breadth and low historical quality — similar setups often faded.

Thesis velocity 1h > 3.5 AND Crowding > 70 AND Early Quality (or unknown) < 35 (or unknown)

Full strength at: thesis_velocity_1h 9 · crowding 92 · early_quality 10

  • — A caution state built from activity shape; similar setups have often faded, but not always.

A signal inherits the confidence of the scores it reads (shown on each score). At fire time it carries historical analog statistics — earlier firings of the same rule whose 24h outcome had resolved — with N, median 24h return, worst 24h drawdown and a confidence level (N < 10 LOW, < 30 MEDIUM, else HIGH).

Endpoints

Signals are also delivered in realtime (signal.created, signal.ended) over the stream and as webhooks.

Example responses use illustrative values ($XYZ, example_rhea, a placeholder address) — not real tokens or authors; every field name and shape is exactly what the API returns. Long sections are collapsed as { … }.

GET/v1/quant/signals
scope signals:read

The signal feed, newest first.

Parameters

NameDescription
min_score
query · <score>:<value>
Minimum score at fire time, e.g. momentum:70. Scores: momentum, conviction, crowding, early_quality, narrative_velocity, divergence, smart_cohort.
signal_type
query · csv
Comma-separated types, e.g. EARLY_ACCELERATION,BROAD_ATTENTION.
chain
query · csv
Comma-separated chains.
market_cap
query · number
Minimum market cap (USD).
liquidity
query · number
Minimum liquidity (USD).
created_after
query · ISO-8601 | unix
Only signals fired after this time.
status
query · active | ended | all
Lifecycle status.Default all
token
query · token ref
Only signals on this token.
limit
query · integer 1–100
Page size.Default 25
cursor
query · string
Opaque cursor from the previous page's next_cursor.
  • min_scorequery · <score>:<value>
    Minimum score at fire time, e.g. momentum:70. Scores: momentum, conviction, crowding, early_quality, narrative_velocity, divergence, smart_cohort.
  • signal_typequery · csv
    Comma-separated types, e.g. EARLY_ACCELERATION,BROAD_ATTENTION.
  • chainquery · csv
    Comma-separated chains.
  • market_capquery · number
    Minimum market cap (USD).
  • liquidityquery · number
    Minimum liquidity (USD).
  • created_afterquery · ISO-8601 | unix
    Only signals fired after this time.
  • statusquery · active | ended | all
    Lifecycle status.
    Default all
  • tokenquery · token ref
    Only signals on this token.
  • limitquery · integer 1–100
    Page size.
    Default 25
  • cursorquery · string
    Opaque cursor from the previous page's next_cursor.
curl "https://fomoquant.app/v1/quant/signals?signal_type=EARLY_ACCELERATION&min_score=momentum:60&status=active" \
  -H "Authorization: Bearer $FOMOQUANT_API_KEY"
GET/v1/quant/signals/{id}
scope signals:read

One signal with its conditions (threshold vs actual), feature snapshot at fire time, analog summary, prior firings and the rule's documentation.

Parameters

NameDescription
idrequired
path · sig_…
Signal id.
  • idpath · sig_…required
    Signal id.
curl "https://fomoquant.app/v1/quant/signals/sig_8d3k2m9q4x7v1c6b5n0t" \
  -H "Authorization: Bearer $FOMOQUANT_API_KEY"

FomoQuant provides analytics and historical/statistical context, not financial advice or guaranteed predictions.