aismartmoney
How conviction scores are computed

How conviction scores are computed

The 1-10 conviction shown in Serenity's bull views table is not self-rated by the KOL. Claude reads each post and assigns the integer based on language signals. This page lays out the three tiers, the four signals the model looks at, and three caveats to keep in mind when reading the numbers.

Who assigns the score?

After a KOL posts on X, we fetch the post, send the text to Claude, and the model assigns a single integer between 1 and 10 to each ticker view it extracts. The number in the table is the model's read of the language, not the KOL's own private sizing intent. The same KOL on the same ticker can have a Claude score that diverges from how strongly they actually hold it — the table reflects what the words signal, not what the position is.

Three tiers

The scale is anchored in three coarse buckets. Where a view lands depends mostly on the strength of language in the post.
1 to 3
Passing mention with no strong claim. Things like "$AAPL valuation isn't cheap here" thrown in mid-post, or tickers that only show up in context while the post argues something else.
4 to 7
A real bull or bear thesis written out, but in measured language. Most regular KOL takes land in this band.
8 to 10
The post contains explicit strength language — highest conviction / core position / all in / back the truck up / largest position in the book — or the KOL explicitly states this is their biggest holding.
— (null)
The post shows no strength signal. The dash in the table means "Claude could not read directional strength," not "medium conviction." It is not equivalent to a 5.

Four signals the model looks at

Strength vocabulary
The most direct lift. "Highest conviction" / "core" / "all in" / "largest position" push directly into the 8-10 band.
Concrete catalyst with numbers
"Q3 ASP up 30%, target $120" carries far more weight than "long-term bullish on AI." Posts with numbers, dates, and price levels are read as more grounded.
Position in the chain
In supply-chain posts (X → Y → Z), the KOL is actually positioning on X. Downstream Y and Z are usually just context, scored low or flagged as mention rather than a real view.
Reiteration does not bump
When a KOL restates last week's call this week, the score holds. It does not auto-climb just because something gets repeated.

Three things to watch when reading the score

Not comparable across KOLs
Serenity's writing style runs hot, so an 8 from Serenity is easier to earn than an 8 from a colder, more measured voice. Comparing absolute conviction numbers across KOLs is unreliable.
— is not 5
The dash means Claude could not read the KOL's stance strength. Treat it as "no signal," not as "neutral" or "middle of the road."
Middle band drifts a bit
The model running this is Claude Haiku. Edges (1-3 and 8-10) are pretty firm. The 4-7 middle band drifts slightly between runs — treat the tier as the signal, not the exact integer.

A more stable way to read it

Compare different tickers within the same KOL's table to see relative ranking. Watch the same ticker's score over time — a move from 5 to 8 across a few months usually reflects real building conviction. When you compare absolute scores across KOLs, mentally discount.