Independent project. Not affiliated with, endorsed by, or sponsored by any company whose calls it analyzes. Not investment advice. The bundled sample uses a fictional company.
Turns an hour-long earnings call transcript into a one-page, plain-English executive brief: what happened, what matters, what to watch, and what management did not clearly answer.
Not investment advice. The tool deliberately gives no buy/sell/hold calls. It surfaces facts, tone, risks, and open questions. AI summaries can contain errors; always check the source.
Earnings calls run 45-60 minutes and are full of jargon. Senior leaders and individual investors rarely have time to listen, so they read a headline instead. The real signal is often in the guidance, the tone, and how management answers hard analyst questions.
The default output is a one-page brief:
- Bottom line and 3-5 top takeaways
- Key numbers, with context
- Outlook (guidance)
- Management tone, with evidence
- Watch list of risks
- Questions management did not clearly answer
Use --full for the detailed version (highlights, analyst Q&A themes, questions to research).
See samples/sample_output.md, generated from the fictional sample_transcript.txt.
pip install -e ".[dev]"
export ANTHROPIC_API_KEY=your-key # PowerShell: $env:ANTHROPIC_API_KEY="your-key"
earnings-analyzer samples/sample_transcript.txtOptions: -o brief.md to save, --full for the detailed summary, --json for raw structured output, --model to choose a model.
- Grounded only in the transcript. The prompt forbids outside facts and requires "Not discussed" instead of guessing.
- Quote checking. Every double-quoted passage is checked against the transcript. Anything that is not word-for-word gets flagged in the output.
- Guaranteed structure. The model returns data through a strict tool schema, so the output cannot break the formatting. Rendering also tolerates minor shape errors.
- Written for a busy reader. One sentence per bullet, hard caps on list lengths, and the most important items first.
- Balanced by construction. Risks and "not clearly answered" are required sections, not afterthoughts.
- No recommendations. Output is framed as things to watch, with a disclaimer on every summary.
I tested the tool on a real Fortune 50 earnings call and checked the output against the transcript. That surfaced three problems, which are now fixed:
- A parsing failure when the model's JSON text contained stray quote characters. Fixed by moving to a strict tool schema.
- A paraphrase presented inside quotation marks. Fixed with the quote checker.
- A 2,500-word output that was too long for an executive reader. Fixed with the one-page brief and
--fulloption.
The real transcript is not included in this repository.
- Fetch filings and press releases from SEC EDGAR
- Compare two quarters side by side
- Track guidance changes across quarters
- Simple web UI
Transcripts from commercial providers are copyrighted. Use transcripts you have the right to use (e.g. a company's own published call, or your own subscription). The bundled sample is fictional.
pytestMIT