Skip to main content
Earnings Automation · Claw Street Terminal

OpenClaw for Earnings & Estimates

Earnings season is the most chaotic week in finance. OpenClaw automates the calendar, tracks consensus estimates, logs every beat and miss, and delivers a pre-market brief before the open — all from free APIs.

yfinance Free
No API Key
Email Alerts
Cron Scheduler
Overview Pt 1: Calendar Pt 2: Estimates Pt 3: Surprise Tracker Pt 4: Price Reaction Pt 5: Daily Brief
⚠ Research Only: Earnings data and estimates are for research automation only. Not financial advice. Always do your own analysis before making investment decisions.

What Is Earnings Season?

Four times a year, a wave of chaos hits Wall Street: earnings season. This is when public companies report their quarterly financial results — revenue, profit, earnings per share (EPS), forward guidance, and more. For 4–6 weeks, hundreds of stocks report, and the market reacts hard.

The Three Stages

Understanding the earnings cycle is key to automating what happens next:

Pre-Announcement ↓ (Analysts make predictions) Consensus Estimates ↓ Report Date ↓ (Company announces results) Actual EPS / Revenue ↓ Reaction ↓ (Stock moves up or down) Next Day Open / Close

Why It Matters

Earnings season is violent. A single report can move a stock 10–20% overnight, sometimes more. It's not about whether the company made money — it's about whether they made as much money as Wall Street expected.

Here's the key insight: Wall Street analysts publish their predictions weeks ahead of time. The consensus estimate is the median forecast across all covering analysts. When the company reports, the market compares:

If a company beats expectations by even a penny per share, the stock can pop 5%. If it misses by the same margin, it can drop 8%. This volatility creates both risk and opportunity — but only if you track it systematically.

What OpenClaw Automates

Without automation, earnings season is a sprint of manual checking. With OpenClaw, it's systematic, repeatable, and hands-off. Here's the before and after:

❌ Without OpenClaw

  • Manually check financial sites for upcoming reports
  • Miss ex-dividend dates and pre-market reports
  • Surprised by after-hours earnings surprises
  • No historical log of who beat and who missed
  • Miss the open because you weren't watching
  • Analyst revisions lost to time and noise

✅ With OpenClaw

  • Automated calendar for your entire watchlist
  • 3-day advance email alerts before reports
  • Real-time consensus estimates and revisions
  • Historical surprise log in CSV format
  • Pre-market brief email every earnings day
  • Automatic price reaction tracking

OpenClaw does five distinct jobs:

  1. Earnings Calendar: Pulls your watchlist's upcoming earnings dates from yfinance. Alerts you 3 days before any company reports.
  2. Consensus Estimates: Tracks EPS and revenue estimates. Shows when analysts revise up or down — that's the real signal.
  3. Surprise Tracker: Logs every beat and miss automatically. Over time, you see which companies consistently beat estimates — that's edge.
  4. Price Reaction Logger: Captures the overnight move after each report. Build your own dataset of how stocks actually react to earnings.
  5. Daily Brief: One email before the open on every earnings day. Who reports today, what analysts expect, historical beat rate, and average move.

The Free API Stack

Every tool here uses completely free APIs. No credit cards, no rate limits that matter, no surprises on your bill.

Tool What It Does Cost API Key?
yfinance Earnings calendar, EPS estimates, historical prices, quarterly data Free No
OpenBB Deeper estimate revisions, analyst ratings, target prices Free No (optional)
Seeking Alpha RSS Earnings transcript headlines and summaries Free No
FRED API Macro context: GDP, interest rates, VIX around reporting season Free Yes (free registration)

yfinance is the workhorse. It has earnings dates, consensus estimates, actual reported numbers, and historical price data all in one place. The others layer on depth, but yfinance alone is enough to build a serious earnings automation system.

The earnings-config.yaml File

This is the single source of truth. You edit this file once, then all five automation tools use it. No code changes needed.

