Method

The financial reasoning behind each stage, with the actual formulas. The aim is a reading you can argue with: every number on the panel traces back to a tweet, a date and a close.

Universe

Three assets, chosen because they are the ones finance Twitter argues about most and each has a clean daily instrument to score against:

AssetInstrument used for scoringWhy this one
BitcoinBTC-USDSpot composite; trades every day, so every call has an exit close.
GoldGC=FCOMEX front-month future, not spot — it is what most "gold to $3,000" calls are actually watching.
S&P 500^GSPCIndex level; calls on SPY, ES and "the market" are mapped here.

The roster is fixed: ~100 accounts grouped into five schools — Macro, Crypto, Quant, Technical, Goldbug — spanning English and Turkish. Everyone on the roster contributes; nobody is pruned by hand. Trust does the filtering.

Only original posts are read. Replies and retweets are excluded at every layer, because a reply's context is unknowable and a retweet is not the account's own call.

What counts as a call

A call is an explicit, falsifiable claim about where one of the three assets is going. It has four fields and an optional fifth:

FieldValuesNotes
assetBTC · GOLD · SPXOne row per asset when a post calls several.
directionBUY · SELL · NEUTRALNeutral is a stated "sideways / no edge" view, not the absence of one.
horizonSHORT · MEDIUM · LONG0–3 months · 3–12 months · 1–5 years. Taken from the author's own frame: level and pattern talk reads short; an undated expectation reads medium; a valuation or structural thesis reads long; a stated date wins.
confidence0–1How committed the language is.
price targetUSDOnly when a level is actually stated. "100k" becomes 100000. A target implies direction.

Everything else is not a call, and this list is where most of the precision comes from: reports of what already happened, news forwarding, ETF flow and volume, questions, chart captions with no opinion, generic macro commentary, and two-sided conditionals ("if it breaks up, moon; if it breaks down, crash"). Sarcasm and idiom are read as intended — "gold is a bubble" is a sell, however it is phrased.

Every call stores the exact phrase from the post that justified it. That is what makes the dataset auditable rather than a black box: any label can be checked against the words in seconds.

Evaluation

A call is scored once, when its horizon matures — 90 days for short, 365 for medium, 730 for long — against the daily close of the instrument above. Nothing is scored early and nothing is re-scored.

return = exit_close / entry_close − 1
entry = close on the day of the post · exit = close at maturity

The return is compared to a flat band scaled to the asset's own volatility and to the horizon, so that noise in Bitcoin and a rounding error in the S&P over two years are not both counted as moves:

band = 0.5 × σdaily × √days
σdaily = standard deviation of daily returns over the trailing year at entry

In practice the band is about ±11–13 % for Bitcoin over three months, ±22–24 % over a year, and about ±6 % for the S&P over a year. The market's own direction is then up above the band, down below it, flat inside it, and the call resolves to one of three outcomes:

OutcomePointsWhen
Correct1.0Called direction matches the market's direction (or called neutral and the market stayed inside the band).
Partial0.5Called a direction and the market stayed flat — or called neutral and it moved.
Wrong0.0Called one direction, market went the other.

A stated price target is the most falsifiable thing an account can say, so it carries its own adjustment: +0.25 if any daily close inside the horizon touched the target, −0.25 if none did. The best close reached (the "extreme") is recorded either way, so a near miss is visible.

Trust

Trust is a per-account score for each asset and horizon, built only from matured calls:

trust = (Σ points + 5) / (n + 10)

The +5 / +10 is a prior of 0.5 worth ten calls. It pulls small samples toward the middle so that one lucky call does not outrank a fifty-call record, and it fades as evidence accumulates — with n = 100 the prior is worth 9 % of the weight. When an account has no matured calls for a specific cell, the lookup falls back to its asset-level score, then its overall score, then the 0.5 prior.

Two properties matter for reading the numbers:

The consensus reading

For each of the nine cells (asset × horizon), every call inside the horizon window is weighted and summed:

weight = trust(account, asset, horizon) × confidence × 2−age / (window / 3)
net = (Σ buy weight − Σ sell weight) / Σ all weight

The recency term halves a call's weight every third of the window, and calls older than the full window drop out — a three-month-old short call is stale by definition. The label is Buy above +0.15, Sell below −0.15, Neutral between, and n/a when there is too little weight to say anything. Each school also gets its own sub-reading per cell, weighted by the sum of its members' trust, so a one-person school cannot dominate.

How to read it honestly

Direction, not magnitude. A Buy cell says the trusted part of the roster leans long; it says nothing about how far.

Regime bias is real. Most of the period covered has been a bull market for all three assets, and most of the roster is structurally bullish. Trust scores partly reward having been long while things went up — long-horizon hit rates run 78 % against 57 % for short. A flip away from Buy is therefore more informative than a Buy.

Volume is not evidence. One account can post a thousand calls a year; trust caps its influence but a prolific, decent account still carries the most weight in its cells. The contributor list behind every cell is on the panel.

The extraction is a model. Labels are produced by a language model checked against a hand-labeled reference set; on that set it agrees on whether a post is a call about 90 % of the time, on direction about 90 %, and on horizon about 80 %. Horizon is the softest field, which is why the three horizons are kept separate rather than blended.

Current state

MetricValue
Original posts read
Explicit calls extracted
Calls matured and scored
Correct · partial · wrong
Hit rate, short · medium · long
Accounts with ≥ 20 scored calls
Data through

The full per-account, per-cell breakdown, every call with its tweet and price points, and the contributor list behind each reading are on the panel. Request access.