Research

Market sentiment

A sentiment score is a model's opinion about text, aggregated into a number. Both halves of that sentence carry assumptions worth examining.

Moonboard ResearchPublished 2026-08-31Updated 2026-08-31

Sentiment appears throughout Moonboard as a 0–100 field. It enters the Moonboard Score, OPS, COR, SDE and the retail leg of WSD — more metrics than any other single input. It is also the input with the most modelling between the raw observation and the number.

From text to a number

Three distinct steps, each with its own failure modes:

  1. Collection. Posts mentioning the asset are gathered from covered platforms. Coverage and ticker matching both introduce bias before any classification happens.
  2. Classification. Each post is assigned a tone by a model.
  3. Aggregation. Per-post classifications are combined into one figure per asset per window.

Discussion of sentiment usually focuses on step two. Steps one and three frequently do more damage.

Why crypto text is unusually hard to classify

Irony is the default register

Large parts of crypto social discourse are ironic by convention. Losses are celebrated, self-deprecation signals belonging, and enthusiasm is frequently expressed through exaggeration that reads as sarcasm to a general-purpose model. Statements of the form "great, another perfect entry" after a sharp fall are common, sincere in their frustration, and reliably misread.

Domain vocabulary carries inverted valence

Terms that are negative in general English are positive in crypto usage, and the reverse. A general-purpose classifier trained on product reviews or news text has learned the wrong sign for a meaningful portion of the vocabulary. Domain adaptation helps substantially — and the vocabulary shifts fast enough that any fixed lexicon decays.

Community language is defensive under stress

This is the most consequential failure mode, because it correlates with exactly the events an analyst cares about. During a crash, communities produce large volumes of resolute, rallying, forward-looking language. Classifiers read a substantial share of it as positive.

The result is a systematic bias: sentiment tends to overstate positivity precisely when prices are falling hardest. Any use of sentiment as a contrarian indicator has to account for this, because the measurement error points in the same direction as the effect being looked for.

Aggregation hides sample size

A single number per asset per window says nothing about how many posts produced it. A sentiment of 72 computed from 8 000 posts and one computed from 6 posts appear identical downstream, and every metric that consumes the field treats them identically.

This affects small and newly listed assets most, and it interacts badly with percentile ranking: a noisy sentiment estimate from a handful of posts can place an asset at either end of the universe distribution, and SDE — which uses sentiment as one of only two inputs — is the most exposed.

A defensible improvement would be to publish a confidence measure alongside the score, or to withhold the field below a minimum post count. Neither is currently done, and the honest position is that sentiment for thinly covered assets should be treated as indicative rather than measured.

Behaviour at the extremes

Extreme sentiment readings are widely treated as contrarian signals — the familiar idea that peak optimism marks a top. Two cautions apply before acting on that:

  • The tails are where classification is least reliable. Very high and very low readings are disproportionately produced by unusual text — crisis language, coordinated promotion, sarcasm — which is exactly the text classifiers handle worst.
  • Extremes persist. Sentiment can stay near a bound for extended periods. "Extreme" identifies a state, not a turning point, and nothing in the measurement indicates when it will end.

Sentiment against price

The genuinely interesting comparisons are between sentiment and something measured independently. When conversation and price disagree, one of them is early — or the sentiment reading is wrong. Distinguishing those cases is the real work.

How Moonboard implements this, precisely

SDE compares sentiment against realised volatility, not against price direction. Volatility is unsigned, so SDE cannot distinguish enthusiasm during a rally from enthusiasm during a crash. It is a genuine divergence measure, but not the one most readers assume from the name — see the methodology page for the full derivation.

On composite mood indices

Aggregate market mood indicators blend social sentiment with price action — Moonboard's own market mood weights price more heavily than social, on the reasoning that communities post "buy the dip" at every level and price is the harder signal to fake.

That weighting is a defensible judgement, and it is worth being clear about what it implies: a price-weighted mood index is substantially a transformation of recent returns. It will be broadly negative after declines and positive after rallies, largely by construction. Its value is as a summary, not as an independent confirmation of what prices already show.

Open questions

  • How much does a crypto-adapted classifier improve on a general-purpose one, measured against human-labelled crypto text?
  • Can the crisis-language bias be quantified — how much does classified sentiment overstate positivity during sharp drawdowns?
  • What minimum post count makes an aggregated sentiment figure stable enough to rank cross-sectionally?
  • Does sentiment carry information beyond recent returns, once returns are controlled for?

Related