Install
$ agentstack add skill-johnqtcg-awesome-skills-stock-earnings-quality-review ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Stock Earnings Quality Review
Purpose
Read the income statement, cash-flow statement, and selected MD&A passages with the eye of an analyst who trusts cash over accruals. Surface the most common quality red flags: net income that doesn't convert to cash, capex understated as "maintenance" while it's really expansion, receivables ballooning faster than revenue, gross margins eroding under cover of revenue growth, operating leverage that runs in reverse. Output a structured Findings set; do NOT draw the verdict — orchestrator does that.
When To Use
- Orchestrator dispatches earnings-quality review (always-on in Standard / Strict depth).
- User asks about "earnings quality", "is the profit real", "cash conversion", "operating leverage", "margin trend".
- A pre-cursor to valuation — you cannot trust forward earnings until you've tested the quality of trailing earnings.
When NOT To Use
- Balance sheet leverage / liquidity / goodwill →
stock-balance-sheet-review - Business model / customer concentration →
stock-business-review - Management capital allocation →
stock-management-review - Competitive moat / market share →
stock-industry-review - DCF, multiples, target price → orchestrator's synthesis step
Mandatory Gates
1) Execution Integrity Gate
You must read the cash flow statement from the most recent 10-K and the latest 10-Q. If neither is in the manifest, return SKIPPED (no cash flow data).
2) Multi-Period Gate
A single quarter or single year is noise. Compare ≥3 years of annual data (10-K plus historicals from manifest's financial-history.json if present). Trend matters more than level.
3) Sector-Aware Gate
A 20% gross margin is normal for retail and catastrophic for software. Identify the sector from the business-review's classification (or from 10-K SIC code in the manifest) before scoring margin levels.
4) Non-GAAP Discipline Gate
Where the company reports both GAAP and non-GAAP, always check the reconciliation. If SBC, restructuring, or amortization is excluded from "Adjusted EBITDA", surface it — these are real costs.
5) First-Hand Data + Bridge Gate (mandatory)
Every reported financial figure you cite MUST come from the manifest's first-hand financials.json (SEC EDGAR XBRL, produced by scripts/finlib/edgar.py) or directly from the filing — never from a search snippet or an aggregator summary. If a figure is only available second-hand, tag it second-hand and lower the confidence of any conclusion resting on it.
- Segment → consolidated bridge required. An operating-leverage / margin conclusion is not credible without showing the bridge: segment operating income → consolidated operating income → EBIT → FCF, reconciled to the filing. If
financials.json["gaps"]listssegment_operating_income(EDGAR exposes it dimensionally, not flatly), read the 10-K segment footnote directly to build the bridge — do not infer segment economics from consolidated totals.
6) Single-Period Gate (mandatory)
A single quarter's YoY is polluted by one-off items, SBC vesting cadence, and depreciation-recognition timing. Any operating-leverage or trend conclusion requires ≥4 quarters or a TTM basis — a single-quarter "OpInc grew faster than revenue, so leverage is positive" claim will be FAILed by the orchestrator's 口径 lint gate (scripts/finlib/lint.py, period_count >= 4). Strengthens Gate 2.
Workflow
- Load first-hand
financials.json(EDGAR XBRL) + cash flow statement (10-K Item 8), income statement, and segment footnote. - Run filing-pattern-gated scan over the checklist; semantic-confirm hits.
- Compute trends from ≥4 quarters / multi-year series: OCF/Net Income ratio, FCF (and the GAAP-vs-adjusted gap), gross margin, opex rates, capex/D&A. Build the segment→consolidated bridge.
- If business model = SaaS / subscription, run the SaaS sub-checklist (items EQ-06 + EQ-07).
- Emit Findings with severity + numerical evidence (don't say "margin declining" without a number), each citing its
financials.jsonsource tag.
Filing-Pattern-Gated Execution Protocol
Execution Order
- Identify the target sections in the manifest: cash flow statement, income statement, Note "Disaggregation of revenue", Item 7 MD&A.
- For each checklist item with a documented filing-section pattern, locate the section and extract the numerical series.
- HIT → quantitative analysis (compute ratio, trend, YoY change) + semantic check.
- MISS → mark NOT FOUND; do not infer from analyst summaries.
- For semantic items (e.g., management's explanation in MD&A): full reasoning on the passage.
- Report only items where the numbers actually violate the rubric.
- Include
Filing pre-scan: X/Y items hit, Z confirmed as findings.
Earnings Quality Checklist (15 Items)
| ID | Item | Filing Section | Threshold / Trigger | |---|---|---|---| | EQ-01 | OCF vs Net Income drift | Cash flow statement vs Income statement | Flag if OCF / Net Income > depreciation) | Cash flow "Capex" vs Income "D&A" | Flag if Capex / D&A > 2× without explicit expansion narrative | | EQ-04 | Equity issuance pattern (dilution) | Cash flow "Issuance of common stock" + share-count history | Flag if shares outstanding grew > 5% YoY without M&A | | EQ-05 | Shareholder return yield = (buybacks + dividends) / market cap | Cash flow "Repurchase of common stock" + "Dividends paid" | Informational — context for capital allocation worker | | EQ-06 | SaaS metric: NRR (Net Revenue Retention) | Earnings releases, investor presentations | Flag if NRR 5pp (future slowdown signal) | | EQ-09 | Receivables growth vs revenue growth (channel stuffing) | Balance sheet "AR" YoY vs Income revenue YoY | Flag if AR growth > revenue growth by > 10pp | | EQ-10 | Gross-margin level vs sector + trend | Income statement; sector benchmark | Sector-aware threshold; flag declining margin > 2pp YoY | | EQ-11 | Operating leverage check | OpInc growth vs Revenue growth | Flag if OpInc growth 15% of revenue AND excluded from Adjusted EBITDA | | EQ-14 | One-time-item frequency (restructuring, write-downs) | Income statement "Special items" 5-year count | Flag if "one-time" items appear in 3+ of last 5 years (i.e., they're recurring) | | EQ-15 | Segment margin & mix-shift | Segment footnote: operating income + revenue BY segment | Flag if a segment growing >5pp faster/slower than core carries a structurally different margin AND the blended-margin trend is mix-driven, not efficiency-driven |
Severity Rubric
- High: A Finding that would flip a Good-Company score item to FAIL — e.g., OCF / NI persistently below 0.7; FCF negative and worsening; NRR
### Summary
One line: `N High / M Medium / K Low — most material: `.
## No-Finding Case
No earnings-quality findings — cash conversion clean, margins stable, leverage positive. Notable positives: OCF/NI = 1.05 (3-year avg); FCF margin 28% and stable.
## Load References Selectively
- `references/earnings-quality-patterns.md` — load when interpreting OCF/NI gaps, capex classification, SaaS-specific metrics, or segment-margin mix-shift (EQ-15); contains worked examples, sector-specific margin benchmarks, the Magic Number / CAC-payback formulae, and the blended-margin mix-shift decomposition.
## Review Discipline
You are the most-loaded worker (15 checks). Discipline: numbers in every Finding; suppress items you cannot quantify. Orchestrator weights High-severity items heavily — false High findings damage the verdict more than missed Medium findings.
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [johnqtcg](https://github.com/johnqtcg)
- **Source:** [johnqtcg/awesome-skills](https://github.com/johnqtcg/awesome-skills)
- **License:** MIT
- **Homepage:** https://johnqtcg.github.io/awesome-skills/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.