earnings-config.yaml
watchlist:
  tickers: [AAPL, MSFT, NVDA, AMZN, GOOGL]

calendar:
  lookahead_days: 5
  alert_days_before: 3
  market_hours_only: false   # include pre/after market reports

estimates:
  track_revisions: true
  revision_window_days: 30
  sources: ["yfinance"]

surprise:
  log_history: true
  flag_threshold: 5.0   # % beat/miss worth flagging
  csv_path: "data/earnings_history.csv"

reaction:
  capture_window: "open_next_day"
  log_to_csv: true
  csv_path: "data/price_reactions.csv"

alerts:
  email: "you@example.com"
  daily_digest: true
  send_time: "06:30"

scheduler:
  earnings_brief:
    script: earnings_brief.py
    schedule: "30 6 * * 1-5"  # Every weekday at 6:30 AM

Everything is a parameter:

Installation

First, install the Python libraries:

Terminal
pip install yfinance pyyaml pandas requests

That's it. yfinance, PyYAML, and pandas are all that's needed for the core system. requests is for API calls if you add OpenBB or FRED later.

The 5-Part Series

Each module teaches one piece of the earnings automation system. Start with Earnings Calendar, end with Daily Brief. Each builds on the last.

Part 1

Earnings Calendar

Pull your watchlist's upcoming earnings dates automatically. Get alerted 3 days before any ticker reports. Set up the calendar scraper and learn how to build a pre-market email trigger.

Start reading →
Part 2

Consensus Estimates

Track EPS and revenue consensus estimates. See when analysts revise up or down — that's the real signal. Learn which revisions are worth acting on.

Start reading →
Part 3

Surprise Tracker

Log every beat and miss automatically. Over time, see which companies consistently beat estimates — that's edge. Build a CSV database of historical surprises.

Start reading →
Part 4

Price Reaction Logger

Capture the overnight move after each report. Build your own dataset of how stocks actually react to earnings. Find statistical patterns in your data.

Start reading →
Part 5

Pre-Market Brief

One email before the open on every earnings day. Who reports today, what analysts expect, your historical beat rate, and average move. Pure signal, no noise.

Start reading →
Bonus

Advanced: Options Edge

Compare expected move vs. historical move. Structure straddles and strangles. Coming soon.

Quick Start (5 Minutes)

1. Install

pip install yfinance pyyaml pandas

2. Create Config

Copy the earnings-config.yaml file above into your project folder. Edit the watchlist.tickers and alerts.email fields.

3. Run the Calendar Script

python earnings_calendar.py

This pulls earnings dates for your watchlist and prints them to the console. Move on to Part 1 to learn how to build the full automation chain.

Frequently Asked Questions

Does this cost anything?
No. All APIs used are free. yfinance is free with no API key required. OpenBB is free with no key (optional for deeper data). Seeking Alpha RSS feeds are free. FRED API is free and requires only a quick registration.
How accurate are the consensus estimates?
These are the same Wall Street consensus numbers used by Bloomberg and FactSet, sourced via yfinance. They represent the median estimate from all covering analysts. They're as accurate as any data available to retail investors.
Can I use this for options trading?
Yes. Knowing expected move vs. historical move is useful for structuring straddles and strangles. The surprise tracker and reaction logger give you the data to build a statistical edge in earnings volatility.
What if I don't know Python?
Start with the series. Each module explains the logic in plain English first, then shows the Python code. By the end of Part 1, you'll understand what's happening. By Part 5, you'll be able to modify the code for your own use case.
How often should I run the scripts?
The calendar script should run daily (before market open) to catch new earnings. The surprise tracker runs after market close on earnings days. The daily brief runs every morning at 6:30 AM. The scheduler section of the config handles all this automatically using cron.
Can I add more stocks to my watchlist?
Yes. Just add tickers to the watchlist.tickers array in the config file. All five tools will automatically pick them up.