Anatomy of a Grade
The complete, undisguised algorithm behind every GMI letter grade — published in full because a grade you can't audit is a grade you shouldn't trust
flowchart LR
FMP[Audited fundamentals<br/>statements, ratios,<br/>analyst data] --> CALC[Derived metrics<br/>computed in-house,<br/>vendor-drift immune]
CALC --> BASE[Start: 50 points]
BASE --> F1[Revenue growth<br/>+20 to -10]
BASE --> F2[Net income growth<br/>+15 to -10]
BASE --> F3[Debt-to-equity<br/>+15 to -10]
BASE --> F4[Return on equity<br/>+15 to -5]
BASE --> F5[Current ratio<br/>+10 to -5]
BASE --> F6[Analyst target upside<br/>+10 to -5]
F1 --> SUM[Clamp 0-100]
F2 --> SUM
F3 --> SUM
F4 --> SUM
F5 --> SUM
F6 --> SUM
SUM --> LETTER[Letter grade<br/>A+ to F]
SUM --> BRK[Per-factor breakdown<br/>with plain-English reasons<br/>-> dashboard hover popover]Deterministic and Explainable, On Purpose
The AI grade is not a black box. It is deterministic arithmetic over audited fundamentals: the same inputs always produce the same grade, and every point of every grade can be traced to a named factor with a plain-English reason. AI does the heavy lifting around the grade — data preparation, ML health forecasting, anomaly detection, natural-language insights, Ask Claude — but the grade itself is auditable math. That's a deliberate trust decision: when real money rides on a letter, "the model felt bearish" is not an acceptable explanation.
Every symbol starts at 50 points (a C-) and earns or loses points across six factors, clamping to 0–100. Nothing is hidden: the exact bands below are the production code.
The Six Factors — Exact Bands
| Factor | Range | Bands |
|---|---|---|
| Revenue growth (YoY) | +20 / −10 | >20% → +20 · >10% → +15 · >5% → +10 · >0% → +5 · flat → 0 · <−10% → −10 |
| Net income growth (YoY) | +15 / −10 | >20% → +15 · >10% → +10 · >0% → +5 · flat/mild decline → 0 · <−20% → −10 |
| Debt-to-equity | +15 / −10 | <0.5 → +15 · <1.0 → +10 · <2.0 → +5 · moderate → 0 · >5.0 → −10 |
| Return on equity | +15 / −5 | >20% → +15 · >15% → +10 · >10% → +5 · middling → 0 · negative → −5 |
| Current ratio | +10 / −5 | 1.5–5.0 → +10 · >1.0 → +5 · neutral → 0 · <0.5 → −5 |
| Analyst price-target upside | +10 / −5 | >30% → +10 · >15% → +7 · >5% → +3 · unclear → 0 · <−20% → −5 |
The design is legible: growth and profitability dominate (+50 possible), balance-sheet safety matters nearly as much (+40), and market opinion gets a voice but not a veto (+10). A company can't score an A on hype — but sustained execution across fundamentals reliably gets one there.
From Score to Letter — and the Signals Around It
The 0–100 score maps to letters on 5-point steps: 90+ A+, 85 A, 80 A−, 75 B+, 70 B, 65 B−, 60 C+, 55 C, 50 C−, 45 D+, 40 D, 35 D−, below 35 F. Portfolio-level grades average the per-symbol letters on a GPA-style 0–12 scale and map back.
The grade never travels alone. Alongside it, every symbol carries independent signals computed separately so one lens can't hide another:
- The hover breakdown — the exact per-factor points and reasons ("Revenue growth 23.4% — exceptional (+20)") behind every grade, shown in the dashboard. This page publishes the recipe; the product shows the arithmetic on demand.
- Analyst sentiment — bullish/bearish ratio of real analyst ratings (≥70% bullish → Strong Buy, etc.), independent of the grade.
- ML health score — a separate machine-learned 0–100 with its own grade, forecasting and anomaly detection included; agreement between the deterministic grade and the ML view is itself a signal.
- Unprofitability badges — a yellow flag for a loss-making latest year, a red flag for three straight loss years, and a green "cash-positive despite losses" counter-flag for the Amazon-pre-2003 pattern where free cash flow tells a different story than accounting income.
Why Publish the Whole Recipe
Because the moat isn't the arithmetic — it's the machine around it: the audited data pipeline, the ML forecasting, the 2,500-stock refresh infrastructure, and the platform that turns a formula into a weekly discipline. Publishing the exact bands costs nothing competitive and buys the only thing a grading service actually runs on: the user's ability to check our work. If you disagree with a band, you know precisely what you're disagreeing with — see where the grade has known blind spots and where every input number comes from.