← Back to Blog
Product · August 2026 · 8 min read

AI Score and Signal Score: Retiring Four Numbers for Two

M
Michael · Builder & owner of Stocklake
confidence conviction flag_score risk_score ai_flag_score insider flag news flag
72
ai_score
for a stock
84
signal_score
for a signal
A pile of one-off 0–10 numbers, each meaning something slightly different — replaced by two comparable 0–100 scores

Behind the scenes, Stocklake has always leaned hard on AI to read a stock or an idea and hand back a judgment. For a long time, that judgment came out as small, separate 0-10 numbers with names like confidence, conviction, flag_score, and risk_score — set by whichever model or pipeline stage happened to be looking at that particular piece of data. News got its own flag number. Insider activity got its own. Signals got three at once. None of them were on the same scale, and worse, none of them meant quite the same thing twice.

We spent the last couple of weeks doing something we'd been putting off: retiring all of it in favor of two numbers, computed the same way everywhere they apply, that actually mean what they say. This post is about what those two numbers are, roughly how they're built, and why it took this long to get here.

Two scores, not one

The first thing worth being precise about: AI Score and Signal Score are not the same number wearing two names. They answer two different questions, for two different kinds of thing.

A stock, generally
AI Score
How strong is the overall AI read on this company right now — fundamentals, technicals, sentiment, the whole picture, blended into one number. Attached to a stock, not to any one idea about it.
A specific idea
Signal Score
How much real, checkable evidence backs this particular call — a screener saying "short this now" — relative to what that same screener usually says. Attached to one idea, not the company as a whole.

You'll see both on the same stock at the same time and they can legitimately disagree. A stock can carry a strong AI Score (solid fundamentals, healthy technicals, nothing alarming) while a specific short-term signal against it scores low on Signal Score (a screener's call that, on inspection, isn't backed by much this time). They're not competing opinions about the same thing — they're answers to two different questions that both happen to be useful.

What used to sit underneath both

Before either of these existed, the raw ingredients were already there — they just never got combined. Every AI call in the pipeline was trained to hand back its judgment as one or more small numbers on a 0-10 scale: how confident it was, how strong its conviction was, whether the finding deserved a flag, sometimes a separate risk read on top. A news article got scored. An insider-trading snapshot got scored. An idea got scored on three axes at once. Each of those numbers was real signal — the problem was never that the AI's judgment was bad, it's that a 10-point scale has exactly 10 places to land, and a model asked for a number often enough doesn't spread evenly across those 10 — it clusters hard on a small handful of round values. An 8 from one place and an 8 from another routinely meant very different things.

One of our busiest AI pipelines: 74% of its calls landed on the exact same 0-10 number, three months running
A stock's own composite read used to be scattered across separate confidence/verdict fields with no single number to sort or compare on

None of those old fields disappear entirely on the backend — the AI still forms an initial judgment the same way it always did. What changed is what happens next: instead of that first number being the final answer, it's now one input among several that get blended into a single, wider score.

What actually goes into the blend

We're deliberately not publishing the exact formula — the weights move as we keep re-checking each piece against real outcomes, and pinning the recipe down in public would make it stale the next time we tune it. But the shape of it is simple, and roughly the same for both scores: a handful of independently-meaningful pieces, none of them a mystery on their own, combined into one number.

An AI model is genuinely load-bearing in every one of those pieces — there's no version of either score where a human hand-set the number, and there's no version where it's pure arithmetic with the AI cut out. What changed is that its judgment is now one voice in a small committee instead of the entire decision.

Same idea, everywhere it applies

The other half of the fix was consistency. Once we had a real 0-100 blend that worked for signals, the obvious next question was: why not the same idea for everything else that used to carry its own one-off flag number? So the same underlying approach now backs the score wherever a stock, a news article, or an insider/institutional snapshot needs one — each still tuned to what that specific kind of data actually looks like, but all landing on the identical 0-100 scale with the same four-band reading.

Where it shows up Before Now
A stock, overallScattered verdict/confidence fieldsai_score (0-100)
A signalconviction / confidence / flag_scoresignal_score (0-100)
A news articleai_flag_score / ai_confidencesignal_score (0-100)
Insider & institutional activityflag_score / confidencesignal_score (0-100)

Every one of those reads on the same 0-100 scale and buckets into the same four bands — Weak, Moderate, Strong, Very Strong — so once you know how to read one of them, you know how to read all of them. That consistency was really the whole point: before this, understanding what a number meant required knowing which pipeline produced it. Now it doesn't.

Where you can actually see it

Both scores are live today on the member dashboard and on individual stock pages, and both are available through the API — on get_stock/get_stocks, the signals feed, news, insider activity, market movers, the deep-dive research tool, all of it. As you'd expect by now, the real 0-100 number and its band are a Pro-tier feature; the free and guest tiers see the underlying data itself, just not this particular verdict layered on top of it.

A small peek at what it looks like, since you can't see it without a key otherwise:
get_stock (Pro)
"ai_score": 78, "ai_score_band": "Strong"
get_signals (Pro)
"signal_score": 84, "signal_score_band": "Very Strong"

What we're deliberately not saying yet

We know the natural next question is "okay, but which of these scores actually calls it right more often" — some notion of a track record, a backtest, a proven-vs-unproven split. We had an earlier version of the signal history view that tried to answer that on the page itself, and it wasn't earning its keep yet: the labels were doing more explaining than the underlying evidence could support this early. We pulled that back out. A real, honest answer to "does this score actually predict anything" is its own project, with its own evidence bar to clear, and it's coming — just not bundled into this one. For now, read a high score as "unusually well-evidenced by everything we can check," not as a promise.

Both scores are still fundamentally shaped by an AI model's own read of the situation, checked against what we can verify — not a guarantee of anything, and not investment advice. Treat them the way you'd treat a well-informed second opinion: useful context, not the whole decision.

Frequently asked questions

What's the actual difference between ai_score and signal_score?

ai_score is attached to a stock and answers "how strong is the overall AI read on this company right now" — fundamentals, technicals, sentiment, blended into one number. signal_score is attached to one specific idea (a screener's "short this now" call, a news article, an insider snapshot) and answers "how much real evidence backs this particular claim." Same 0-100 scale, different questions.

Can ai_score and signal_score disagree for the same stock?

Yes, and that's expected rather than a bug. A stock can carry a strong ai_score from solid fundamentals and healthy technicals while a specific short-term signal against it scores low on signal_score because, on inspection, that particular call isn't backed by much this time.

Is the exact scoring formula published anywhere?

No, deliberately. The weights move as we keep re-checking each component against real outcomes, and publishing a fixed recipe would just go stale the next time it's retuned. What's documented here is the shape of the blend — an AI read, a track-record comparison, a verified fact, context, and a plainer sentiment floor — not the exact coefficients.

Do I need a Pro API key to see these scores?

Yes. Free and guest tiers still return the underlying stock, news, and insider data — just not the ai_score/signal_score verdict layered on top of it. Both are live on get_stock/get_stocks, the signals feed, news, insider activity, and the research tool for Pro keys.