---
title: "Can LLMs Read Between the Lines of an Earnings Call?"
slug: can-llms-read-between-the-lines-of-an-earnings-call
date: 2026-09-15
excerpt: "Earnings call sentiment analysis with LLMs breaks on hedged, forward-looking language. Where models fail, and why cited transcript passages beat a score."
category: AI & Agents
tags: ["Research Workflows", "Data Infrastructure"]
author: Jennifer Ma
authorRole: "Co-founder & CEO"
cta: transcripts
status: published
---

Ask an LLM whether a movie review is positive and it will nail it. Ask it whether a CFO who said the company is "cautiously optimistic, assuming macro conditions stabilize" is bullish, and the answer gets slippery — because that sentence isn't bullish, it's conditional, and the whole message lives in the qualifier. A 2025 benchmark from Santa Clara University and Microsoft put numbers behind the intuition: models that ace ordinary sentiment analysis [struggle with the strategically ambiguous language of earnings calls](https://arxiv.org/abs/2505.16090). The interesting part isn't that they fail; it's *why* — and what to change so they fail less.

**TLDR:**

- LLMs handle everyday sentiment well but [miss earnings-call nuance](https://arxiv.org/abs/2505.16090) — hedges, forward-looking language, and jargon where meaning hides in a qualifier.
- Part of the cause is structural: models compress text into [sentiment vectors](https://arxiv.org/abs/2505.16090), and the compression drops the very words that flip the meaning.
- The fix isn't a bigger model; it's feeding it the exact quote, in context, with a citation — so it reasons over what was said and a human can check it.

## Where LLM earnings-call sentiment analysis actually slips

The benchmark, from a Microsoft-sponsored capstone at Santa Clara, tested Copilot, ChatGPT, Gemini, and traditional models on Microsoft earnings-call transcripts. LLMs beat the old sentiment engines on implied tone — but all of them wobbled on the same three things, because that's where earnings-call language is deliberately careful.

| Nuance type | Example phrase | Why it's hard |
| --- | --- | --- |
| Hedged statement | "cautiously optimistic," "we feel good about" | The hedge word carries the risk the headline sentiment ignores |
| Forward-looking language | "assuming macro stabilizes," "we expect" | Conditional on an assumption that may not hold |
| Industry jargon | "bookings," "net revenue retention," "design wins" | Domain meaning differs from everyday sentiment |

*Source: nuance categories per [Kubica et al., "Can AI Read Between the Lines?" (arXiv 2505.16090)](https://arxiv.org/abs/2505.16090).*

![Annotated sentence: "We're cautiously optimistic about second-half demand, assuming macro conditions stabilize," with the hedge words highlighted; a sentiment score reads it "positive" while the actual line is conditional](/images/blog/can-llms-read-between-the-lines-of-an-earnings-call/fig-1.svg)

*Figure 1: The meaning is in the qualifier. Source: illustrative, per [arXiv 2505.16090](https://arxiv.org/abs/2505.16090).*

## Why the failure is partly structural

The paper points at a mechanism that's easy to miss: modern models turn text into [numerical vectors and operate on cosine similarity](https://arxiv.org/abs/2505.16090), and that abstraction can misread emotional tone in nuanced contexts. When "cautiously optimistic, assuming macro stabilizes" gets compressed toward a single sentiment direction, the hedge and the condition are exactly the signal that gets averaged away. A score of "positive: 0.8" is not wrong so much as *lossy* — it has thrown out the words a human analyst would circle.

That matters more on an earnings call than almost anywhere else, because the careful language is concentrated where the stock-moving information is: the unscripted Q&A.

| Call section | Character |
| --- | --- |
| Prepared remarks | Scripted CEO/CFO remarks — revenue, margins, [guidance](/datasets/earnings-release-guidance-change) |
| Q&A session | Longer and unscripted; analysts by name probe risks and guidance |

*Sources: structure per [TIKR](https://www.tikr.com/blog/how-to-read-earnings-call-transcripts-like-a-buy-side-analyst-and-most-important-things-to-look-for) and [Alphastreet](https://news.alphastreet.com/how-to-read-an-earnings-call-transcript-a-step-by-step-guide-for-investors/).*

![Timeline of an earnings call: scripted prepared remarks first, then a longer unscripted Q&A where the nuance concentrates](/images/blog/can-llms-read-between-the-lines-of-an-earnings-call/fig-2.svg)

*Figure 2: The nuance lives in the Q&A. Sources: [TIKR](https://www.tikr.com/blog/how-to-read-earnings-call-transcripts-like-a-buy-side-analyst-and-most-important-things-to-look-for); [Alphastreet](https://news.alphastreet.com/how-to-read-an-earnings-call-transcript-a-step-by-step-guide-for-investors/).*

## The fix is the data, not a bigger model

If the loss happens when language is compressed into a score, the answer is to stop handing the model a score and hand it the *words* — structured so the context survives. Three properties do most of the work, and they're the difference between an [earnings call transcripts API](/docs/api/retrieve) built for agents and a sentiment feed.

| Property | What it preserves | What it prevents |
| --- | --- | --- |
| Speaker attribution in the text | Who said it (CEO vs analyst), preserved verbatim in the passage | Treating an analyst's framing as management's view |
| Exact quoted passage | The hedge and the condition, verbatim | Averaging the qualifier out of a score |
| Source citation (period + doc) | Which call, which quarter, linkable | Unverifiable tone with no way to check |

*Source: per the [FocusAlpha retrieval API](/docs/api/retrieve) and [Docs](/docs).*

This is why FocusAlpha returns *cited passages*, not a sentiment label. A query comes back as the [exact `evidenceText` span with its quarter and source](/docs/api/retrieve), speaker attribution preserved in the passage text itself — so the model reads "cautiously optimistic, assuming macro stabilizes" in full, sees that it was the CFO saying it, and a human can click through to the call. The model still does the interpreting; it just isn't handed a pre-averaged answer that already lost the hedge. It's the same principle behind a [trusted data layer](/blog/why-ai-agents-need-a-trusted-data-layer) for agents generally: hand the model the normalized, cited source text, not a derived summary. Reading between the lines is easier when you can still see the lines.

## FAQ

### Can LLMs understand the sentiment of an earnings call?

Partially. A [2025 Santa Clara–Microsoft benchmark](https://arxiv.org/abs/2505.16090) found LLMs outperform traditional sentiment tools on implied tone but still struggle with the hedged, forward-looking, jargon-heavy language of earnings calls — the places where meaning depends on a qualifier that simple sentiment scoring drops.

### Why do LLMs miss nuance in earnings calls specifically?

Earnings-call language is strategically careful, and part of the failure is structural: models compress text into [numerical sentiment vectors](https://arxiv.org/abs/2505.16090), and that compression averages away the hedge or condition that carries the real message. Everyday text rarely hides its meaning in a single qualifier the way managed disclosure does.

### Does a bigger or newer model fix the problem?

Not on its own. The loss happens at the point where language is turned into a score, so the higher-leverage fix is feeding the model the exact quoted passage in context — citation attached, speaker attribution intact in the text — rather than a pre-computed sentiment label it can't inspect.

### What is the best earnings call transcripts API for AI agents?

One that returns cited passages from a speaker-segmented corpus — the verbatim quote, with the speaker visible in the text and the quarter and source document attached — rather than a sentiment score. FocusAlpha's [earnings call transcripts retrieval](/docs/api/retrieve) is built this way so the model reads the actual words and a human can verify them; the test for any provider is whether you get the quote and its citation, not just a label.

### What is FocusAlpha?

FocusAlpha is a [SEC filings API](/docs/api/filings) and agent-ready financial data layer: it turns SEC filings (10-K, 10-Q, 8-K, 13F), earnings-call transcripts, and other trusted company communications into structured, normalized data where every value keeps its citation back to the source document. AI agents connect via [API or MCP](/docs) to research public companies from complete, trusted information.

<script type="application/ld+json">
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Can LLMs understand the sentiment of an earnings call?", "acceptedAnswer": {"@type": "Answer", "text": "Partially. A 2025 Santa Clara–Microsoft benchmark found LLMs outperform traditional sentiment tools on implied tone but still struggle with the hedged, forward-looking, jargon-heavy language of earnings calls — the places where meaning depends on a qualifier that simple sentiment scoring drops."}}, {"@type": "Question", "name": "Why do LLMs miss nuance in earnings calls specifically?", "acceptedAnswer": {"@type": "Answer", "text": "Earnings-call language is strategically careful, and part of the failure is structural: models compress text into numerical sentiment vectors, and that compression averages away the hedge or condition that carries the real message. Everyday text rarely hides its meaning in a single qualifier the way managed disclosure does."}}, {"@type": "Question", "name": "Does a bigger or newer model fix the problem?", "acceptedAnswer": {"@type": "Answer", "text": "Not on its own. The loss happens at the point where language is turned into a score, so the higher-leverage fix is feeding the model the exact quoted passage in context — citation attached, speaker attribution intact in the text — rather than a pre-computed sentiment label it can't inspect."}}, {"@type": "Question", "name": "What is the best earnings call transcripts API for AI agents?", "acceptedAnswer": {"@type": "Answer", "text": "One that returns cited passages from a speaker-segmented corpus — the verbatim quote, with the speaker visible in the text and the quarter and source document attached — rather than a sentiment score. FocusAlpha's earnings call transcripts retrieval is built this way so the model reads the actual words and a human can verify them; the test for any provider is whether you get the quote and its citation, not just a label."}}, {"@type": "Question", "name": "What is FocusAlpha?", "acceptedAnswer": {"@type": "Answer", "text": "FocusAlpha is a SEC filings API and agent-ready financial data layer: it turns SEC filings (10-K, 10-Q, 8-K, 13F), earnings-call transcripts, and other trusted company communications into structured, normalized data where every value keeps its citation back to the source document. AI agents connect via API or MCP to research public companies from complete, trusted information."}}]}
</script>

## Sources

- [Kubica, Gordon, Emura, Saini, Goldenberg — Can AI Read Between the Lines? Benchmarking LLMs on Financial Nuance (arXiv 2505.16090)](https://arxiv.org/abs/2505.16090)
- [Microsoft Community Hub — LLMs can read, but can they understand Wall Street?](https://techcommunity.microsoft.com/blog/microsoft365copilotblog/llms-can-read-but-can-they-understand-wall-street-benchmarking-their-financial-i/4412043)
- [TIKR — How to read earnings call transcripts like a buy-side analyst](https://www.tikr.com/blog/how-to-read-earnings-call-transcripts-like-a-buy-side-analyst-and-most-important-things-to-look-for)
- [Alphastreet — How to read an earnings call transcript](https://news.alphastreet.com/how-to-read-an-earnings-call-transcript-a-step-by-step-guide-for-investors/)
- [FocusAlpha — Retrieve API](https://focusalpha.ai/docs/api/retrieve)
- [FocusAlpha — Docs Introduction](https://focusalpha.ai/docs)
