Live · rows
CASE STUDY № 01 · LARGE CAP

The Company File

A single company, graded on Buffett-style criteria as of its vintage year, then asked: what does the engine predict for the next decade — and why?

BUILD A COMPANY · WHAT WOULD THE ENGINE EXPECT?

Company Lab

Build a profile from scratch — or start from a real company today: its grades pre-set the knobs, and you can argue with any of them. Disagree the leadership's a 4? Drop it to 2 and watch the forecast move. The engine predicts from whatever you give it: no required fields, no retraining.

FEATURE IMPORTANCE · THE MONEY CHART

Does the thesis hold?

Across point-in-time company observations, which features most predict landing in the 'great' outcome bucket? An aito.relate query, ranked by lift.

Calibration
Predicted vs. realised frequency, by confidence decile
A well-calibrated engine: when it says 80%, it should be right ~80% of the time. This chart is in-sample (each row scored against a corpus that still contains it) — see Evaluation for the honest held-out numbers.
Predicted
Realised
EVENTS, NOT ATTRIBUTES · HOW THE TAPE REACTS

News Reaction

A real event feed: every 8-K a company files is material news, timestamped, tagged by the SEC with an item code that is the theme. We measure how the stock reacts at +1 day, +1 week, and +20 days — and whether the first move continues or reverts.

Read a release at t = 0 Paste an earnings press release. A model reads it; Aito predicts the day-1 reaction from the signals.
Try:
And across 60,000 events
News theme Events Day-1 winners → 1d · 20d · 1yr Day-1 losers → 1d · 20d · 1yr 1-yr gap Verdict
Reading the news at t = 0

The cohorts above split on the day-1 price — but a trader wants to anticipate that move from the content, the second the release hits. So we let an LLM read each earnings press release and extract the signals a human skims for — headline tone, beat/miss framing, guidance change, EPS direction — then ask which of them actually separate the reaction. Sorted by how much each signal moves the day-1 tape.

The honest result a quant will respect: a positive headline barely moves the tape — the market already prices the consensus the company is framing against. The signal that earns its keep is the genuinely new information the release reveals — above all a change in forward guidance, which the headline buries but the engine surfaces. Naive sentiment is priced; the structural surprise is not.
WHAT PREDICTS WINNERS · AND WHAT PREDICTS LOSERS

Factor Explorer

Every feature — LLM judgments, sector, valuation, growth, leverage, momentum — ranked by its lift toward the great bucket (upside) and toward poor / disaster (downside). A factor strong on one side and quiet on the other is a clean signal; one that lifts both is just volatility.

Feature N Lift → great (upside) Lift → poor/disaster (downside)
The two-directional read is where the interesting questions live. Airlines never reach great and tilt toward disaster. Utilities do neither — pure ballast. A wide moat lifts the upside without touching the downside. The features that move one side and not the other are the ones the market tends to misprice.
SIMILARITY SEARCH · HISTORY DOES NOT REPEAT, BUT IT RHYMES

Historical Analogues

Given a focal company, find historical observations with the closest feature profile. Then read what actually happened to them. A native Aito similarity query.

HELD-OUT PERFORMANCE · MASKED TEST SET

How good is it, honestly?

Every number here comes from Aito's _evaluate, which hides each test company from the model and scores its blind prediction — a random cross-year 5-fold split with no company in both train and test. No in-sample flattery.

Against the alternatives

Two bars to clear: guessing the most common outcome, and the naive "throw every feature at it." Accuracy is the easy one; information gain — do the predicted probabilities actually beat the base rate? — is the honest one.

Does adding features help?

Features added in order of individual usefulness (one held-out fold). Information gain peaks around features, then erodes — extra features stop informing and start overfitting. The demo doing model selection in the open.

The figures above are the default-inference floor that _evaluate reports. The demo's live predictions use Aito's ai: high grouping mode, which collapses correlated features into single votes — on the full 16-feature set it lifts held-out information gain further (≈ +0.04 → +0.08 measured separately), i.e. "throw every feature at it," made calibrated.

SELF-DIAGNOSIS · THE ENGINE ON ITS OWN ERRORS

Where does it fail?

Held-out predictions marked right or wrong, then loaded back into Aito. A single relate query asks: which input features go with the engine being wrong? Pick a bucket to scope it with $on. The same predictive database, pointed at itself.

lift > 1 — the engine errs more on these · lift < 1 — more reliable here. n = held-out companies with that feature value.
THE ACID TEST · WOULD IT HAVE MADE MONEY

Does it beat the market?

Accuracy is a lab number. The honest question is a fund. Take every held-out company, rank it by the engine's predicted expected outcome, buy the top N, hold to today. No look-ahead: folds are grouped by ticker, so a company never scores its own other-vintage result. Here is what the picks actually returned.

