The dream, stated plainly: build a point-in-time dossier of a company before an earnings call (or any event), pair it with the realized post-event return, and train a transformer on that corpus to predict the reaction. The whole bet rests on one idea — that markets price the change in expectations about the future, so the features have to capture forward posture, not just what a company already did.
Last quarter's numbers — the beat, the margins — set the bar. The stock moves on the delta off that bar: raised guidance, an expansive tone, a capex commitment, a "we're in talks to…". A great past with a cautious future falls; a good past with an expansive future runs.
Freeze a company as-of the day before its call and read it across a handful of PIT dimensions. Worked example — Applied Materials (AMAT), frozen 2026-08-05, reports ~08-13 (semis-equipment: a pure forward-narrative name that also gets read-through from every chip name that already printed):
| Dimension | Reading (PIT as-of 2026-08-05) |
|---|---|
| Track recordbackward | Beats own trend 7 of 8 quarters; latest SUE +1.44, revenue SUE
+2.31; sue_trend −0.12 (slightly
decelerating) |
| Reaction patternPEAD base-rate | Sell-the-news, then grind up — recent beats printed negative day-1 (−14.3%, −6.5%) yet the 41-day drift after a positive SUE is +1,329 bps. The print is a poor guide; the drift is the signal. |
| Forward wordstheir own filings | Expansive but hedged. Hard guide: "grow our semiconductor equipment business over 20 percent this calendar year" · secular: "large-scale adoption of AI will drive substantial investment… in the years ahead." But the latest 10-Q hedges: "the timing and amount of investments by our customers related to AI… is difficult to forecast." |
| Insider postureForm 4, discretionary | Lightening into it — net −$170M discretionary, 5 C-suite sellers (CEO $105M), zero buyers, not 10b5-1 (partly monetizing a big run) |
| Tape read-throughnews / peers | Cautious near-term — "Micron, SK Hynix stocks sink as AI chip sell-off deepens" (07-28); a cyclical air-pocket against the secular story |
The read: a structurally strong, secularly-favored name whose forward posture is expansive-but-hedged, that reliably dips on the print and drifts up after — walking in with insiders trimming and a wobbly chip tape. The whole setup is one tension: secular AI-capex bull vs cyclical wobble. That tension is the pre-announcement state.
Assembling the AMAT fingerprint from tools that already exist surfaced two things that turn "research project" into "data-assembly job":
Every forward sentence AMAT filed fired ARGOS classifiers — is_backlog_building is_demand_accelerating is_deal_size_increasing versus is_customer_spending_declining is_demand_softening is_bookings_deceleration. Those are directional forward-posture tags, cooked across ~8,000 companies. We don't build sentiment from scratch — we aggregate them into a posture score per filing, PIT. The expansive-vs-cautious delta is already in the data.
earnings_surprise_history returns the pre-event fingerprint (beat rate, SUE, posture)
and the realized abn_drift_41_bps that follows — PIT-validated (+106 bps, t 5.9). So a
training pair is: freeze the as-of-T-1 fingerprint → label = the drift after. Loop over
(company, quarter) and the corpus writes itself.
semantic_search nails a company's own forward words cleanly; classifiers = the posture tags (Discovery 1).
Beat rate, SUE, PEAD drift base-rate — and the realized abn_drift_41 label (Discovery 2).
Discretionary buy/sell breadth into the print — the "5 C-suite sold, 0 bought" tell.
14.6M rows via tunnel; lexical is noisy for concepts → we embed a narrowed slice. Precise for phrases ("in talks to acquire").
Commercial / relational edges — read-through a supplier's print onto a customer; forward statements mint the edges.
as_of / filed_before
cutoff, and post-publication enrichment is suppressed. A fingerprint built "as-of T-1" must contain only what
was knowable then. (This is exactly why we asked signals to bake in as_of, and why we won't
hand-roll SQL against their DB.)Every call is stamped as-of, direction + confidence, logged, then scored against the realized reaction. The scored log is the training corpus.
Next steps, in order:
{as-of fingerprint → realized drift} rows, so the training set is visible and real.outcome in pre_earnings_calls.jsonl.Open risks: overfitting the past (out-of-sample discipline); the analyst-consensus gap ("beat" = own-trend, not Street — a known hole); news lexical noise (needs our embeddings); corpus coverage holes (specialist trade press thin).