Ora

Benchmarks

Ora vs JEV on verified financial questions

Head-to-head runs on questions with a checkable answer: labels computed from real bars by exact rules, never by a model. Every number below comes from a saved report file; methodology, sample sizes and the places where JEV wins are on the page.

Technical questions: Ora 86.5% · JEV 80.7% with indicator values · JEV 70.2% with raw bars (1,000 questions, 2026-10-31)

Latest run · 2026-10-31

Technical knowledge, 1,000 held-out questions

Questions drawn from held-out splits of the technical knowledge bank: unseen wordings (474) and unseen stocks (526). This set is now burned: it is published here and no longer used to test Ora.

86.5%Ora accuracy, all 1,000 (Brier 0.127)
97.2%Ora on the 778 it answered with a rule
80.7%JEV with indicator values (Brier 0.129)
70.2%JEV with raw bars (Brier 0.197)
Ora (rule engine + question compiler)86.5%
JEV, given indicator values80.7%
JEV, given raw bars70.2%

By subcategory

Accuracy, then Brier score (lower is better). The best accuracy in each row is marked. JEV is ahead on Volume, Volatility, Levels, Performance.

QuestionsnOra (rule engine + question compiler)JEV, given indicator valuesJEV, given raw bars
All1,00086.5% 0.12780.7% 0.12970.2% 0.197
Ora answered with a rule77897.2% 0.09178.8% 0.13969.0% 0.203
Ora declined (scored 0.5)22249.1% 0.25087.4% 0.09474.3% 0.177
Basics12595.2% 0.09384.0% 0.14072.0% 0.179
Trend12592.8% 0.11176.8% 0.14775.2% 0.191
Momentum12588.8% 0.10388.8% 0.07665.6% 0.211
Volume12579.2% 0.13093.6% 0.06567.2% 0.198
Volatility12580.8% 0.16084.8% 0.10468.8% 0.204
Levels12582.4% 0.13872.8% 0.16787.2% 0.116
Patterns12598.4% 0.11850.4% 0.28948.0% 0.327
Performance12574.4% 0.16094.4% 0.04377.6% 0.149

What each model received

  • Ora got the question in English and the symbol's daily bars up to the question date (the same data its API reads). It compiles the question to a rule (Ora Rules v1) and evaluates it. When it cannot compile a question it declines (no rule); a decline is scored as 0.5: wrong for accuracy, 0.25 for Brier. Ora declined 222 of 1,000.
  • JEV, raw bars: the same question with the last 260 daily bars (date, open, high, low, close, volume) as its state; mean 13,569 input tokens, median latency 194 ms.
  • JEV, indicator values: the same question with the precomputed indicator values for that day and a legend of what each key means; mean 4,319 input tokens, median latency 145 ms. JEV has no market data of its own, so it is given the numbers.
  • Labels are computed from the bars by exact rules (verified against TA-Lib), not by a model. Accuracy counts a probability above 0.5 as yes.

Download the questions

All 1,000 questions with their labels and every model's answer (645 symbols, sessions 2011-04-05 to 2026-10-30): CSV · JSONL. Fields: id, symbol, as_of, subcategory, question, label, ora_belief (empty = declined), ora_rule, jev_raw_bars_p, jev_indicators_p.

2026-10-29

Forecasts: 800 held-out questions about what happens next

Will it be up in five sessions, draw down 5% within a month, beat SPY? Questions whose answer is unknown at the time, scored against what then happened. fin_test (800 held-out forecast questions, 16 question families x 50).

66.0%Ora accuracy (Brier 0.196)
60.9%JEV accuracy (Brier 0.225)
4.6 msOra median latency (JEV 55.4 ms)
65%of answers on the same side
Ora66.0%
JEV60.9%

By question

50 questions each. Accuracy, then Brier. Forecasting is hard: a few families are below a coin flip for both models. JEV is ahead on 2 of 16: outperform_spy_5d, up_1d.