/yr
top-20 fund CAGR
The funds — ranked by the engine, measured on reality

black line = the equal-weight market (every graded company). Bars are mean total return over the holding window; the number to the right is annualized (CAGR).

Same test, one vintage at a time
As a classifier, though — mediocre and optimistic

Read the asterisks
NOTES ON THE METHOD · WHAT THIS IS, AND IS NOT

On Methodology

Every line in this demo is reproducible. Every concession to imperfection is documented. The demo is the methodology; the numbers are the consequence.

№ i

Point-in-time universe

Constituents reconstructed from Wikipedia's historical S&P 500 edits as of January 1, 2014 / 2017 / 2020 — what an investor could actually have bought, not today's index. Each constituent is then tracked to its terminal state: still trading, acquired, or delisted.

№ i·b

The survivorship trap — and where we still half-fall in

The unit of analysis is a snapshot: grade a company from its filing at the vintage date, then observe what the position returned years later. A bankruptcy isn't a new data point — it's the outcome of a snapshot that already existed. The naïve study screens today's index and silently inherits the winners; we start from the point-in-time roster, so the Chesapeakes and Frontiers are present at vintage and graded from their pre-bankruptcy 10-K like any other name.

The leak is on the outcome side: our return source (yfinance) has no price history after a stock is cancelled, so a Chapter 11 that wipes out common holders returns null and would drop from every statistic — re-introducing the bias through the back door, this time hiding the losers. "Can't find the ticker → mark it gone" is the right instinct but unsafe alone: acquisitions vanish from the feed too, usually at a premium. So we resolve the reason a stock disappeared from its SEC record (Chapter 11 filing → common cancelled → booked at −100% from vintage to the filing date) and leave premium buyouts and take-unders to the price source. Scope is deliberately narrow — only confirmed equity-zeroing Chapter 11s (Frontier, Chesapeake, Windstream, Denbury, Diamond Offshore, Noble, Valaris, Rowan, Peabody). The disaster bucket now holds real −100% outcomes — but treat the absolute bankruptcy rate as a floor, not a census.

№ ii

LLM grading discipline

Qualitative features extracted from contemporary 10-K and proxy excerpts only. Every prompt instructs the model to grade from the documents alone and not to use post-vintage knowledge. All four features are graded in a single structured-output call per company; rationale strings are preserved as explainability columns.

№ iii

Lookahead stress test

The 2020 vintage is held out as a future-leakage probe. If feature lift is comparable across all three vintages, LLM lookahead bias is bounded. Reported in the calibration plot.

№ iv

Outcome bucketing

Five buckets, not regression on returns. Aligned with how investors actually think (disaster / poor / market / good / great). Yields calibrated probabilities rather than meaningless point forecasts.

№ v

Why this is not a trading signal

Twelve-year horizon, ~800 observations, no microstructure features, no transaction cost model, no consideration of capacity. This is a hypothesis test about long-horizon business quality — not an alpha generation system. The demo's value is architectural, not financial.

№ vi

The transferable lesson

The architecture — LLM-extracted qualitative features feeding a predictive database — generalises to any domain where unstructured judgment meets structured outcomes. Credit underwriting, M&A diligence, talent assessment, supplier risk. Equity research is the vehicle, not the destination.

Stack
Data Sources
  • · SEC EDGAR (10-Ks, proxies, point-in-time)
  • · Wikipedia historical S&P 500 constituent edits
  • · yfinance (prices, returns, survival)
  • · SimFin free tier (fundamentals)
Engine
  • · OpenAI gpt-5-mini for LLM feature extraction
  • · aito.ai predictive database
  • · Single endpoint, no training pipeline
  • · Open repository: aito-equity-demo
Leakage diagnostic
THE API · UNVARNISHED

Live Query

The same engine, the same endpoint, the same wire format you'd hit from your own code. Edit the body, hit Run, see the response and timing. Copy the curl and walk away with it.

Tip. Ctrl-Enter (or Cmd-Enter) to run. The body is a literal Aito query — anything you'd POST to /api/v1/_predict directly works here, as long as from = "companies".
// run a query to see the response
THE FULL TABLE · WHAT THE ENGINE SEES

The Universe

Every (ticker, vintage) row the predictive database holds. Filter by sector, vintage, or outcome bucket; sort by any column. Companies graded by the LLM show their qualitative grades; those without grades show the realised outcome only.

The table is a leveling tool. It shows every constituent that was in the index at vintage, including the ones the engine got wrong, the ones that delisted, and the ones the LLM hasn't graded yet. The visual editorial register applies to the curated views — this view is the receipts.