Can LLMs Read Between the Lines of an Earnings Call?

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. 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 — hedges, forward-looking language, and jargon where meaning hides in a qualifier.
  • Part of the cause is structural: models compress text into sentiment vectors, 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).

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

Figure 1: The meaning is in the qualifier. Source: illustrative, per arXiv 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, 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
Q&A session Longer and unscripted; analysts by name probe risks and guidance

Sources: structure per TIKR and Alphastreet.

Timeline of an earnings call: scripted prepared remarks first, then a longer unscripted Q&A where the nuance concentrates

Figure 2: The nuance lives in the Q&A. Sources: TIKR; Alphastreet.

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 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 and 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, 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 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 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, 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 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 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.

FOR AGENTS

This post is available as plain markdown with structured metadata — no scraping required.

GET .md →