Question familynOraJEV
big_move_5d
Did the stock make an unusually large move (more than one standard deviation) over the following five sessions?
5068% 0.21962% 0.209
drawdown_5pct_20d
Did the price fall 5% or more below the current close at any point over the following twenty sessions?
5066% 0.19858% 0.236
gap_down_1d
Will it gap down tomorrow?
5092% 0.07992% 0.111
gap_up_1d
Did the next session open more than 1% above the current close (gap up)?
5092% 0.07190% 0.093
new_high_20d_5d
Will it make a new 20-day high in the next week?
5078% 0.13968% 0.197
new_low_20d_5d
Did the price break below its 20-session low within the following five sessions?
5074% 0.16072% 0.182
outperform_spy_20d
Did the stock outperform the market (SPY) over the following twenty sessions?
5038% 0.26632% 0.299
outperform_spy_5d
Did the stock outperform the market (SPY) over the following five sessions?
5038% 0.26542% 0.320
rally_5pct_20d
Will it rally at least 5% at some point in the next month?
5064% 0.23158% 0.236
up_1d
Does it close up the next day?
5050% 0.25060% 0.234
up_20d
Will the stock be higher in a month?
5074% 0.22152% 0.322
up_5d
Did the price close higher after five sessions?
5060% 0.24758% 0.278
vol_down_5d
Did realized volatility decrease over the following five sessions?
5064% 0.21754% 0.239
vol_up_20d
Will volatility be higher over the next month?
5046% 0.24940% 0.270
vol_up_5d
Does realised volatility go up in the next week?
5060% 0.25348% 0.267
volume_spike_1d
Was next session's volume more than twice the 20-session average?
5092% 0.07388% 0.105

What each model received

  • Both models got the same request: the question and the symbol's context for that day (returns, volatility, volume and trend measures). Ora answered with the ora-fin-0.1.1 forecast model; JEV with TypeSafe jev-latest.
  • accuracy = the provider's own yes/no label vs the realised outcome (a probability of exactly 0.50 is labelled yes); Brier = mean (p - outcome)^2. JEV answered exactly 0.50 on 37 questions; those count as yes.
  • The 800 items are not published: this forecast test set is still used to test new versions.

Methodology

  • Held out. Technical questions come from held-out splits of Ora's knowledge bank: wordings and stocks Ora was never trained on. Forecast questions are dated after the training window.
  • Verified labels. A technical label is the exact rule applied to the bars (for example the close against its 20-day SMA), checked against TA-Lib and an independent pure-Python implementation. A forecast label is what the bars did afterwards.
  • Same information. JEV has no market data, so it receives the bars or the indicator values in its state. Ora reads the same bars from its own store.
  • Scoring. Accuracy (a probability above 0.5 is yes) and Brier score, the mean squared error of the probability (0 is perfect; always answering 0.5 scores 0.25). Ora's declines are scored as 0.5.
  • Where this does not apply. These are market questions. On general text, JEV is ahead of Ora's text model; that is not what this page measures.
  • Ora rule beliefs are strengths, not probabilities (spec section 6); they are scored as probabilities here, which, if anything, penalises Ora's Brier.

Rerun it

The scripts that produced these numbers, in the Ora source tree:

# technical head-to-head (needs bars + a TypeSafe API key)
ORA_BARS=data/fin/knowledge/bars.parquet python fin/knowledge/h2h_jev_prep.py --n 1000
python fin/knowledge/h2h_jev_run.py --workers 6            # -> data/fin/knowledge/h2h_jev_report.json
# a fresh run on new questions writes h2h_jev_<tag>_report.json; it appears here on the next build
# forecasts: Admin > Benchmarks (deploy/bench.sh) on fin_test.jsonl
node web/bin/build-growth.js                               # rebuild this page

Answers are model outputs for information only, not investment advice. JEV is a product of TypeSafe; results are from its public API on the dates shown.