Internal R&D · living plan · inferno

The Earnings Transformer

status: research → corpus-design · last updated 2026-08-25 · not investment advice · internal only

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.

01 · The thesis

Markets price the delta off the bar

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.

🔀 The natural experiment. Amazon and Apple printed the same week, both with strong quarters — identical backward line. Amazon talked up AI capex paying off and more coming; Apple talked chip-cost pressure and a bleaker margin path. Opposite forward posture → opposite reactions. That divergence isn't noise; it's the mechanism, and it's what a backward-only feature set can never see.

Reality check · how much data, which model

"Train a transformer" is the aspiration. The near-term test needs far less.

The arithmetic on "a report before every earnings call for 20 years": ~10–15k names × ~4 events/yr × 20 yr, filtered to usable (price history + PIT-clean features) ≈ 200–400k labeled examples. That's the ceiling — and it reframes the whole project, because the answer to "is it enough" is entirely about which model:

ModelData it wants400k enough?
Gradient-boosted treesthe quant workhorse for tabular returns10k–1M rowsplenty
Small tabular transformerFT-Transformer100k–1Mworkable
Fine-tune a PRETRAINED modelon the raw dossier text1k–10k+plenty
Transformer FROM SCRATCHthe naive reading of "the dream"millions–billionsno — wrong tool

Row count isn't even the binding constraint — three things are: signal-to-noise (returns are ~98% noise, good models get R²≈0.01–0.05 — this IS the "priced in" problem quantified), non-stationarity (20 years = many regimes; old data helps less than its count suggests), and feature sparsity (our agreements signal is non-null on only ~10–20% of rows, and the informative divergence subset far fewer).

The reframe: the goal was never "train a transformer" — it's "do the forward features beat a baseline out-of-sample?" That's testable now with GBMs + event studies (§07) on thousands-to-tens-of-thousands of clean rows, not a transformer's worth. The corpus is a valuable labeled research asset regardless of the final model; the transformer is the endpoint (fine-tune on text), not the test. Aim GBM-first, transformer later.

02 · The pre-announcement fingerprint

What a company looks like the week before it reports

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):

