Methodology · formulas
Explains how every figure Stocklore shows is calculated and the basis for the investor-checklist criteria. This is not investment advice — it's a reference research tool.
New to terms like P/E, ROE, or FCF? → Stock-metric glossary — start with the plain-language explanations.
It means that metric's data isn't available yet. It's not a bug.
• Always shown: ROE, net margin, operating margin, debt ratio, ROA, P/E, positive EPS — computed directly from SEC statements
• May show —: revenue growth, FCF, P/B, EPS growth, PEG — when prior-quarter comparison data or book value (BVPS) is missing
• Not in filings — The company did not disclose this item, or does not provide it under a standard XBRL tag.
• IFRS local-currency basis — Overseas ADRs report under IFRS in local currency, so this is not computed on a US GAAP basis.
• Not applicable to ETFs — An ETF is a fund holding many stocks, not a company, so company financial metrics do not apply.
• Insufficient data — There is not yet enough prior-quarter data to compute this.
• Cannot assess — The denominator is zero or negative, so this calculation does not hold (e.g. losses).
• In preparation — Not generated yet — it will be filled in shortly.
• Could not load — We could not load this value due to a temporary problem — it does not mean the company did not disclose it. Please try reopening shortly.
The numbers always come from SEC filings. AI is used only to read tables and translate — never to judge. So you trust it because it is verified, not because the AI is clever.
• AI-extracted + cross-checked — Revenue by segment. AI reads the segment table (its format differs by company) to extract the numbers; we then check that they add up to the disclosed total revenue and show only what passes. The numbers come from SEC, not from AI.
• AI translation — Korean translation of risk factors (10-K Item 1A). The English screen shows the SEC original as-is, so no AI is involved there.
• Rule-based — Everything else — financial metrics, earnings quality, contextual reading, timeline events. A fixed-formula calculation — the same input always gives the same result. No AI involved.
• SEC filing as-is — Every line amount and filing date in the three financial-statement walkthroughs. Each line links straight to the SEC original.
Your own data — watchlists and portfolios — is never sent to the AI (as stated in the privacy policy).
How financial metrics are calculated (SEC EDGAR-based)
EPS (TTM — Trailing Twelve Months)
EPS (TTM) = sum of last 4 quarters' net income ÷ diluted shares outstanding
We sum net income over the last four completed quarters, then divide by diluted shares outstanding. We don't compute it if fewer than four quarters of data exist.
P/E (price-to-earnings)
P/E = current price ÷ EPS (TTM)
The current price uses Massive API snapshot data. If EPS is ≤ 0 (a loss), P/E is meaningless, so we show —.
Operating margin
Operating margin = operating income ÷ revenue × 100
Based on the most recent quarter. We parse the OperatingIncomeLoss / Revenues tags from SEC EDGAR.
ROE (return on equity)
ROE = annual net income (TTM) ÷ stockholders’ equity × 100
The denominator uses stockholders' equity at the most recent quarter-end. If equity is negative, we show —.
Debt-to-equity
Debt-to-equity = long-term debt ÷ stockholders’ equity
Based on long-term debt, not short-term. If equity is negative or there's no long-term-debt tag, we show —.
FCF (free cash flow)
FCF = operating cash flow − CapEx
Based on the last year (4 quarters summed). Uses the NetCashProvidedByUsedInOperatingActivities − PaymentsToAcquirePropertyPlantAndEquipment tags. Positive = surplus, negative = deficit, shown in $B.
Net margin
Net margin = net income ÷ revenue × 100
Based on the most recent quarter. Used in internal investor-checklist calculations.
ROA (return on assets)
ROA = annual net income (TTM) ÷ total assets × 100
The denominator uses total assets at the most recent quarter-end.
Current ratio
Current ratio = current assets ÷ current liabilities
Based on the most recent quarter-end balance sheet. Above 1 means short-term obligations are covered.
Revenue growth (YoY)
Revenue growth = (this quarter's revenue − year-ago revenue) ÷ year-ago revenue × 100
If there's no year-ago data, we show —. This is one of the items that most often shows — in the checklist.
EPS growth (YoY)
EPS growth = (this quarter's EPS − year-ago EPS) ÷ |year-ago EPS| × 100
Shows — if there's no year-ago data or year-ago EPS is 0.
P/B (price-to-book)
P/B = current price ÷ BVPS BVPS = stockholders’ equity ÷ shares outstanding (basic)
We look for the BookValuePerShareBasic tag in SEC EDGAR, and if missing, compute equity ÷ shares outstanding. Some financials, ETFs, and foreign companies have no BVPS and show —.
Market cap
Market cap = current price × shares outstanding
Shares outstanding from SEC EDGAR; price from the Massive API snapshot.
Each metric's sector benchmark is the median of representative companies (up to 15) in major sectors such as semiconductors, software, and internet. It isn't a live full-sector average. ★Because the sample is small we do not show percentiles like 'top X% in sector' — we show only the actual gap vs. the benchmark (e.g. +5pp vs benchmark), so we don't claim precision we don't have. The sample size and as-of date are shown right on the stock detail's 'Sector benchmark' label.
Earnings & financial quality (recombined from SEC XBRL)
FCF conversion
FCF conversion = FCF (operating cash flow − CapEx) ÷ net income (trailing 4 quarters)
How much of book profit actually arrives as cash. Verdict: 60% or more = above benchmark · below = needs review · negative = below benchmark. At least 60% of net income should remain as cash to leave room for dividends, investment and debt repayment.
SBC intensity (stock-based compensation share)
SBC intensity = stock-based compensation (ShareBasedCompensation) ÷ net income
The share of profit made up of stock granted to staff instead of cash (a non-cash expense). Verdict: 30% or less = above benchmark · above = needs review. Above a third of net income means a large part of profit is propped up by a non-cash expense. If the company does not disclose it, we show ‘not disclosed’.
Net debt / EBITDA
Net debt ÷ EBITDA Net debt = total borrowings (short + long term) − cash & equivalents EBITDA = operating income + D&A
Roughly how many years of earnings power it would take to repay debt. Verdict: 3x or less = above benchmark · 3–4x = needs review · above 4x = below benchmark · net cash counts as above benchmark. Credit and lending practice generally treats up to 3x as manageable and above 4x as a burden.
Accruals ratio (Sloan)
Accruals ratio = (net income − operating cash flow) ÷ total assets
How large the gap between book profit and actual cash is relative to assets (the larger, the more earnings quality is in question). Verdict: 10% or less = above benchmark · above = needs review. Research (Sloan, 1996) finds that when the gap exceeds 10% of assets, profit is more likely inflated.
ROIC (return on invested capital)
ROIC = after-tax operating profit (NOPAT) ÷ invested capital NOPAT = operating income × (1 − effective tax rate) Invested capital = total debt + equity − cash & equivalents
How much the company earns on the capital it puts to work — exceeding the cost of capital (roughly 8–10%) creates value. Verdict: above 15% = above benchmark · 8–15% = near benchmark · below 8% = below benchmark. The effective tax rate is tax expense ÷ pretax income; when it cannot be computed, the US corporate rate of 21% is the default.
Buyback trend
Buyback spending (PaymentsForRepurchaseOfCommonStock, TTM) + change in shares outstanding (YoY)
We look at buyback spending together with the change in shares outstanding. When buybacks come with a falling share count, each share represents a larger claim. Verdict: a buyback accompanied by a falling share count = above benchmark.
Income structure & efficiency (SEC filings)
Income structure (revenue → profit)
Gross margin = gross profit ÷ revenue Cost of sales · R&D · SG&A each ÷ revenue (%, TTM)
Shows, as shares of revenue, how much cost of sales, R&D and SG&A take before operating income is left. Computed from the GrossProfit · CostOfRevenue · ResearchAndDevelopmentExpense · SellingGeneralAndAdministrativeExpense tags, summed over the last 4 quarters.
Interest coverage
Interest coverage = operating income ÷ interest expense (TTM)
How many times operating income covers interest (the higher, the lighter the interest burden). Hidden when there is no debt/interest expense (debt-free); shown as ‘operating loss’ when operating income is negative. A status description, not a prescription.
Inventory trend
Inventory growth (YoY) vs revenue growth (YoY)
When inventory (InventoryNet) piles up faster than revenue, it can signal slowing demand. Described conditionally as ‘faster than / similar to / slower than revenue’; hidden for industries without inventory (services, financials, etc.).
Receivables collection trend (DSO approximation)
Period-end receivables (AccountsReceivableNetCurrent) ÷ quarterly revenue
When receivables rise relative to revenue, it can signal slower cash collection. We factually describe slowing/improving collection from the quarterly ratio trend (only for companies that disclose receivables).
Cash change breakdown (cash flow statement)
Three-way breakdown
Net cash change ≈ operating + investing + financing (+ FX·other)
Net change uses the CashCashEquivalents…PeriodIncreaseDecrease tag first, and the difference from the three-way sum is shown as ‘other · FX’.
Line items
We break financing/investing outflows into line items: buybacks · dividends · CapEx · acquisitions (M&A) · debt repayment · debt issuance. Synonym tags that differ by company are merged across quarters for a seamless sum.
Characterizing a decline
When cash falls, if operations are still generating cash (CFO positive) we describe it as a decline from investment/shareholder returns, not a deficit; if cash is also leaving operations (CFO negative), as covering the gap by drawing down cash and borrowing capacity. A status description, not a conclusion.
Dividends — annual amount, yield, growth
Annual dividend and yield
Annual dividend = sum of the latest N paid regular dividends (N = payouts per year) · Yield = annual dividend ÷ current price
Dividend growth (reference figures)
CAGR = (current annual dividend ÷ annual dividend N years ago)^(1/N) − 1
The figure N years ago is computed as of that date — dividends not yet paid then are excluded, so the two sides are comparable. Past amounts are adjusted for stock splits (without this, a 3-for-1 split makes a rising dividend look like a cut), and special dividends are excluded. If either side is not a normal full-cycle year (payouts stopped, history too short, or the payout frequency changed), no figure is shown.
The sector median chip is the median 5-year growth of dividend-paying stocks among that sector's sample (up to 15 stocks), shown only when at least 6 of them qualify — sectors where few companies pay dividends show nothing rather than a thin number. These are records of what already happened, not forecasts or suggested values.
Contextual reading (cross-referencing metrics)
Cross rules (thresholds)
ROE, operating margin and debt ratio use sector-relative thresholds (falling back to absolute lines where no sector benchmark exists); the rest (PER, revenue growth, payout ratio, receivables, etc.) use conservative absolute lines. All descriptions are factual diagnoses, not buy/sell recommendations.
Quarterly earnings trend
Trend determination
Operating margin (quarterly) = operating income ÷ revenue × 100 Revenue growth = year-over-year (YoY) Compare = median of last N quarters vs prior N (N=3 if ≥6 data points, else N=2)
Phase (cross) rules
Not shown with fewer than 4 quarters of history. All are factual diagnoses, not buy/sell recommendations.
Earnings releases (filing & price based)
Earnings release timeline
Quarterly revenue·EPS YoY·QoQ + next-trading-day price move (%)
Shows how each quarter’s revenue·EPS changed vs a year ago and the prior quarter, alongside the ±% close on the next trading day after the filing. The release date uses the SEC filing date (filed); prices use daily market data. Not vs consensus — an honest proxy for ‘how the market reacted to that result’.
Remaining performance obligations (RPO)
RPO = RevenueRemainingPerformanceObligation (ASC 606) year-over-year (YoY)
The remainder contracted but not yet recognized as revenue — a signal of leading demand (order backlog). Unlike guidance, it is structured XBRL-disclosed data, so we read it as-is without estimation or hallucination. Shown only for disclosing industries (SaaS, subscription, long-term contracts, defense, etc.); hidden otherwise (an honest blank).
Revenue by segment
Validation: segment sum = total revenue cross-check
We only show companies where the extracted segment revenues sum to XBRL total revenue (cross-check passed). If the structure is unusual or extraction is unstable and the check fails, we do not force it and show ‘in preparation’ — an honest blank over a wrong number. A single wrong number would collapse our core value of ‘verified numbers’.
Interpretation (concentration · growth driver)
We synthesize the validated segments by weight and YoY change and comment (AI commentary) on the largest segment’s weight (concentration) and the segment that mainly drove recent growth. It gives a conclusion rather than a bare list of weights — descriptive, not a buy/sell recommendation. Companies that disclose only by region are noted as ‘segments not disclosed’.
Risk-factor changes (10-K Item 1A diff)
Extraction method
From the SEC 10-K original we locate the span from Item 1A Risk Factors to Item 1B, and split the risk subheadings the company sets in bold into items. Since we recognize them by bold-text pattern without per-company hardcoding, some companies that do not bold subheadings or attach the body as a separate exhibit are honestly shown as cannot compare (no forced result).
Change classification
Token Jaccard similarity ≥ 0.5 → wording revision of the same risk other remaining items → genuine addition or removal
We normalize both filings’ items; exact matches are excluded as common (no change), and among the rest, items sharing more than half their words (Jaccard ≥ 0.5) are wording revisions of the same risk, otherwise genuine additions/removals. Exact match alone would catch minor wording tweaks as both add and remove (noise), so the similarity judgment is key.
Parsed and cached once per new filing; a repeat request for the same filing does not re-download the original (1.5MB+). Everything from the change summary (counts) to all additions/removals and the before→after of revised items is free.
Adjusted results (Non-GAAP) detection
Detection method
From the earnings 8-K (Item 2.02) press release (EX-99.1) we find the list of Adjusted/non-GAAP metrics, the add-back items, and whether stock-based compensation (SBC) is excluded. If there are no Adjusted metrics (a GAAP-only company), the card is hidden to avoid false positives from a word that happens to appear in the text.
Everything from which Adjusted metrics are reported and what is excluded (facts) to what % of net income that SBC is (the cross conclusion — what the company’s highlighted Adjusted figure was built by excluding) is free. All factual descriptions.
Analysis summary (at a glance)
How it is built
It reuses conclusions each layer already computed, so there is no extra computation or external call. Conclusions are classified as caution · solid · reference, with caution items sorted first, and each shows which analysis it came from. The card is hidden when nothing applies. All are factual summaries, not buy/sell recommendations.
DCF scenario (assumption-based)
DCF (discounted cash flow)
Assumes EPS grows at a steady annual rate for 10 years, then discounts future earnings to present value and sums them.
DCF = Σ(EPS × (1+g)ⁱ / (1+r)ⁱ) + EPS × (1+g)¹⁰ × terminal P/E / (1+r)¹⁰ (i = 1 ~ 10)
The DCF section is not shown when EPS is negative or absent.
★ This is a simple model driven by EPS alone. It differs from a rigorous enterprise DCF that accounts for free cash flow, capital structure, and debt. The result is not a target or fair price — it is just the arithmetic of the assumptions you entered, and it moves a lot when those assumptions change. Drag the sliders to see the range yourself.
Multiple valuation (what-if)
See how multiples change as you vary the assumed price. If a median of same-sector constituents (real data) exists, we judge vs that sector median (below 0.85x low · above 1.2x high); otherwise we fall back to absolute lines. We also show which basis is used (transparency).
PER = price ÷ EPS(TTM) EV/EBITDA = (market cap + net debt) ÷ (operating income + D&A) PSR = market cap ÷ revenue(TTM) Net debt = total borrowings (short+long) − cash & equivalents
Losses (EPS≤0), EBITDA≤0 and local currency (IFRS) show the multiple as “cannot assess”. ‘What this price implies’ describes where the assumed price sits vs the current price and what that multiple presupposes (free). Not a buy/sell recommendation.
How technical indicators are calculated
RSI (Relative Strength Index)
RSI = 100 - (100 / (1 + RS)) RS = average gain / average loss (14-day, Wilder method)
70 or above means recent gains have been large; 30 or below, recent losses — a calculation, not a trading judgment.
MACD
MACD line = EMA(12) - EMA(26) Signal line = EMA(MACD, 9) Histogram = MACD - Signal
MACD crossing above the signal line means recent upward momentum has strengthened relative to downward; crossing below, the reverse — a calculation, not a trading judgment.
Moving averages (SMA)
SMA(n) = arithmetic mean of the last n daily closes
Shows 20/50/200-day SMAs. A price above the 200-day line is a long-term uptrend.
Bollinger Bands
Upper = SMA(20) + 2σ / Lower = SMA(20) - 2σ
Touching the lower band means price moved below its usual range; the upper band, above it — a calculation, not a trading judgment.
Portfolio stock badge criteria
The per-stock badges on the portfolio page are factual labels based on SEC EDGAR financials — not an overall grade or investment judgment. We show up to the top 3 by priority (change detection → losses·declining revenue → sector-relative strength·value), with the rest behind ‘+N’. Not shown for stocks without data (an honest blank).
High margin·high ROE·high growth·high PER·low PER·high leverage·low debt are judged not by an absolute yardstick but by position within the same sector — shown only in the top 25% (or bottom 25%) tail of the sector sample. Normal ranges differ by sector (e.g. banks naturally carry large debt), so an absolute bar would be unfair. The sector sample uses quartiles of up to 15 representative names; if the sample is too small (fewer than 6), it falls back to the absolute line in parentheses. Net loss·negative FCF·declining revenue·debt spike·FCF decline are sector-independent facts, so they use absolute lines as-is.
Combined lenses (concentration visible only across holdings)
Shows concentration that emerges only when you combine the whole portfolio, not a single stock. All are facts weighted by weight (=amount÷Σamount); concentration itself is neither good nor bad (no prescription). Unclassified·uncached stocks are excluded and noted honestly as ‘based on N/M stocks’.