Earnings-call signal extraction

Extract management guidance and changes from earnings transcripts with supporting quotes.

Step 01

Define and Align

Review representative examples and annotate the fields that need to change. Explain the edge cases to teach your team’s policy.

Output schema
Revenue low usd mNumber · optional

Lower revenue bound in millions of USD; null when withheld.

Revenue high usd mNumber · optional

Upper revenue bound in millions of USD; null when withheld.

DirectionChoose one

Change relative to prior guidance in the supplied excerpt.

  • raised
  • lowered
  • unchanged
  • not_provided
EvidenceText

Exact management quote supporting the extracted guidance.

app.sutro.sh/functions/earnings-call-signal-extraction
Collecting feedback · 1/3
Extract full-year revenue guidance from the supplied earnings-call excerpt.
Example 1 of 3

Analyst proposal is not company guidance

Model input
Extraction rules
Synthetic extraction rules. Extract company-issued full-year revenue guidance only. Record lower and upper bounds in millions of USD. A question or analyst estimate is not management guidance. Direction compares with the prior guidance supplied in the same excerpt. If management withholds guidance, set bounds to null and direction to not_provided. Retain an exact supporting quote.
Transcript
Synthetic call. Analyst: Could revenue reach $150–160 million? CFO: We maintain full-year revenue guidance at $130–140 million, unchanged from our prior range.
Model output
Revenue low usd m
Revenue high usd m
Direction
Evidence

Step 02

Model Sweep

Compare models on the same expert annotations, then choose a quality–cost tradeoff.

Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.

Illustrative sweep · select Value or Best to use that model in your function.

Step 03

Deployment

Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.

Selected modelWaiting for sweep results.

Real-time

import sutro as so

input_data = {
    "extraction_rules": "Synthetic extraction rules. Extract company-issued full-year revenue guidance only. Record lower and upper bounds in millions of USD. A question or analyst estimate is not management guidance. Direction compares with the prior guidance supplied in the same excerpt. If management withholds guidance, set bounds to null and direction to not_provided. Retain an exact supporting quote.",
    "transcript": "Synthetic call. Analyst: Could revenue reach $150–160 million? CFO: We maintain full-year revenue guidance at $130–140 million, unchanged from our prior range."
}

result = so.run_function(
    "earnings-call-signal-extraction",
    input_data,
)

Batch

import sutro as so

job_id = so.batch_run_function(
    name="earnings-call-signal-extraction",
    data="earnings_call_signal_extraction.csv",
)
results = so.await_job_completion(job_id)

Ready to get started?

Book time with the team

Join the self-serve waitlist

What are your bottlenecks? (Select any that apply)