How to compare earnings reactions with Claude or ChatGPT
Reviewed
What counts
An earnings reaction is a stock’s price move after a company reports its results. This scan anchors the move to the company’s SEC 8-K item 2.02, Results of Operations and Financial Condition, and separates the opening gap from the moves that followed.
The rule Monk.trade uses: the latest 8-K item 2.02 in the last 10 sessions. A filing counts on the first daily bar ending at or after Monk.trade has it. Before-open filings count on the coming session; after-close filings count on the next trading day. Measure from the close before that session to today’s close.
Ask it
Using Monk.trade, which stocks moved most after their latest earnings release in the last 10 sessions, up or down? Use the company’s SEC 8-K item 2.02, keep common stock averaging at least $20M traded a day, and show the gap, the move since the open and the total move.
Opens with the question filled in; nothing is sent until you press send. Not connected? Help
The query, line by line
Your app writes this MonkQL from the prompt. Each line does one thing.
from stocksScan every active US stock.
let age = since(filings(form = "8-k", item = "2.02"), 10)Find the latest 8-K item 2.02 in the last 10 sessions, counting from when Monk.trade has the filing.
include type == "common" and sma(close * volume, 20)[1] >= 2e7Keep common stock averaging at least $20M traded a day over the prior 20 sessions.
where age >= 0Keep stocks with a results filing in that period.
show age as sessions, 100 * (open[age] / close[age + 1] - 1) as gap_pct unit percent, 100 * (close / open[age] - 1) as since_pct unit percent, 100 * (close / close[age + 1] - 1) as total_pct unit percentShow sessions since the filing’s daily bar, the opening gap, the move since that open and the total move from the prior close.
sort abs(total_pct) descLargest total move first, whether up or down.
take 5The five largest.
Variations
Gapped up, then faded
“Using Monk.trade, which stocks opened higher on the day their latest 8-K item 2.02 counted in the last 10 sessions, then fell from that open? Keep common stock averaging at least $20M traded a day, largest falls first.”
from stocks let age = since(filings(form = "8-k", item = "2.02"), 10) include type == "common" and sma(close * volume, 20)[1] >= 2e7 where age >= 0 and open[age] > close[age + 1] and close < open[age] show age as sessions, 100 * (open[age] / close[age + 1] - 1) as gap_pct unit percent, 100 * (close / open[age] - 1) as since_pct unit percent, 100 * (close / close[age + 1] - 1) as total_pct unit percent sort since_pct asc take 5Gapped down, then recovered
“Using Monk.trade, which stocks opened lower on the day their latest 8-K item 2.02 counted in the last 10 sessions, then rose from that open? Keep common stock averaging at least $20M traded a day, largest recoveries first.”
from stocks let age = since(filings(form = "8-k", item = "2.02"), 10) include type == "common" and sma(close * volume, 20)[1] >= 2e7 where age >= 0 and open[age] < close[age + 1] and close > open[age] show age as sessions, 100 * (open[age] / close[age + 1] - 1) as gap_pct unit percent, 100 * (close / open[age] - 1) as since_pct unit percent, 100 * (close / close[age + 1] - 1) as total_pct unit percent sort since_pct desc take 5
Example result
Example · run · data to
| Symbol | Sessions | Gap | Since open | Total |
|---|---|---|---|---|
| FMC | 8 | -36.7% | -8.0% | -41.8% |
| VSTM | 9 | +7.4% | +26.3% | +35.6% |
| RRC | 9 | -0.3% | +33.1% | +32.7% |
| KALU | 3 | -12.4% | -14.0% | -24.6% |
| LKQ | 2 | -19.2% | -5.9% | -23.9% |
334 stocks matched; 23 had too little price history to check. Each row’s evidence confirms an 8-K with item 2.02; the anchor is when the filing counts, which can be later than the results release. Run 01a17f1e-0951-7901-89ba-c47fa4f92ccc
Research on earnings reactions
- How did Comfort Systems stock react to its Q3 earnings?
Q3 revenue of $3.77B and $13.91 a diluted share in its Oct 22, 2026 8-K; the stock fell 9.3% to $1,160.86 on Oct 23.
Limits
- Some companies release results without an 8-K item 2.02, or file it after the release.
- A filing during regular hours counts on that day’s bar, so its opening gap predates the filing.
- Other news can also move prices over the measured period.
- Past reactions do not predict future prices.
Research only. Not investment advice. Read the risk notice
Not connected? Help