GMI · TECHNOLOGY OBSERVATORY // ALL SYSTEMS NOMINAL
ENGINEERED BY LEOPARD DATA

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

THE SCORING PIPELINE
rendering diagram…
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<br/>neutral 0 for financials]
    BASE --> F4[Return on equity<br/>+15 to -5]
    BASE --> F5[Current ratio<br/>+10 to -5<br/>neutral 0 for financials]
    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]
Audited fundamentals in, deterministic arithmetic in the middle, explainable letter grade out — with every factor's contribution preserved for the hover breakdown users see in the dashboard.

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; the final score is capped between 0 and 100. Nothing is hidden: the exact bands below are the production code, and further down we run the full calculation on Apple so you can see every number.

The Six Factors — Exact Bands

FactorRangeBands
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 / −51.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 one published exception — Financial Services. For companies whose profile sector is Financial Services (banks, insurers, brokers, asset managers), debt-to-equity and current ratio both score a neutral 0. Leverage is the business model for a bank — deposits and borrowings are its raw material — so a well-run bank would otherwise eat −10 forever for being a bank; and financial balance sheets aren't split into current and non-current, so a current ratio says nothing about their liquidity. The hover breakdown says so in place: "Debt/equity not scored — leverage is the business model for financial companies (0)" and "Current ratio not scored — not meaningful for financial balance sheets (0)". Every other factor and band is unchanged, and nothing is rescaled: a financial can still reach A+ (50 + 20 + 15 + 15 + 10 = 110, clamped to 100). One uniform scale, one named exception — not a parallel rubric. Formula version 1.1.

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.
  • Style lenses — a value lens and a growth lens, each a deterministic 0–100 reading with its own published bands (below) and its own hover breakdown. They carry the style context so the letter doesn't have to.

The Style Lenses — Value and Growth, Beside the Grade

Value investors and growth investors ask different questions, and a single letter can't answer both without forking into per-style rubrics — which would put a judgment call ("is this a value stock?") at the front of otherwise-auditable math, and flip grades whenever a company drifted across a style line. So the grade stays one uniform scale, and two style lenses sit beside it. A slow-growing cash generator can read "C+ grade, 92 value lens": the letter stays comparable across every stock, and the lens supplies the style context. The lenses never feed the grade.

Value lens factorMaxBands
FCF yield (TTM FCF ÷ market cap)25≥8% → 25 · ≥5% → 20 · ≥3% → 14 · ≥1% → 8 · >0 → 4 · ≤0 → 0
P/E vs the 15× baseline25≤10 → 25 · ≤15 → 20 · ≤20 → 12 · ≤30 → 6 · >30 → 0 · no positive earnings → 0
Dividend yield25≥4% → 25 · ≥2.5% → 18 · ≥1% → 10 · >0 → 5 · none → 0
Price-to-book25≤1 → 25 · ≤2 → 18 · ≤3 → 10 · ≤5 → 5 · >5 → 0
Growth lens factorMaxBands
Revenue growth (YoY)40>25% → 40 · >15% → 32 · >10% → 24 · >5% → 16 · >0% → 8 · ≤0 → 0
Net income growth (YoY)30>25% → 30 · >15% → 24 · >10% → 18 · >5% → 12 · >0% → 6 · ≤0 → 0 · narrowing loss → 0
Free-cash-flow growth (YoY)30same bands as net income · narrowing cash burn → 0

Reading bands. Value lens: 80+ Strong value profile · 60–79 Value-leaning · 40–59 Middle of the road · 20–39 Premium-priced · below 20 Richly priced. Growth lens: 80+ High growth · 60–79 Growing · 40–59 Moderate growth · 20–39 Slow growth · below 20 Flat or shrinking. The labels describe what the numbers show; neither end of either scale is a verdict.

Missing data is left out, not scored as zero. The lens score is the points earned divided by the points available from the factors that could be scored — a stock with no computable price-to-book is read on the other three value factors, and its breakdown says so. A real zero (no dividend, negative free cash flow, no earnings) is data and is scored. With fewer than two scorable factors, no lens is shown. Unprofitable companies keep the badge system above as their archetype-aware signal. Lens bands version 1.0.

A Worked Example — Apple, Graded in Front of You

Reading a scoring table is one thing; watching the arithmetic happen is another. So here is the entire algorithm run on a real company: Apple (AAPL), using the numbers from its fiscal-2025 annual report (the year ended September 27, 2025 — the latest audited annual filing the grade sees) and market data as of August 23, 2026 (Friday's closing price: $309.35). Every number below is shown with the actual math, so you can check it with a calculator.

Step 1 — Compute Apple's six numbers
FactorThe mathResult
Revenue growth
Did sales grow versus last year?
($416.16B − $391.04B) ÷ $391.04B × 100
this year's revenue minus last year's, divided by last year's
+6.43%
Net income growth
Did profit grow versus last year?
($112.01B − $93.74B) ÷ $93.74B × 100
this year's profit minus last year's, divided by last year's
+19.50%
Debt-to-equity
How much debt per dollar of shareholder money?
$112.4B total debt ÷ $73.7B shareholder equity 1.52
Return on equity
How much profit per dollar shareholders have in the company?
$112.01B profit ÷ $73.7B shareholder equity × 100 151.9%
Current ratio
Can it pay this year's bills with this year's assets?
$148.0B current assets ÷ $165.6B current liabilities 0.89
Analyst target upside
How far above today's price do analysts think it's worth?
($326.34 avg target − $309.35 price) ÷ $309.35 × 100 +5.5%
Step 2 — Look each number up in the bands table above
Apple's numberWhich band it lands inPoints
Revenue growth +6.43%more than 5% but not more than 10% → "solid"+10
Net income growth +19.50%more than 10% but not more than 20% → "strong"+10
Debt-to-equity 1.52under 2.0 → "manageable"+5
Return on equity 151.9%over 20% → "excellent"+15
Current ratio 0.89between 0.5 and 1.0 → neutral, no points either way0
Analyst upside +5.5%more than 5% but not more than 15% → "modest"+3
Step 3 — Add it up

Every stock starts at 50 (a C−). Add Apple's points from each factor, in order:

50 + 10 + 10 + 5 + 15 + 0 + 3 = 93

A score of 93 is 90 or above, so the letter is A+. That's the whole calculation — no model, no weighting we didn't show you, nothing left out. In the dashboard, hovering Apple's grade shows exactly these lines: "Revenue growth 6.4% — solid (+10) · Net income +19.5% — strong (+10) · Debt/equity 1.52 — manageable (+5) · ROE 151.9% — excellent capital efficiency (+15) · Current ratio 0.89 — neutral (0) · Price target 5.5% above current — modest upside (+3)."

Three things worth noticing. Net income grew 19.5% — half a point short of the >20% band that pays +15 instead of +10; bands are hard edges on purpose, because the alternative is a judgment call nobody can audit. Apple's famously lean working capital (current ratio 0.89) earns zero points, not a pass — the grade doesn't grade on reputation. And the analyst factor contributed just 3 of Apple's 43 earned points: the A+ comes from execution, with market opinion as a voice, not a veto.

Apple is in the Technology sector, so every band applied as written. Had it been a bank, the same arithmetic would run with two lines changed: debt-to-equity and current ratio would each contribute a neutral 0 under the Financial Services rule, and the breakdown would say exactly that instead of a band label.

This is a snapshot for illustration. The live product recomputes the grade on every data refresh, so Apple's current grade in the dashboard reflects whatever the fundamentals and prices say today — same arithmetic, fresher inputs.

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.