Typical fields include:
eps_actualeps_forecasteps_surpriserevenue_actualrevenue_forecastBecause the API exposes both actual and forecast EPS, you can easily determine the result category programmatically.
Example logic:
eps_actual > eps_forecast → Beat expectationseps_actual < eps_forecast → Missed expectationseps_actual == eps_forecast → In line with expectationsThis structure works well when adding a "earnings result" column to a signal list or trading dashboard.
The Bigdata API provides a dedicated endpoint focused on earnings surprises. It returns fields such as:
eps_actualeps_estimatedeps_surprise_pctreporting_dateThis endpoint is useful for post‑earnings analysis or verifying whether a company beat expectations after results are released.
For trading strategies that depend on session timing—like distinguishing before‑market open vs. after‑market close announcements—some APIs include explicit reporting‑time fields.
Examples:
reportTime field with values like "before market open" or similar descriptors. This is useful if your signal table needs output such as:
05‑12 pre‑market05‑12 after‑hoursWhen integrating earnings data into a trading signal list, a typical table structure might look like this:
ticker | signal_time | earnings_status | earnings_date | earnings_session | eps_actual | eps_estimate | result
Where:
reported, upcoming, unknownpre-market, after-hours, unknownbeatmissinlinependingExample classification logic:
if eps_actual is None:
result = "pending"
elif eps_actual > eps_estimate:
result = "beat"
elif eps_actual < eps_estimate:
result = "miss"
else:
result = "inline"
A robust setup often combines two sources:
Example workflow:
If you want a practical stack for automated trading tools:
Combining a calendar endpoint with surprise data allows your signal program to automatically label each earnings event as pending, beat, miss, or inline once results are published.