DimensionReading (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.

03 · Two discoveries that change the plan

The hard parts are already half-built

Assembling the AMAT fingerprint from tools that already exist surfaced two things that turn "research project" into "data-assembly job":

Discovery 1 · 2026-08-05

The "excited vs cautious" layer already exists as classifiers

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.

Discovery 2 · 2026-08-05

The label lives in the same tool as the features

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.

04 · The hard forward signal — signed agreements

Signed beats said

Everything forward in the fingerprint so far is soft — tone classifiers, news narrative, even guidance (the company's own projection). Signed agreements are the hard version: a costly, bilateral, binding commitment about the future. Cheap talk gets discounted; a signature doesn't. On the forward ladder they sit above even guidance revisions — a revision is still the company's own forecast; an agreement is a fact a counterparty also signed.

Why it's the strongest forward feature we have

It hits all three moat axes at once

Most signals give you one. A signed agreement gives domain (8-K material agreements / exhibits) × deterministic extraction (value, term, start date, milestones — numbers, not sentiment) × linkage (it's inherently a customer_of / supplier_of / partner_of EDGE — the #1 commercial-edge wishlist, minted with hard evidence instead of scraped from rumor).

Why it maps straight onto earnings:

Status: in progress — the agreements project (+ kee) is pushing hard on processing; the dataset isn't built up yet, so this is a wired-in-waiting feature, not a live one.

05 · The forward ladder & the follow-through funnel

From what they say → what they sign → what they deliver

Agreements are the top of a ladder. Just below them sits a signal the sections project is well-placed to extract: forward plans stated in filings — "we plan to open a factory next year," "we intend to enter the EU market," "we expect to bring $400M of capacity online." Softer than a signature (unilateral, not binding) but far harder than a CEO on a call: written, specific, dated, liability-bearing. It fills the exact middle of the forward ladder:

Why running both projects beats either alone

Timestamped, the ladder becomes a follow-through funnel

Stated plan → signed commitment → realized result. Line those up by date and you can measure whether a company actually converts what it says into what it signs into what it delivers — a per-company credibility score. If X converts 80% of its stated plans into signed deals within a year and Y converts 20%, then X's next "we plan to…" is a real signal and Y's is discountable. We calibrate the softness empirically instead of guessing — the same move as the priced-in note, pointed at the company's own honesty. This feature only exists if both projects run.

Graph-native the same way agreements are: a stated plan is a forward-event edge (plans_facility_in / intends_to_enter / plans_to_acquire) — the pre-signature version of the agreement edge, so the graph captures the whole lifecycle.

The hard part: filings drown in PSLRA boilerplate ("this document contains forward-looking statements…"). The job isn't finding forward language — it's everywhere — it's isolating the specific, actionable plans (a real what/where/when) from the legal fog and vague aspiration ("we seek to grow"). That specificity filter is the quality bar.

06 · The "priced in" question

We don't define priced-in — the label does

The obvious objection to any forward signal: how much is already priced? It's real — but it's the same truth the thesis rests on. The signal is never the level, it's the surprise — an agreement (or a guide, or a tone shift) only matters to the degree it beats what was already expected. So "priced in" isn't a new problem; it's the delta-off-the-bar we're already built around.

Why we don't have to solve market efficiency

The realized-return label absorbs it

We train on the realized forward drift, so the model learns which signals, in which contexts, actually moved the stock. One that was already priced shows ~0 forward return → the model discounts it; one that wasn't → it moves → the model weights it. We never define "priced in" a priori — we learn the empirical residual. And we label on the drift after the initial pop, not the pop itself — the pop may be efficient, but the slow re-rating is exactly where the market is late (the same reason PEAD exists).

And structurally, agreements are less priced than most signals:

And the "everyone has a different impact estimate" worry flips into the opportunity: for EPS there's a tight Street consensus, so only the surprise moves the stock; for agreement impact there's no consensus number, so the market's expectation is fuzzy and slow to converge — no consensus estimate = no efficient price.

Honest caveat: big, well-covered names with headline deals are priced in seconds — no edge there. The edge is the tail, the read-through, and the flow-delta. So we aim the features at those regimes — an own-history "unusually big for this company" surprise (same shape as earnings SUE) + a coverage proxy for how un-watched the name is — and let the label sort the rest.

07 · The sharpest test — unloved valuation × improving contracts

Where the signal should have the most edge — if it has any

The "priced in" section says a signal only pays where it diverges from the price. This is the cleanest place to look for that divergence, and the first falsifiable experiment the agreements layer makes possible:

The hypothesis

Low P/S · low P/E · an improving contract book → does the market re-rate now, or drift?

A low multiple means the market is skeptical or not watching. Improving contracts mean the forward reality is getting better. That gap is maximum divergence between price and forward-fact — the un-priced corner. If the signal works anywhere it's here, not in a priced-for-perfection name (AFRM), where a new contract just confirms the multiple and adds nothing.

Two design points that make it real (and both are why the 2024–2025 backfill matters):

Screen componentDefinitionNeeds
Valuation filterLow P/S and/or P/E (skeptical / under-watched)price panel
Contract-quality ΔMix-shift → commercial, ↑amount, inflow, credible counterparty — vs the filer's own baselineagreements census incl. 2024–25
Immediate reactionabnormal return [0,+1d] around filingprice panel
Driftabnormal return [+2,+40d]price panel

The gating dependency: price data shows up in three places — the low-P/S filter, the [0,+1] reaction, and the [+2,+40] drift — so even the screen's entry filter needs it. Both prerequisites are in flight: the agreements 2024–2025 backfill is running (was ~5–9% of census in the past vs ~census in 2026); the event-return price panel (atlas) is the remaining gate. When both land, this is the first scoreable test of the whole thesis.

08 · The data & compute stack

Assembled, and nothing's blocking it

narrow
signals :9300
lexical: ticker / phrase / date / PIT → parquet on S3
embed
our GPUs
vortex 3×3090 · e5 on the AMD boxes = the semantic layer
assemble
PIT fingerprint
filings + classifiers + insider + drift base-rate
train
transformer
nanochat / ROCm · pair with realized drift
argos filings features

semantic_search nails a company's own forward words cleanly; classifiers = the posture tags (Discovery 1).

earnings_surprise_history features + LABEL

Beat rate, SUE, PEAD drift base-rate — and the realized abn_drift_41 label (Discovery 2).

insider_signal positioning

Discretionary buy/sell breadth into the print — the "5 C-suite sold, 0 bought" tell.

signals corpus news / read-through

14.6M rows via tunnel; lexical is noisy for concepts → we embed a narrowed slice. Precise for phrases ("in talks to acquire").

MARS graph linkage

Commercial / relational edges — read-through a supplier's print onto a customer; forward statements mint the edges.

agreements HARD forward · soon

Signed contracts = binding forward commitments (value / term / counterparty). Land as typed MARS edges → free pickup by the catalog walk. Dataset building now.

sections stated plans · proposed

Structured forward events from filings ("open a factory," "enter market X") — the ladder's middle. Pair with agreements → follow-through credibility. Note out to the sections team.

09 · PIT / leakage discipline — non-negotiable

Two ways to poison the corpus, both guarded

10 · The log & next steps

Forced, falsifiable, scored

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:

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).

THE EARNINGS TRANSFORMER — living plan, maintained by inferno. Built from the MARS entity graph + argos filing/insider/surprise tools + the signals news corpus (via SSH tunnel to proc2:9300), point-in-time. Worked example (AMAT) is illustrative of method, not a recommendation; a beat/miss and the stock's reaction are different things. "Beat" = above a company's own seasonal trend, not Wall Street consensus. Not investment advice. Internal — not for external distribution.