How every CV is built
Every number on a StockCV traces back to a company filing or a recorded market price. Scores are computed mechanically from those numbers with fixed thresholds — no analyst opinions, no hand-tuning per company. When data is missing we say so; we never estimate it.
The verdict
The label next to the company name summarises balance-sheet and earnings health using a 0–100 health score (Altman Z-Score, interest coverage, debt load, liquidity and profit history):
| Label | Health score |
|---|---|
| Strong | 75 or higher |
| Solid | 55 – 74 |
| Mixed | 35 – 54, or not enough data to score |
| Strained | below 35 |
It describes financial condition, not whether the stock is a good buy.
Skills — six scores
Each axis of the radar is scored 0–100 from four independent legs worth 25 points each. Legs are laddered (e.g. ROIC above 25% earns 25 points, above 15% earns 20, above 8% earns 12) and reach a real zero. A missing input scores 0 — a data gap is not a good score — except inside Valuation, where a missing leg gets a neutral 10.
| Score | What it measures | Legs |
|---|---|---|
| Valuation | How cheap the stock is vs its own past and in absolute terms | P/E percentile vs own history · FCF yield · Price/Sales · EV/EBITDA |
| Growth | How fast the business has been expanding | Revenue CAGR · Net income CAGR · EPS CAGR (~5y) · Forward-implied growth |
| Profitability | How much profit the business earns today | ROIC · ROE · Net margin · Operating margin |
| Financial Health | Ability to survive a bad year | Altman Z-Score · Current ratio · Interest coverage · Net cash / debt-to-assets |
| Quality | Trustworthiness of the reported earnings | Piotroski F-Score · Beneish M-Score · FCF conversion · Margin stability |
| Moat | Durability of above-average economics over the years | Share of years with ROIC > 12% · Median gross margin · Share of FCF-positive years · Worst-year net margin |
Moat needs at least three years of filings per leg; with less history a leg scores 0, because durability cannot be shown on two reports.
Qualifications — the beginner checklist
Basic pass/fail checks a business should clear before deeper research. Items without data show “–” and are excluded from the count.
| Check | Passes when |
|---|---|
| Revenue growing | Trailing revenue is above the prior year |
| Profitable | Trailing net income is positive |
| Profit growing | Earnings are higher than a year earlier |
| Generates cash | Trailing free cash flow (operating cash flow minus capex) is positive |
| Debt under control | More cash than debt, or net debt repayable from ≤ 5 years of free cash flow (current ratio ≥ 1.2 as fallback) |
| Established company | Market capitalisation of at least $2B |
| Not printing shares | Share count grew no more than 10% over ~5 years |
| Proven track record | Profitable in at least 5 of the recorded years (or all, if fewer) |
| Financially stable | Altman Z-Score above 1.81 (health score ≥ 55 as fallback) |
| Pays a dividend | Dividend yield above zero |
| Valuation not extreme | P/E between 0 and 50 |
Experience — career milestones
Dated highlights, derived — never written by hand:
- Revenue thresholds ($1B, $10B, $50B, $100B, $500B) — only when the crossing is visible in the data; if the first recorded year is already above, we say “already above”.
- Profitability — “turned profitable” only after an observed loss year; otherwise “profitable every year on record”.
- Became debt-free — the first year cash exceeded total debt after a leveraged year.
- Best year on record and free-cash-flow streaks of five years or more.
- Big moves — days the stock moved at least 2 standard deviations versus its own history, with the recorded catalyst when available.
- Insider purchases — at least two open-market buys by insiders within a quarter.
- Earnings surprises — EPS beats or misses of 15% or more versus the estimate.
Current status
The 52-week range places today’s price between the lowest and highest daily close of the past year. P/E vs its own history shows the share of past trading days on which the stock was cheaper than today, using the company’s own trailing P/E series. If that series disagrees with the displayed P/E by more than 15% (common for some foreign listings), the comparison is hidden rather than shown on a mismatched basis.
Unusual moves
A move is unusual when its size, measured in standard deviations (σ) of the stock’s own recent daily returns, is at least 2. A 3% day is routine for a volatile stock and remarkable for a utility — σ captures that difference; raw percentage lists do not. Moves and catalysts are detected by our sister site PreMarketPrice.
Data & limits
- Financial statements come from company filings via Finnhub, with a fallback source for some foreign listings. Quarterly figures are normalised from as-filed year-to-date values.
- Share counts are filed as reported, so stock splits look like a jump in shares. When the count changes by close to a standard split ratio (2:1, 3:1, 4:1, 10:1 …) we restate earlier years by that exact ratio, which keeps EPS and the dilution check comparable. Any extra issuance in the same year still counts as dilution. A merger paid in shares that happens to land near 2× or 3× can be mistaken for a split.
- Prices and valuation history come from daily market data; figures may be delayed by up to a trading day.
- Founding year, CEO and full dividend history are not yet in our data, so CVs do not show them.
- Restatements, unusual one-off items and short reporting histories can distort ratios. Treat every CV as a starting point for research, not a conclusion.
- StockCV is information, not investment advice.