Search earnings transcripts
search_earnings_transcriptsSearch earnings-call intelligence from live calls, decomposed into atomic, quote-anchored claims and Q&A pressure points — never a raw transcript dump.
Retrieval for "claims" and "pressure_points" is lexical, not semantic. A nonempty query uses an OR-of-tokens full-text candidate set; strict websearch_to_tsquery matches receive a fixed ranking boost, so strict matches rank ahead of loose partial-term matches. Lower-ranked rows may match only some query terms. If that filtered full-text search returns no rows, a trigram fallback handles typos and sub-word variants. Quoted phrases use websearch syntax, but synonyms are not inferred: try the company's own vocabulary ("capex" and "capital expenditure", segment names, abbreviations). An empty or partial result is not proof that management did not discuss a topic; coverage and vocabulary both matter.
Target and filter semantics:
"claims" (default) searches or browses normalized management/analyst claim rows. ticker, quarter_filter, claim_family, section, detail, and limit apply. claim_family matches primary or secondary families; section is "prepared_remarks" or "qa". Base rows include direction/value/unit where checkable, assertion_status, canonical_statement, verbatim_quote, speaker, speaker_role, section, transcript_id, source_block_index, qa_turn_id, and a source_link object.
"pressure_points" searches or browses what analysts pressed for and whether management confirmed, declined, deflected, or partially answered. ticker, quarter_filter, claim_family (the linked family), detail, and limit apply. section is ignored because every pressure point is from Q&A. Base rows include specific_ask, response_quality, refused_number, linked_family, linked_claim_id, verbatim_quote, transcript_id, source_block_index, qa_turn_id, and a source_link object.
"disclosure_profile" is a direct company lookup, not text search. The ticker is the first ticker value, or query when ticker is empty. Profiles are curated separately from transcript coverage, so a covered company may not have one; availability is "available" or "unavailable" accordingly. quarter_filter, claim_family, section, detail, and limit do not narrow it.
"coverage" is corpus inventory, not text search. ticker and limit apply; query, quarter_filter, claim_family, section, and detail do not narrow it. Rows report calls_covered, earliest_period, latest_period, latest_call_date (the call date of latest_period), claims, and pressure_points.
An empty query is a capped browse, not a completeness guarantee. Rows are
ordered by newest fiscal period/call and then source-block (spoken) order
within one call. Every response is limited to at most 50 rows, and a browse
that reaches its limit may omit additional rows even if no truncation flag is
present. For a latest-call note: (1) call "coverage" with one ticker, (2) read
latest_period, (3) call "claims" with that ticker, quarter_filter=latest_period,
query="", detail=true, and a deliberate limit, then (4) call
"pressure_points" with the same ticker and quarter. Treat both browses as
capped evidence, not a complete transcript. Narrow large result sets with
ticker, quarter, target, claim_family, and (for claims) section. For media
quotes, run_sql can read transcripts.appearance_claims.verbatim_quote;
other transcript tables remain restricted.
Evidence rules: canonical_statement is normalized and must not be quoted as
verbatim. Quote only verbatim_quote, with its speaker, role, ticker, and fiscal
period. A […] inside verbatim_quote marks omitted transcript sentences between
non-adjacent evidence spans: preserve it exactly when quoting, and never
present text on either side of it as one continuous statement. When a quote is used, render source_link.source_label as the Markdown
link text for source_link.source_url beside the claim. The label names the
company, fiscal period, and earnings call transcript; never replace it with an
ingestion vendor. Do not make a second call just to find a citation, do not
invent a replacement when source_url is null, and do not call a document-level
link exact context. source_locator still identifies the stored transcript block
or Q&A turn. assertion_status is load-bearing: analyst_hypothesized is the
analyst's framing, while mgmt_declined_to_confirm is a refusal, not a management
assertion. Spoken call claims are a different source class from filed XBRL
actuals (run_sql on the sec schema) and formally issued targets (the
sec_guidance dataset); label them separately.
Examples:
Latest call: search_earnings_transcripts(query="", search_target="coverage", ticker="MU"), then repeat with search_target="claims", quarter_filter=<latest_period>, detail=true, limit=50, and finally with search_target="pressure_points" for the same ticker and quarter.
Cross-company theme: search_earnings_transcripts(query="capital expenditure capacity", search_target="claims", ticker="MU,NVDA", detail=true); inspect each returned row for topical support, do not assume every term matched, and retry vocabulary as needed.
Disclosure habits: search_earnings_transcripts(query="", search_target="disclosure_profile", ticker="MU").
claim_family codes: driver_attribution, forward_conviction, prior_view_revision, strategic_agreement, pricing_mechanics, demand_magnitude, capacity_milestone, competitive_positioning, cohort_behavior, cost_margin_bridge, capital_allocation, stated_risk_constraint, qa_dynamics, regulatory_policy, pipeline_backlog, commodity_hedging, ma_deal, labor_org. Topic paths (topic_path column) are rooted at: demand, supply_capacity, pricing, cost_margin, capital, competition, customer, product_roadmap, risk, governance.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum 1-50 rows (default 15). This is a hard cap, not proof the result is complete; narrow by ticker, quarter, target, family, and claims section. | |
| query | No | For claims/pressure_points: lexical websearch text; strict matches rank above loose partial-term matches, with trigram fallback only when FTS returns no rows. Empty text browses capped rows. For disclosure_profile, it can supply the ticker when ticker is empty. Ignored by coverage. | |
| detail | No | For claims, add structured_fields, secondary_families, period, time_horizon, conviction_qualifier, denominator, and falsifiable; for pressure_points, add tone_note. Ignored by disclosure_profile and coverage. The extractor's quantified flag is not published: it only records that the extractor wrote something into value, which the caller can already see in value itself. | |
| ticker | No | Ticker, or a comma-separated list of tickers, for claims, pressure_points, and coverage; case-insensitive. Company names belong in company_name; pass only one of the two. A name passed here is still read as a name when it fits a stored company, and the response says so. Companies listed in India carry the NSE suffix ('RELIANCE.NS', 'INFY.NS') and companies listed in Switzerland carry '.SW' ('NESN.SW', 'ROP.SW'); a plain NSE or Swiss symbol is also accepted, but a symbol that is a US ticker ('INFY', 'ROP') selects the US listing. The response lists possible matches for a value that is not in the transcript corpus. disclosure_profile uses only the first ticker. | |
| section | No | prepared_remarks or qa; applies only to claims. Ignored for pressure_points because those rows are all Q&A, and ignored by lookup/inventory targets. | |
| claim_family | No | Claim-family code. Matches primary/secondary families on claims and the linked family on pressure_points; ignored by disclosure_profile and coverage. | |
| company_name | No | Company name, or a comma-separated list of names, for claims, pressure_points, and coverage; case-insensitive ('nvidia', 'HP Inc', 'Ford Motor'). Each name resolves to the stored ticker(s) that match it best; the response reports the resolution and lists possible matches for a name that resolved to nothing. Pass either company_name or ticker, not both. disclosure_profile uses only the first resolved ticker. | |
| search_target | No | claims or pressure_points perform lexical retrieval/browse; disclosure_profile is a direct company lookup; coverage is corpus inventory. | claims |
| company_filter | No | Deprecated alias of ticker, kept for clients installed before the parameter was renamed. Pass ticker instead. | |
| quarter_filter | No | Exact fiscal period such as FY2026Q3; applies to claims and pressure_points. Ignored by disclosure_profile and coverage. Pin this after coverage for a single-call browse. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||