OG Score Methodology
How the OG Market Desk Score is calculated — a multi-factor approach to market sentiment analysis.
Overview
The OG Score is a composite sentiment indicator ranging from -100 (extreme fear/bearish) to +100 (extreme greed/bullish). It combines 7 weighted factors that each independently assess a different dimension of market sentiment. When a factor lacks sufficient data, its weight is automatically redistributed to the remaining active factors — the score never fabricates a reading to fill a gap.
What we publish, and what we don't
We publish every factor in the model, every data source behind it, every safeguard that protects it, and — below — every change we have ever made to how the score is computed. What we don't publish are the exact weightings, formulas, and calibration constants.
Two reasons. The calibration — tuned against months of recorded market data — is the proprietary core of the product. And a fully published parameter set is a gameable one: a score whose exact triggers are public can be manufactured. Factor-level transparency with proprietary calibration is the same standard long used by established scoring systems in finance.
Factor Breakdown
Listed roughly in order of influence. Price action and news carry the heaviest weights; no single factor can dominate the composite.
Blends today's move with the year-to-date trend, so a single bad day doesn't fully overwhelm a strong performer — and a strong day doesn't mask a long decline. Falls back to daily-only when YTD data is unavailable.
Direction-aware volume conviction: today's trading volume against the stock's own rolling average, credited in the direction price actually moved. Heavy volume confirms whichever way the tape went — a surge on a green day reads as buying conviction, the same surge on a red day reads as selling pressure.
The average tone of news articles tagged to the ticker. Articles arrive pre-classified with sentiment grades; ungraded articles are excluded so they can't dilute the signal toward zero. SEC filings are deliberately kept out of this factor — they live in their own tab so the article count here matches what the News tab shows. Every article is also archived, so coverage persists even after a source rotates it off its recent feed.
The tone of the investor conversation on X and Reddit over the last 24 hours, blended in proportion to where the engagement actually is. Thin conversations are pulled toward neutral by a volume-confidence discount — a handful of posts can't produce an extreme reading, so one viral tweet can't impersonate a crowd. Confirmed-unreliable provider data is quarantined outright rather than scored.
Where the current price sits within its 52-week high/low range. Stocks near their highs carry momentum-regime sentiment; stocks near their lows carry the opposite.
The average daily move of every other stock in the same sector, capturing sector-wide trends and rotation independent of the ticker's own tape. Deliberately band-limited so one rough sector day (already reflected in Price Momentum) doesn't crush the factor.
The week-over-week rate of change in the score itself — is sentiment building or fading? Compares today's reading against the ticker's recorded snapshot from about a week ago. Shows "Building momentum data..." until enough history exists.
How the factors combine
- Each factor independently produces a bounded reading, so no single input can blow out the composite.
- Factors are combined as a weighted average. The weights are proprietary, fixed across all tickers, and every change to them is versioned in the changelog below.
- A factor with no data drops out and its weight redistributes across the active factors — the "Active Factors" badge on each stock shows how many of the 7 contributed.
- Momentum is computed after the other factors, from them — never from itself.
BTC OG Score
Bitcoin gets its own four-factor model on the dashboard tracker — distinct from the per-stock score above because the relevant signals are different (no sector peers, no analyst coverage, but a market-wide Fear & Greed reading).
Fear & Greed
The market-wide Crypto Fear & Greed Index, normalized to the OG Score range — the broad sentiment regime the whole asset class is trading in.
News Sentiment
Average tone of explicitly Bitcoin-about journalism — company press releases that merely mention BTC are filtered out, because miner and treasury PR is signal on those companies' pages, noise here. Reads live only: when an article rotates off the topic feed, it leaves the score immediately.
Price Momentum
24-hour BTC price change, normalized to the score range.
Volume
Direction-aware volume conviction, mirroring the stock factor: 24-hour volume against Bitcoin's own rolling monthly baseline, credited in the direction of the price move. Distinguishes heavy buying conviction, heavy selling pressure, thin rallies, and light selling.
Additional Signals
Divergence Detection
When the OG Score disagrees with price action by a significant margin, a divergence is flagged. Bullish divergence: price is down meaningfully while sentiment holds clearly positive. Bearish divergence: price is up meaningfully while sentiment reads clearly negative.
Signal Strength
Measures factor agreement. Strong: a clear majority of active factors agree on direction. Moderate: mixed but leaning. Weak: the factors genuinely disagree.
Missing Data Handling
When a factor lacks data (e.g., no news articles found), its weight is set to zero and the remaining factors' weights are automatically normalized. The "Active Factors" badge on each stock shows how many of the 7 factors had available data.
Data Pipeline & Resilience
Refresh Cadence
Stock quotes refresh every few minutes through the dashboard cache. Social and news data are re-warmed on multiple scheduled cycles through the day, throttled to stay inside upstream rate limits, and a daily sentiment snapshot is recorded after U.S. market close for momentum comparisons and the public validation research.
Data-Quality Safeguards
Bad data is refused, not smoothed over. Snapshots that fail integrity checks — a provider feed that desynchronizes, collapses to implausible volume, or stops updating while the underlying conversation keeps moving — are never written to history, and a confirmed-unreliable social feed is quarantined from the score entirely until it recovers, with its weight redistributed. Every write is audited nightly against what actually landed in the database.
Persistence & Fallback
Per-ticker news, social snapshots, and spike alerts are persisted with a rolling retention. When the live source is unreachable (rate limited, outage, or a freshly-listed ticker before its first refresh), the page falls back to the most recent persisted snapshot so it never renders blank. The BTC tracker is the one exception — it reads strictly live, so rotated-off articles disappear from the score immediately.
Spike Alerts
Each daily refresh runs a delta-detection pass against the rolling history. For every tracked metric (mentions, creators, engagements, social dominance) the current value is compared against 7-day, 30-day, and 90-day averages; a significant deviation fires an alert that shows on the ticker's social panel. Tickers without enough baseline history are skipped rather than guessed at.
Sector classification changes
A company is placed in AI/HPC if it operates AI or high-performance computing capacity, has signed an AI/HPC customer agreement, or has a credible AI/HPC development or conversion program documented in its filings or company releases. Current revenue mix alone does not decide placement.
Live pages use the new membership from 2026-10-21. The first daily snapshot recorded under it is 2026-10-22 (21:00 UTC).
| Ticker | Change | Basis, from company disclosures |
|---|---|---|
| AIB | Added to AI/HPC | Has a binding 12-year agreement with Nebius for 50 MW of critical IT capacity at its South Carolina campus, announced September 30, 2026, and ended Bitcoin-mining hosting in June 2026. Formerly BlockchAIn Digital Infrastructure. |
| JROOF | Added to AI/HPC | Developing gas-powered AI data-center campuses in Oklahoma through a joint venture with Comstock Holding Companies, which is pre-revenue. Most current revenue comes from oil and gas production. Tracked by its US over-the-counter symbol; the primary listing is TSX Venture: JEV. |
| MARA | BTC Miners → AI/HPC | Owns Exaion, an operating AI cloud business that is not yet financially material to MARA’s results, and is developing AI/HPC data-center sites (Long Ridge, Ohio; Matagorda, Texas; and a venture with Starwood). No lease has been signed at these development sites. |
| BGDE | BTC Miners → AI/HPC | Developing an AI/HPC campus in Hood County, Texas through a joint venture, which has a non-binding letter of intent with a prospective customer for up to 17 MW. A letter of intent is not a contract, and the company states the potential revenue is not contracted. Current revenue comes from Bitcoin-mining colocation and energy management. |
| DRK | BTC Miners → AI/HPC | Plans to convert its roughly 50 MW of energized sites, which currently support Bitcoin mining and hosting, to AI inference hosting, and holds an option on a greenfield site. No AI/HPC contracts have been announced. |
| CANG | BTC Miners → AI/HPC | Its subsidiary EcoHash has begun early commercial GPU compute services for an initial customer at a converted 3 MW section of its Georgia facility. No long-term customer lease has been announced. |
- BTC Miners now has 4 companies; AI/HPC now has 25 companies.
- Sector momentum, the OG Score factor that reflects how a company's sector peers moved that day, uses the new groups for every company in BTC Miners and AI/HPC. See the changelog below.
- Snapshots recorded before the first new snapshot keep the scores and sector averages they were recorded with. Sector charts on the Compare page mark the first new snapshot once it is confirmed.
- Companies remaining in BTC Miners share a smaller peer group, so their sector reading can move more from day to day.
- The week-over-week sentiment-momentum comparison spans the change for the first seven recorded sessions.
OG Market Desk scores describe sentiment and market data. They are not investment advice.
Methodology Changelog
current: v1.5.0Every change to how the score is computed is recorded here, in plain language, when it ships. Entries marked “backfill” were reconstructed from commit history when versioning was introduced. How well does the score line up with what happens next? See the validation research →
- 2026-10-21v1.5.0
Three changes take effect together. Missing market data is now treated as unavailable instead of as a genuine zero: when no source returns a quote for a stock, or returns a price without today's move or volume, the affected factors (price momentum, volume signal and 52-week position) sit out under the existing missing-data rule rather than reading the gap as a flat, zero-volume day at a price of zero, and sector momentum and sector averages are computed from the stocks whose move is actually known. A real 0% move is still a real 0%. Sector classification: AIB and JROOF are added to AI/HPC, and MARA, BGDE, DRK and CANG move from BTC Miners to AI/HPC under a broadened AI/HPC definition (see Sector classification changes above), so sector momentum uses the new peer groups for every company in both sectors. News attribution: an article about Strategy or Strive is attributed to the common stock, not to its preferred securities (STRC, SATA), which are tagged only when an article names them. The formula and its constants are unchanged, and historical scores are unchanged.
Why: Each change corrects what the score is fed, not how it is computed, and they take effect together so the score history has one boundary rather than three. A missing quote was being scored as a price of zero; sector peer groups did not reflect companies' documented AI/HPC programs; and issuer headlines were counted again on preferred securities.
- 2026-09-21v1.4.1
Corrected news-sentiment grading and eligibility so completed neutral grades are retained and included in the news factor while genuinely ungraded articles remain excluded. A score of 0 previously meant both "graded, neutral" and "not graded yet", so a considered neutral verdict was discarded: a stock whose recent coverage was uniformly neutral could show "No related news" beside its own headlines, and where only some articles carried a reading the label counted every related article rather than the graded ones. Articles now record who established their sentiment, so the two cases are distinguishable. The formula, factor weights, renormalisation and sector membership are unchanged, and historical scores are unchanged.
Why: A neutral reading is information. Discarding it removed the news factor entirely from much of the universe and redistributed its weight to the remaining factors, moving published scores without any of the underlying data having changed.
- 2026-07-16v1.4.0
News Sentiment coverage fix: the nightly snapshot now scores the same article set ticker pages already use (adding the pre-graded per-ticker news feed to the wire/RSS pool), and everywhere the factor is computed, only articles published in the last 72 hours count toward it. The news tab still displays 30 days; the score reads the current narrative. No formula changed — the factor was active on roughly 4 of 67 tickers per day before this; coverage rises sharply from today.
Why: A news sentiment factor that silently sat out for 60+ tickers a day measured nothing; and month-old articles should inform research, not today's score.
- 2026-07-07v1.3.1
Nightly history snapshots now include the Social Sentiment factor. It has been live on the site since May 7, but the recording job was still passing no social data, so daily history rows silently redistributed its weight. No factor math changed.
Why: Recorded history should reflect the same score the site computes; analyses of factor history should segment at this date.
- 2026-06-12v1.3.0
Methodology versioning introduced; daily snapshots now record the version that produced them. No factor math changed.
Why: So score history can be segmented by methodology era and the validation page never mixes eras silently.
- 2026-06-02v1.2.1 (backfill)
Per-factor scores and weights began being recorded with each daily snapshot. No factor math changed.
Why: Instrumentation for measuring each factor’s predictive value before considering any weight changes.
- 2026-06-01v1.2.1 (backfill)
Sentiment Momentum factor repaired after a week of missing baselines (May 26 – June 1).
Why: A data gap, not a design change — noted so history from that week is read with care.
- 2026-05-26v1.2.0 (backfill)
Six-factor base score began being recorded alongside the total, enabling week-over-week Sentiment Momentum.
Why: Momentum needs a stable baseline that excludes itself.
- 2026-05-07v1.1.0 (backfill)
Social Sentiment factor enabled, backed by LunarCrush (X + Reddit), with low-volume scores shrunk toward neutral.
Why: A handful of posts shouldn’t swing a stock’s score; shrinkage keeps thin social data honest.
- 2026-02-19v1.0.0 (backfill)
Daily score snapshots began. Seven-factor model with the published weights.
Why: Start of the recorded history used everywhere on this site.