Examples
Ready-to-run requests
Every example is a complete request. Read the JSON, take it to code in eight languages, or open it in the Playground once you've signed in. Action examples show what they would send, from a real dry run.
Act on answers
Three real dry runs (2026-10-30): the request, the answers and exactly what would be sent. Nothing was delivered.
Slack alert
Drawdown alert to the trading desk (Slack)
A rule on the answers posts to a Slack channel through a connection named trading-desk. Post to the desk's Slack channel when the chance of a 5% drawdown within a month passes 55%, with the upside odds for context. Needs a Slack connection named trading-desk.
drop5 >= 0.55→
Slacktrading-deskRequest
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-21",
"context": {
"return_1d": 0.03414,
"return_5d": 0.05259,
"return_20d": 0.01671,
"return_60d": 0.25706,
"return_252d": -0.13624,
"volatility_5d": 0.42207,
"volatility_20d": 0.34942,
"volatility_60d": 0.3934,
"vol_ratio_5_20": 1.20792,
"volume_ratio": 1.30117,
"volume_ratio_5d": 1.08622,
"atr_pct": 0.03188,
"rsi_14": 59.77,
"dist_sma_20": 0.04443,
"dist_sma_50": 0.06706,
"dist_sma_200": -0.0012,
"dist_high_252": -0.22525,
"dist_low_252": 0.29958,
"gap_1d": 0.02087,
"range_pct_1d": 0.02156,
"close_location": 0.71523,
"dollar_volume_log": 10.112,
"market_return_5d": 0.00453,
"market_volatility_20d": 0.08848,
"dist_high_20": -0.0061,
"dist_low_20": 0.11735,
"beta_1y": 2.21228,
"body_pct": 0.013,
"upper_wick": 0.28477,
"lower_wick": 0.12,
"range_vs_atr": 0.67641,
"sma50_vs_sma200": -0.06397,
"earnings_next_5d": 1,
"days_to_earnings": 1,
"days_since_earnings": 63,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "desk_alert",
"when": "drop5 >= 0.55",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}} ({{as_of}}): {{drop5|pct}} chance of a 5% drawdown within a month, {{rally5|pct}} chance of a 5% rally. Two-way risk: consider sizing down."
}
],
"dry_run": true
}Answers and what it would send
drop5 0.584 · rally5 0.586
{
"text": "TSLA (2026-10-21): 58% chance of a 5% drawdown within a month, 59% chance of a 5% rally. Two-way risk: consider sizing down."
}Signed webhook to an OMS
Gap trade signal to your order system (webhook, else)
Typed values in a JSON body, POSTed to your order system and signed with X-Jev-Signature. On an opening gap: send an intraday fade if the gap should fill today, a 5-day swing if it should fill within the week, and otherwise tell the desk there's no trade. Typed values in the body. Needs a webhook connection named my-oms.
fill_today >= 0.6→
Webhookmy-omsfill_today < 0.6 and fill_5d >= 0.55→
Webhookmy-omselse→
Slacktrading-deskRequest
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.03219,
"gap_dir": -1,
"gap_atr": -1.00978,
"gap_vs_typical": 3.76115,
"gap_outside_range_atr": 0.526,
"earnings_day": 1,
"earnings_next_5d": 0,
"market_gap_pct": -0.00869,
"gap_vs_market": -0.0235,
"prior_return_1d": 0.03414,
"prior_return_5d": 0.05259,
"prior_return_20d": 0.01671,
"prior_rsi_14": 59.77,
"prior_dist_sma_20": 0.04443,
"prior_dist_sma_50": 0.06706,
"prior_dist_high_20": -0.0061,
"prior_dist_low_20": 0.11735,
"prior_close_location": 0.71523,
"prior_volume_ratio": 1.30117,
"volatility_20d": 0.34942,
"atr_pct": 0.03188,
"dollar_volume_log": 10.112,
"beta_1y": 2.21228,
"market_volatility_20d": 0.08848,
"sym_gap_fill_rate": 0.44,
"sym_gap_fill_rate_dir": 0.4,
"sym_gap_fill_5d_rate": 0.72,
"sym_gap_go_rate": 0.5,
"sym_gaps_1y": 107
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
},
"gap_go": {
"type": "yes_no",
"instructions": "Is this a gap-and-go day rather than a fade?"
}
},
"actions": [
{
"id": "fade_intraday",
"when": "fill_today >= 0.6",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"signal": "fade_gap",
"horizon": "intraday",
"p_fill": "{{fill_today}}",
"gap_pct": "{{state.context.gap_pct}}",
"as_of": "{{as_of}}"
}
},
{
"id": "swing_fill",
"when": "fill_today < 0.6 and fill_5d >= 0.55",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"signal": "gap_fill_swing",
"horizon": "5d",
"p_fill": "{{fill_5d}}",
"p_gap_and_go": "{{gap_go}}",
"gap_pct": "{{state.context.gap_pct}}",
"as_of": "{{as_of}}"
}
},
{
"id": "no_trade",
"when": "else",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}} gap: no trade (fill today {{fill_today|pct}}, within 5 days {{fill_5d|pct}})."
}
],
"dry_run": true
}Answers and what it would send
fill_today 0.292 · fill_5d 0.607 · gap_go 0.540
{
"symbol": "TSLA",
"signal": "gap_fill_swing",
"horizon": "5d",
"p_fill": 0.607,
"p_gap_and_go": 0.54,
"gap_pct": -0.03219,
"as_of": "2026-10-22"
}Digest workflow
Pre-open market read
A workflow runs the same questions for every symbol on a watchlist (Weekdays 08:30 ET) and sends one digest per run. Before the open, one Slack message with every index ETF's odds: higher in a week, a 2% move either way, choppier. No per-symbol actions: the digest is the product.
Workflow
{
"name": "Pre-open market read",
"symbols": "SPY QQQ IWM DIA",
"days": [
1,
2,
3,
4,
5
],
"at_time": "08:30",
"model": "ora1",
"questions": {
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"move2": {
"type": "yes_no",
"instructions": "Will the stock move more than 2% in either direction in 5 trading days?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will price swings get bigger over the next week compared with the past month?"
}
},
"digest": {
"do": "slack",
"connection": "trading-desk",
"when": "always"
}
}Per-symbol answers and the digest it would send
| Symbol | Answers (as of 2026-10-30) |
|---|---|
SPY |
|
QQQ |
|
IWM |
|
DIA |
|
{
"text": "Pre-open market read · data as of 2026-10-30 · 0 of 4 symbols fired:\n• SPY: up_week 60%, move2 39%, vol_up 51%\n• QQQ: up_week 56%, move2 36%, vol_up 51%\n• IWM: up_week 53%, move2 32%, vol_up 47%\n• DIA: up_week 57%, move2 37%, vol_up 49%"
}Ask by symbol
Send only a symbol: the server fills in its latest completed-session numbers. Covers about 2,000 liquid US stocks and ETFs, refreshed after each close.
NVDA from just the symbol
Send only {"symbol": "NVDA"}: the server fills the latest completed-session numbers (context) and says which date they're from in the response.
up_weekWill the stock be higher in a week?drop5Will it drop at least 5% at some point in the next month?new_highWill it make a new 20-day high in the next week?- + 1 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "NVDA"
},
"questions": {
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will price swings get bigger over the next week compared with the past month?"
}
}
}SPY: the market's next week
An index ETF by symbol: direction, a 2% move either way, and calmer or choppier.
up_weekWill the stock be higher in a week?move2Will the stock move more than 2% in either direction in 5 trading days?vol_downWill price swings get smaller over the next week compared with the past month?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "SPY"
},
"questions": {
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"move2": {
"type": "yes_no",
"instructions": "Will the stock move more than 2% in either direction in 5 trading days?"
},
"vol_down": {
"type": "yes_no",
"instructions": "Will price swings get smaller over the next week compared with the past month?"
}
}
}TSLA by symbol, with a dry-run alert
Ask by symbol and act on it: the alert's message shows the server-filled date and numbers.
drop5 >= 0.5 and rally5 >= 0.5→
Slacktrading-deskdrop5Will it drop at least 5% at some point in the next month?rally5Will it rally at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA"
},
"questions": {
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "two_way_risk",
"when": "drop5 >= 0.5 and rally5 >= 0.5",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}} ({{as_of}}): two-way risk, drawdown {{drop5|pct}}, rally {{rally5|pct}}, RSI {{state.context.rsi_14}}."
}
],
"dry_run": true
}Would send (dry run)
drop5 0.638 · rally5 0.687
{
"text": "TSLA (2026-10-30): two-way risk, drawdown 64%, rally 69%, RSI 60.2."
}Actions
Decide, then act. Each example answers its questions and runs rules on the answers to send a Slack message, call your webhook or email you.
Drawdown alert to the trading desk (Slack)
Post to the desk's Slack channel when the chance of a 5% drawdown within a month passes 55%, with the upside odds for context. Needs a Slack connection named trading-desk.
drop5 >= 0.55→
Slacktrading-deskdrop5Will it drop at least 5% at some point in the next month?rally5Will it rally at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-21",
"context": {
"return_1d": 0.03414,
"return_5d": 0.05259,
"return_20d": 0.01671,
"return_60d": 0.25706,
"return_252d": -0.13624,
"volatility_5d": 0.42207,
"volatility_20d": 0.34942,
"volatility_60d": 0.3934,
"vol_ratio_5_20": 1.20792,
"volume_ratio": 1.30117,
"volume_ratio_5d": 1.08622,
"atr_pct": 0.03188,
"rsi_14": 59.77,
"dist_sma_20": 0.04443,
"dist_sma_50": 0.06706,
"dist_sma_200": -0.0012,
"dist_high_252": -0.22525,
"dist_low_252": 0.29958,
"gap_1d": 0.02087,
"range_pct_1d": 0.02156,
"close_location": 0.71523,
"dollar_volume_log": 10.112,
"market_return_5d": 0.00453,
"market_volatility_20d": 0.08848,
"dist_high_20": -0.0061,
"dist_low_20": 0.11735,
"beta_1y": 2.21228,
"body_pct": 0.013,
"upper_wick": 0.28477,
"lower_wick": 0.12,
"range_vs_atr": 0.67641,
"sma50_vs_sma200": -0.06397,
"earnings_next_5d": 1,
"days_to_earnings": 1,
"days_since_earnings": 63,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "desk_alert",
"when": "drop5 >= 0.55",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}} ({{as_of}}): {{drop5|pct}} chance of a 5% drawdown within a month, {{rally5|pct}} chance of a 5% rally. Two-way risk: consider sizing down."
}
],
"dry_run": true
}Would send (dry run)
drop5 0.584 · rally5 0.586
{
"text": "TSLA (2026-10-21): 58% chance of a 5% drawdown within a month, 59% chance of a 5% rally. Two-way risk: consider sizing down."
}Breakout watch: volume confirms or not (Slack + email)
A likely new 20-day high is only half a signal. Email yourself when volume should confirm it; otherwise tell the desk the breakout is unconfirmed. Shows and-rules.
new_high >= 0.6 and vol_spike >= 0.4→
Emailmenew_high >= 0.6 and vol_spike < 0.4→
Slacktrading-desknew_highWill it make a new 20-day high in the next week?vol_spikeWill volume spike tomorrow?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-21",
"context": {
"return_1d": 0.03414,
"return_5d": 0.05259,
"return_20d": 0.01671,
"return_60d": 0.25706,
"return_252d": -0.13624,
"volatility_5d": 0.42207,
"volatility_20d": 0.34942,
"volatility_60d": 0.3934,
"vol_ratio_5_20": 1.20792,
"volume_ratio": 1.30117,
"volume_ratio_5d": 1.08622,
"atr_pct": 0.03188,
"rsi_14": 59.77,
"dist_sma_20": 0.04443,
"dist_sma_50": 0.06706,
"dist_sma_200": -0.0012,
"dist_high_252": -0.22525,
"dist_low_252": 0.29958,
"gap_1d": 0.02087,
"range_pct_1d": 0.02156,
"close_location": 0.71523,
"dollar_volume_log": 10.112,
"market_return_5d": 0.00453,
"market_volatility_20d": 0.08848,
"dist_high_20": -0.0061,
"dist_low_20": 0.11735,
"beta_1y": 2.21228,
"body_pct": 0.013,
"upper_wick": 0.28477,
"lower_wick": 0.12,
"range_vs_atr": 0.67641,
"sma50_vs_sma200": -0.06397,
"earnings_next_5d": 1,
"days_to_earnings": 1,
"days_since_earnings": 63,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"vol_spike": {
"type": "yes_no",
"instructions": "Will volume spike tomorrow?"
}
},
"actions": [
{
"id": "confirmed_breakout",
"when": "new_high >= 0.6 and vol_spike >= 0.4",
"do": "email",
"connection": "me",
"subject": "{{symbol}}: breakout with volume",
"message": "New 20-day high within a week: {{new_high|pct}}. Volume spike tomorrow: {{vol_spike|pct}}."
},
{
"id": "unconfirmed_breakout",
"when": "new_high >= 0.6 and vol_spike < 0.4",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}}: likely new 20-day high ({{new_high|pct}}) but volume isn't expected to confirm ({{vol_spike|pct}})."
}
],
"dry_run": true
}Would send (dry run)
new_high 0.615 · vol_spike 0.060
{
"text": "TSLA: likely new 20-day high (62%) but volume isn't expected to confirm (6%)."
}Gap trade signal to your order system (webhook, else)
On an opening gap: send an intraday fade if the gap should fill today, a 5-day swing if it should fill within the week, and otherwise tell the desk there's no trade. Typed values in the body. Needs a webhook connection named my-oms.
fill_today >= 0.6→
Webhookmy-omsfill_today < 0.6 and fill_5d >= 0.55→
Webhookmy-omselse→
Slacktrading-deskfill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?gap_goIs this a gap-and-go day rather than a fade?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.03219,
"gap_dir": -1,
"gap_atr": -1.00978,
"gap_vs_typical": 3.76115,
"gap_outside_range_atr": 0.526,
"earnings_day": 1,
"earnings_next_5d": 0,
"market_gap_pct": -0.00869,
"gap_vs_market": -0.0235,
"prior_return_1d": 0.03414,
"prior_return_5d": 0.05259,
"prior_return_20d": 0.01671,
"prior_rsi_14": 59.77,
"prior_dist_sma_20": 0.04443,
"prior_dist_sma_50": 0.06706,
"prior_dist_high_20": -0.0061,
"prior_dist_low_20": 0.11735,
"prior_close_location": 0.71523,
"prior_volume_ratio": 1.30117,
"volatility_20d": 0.34942,
"atr_pct": 0.03188,
"dollar_volume_log": 10.112,
"beta_1y": 2.21228,
"market_volatility_20d": 0.08848,
"sym_gap_fill_rate": 0.44,
"sym_gap_fill_rate_dir": 0.4,
"sym_gap_fill_5d_rate": 0.72,
"sym_gap_go_rate": 0.5,
"sym_gaps_1y": 107
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
},
"gap_go": {
"type": "yes_no",
"instructions": "Is this a gap-and-go day rather than a fade?"
}
},
"actions": [
{
"id": "fade_intraday",
"when": "fill_today >= 0.6",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"signal": "fade_gap",
"horizon": "intraday",
"p_fill": "{{fill_today}}",
"gap_pct": "{{state.context.gap_pct}}",
"as_of": "{{as_of}}"
}
},
{
"id": "swing_fill",
"when": "fill_today < 0.6 and fill_5d >= 0.55",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"signal": "gap_fill_swing",
"horizon": "5d",
"p_fill": "{{fill_5d}}",
"p_gap_and_go": "{{gap_go}}",
"gap_pct": "{{state.context.gap_pct}}",
"as_of": "{{as_of}}"
}
},
{
"id": "no_trade",
"when": "else",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}} gap: no trade (fill today {{fill_today|pct}}, within 5 days {{fill_5d|pct}})."
}
],
"dry_run": true
}Would send (dry run)
fill_today 0.292 · fill_5d 0.607 · gap_go 0.540
{
"symbol": "TSLA",
"signal": "gap_fill_swing",
"horizon": "5d",
"p_fill": 0.607,
"p_gap_and_go": 0.54,
"gap_pct": -0.03219,
"as_of": "2026-10-22"
}Hedge or all-clear (webhook, else to Slack)
Ask your order system for a protective put when drawdown odds are high and a big move is plausible; otherwise post an all-clear. Exactly one of the two always fires.
drop5 >= 0.65 and big_move >= 0.25→
Webhookmy-omselse→
Slacktrading-deskdrop5Will it drop at least 5% at some point in the next month?big_moveWill the stock move more than 5% in either direction in 5 trading days?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-09-29",
"context": {
"return_1d": -0.0129,
"return_5d": -0.06878,
"return_20d": -0.04107,
"return_60d": -0.15944,
"return_252d": -0.19882,
"volatility_5d": 0.25764,
"volatility_20d": 0.41763,
"volatility_60d": 0.51215,
"vol_ratio_5_20": 0.61691,
"volume_ratio": 0.79738,
"volume_ratio_5d": 0.90354,
"atr_pct": 0.03532,
"rsi_14": 44.8,
"dist_sma_20": -0.03428,
"dist_sma_50": 0.01552,
"dist_sma_200": -0.10603,
"dist_high_252": -0.29266,
"dist_low_252": 0.1865,
"gap_1d": 0.00271,
"range_pct_1d": 0.02001,
"close_location": 0.16431,
"dollar_volume_log": 10.145,
"market_return_5d": -0.01187,
"market_volatility_20d": 0.11404,
"dist_high_20": -0.08787,
"dist_low_20": 0.00832,
"beta_1y": 2.21702,
"body_pct": -0.01557,
"upper_wick": 0.04533,
"lower_wick": 0.16431,
"range_vs_atr": 0.56658,
"sma50_vs_sma200": -0.1197,
"days_to_earnings": 17,
"days_since_earnings": 47,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"big_move": {
"type": "yes_no",
"instructions": "Will the stock move more than 5% in either direction in 5 trading days?"
}
},
"actions": [
{
"id": "hedge",
"when": "drop5 >= 0.65 and big_move >= 0.25",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"action": "buy_put",
"target_delta": -0.25,
"tenor_days": 30,
"p_drawdown": "{{drop5}}",
"p_big_move": "{{big_move}}"
}
},
{
"id": "all_clear",
"when": "else",
"do": "slack",
"connection": "trading-desk",
"message": "{{symbol}}: no hedge needed (drawdown {{drop5|pct}}, 5-day ±5% move {{big_move|pct}})."
}
],
"dry_run": true
}Would send (dry run)
drop5 0.520 · big_move 0.251
{
"text": "TSLA: no hedge needed (drawdown 52%, 5-day ±5% move 25%)."
}Volatility desk alert (Slack, or-rules)
Tell the options desk when price swings are likely to expand or realized vol may top 50%; propose a straddle only when a 5% move inside a week is more likely than not.
vol_up >= 0.5 or vol50 >= 0.5→
Slackoptions-deskmove5 >= 0.5→
Webhookmy-omsvol_upWill price swings get bigger over the next week compared with the past month?vol50Will annualized volatility over the next 21 sessions exceed 50%?move5Will the stock move more than 5% in either direction in 5 trading days?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-21",
"context": {
"return_1d": 0.03414,
"return_5d": 0.05259,
"return_20d": 0.01671,
"return_60d": 0.25706,
"return_252d": -0.13624,
"volatility_5d": 0.42207,
"volatility_20d": 0.34942,
"volatility_60d": 0.3934,
"vol_ratio_5_20": 1.20792,
"volume_ratio": 1.30117,
"volume_ratio_5d": 1.08622,
"atr_pct": 0.03188,
"rsi_14": 59.77,
"dist_sma_20": 0.04443,
"dist_sma_50": 0.06706,
"dist_sma_200": -0.0012,
"dist_high_252": -0.22525,
"dist_low_252": 0.29958,
"gap_1d": 0.02087,
"range_pct_1d": 0.02156,
"close_location": 0.71523,
"dollar_volume_log": 10.112,
"market_return_5d": 0.00453,
"market_volatility_20d": 0.08848,
"dist_high_20": -0.0061,
"dist_low_20": 0.11735,
"beta_1y": 2.21228,
"body_pct": 0.013,
"upper_wick": 0.28477,
"lower_wick": 0.12,
"range_vs_atr": 0.67641,
"sma50_vs_sma200": -0.06397,
"earnings_next_5d": 1,
"days_to_earnings": 1,
"days_since_earnings": 63,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"vol_up": {
"type": "yes_no",
"instructions": "Will price swings get bigger over the next week compared with the past month?"
},
"vol50": {
"type": "yes_no",
"instructions": "Will annualized volatility over the next 21 sessions exceed 50%?"
},
"move5": {
"type": "yes_no",
"instructions": "Will the stock move more than 5% in either direction in 5 trading days?"
}
},
"actions": [
{
"id": "vol_alert",
"when": "vol_up >= 0.5 or vol50 >= 0.5",
"do": "slack",
"connection": "options-desk",
"message": "{{symbol}}: swings likely to expand ({{vol_up|pct}}); realized vol above 50%: {{vol50|pct}}; ±5% within a week: {{move5|pct}}."
},
{
"id": "straddle_idea",
"when": "move5 >= 0.5",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"idea": "long_straddle",
"tenor_days": 7,
"p_move": "{{move5}}"
}
}
],
"dry_run": true
}Would send (dry run)
vol_up 0.516 · vol50 0.427 · move5 0.274
{
"text": "TSLA: swings likely to expand (52%); realized vol above 50%: 43%; ±5% within a week: 27%."
}Daily read by email (always)
A short daily note to yourself with five answers, every time it runs. Pair it with a scheduler on your side (cron) until scheduled workflows arrive.
always→
Emailmeup_weekWill the stock be higher in a week?beat_spyWill it beat SPY over the next month?drop5Will it drop at least 5% at some point in the next month?- + 2 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-09-30",
"context": {
"return_1d": 0.00774,
"return_5d": 0.02459,
"return_20d": 0.02371,
"return_60d": 0.32153,
"return_252d": 0.0049,
"volatility_5d": 0.30205,
"volatility_20d": 0.24151,
"volatility_60d": 0.38583,
"vol_ratio_5_20": 1.25066,
"volume_ratio": 1.3048,
"volume_ratio_5d": 0.82073,
"atr_pct": 0.02301,
"rsi_14": 60.38,
"dist_sma_20": 0.02477,
"dist_sma_50": 0.06368,
"dist_sma_200": 0.18991,
"dist_high_252": -0.06609,
"dist_low_252": 0.47154,
"gap_1d": 0.00362,
"range_pct_1d": 0.01852,
"close_location": 0.27053,
"dollar_volume_log": 10.025,
"market_return_5d": -0.00675,
"market_volatility_20d": 0.11145,
"dist_high_20": -0.01333,
"dist_low_20": 0.05535,
"beta_1y": 0.95214,
"body_pct": 0.00411,
"upper_wick": 0.72947,
"lower_wick": 0.04948,
"range_vs_atr": 0.80503,
"sma50_vs_sma200": 0.11867,
"days_to_earnings": 21,
"days_since_earnings": 43,
"earn_usual_move": 0.05001,
"last_earn_reaction": 0.15505
}
},
"questions": {
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"back_to_50": {
"type": "yes_no",
"instructions": "Will it trade back to its 50-day moving average in the next month?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will price swings get bigger over the next week compared with the past month?"
}
},
"actions": [
{
"id": "daily_read",
"when": "always",
"do": "email",
"connection": "me",
"subject": "{{symbol}} daily read · {{as_of}}",
"message": "{{symbol}} as of {{as_of}}\n\nHigher in a week: {{up_week|pct}}\nBeats SPY over a month: {{beat_spy|pct}}\n5% drawdown within a month: {{drop5|pct}}\nBack to the 50-day average within a month: {{back_to_50|pct}}\nSwings expanding next week: {{vol_up|pct}}"
}
],
"dry_run": true
}Would send (dry run)
up_week 0.555 · beat_spy 0.518 · drop5 0.544 · back_to_50 0.537 · vol_up 0.534
{
"subject": "MSFT daily read · 2026-09-30",
"text": "MSFT as of 2026-09-30\n\nHigher in a week: 56%\nBeats SPY over a month: 52%\n5% drawdown within a month: 54%\nBack to the 50-day average within a month: 54%\nSwings expanding next week: 53%"
}Support ticket routing (general model: choice + score)
Not financial: route a message with a choice and a score. Rules compare the chosen option (department == 'technical') and the score level. Needs Slack connection support and webhook helpdesk.
urgent >= 0.7 and department == 'technical'→
Slacksupportfrustration >= 1.5→
Emailmealways→
WebhookhelpdeskurgentThe message needs action within the hourdepartmentWhich team should handle thisfrustrationHow frustrated is the writer
Request JSON
{
"model": "ora1",
"state": "Our checkout API has returned 500 errors for 20 minutes and customers can't pay. This is the third outage this month and I'm furious. Please call me.",
"questions": {
"urgent": {
"type": "yes_no",
"instructions": "The message needs action within the hour"
},
"department": {
"type": "choice",
"instructions": "Which team should handle this",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs, outages or integration problems",
"sales": "Pricing or account questions"
}
},
"frustration": {
"type": "score",
"instructions": "How frustrated is the writer",
"criteria": [
"Calm",
"Annoyed but civil",
"Very angry"
]
}
},
"actions": [
{
"id": "page_oncall",
"when": "urgent >= 0.7 and department == 'technical'",
"do": "slack",
"connection": "support",
"message": "Urgent technical ticket ({{urgent|pct}}), frustration {{frustration|round}}/2. Paging on-call."
},
{
"id": "escalate",
"when": "frustration >= 1.5",
"do": "email",
"connection": "me",
"subject": "Escalation: very frustrated customer",
"message": "Frustration {{frustration|round}} of 2, department {{department}}."
},
{
"id": "ticket",
"when": "always",
"do": "webhook",
"connection": "helpdesk",
"body": {
"queue": "{{department}}",
"urgent": "{{urgent}}",
"frustration": "{{frustration}}",
"answers": "{{answers}}"
}
}
],
"dry_run": true
}Would send (dry run)
urgent 0.172 · department billing · frustration 2.00
{
"subject": "Escalation: very frustrated customer",
"text": "Frustration 2.0 of 2, department billing."
}{
"queue": "billing",
"urgent": 0.172,
"frustration": 1.999,
"answers": {
"urgent": {
"type": "yes_no",
"yes_no": 0.172
},
"department": {
"type": "choice",
"choice": "billing",
"confidence": 0.391,
"probabilities": {
"billing": 0.594,
"technical": 0.376,
"sales": 0.03
}
},
"frustration": {
"type": "score",
"score": 1.999,
"confidence": 0.999,
"legend": {
"0": "Calm",
"1": "Annoyed but civil",
"2": "Very angry"
},
"probabilities": {
"0": 0,
"1": 0.001,
"2": 0.999
}
}
}
}Workflows
Scheduled watchlist runs: the same questions and actions for every symbol, after the close or before the open, with one digest message per run.
Daily drawdown watch
Mega caps after every close: alert the desk on any stock with a 60%+ chance of a 5% drawdown within a month, plus one email listing them.
drop5 >= 0.6→
Slacktrading-deskdrop5Will it drop at least 5% at some point in the next month?rally5Will it rally at least 5% at some point in the next month?
Symbols: AAPL MSFT NVDA AMZN META GOOGL TSLA AVGO
Breakout watch with volume
Semiconductors after the close: flag likely new 20-day highs and whether volume should confirm them; one Slack digest of the hits.
new_high >= 0.7→
Webhookmy-omsnew_highWill it make a new 20-day high in the next week?vol_spikeWill volume spike tomorrow?
Symbols: NVDA AMD AVGO MU QCOM ARM INTC TXN SMH
Pre-open market read
Before the open, one Slack message with every index ETF's odds: higher in a week, a 2% move either way, choppier. No per-symbol actions: the digest is the product.
up_weekWill the stock be higher in a week?move2Will the stock move more than 2% in either direction in 5 trading days?vol_upWill price swings get bigger over the next week compared with the past month?
Symbols: SPY QQQ IWM DIA
Digest it would send (dry run)
{
"text": "Pre-open market read · data as of 2026-10-30 · 0 of 4 symbols fired:\n• SPY: up_week 60%, move2 39%, vol_up 51%\n• QQQ: up_week 56%, move2 36%, vol_up 51%\n• IWM: up_week 53%, move2 32%, vol_up 47%\n• DIA: up_week 57%, move2 37%, vol_up 49%"
}Volatility desk scan
High-beta names after the close: tell the options desk where swings are likely to expand or realized vol may top 50%.
vol_up >= 0.55 or vol50 >= 0.6→
Slackoptions-deskvol_upWill price swings get bigger over the next week compared with the past month?vol50Will annualized volatility over the next 21 sessions exceed 50%?
Symbols: TSLA COIN MSTR PLTR SMCI RIVN HOOD
Financial
Everyday trader questions about one stock, answered from its current numbers.
Momentum burst on heavy volume
vol_upWill volatility rise over the next 5 days?dip_5pctWill it drop at least 5% at some point in the next month?volume_spikeWill volume spike tomorrow?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_5d": 0.08,
"volume_ratio": 2.1,
"volatility_20d": 0.32
}
},
"questions": {
"vol_up": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"volume_spike": {
"type": "yes_no",
"instructions": "Will volume spike tomorrow?"
}
}
}Quiet large cap near its highs
new_highWill it make a new 20-day high in the next week?vol_upWill volatility rise over the next 5 days?dip_5pctWill it drop at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_5d": 0.006,
"return_20d": 0.021,
"volatility_20d": 0.14,
"dist_high_252": -0.012,
"rsi_14": 61,
"dollar_volume_log": 9.4
}
},
"questions": {
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Oversold after a selloff
rally_5pctWill it rally at least 5% at some point in the next month?new_lowWill it make a new 20-day low in the next week?vol_downWill volatility calm down over the next 5 days?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_5d": -0.11,
"return_20d": -0.18,
"rsi_14": 24,
"dist_sma_50": -0.15,
"volatility_20d": 0.48,
"volume_ratio": 1.7
}
},
"questions": {
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
},
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
},
"vol_down": {
"type": "yes_no",
"instructions": "Will volatility calm down over the next 5 days?"
}
}
}Gap up on earnings
vol_downWill volatility calm down over the next 5 days?gap_upWill it gap up tomorrow?volume_spikeWill volume spike tomorrow?- + 1 more
Request JSON
{
"model": "ora1",
"state": {
"context": {
"gap_1d": 0.065,
"return_1d": 0.082,
"volume_ratio": 4.3,
"range_pct_1d": 0.071,
"close_location": 0.88,
"volatility_20d": 0.29
}
},
"questions": {
"vol_down": {
"type": "yes_no",
"instructions": "Will volatility calm down over the next 5 days?"
},
"gap_up": {
"type": "yes_no",
"instructions": "Will it gap up tomorrow?"
},
"volume_spike": {
"type": "yes_no",
"instructions": "Will volume spike tomorrow?"
},
"up_5d": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Gap down on a guidance cut
vol_downWill volatility calm down over the next 5 days?new_lowWill it make a new 20-day low in the next week?rally_5pctWill it rally at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"gap_1d": -0.09,
"return_1d": -0.12,
"volume_ratio": 5.2,
"range_pct_1d": 0.08,
"close_location": 0.15,
"volatility_5d": 0.95
}
},
"questions": {
"vol_down": {
"type": "yes_no",
"instructions": "Will volatility calm down over the next 5 days?"
},
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
},
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Volatility squeeze (tight range)
vol_upWill volatility rise over the next 5 days?big_moveWill there be a big move in either direction in the next 5 days?new_highWill it make a new 20-day high in the next week?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"volatility_5d": 0.09,
"volatility_20d": 0.21,
"vol_ratio_5_20": 0.43,
"atr_pct": 0.014,
"range_pct_1d": 0.008,
"volume_ratio_5d": 0.7
}
},
"questions": {
"vol_up": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"big_move": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
},
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
}
}
}Small cap meme spike
dip_5pctWill it drop at least 5% at some point in the next month?vol_downWill volatility calm down over the next 5 days?gap_downWill it gap down tomorrow?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_1d": 0.27,
"return_5d": 0.61,
"volume_ratio": 9.5,
"volatility_20d": 1.35,
"rsi_14": 88,
"dollar_volume_log": 6.8
}
},
"questions": {
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"vol_down": {
"type": "yes_no",
"instructions": "Will volatility calm down over the next 5 days?"
},
"gap_down": {
"type": "yes_no",
"instructions": "Will it gap down tomorrow?"
}
}
}Long-term downtrend, lower lows
new_lowWill it make a new 20-day low in the next week?beat_spyWill it beat SPY over the next month?rally_5pctWill it rally at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_60d": -0.22,
"return_252d": -0.41,
"dist_sma_200": -0.27,
"dist_high_252": -0.48,
"rsi_14": 38,
"volatility_60d": 0.44
}
},
"questions": {
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
},
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Breakout to a 52-week high
new_highWill it make a new 20-day high in the next week?dip_5pctWill it drop at least 5% at some point in the next month?up_5dWill the stock be higher in a week?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"dist_high_252": 0,
"return_20d": 0.12,
"volume_ratio": 2.4,
"rsi_14": 72,
"dist_sma_50": 0.09,
"close_location": 0.95
}
},
"questions": {
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"up_5d": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Market selloff, stock holds up
beat_spyWill it beat SPY over the next month?vol_upWill volatility rise over the next 5 days?dip_5pctWill it drop at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"market_return_5d": -0.045,
"market_volatility_20d": 0.27,
"return_5d": 0.004,
"volatility_20d": 0.22,
"dist_sma_200": 0.06
}
},
"questions": {
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Calm market, defensive stock
big_moveWill there be a big move in either direction in the next 5 days?dip_5pctWill it drop at least 5% at some point in the next month?rally_5pctWill it rally at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"market_return_5d": 0.008,
"market_volatility_20d": 0.11,
"volatility_20d": 0.12,
"atr_pct": 0.011,
"return_20d": 0.01,
"dollar_volume_log": 8.9
}
},
"questions": {
"big_move": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Volume drying up after a run
volume_spikeWill volume spike tomorrow?new_highWill it make a new 20-day high in the next week?dip_5pctWill it drop at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_20d": 0.15,
"volume_ratio": 0.45,
"volume_ratio_5d": 0.6,
"rsi_14": 66,
"dist_sma_20": 0.05
}
},
"questions": {
"volume_spike": {
"type": "yes_no",
"instructions": "Will volume spike tomorrow?"
},
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Reversal day: closed at the low
up_1dWill the stock be up tomorrow?gap_downWill it gap down tomorrow?new_lowWill it make a new 20-day low in the next week?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_1d": -0.031,
"range_pct_1d": 0.052,
"close_location": 0.04,
"volume_ratio": 1.9,
"rsi_14": 55,
"dist_sma_20": 0.01
}
},
"questions": {
"up_1d": {
"type": "yes_no",
"instructions": "Will the stock be up tomorrow?"
},
"gap_down": {
"type": "yes_no",
"instructions": "Will it gap down tomorrow?"
},
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
}
}
}Hammer: closed at the high after a dip
up_1dWill the stock be up tomorrow?gap_upWill it gap up tomorrow?rally_5pctWill it rally at least 5% at some point in the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_1d": 0.012,
"range_pct_1d": 0.047,
"close_location": 0.93,
"return_5d": -0.06,
"rsi_14": 33,
"volume_ratio": 1.6
}
},
"questions": {
"up_1d": {
"type": "yes_no",
"instructions": "Will the stock be up tomorrow?"
},
"gap_up": {
"type": "yes_no",
"instructions": "Will it gap up tomorrow?"
},
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Extended far above the 200-day
dip_5pctWill it drop at least 5% at some point in the next month?beat_spyWill it beat SPY over the next month?vol_up_20Will volatility be higher over the next month?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"dist_sma_200": 0.42,
"dist_sma_50": 0.18,
"return_60d": 0.38,
"rsi_14": 79,
"volatility_20d": 0.36
}
},
"questions": {
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
},
"vol_up_20": {
"type": "yes_no",
"instructions": "Will volatility be higher over the next month?"
}
}
}At a 52-week low and still falling
new_lowWill it make a new 20-day low in the next week?rally_5pctWill it rally at least 5% at some point in the next month?big_moveWill there be a big move in either direction in the next 5 days?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"dist_low_252": 0,
"return_5d": -0.07,
"return_20d": -0.21,
"rsi_14": 21,
"volatility_20d": 0.62,
"volume_ratio_5d": 1.8
}
},
"questions": {
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
},
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
},
"big_move": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
}
}
}High-volatility regime cooling down
vol_downWill volatility calm down over the next 5 days?vol_up_20Will volatility be higher over the next month?big_moveWill there be a big move in either direction in the next 5 days?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"volatility_5d": 0.31,
"volatility_20d": 0.58,
"vol_ratio_5_20": 0.53,
"market_volatility_20d": 0.24,
"atr_pct": 0.035
}
},
"questions": {
"vol_down": {
"type": "yes_no",
"instructions": "Will volatility calm down over the next 5 days?"
},
"vol_up_20": {
"type": "yes_no",
"instructions": "Will volatility be higher over the next month?"
},
"big_move": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
}
}
}Illiquid name, wide daily ranges
big_moveWill there be a big move in either direction in the next 5 days?gap_upWill it gap up tomorrow?gap_downWill it gap down tomorrow?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"dollar_volume_log": 5.9,
"atr_pct": 0.072,
"range_pct_1d": 0.09,
"volatility_20d": 0.85,
"volume_ratio": 0.8
}
},
"questions": {
"big_move": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
},
"gap_up": {
"type": "yes_no",
"instructions": "Will it gap up tomorrow?"
},
"gap_down": {
"type": "yes_no",
"instructions": "Will it gap down tomorrow?"
}
}
}Minimal context (three numbers)
rally_5pctWill it rally at least 5% at some point in the next month?dip_5pctWill it drop at least 5% at some point in the next month?new_lowWill it make a new 20-day low in the next week?
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_20d": -0.05,
"rsi_14": 41,
"volatility_20d": 0.27
}
},
"questions": {
"rally_5pct": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
}
}
}Full 24-field snapshot
vol_upWill volatility rise over the next 5 days?up_5dWill the stock be higher in a week?new_highWill it make a new 20-day high in the next week?- + 1 more
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_1d": 0.014,
"return_5d": 0.032,
"return_20d": 0.058,
"return_60d": 0.11,
"return_252d": 0.27,
"volatility_5d": 0.24,
"volatility_20d": 0.27,
"volatility_60d": 0.29,
"vol_ratio_5_20": 0.89,
"volume_ratio": 1.3,
"volume_ratio_5d": 1.1,
"atr_pct": 0.021,
"rsi_14": 63,
"dist_sma_20": 0.028,
"dist_sma_50": 0.061,
"dist_sma_200": 0.14,
"dist_high_252": -0.03,
"dist_low_252": 0.46,
"gap_1d": 0.004,
"range_pct_1d": 0.024,
"close_location": 0.78,
"dollar_volume_log": 8.6,
"market_return_5d": 0.011,
"market_volatility_20d": 0.15
}
},
"questions": {
"vol_up": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"up_5d": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"dip_5pct": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Gap fill
Real opening gaps, with what actually happened. Run it and compare the answers to the outcome.
TSLA earnings gap: TSLA 2026-10-22 -3.2% + no-signal control
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?gap_and_goIs this a gap-and-go day rather than a fade?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.03219,
"gap_dir": -1,
"gap_atr": -1.00978,
"gap_vs_typical": 3.76115,
"gap_outside_range_atr": 0.526,
"earnings_day": 1,
"earnings_next_5d": 0,
"market_gap_pct": -0.00869,
"gap_vs_market": -0.0235,
"prior_return_1d": 0.03414,
"prior_return_5d": 0.05259,
"prior_return_20d": 0.01671,
"prior_rsi_14": 59.77,
"prior_dist_sma_20": 0.04443,
"prior_dist_sma_50": 0.06706,
"prior_dist_high_20": -0.0061,
"prior_dist_low_20": 0.11735,
"prior_close_location": 0.71523,
"prior_volume_ratio": 1.30117,
"volatility_20d": 0.34942,
"atr_pct": 0.03188,
"dollar_volume_log": 10.112,
"beta_1y": 2.21228,
"market_volatility_20d": 0.08848,
"sym_gap_fill_rate": 0.44,
"sym_gap_fill_rate_dir": 0.4,
"sym_gap_fill_5d_rate": 0.72,
"sym_gap_go_rate": 0.5,
"sym_gaps_1y": 107
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
},
"gap_and_go": {
"type": "yes_no",
"instructions": "Is this a gap-and-go day rather than a fade?"
}
}
}TSLA ordinary gap down: TSLA 2026-10-15 -1.8%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-15",
"context": {
"gap_pct": -0.01792,
"gap_dir": -1,
"gap_atr": -0.59541,
"gap_vs_typical": 2.09405,
"gap_outside_range_atr": 0.29318,
"earnings_day": 0,
"earnings_next_5d": 1,
"market_gap_pct": -0.00435,
"gap_vs_market": -0.01357,
"prior_return_1d": -0.02151,
"prior_return_5d": -0.02819,
"prior_return_20d": 0.02536,
"prior_rsi_14": 49.27,
"prior_dist_sma_20": -0.01035,
"prior_dist_sma_50": 0.02576,
"prior_dist_high_20": -0.05508,
"prior_dist_low_20": 0.06152,
"prior_close_location": 0.44122,
"prior_volume_ratio": 0.89872,
"volatility_20d": 0.31237,
"atr_pct": 0.0301,
"dollar_volume_log": 10.104,
"beta_1y": 2.20743,
"market_volatility_20d": 0.10666,
"sym_gap_fill_rate": 0.44,
"sym_gap_fill_rate_dir": 0.42,
"sym_gap_fill_5d_rate": 0.72,
"sym_gap_go_rate": 0.52,
"sym_gaps_1y": 107
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}MSFT small gap up: MSFT 2026-10-09 +1.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-10-09",
"context": {
"gap_pct": 0.01076,
"gap_dir": 1,
"gap_atr": 0.49067,
"gap_vs_typical": 1.79177,
"gap_outside_range_atr": -0.46014,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00298,
"gap_vs_market": 0.00778,
"prior_return_1d": -0.0135,
"prior_return_5d": 0.01913,
"prior_return_20d": 0.06127,
"prior_rsi_14": 61.76,
"prior_dist_sma_20": 0.0285,
"prior_dist_sma_50": 0.04838,
"prior_dist_high_20": -0.02442,
"prior_dist_low_20": 0.07261,
"prior_close_location": 0.13078,
"prior_volume_ratio": 0.90468,
"volatility_20d": 0.21365,
"atr_pct": 0.02194,
"dollar_volume_log": 10.045,
"beta_1y": 0.95433,
"market_volatility_20d": 0.10523,
"sym_gap_fill_rate": 0.26,
"sym_gap_fill_rate_dir": 0.32,
"sym_gap_fill_5d_rate": 0.68,
"sym_gap_go_rate": 0.48,
"sym_gaps_1y": 74
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}MSFT earnings gap: MSFT 2026-07-30 +12.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-07-30",
"context": {
"gap_pct": 0.12125,
"gap_dir": 1,
"gap_atr": 3.98592,
"gap_vs_typical": 22.93164,
"gap_outside_range_atr": 3.08442,
"earnings_day": 1,
"earnings_next_5d": 0,
"market_gap_pct": 0.00903,
"gap_vs_market": 0.11222,
"prior_return_1d": -0.00713,
"prior_return_5d": 0.00051,
"prior_return_20d": 0.04698,
"prior_rsi_14": 50.04,
"prior_dist_sma_20": 0.00187,
"prior_dist_sma_50": -0.01837,
"prior_dist_high_20": -0.03805,
"prior_dist_low_20": 0.04605,
"prior_close_location": 0.14388,
"prior_volume_ratio": 1.47088,
"volatility_20d": 0.26035,
"atr_pct": 0.03042,
"dollar_volume_log": 10.098,
"beta_1y": 0.7652,
"market_volatility_20d": 0.10703,
"sym_gap_fill_rate": 0.34,
"sym_gap_fill_rate_dir": 0.36,
"sym_gap_fill_5d_rate": 0.74,
"sym_gap_go_rate": 0.48,
"sym_gaps_1y": 62
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}NVDA large gap down (>4%): NVDA 2025-11-25 -4.2%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "NVDA",
"as_of": "2025-11-25",
"context": {
"gap_pct": -0.04181,
"gap_dir": -1,
"gap_atr": -0.92523,
"gap_vs_typical": 4.10669,
"gap_outside_range_atr": 0.18932,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": -0.00016,
"gap_vs_market": -0.04164,
"prior_return_1d": 0.02051,
"prior_return_5d": -0.0217,
"prior_return_20d": -0.04669,
"prior_rsi_14": 45.14,
"prior_dist_sma_20": -0.05172,
"prior_dist_sma_50": -0.0215,
"prior_dist_high_20": -0.13972,
"prior_dist_low_20": 0.05562,
"prior_close_location": 0.86467,
"prior_volume_ratio": 1.16733,
"volatility_20d": 0.46826,
"atr_pct": 0.04518,
"dollar_volume_log": 10.634,
"beta_1y": 1.84137,
"market_volatility_20d": 0.14714,
"sym_gap_fill_rate": 0.34,
"sym_gap_fill_rate_dir": 0.34,
"sym_gap_fill_5d_rate": 0.68,
"sym_gap_go_rate": 0.44,
"sym_gaps_1y": 128
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}NVDA gap up, no earnings: NVDA 2026-10-21 +2.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "NVDA",
"as_of": "2026-10-21",
"context": {
"gap_pct": 0.02074,
"gap_dir": 1,
"gap_atr": 0.76612,
"gap_vs_typical": 2.39032,
"gap_outside_range_atr": 0.42657,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00276,
"gap_vs_market": 0.01799,
"prior_return_1d": -0.00286,
"prior_return_5d": -0.05273,
"prior_return_20d": -0.05418,
"prior_rsi_14": 40.93,
"prior_dist_sma_20": -0.04657,
"prior_dist_sma_50": -0.02847,
"prior_dist_high_20": -0.11053,
"prior_dist_low_20": 0.01739,
"prior_close_location": 0.65026,
"prior_volume_ratio": 0.74971,
"volatility_20d": 0.23582,
"atr_pct": 0.02707,
"dollar_volume_log": 10.367,
"beta_1y": 1.89868,
"market_volatility_20d": 0.09037,
"sym_gap_fill_rate": 0.24,
"sym_gap_fill_rate_dir": 0.3,
"sym_gap_fill_5d_rate": 0.66,
"sym_gap_go_rate": 0.54,
"sym_gaps_1y": 113
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}AAPL gaps with the whole market: AAPL 2026-07-23 -1.3%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "AAPL",
"as_of": "2026-07-23",
"context": {
"gap_pct": -0.01278,
"gap_dir": -1,
"gap_atr": -0.51892,
"gap_vs_typical": 3.66191,
"gap_outside_range_atr": 0.20111,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": -0.01076,
"gap_vs_market": -0.00202,
"prior_return_1d": -0.00565,
"prior_return_5d": -0.00492,
"prior_return_20d": 0.10733,
"prior_rsi_14": 62.55,
"prior_dist_sma_20": 0.05104,
"prior_dist_sma_50": 0.06889,
"prior_dist_high_20": -0.02716,
"prior_dist_low_20": 0.19048,
"prior_close_location": 0.45053,
"prior_volume_ratio": 0.59052,
"volatility_20d": 0.37453,
"atr_pct": 0.02462,
"dollar_volume_log": 10.295,
"beta_1y": 0.84395,
"market_volatility_20d": 0.10645,
"sym_gap_fill_rate": 0.24,
"sym_gap_fill_rate_dir": 0.26,
"sym_gap_fill_5d_rate": 0.58,
"sym_gap_go_rate": 0.48,
"sym_gaps_1y": 34
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}AMD gaps against the market: AMD 2026-08-05 -6.6%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "AMD",
"as_of": "2026-08-05",
"context": {
"gap_pct": -0.06573,
"gap_dir": -1,
"gap_atr": -0.84462,
"gap_vs_typical": 4.8597,
"gap_outside_range_atr": 0.43873,
"earnings_day": 1,
"earnings_next_5d": 0,
"market_gap_pct": 0.00586,
"gap_vs_market": -0.07159,
"prior_return_1d": 0.07003,
"prior_return_5d": 0.14069,
"prior_return_20d": 0.00479,
"prior_rsi_14": 52.32,
"prior_dist_sma_20": 0.01322,
"prior_dist_sma_50": 0.00827,
"prior_dist_high_20": -0.09687,
"prior_dist_low_20": 0.22297,
"prior_close_location": 0.58647,
"prior_volume_ratio": 1.37084,
"volatility_20d": 0.83003,
"atr_pct": 0.07782,
"dollar_volume_log": 10.147,
"beta_1y": 3.1136,
"market_volatility_20d": 0.14514,
"sym_gap_fill_rate": 0.42,
"sym_gap_fill_rate_dir": 0.56,
"sym_gap_fill_5d_rate": 0.74,
"sym_gap_go_rate": 0.5,
"sym_gaps_1y": 150
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}SPY gap down (index ETF): SPY 2026-07-23 -1.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "SPY",
"as_of": "2026-07-23",
"context": {
"gap_pct": -0.01076,
"gap_dir": -1,
"gap_atr": -1.00517,
"gap_vs_typical": 3.7872,
"gap_outside_range_atr": 0.87514,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": -0.01076,
"gap_vs_market": 0,
"prior_return_1d": -0.00116,
"prior_return_5d": -0.0098,
"prior_return_20d": 0.01885,
"prior_rsi_14": 52.01,
"prior_dist_sma_20": 0.00233,
"prior_dist_sma_50": 0.00453,
"prior_dist_high_20": -0.01081,
"prior_dist_low_20": 0.04302,
"prior_close_location": 0.28493,
"prior_volume_ratio": 0.6526,
"volatility_20d": 0.10645,
"atr_pct": 0.0107,
"dollar_volume_log": 10.559,
"beta_1y": 1,
"market_volatility_20d": 0.10645,
"sym_gap_fill_rate": 0.28,
"sym_gap_fill_rate_dir": 0.32,
"sym_gap_fill_5d_rate": 0.6,
"sym_gap_go_rate": 0.46,
"sym_gaps_1y": 17
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}QQQ gap up (index ETF): QQQ 2026-10-19 +1.4%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "QQQ",
"as_of": "2026-10-19",
"context": {
"gap_pct": 0.01383,
"gap_dir": 1,
"gap_atr": 0.94748,
"gap_vs_typical": 2.61732,
"gap_outside_range_atr": -0.61058,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00521,
"gap_vs_market": 0.00861,
"prior_return_1d": -0.025,
"prior_return_5d": -0.0552,
"prior_return_20d": -0.01615,
"prior_rsi_14": 35.01,
"prior_dist_sma_20": -0.04406,
"prior_dist_sma_50": -0.02335,
"prior_dist_high_20": -0.06955,
"prior_dist_low_20": 0.00243,
"prior_close_location": 0.0963,
"prior_volume_ratio": 1.92931,
"volatility_20d": 0.18344,
"atr_pct": 0.01459,
"dollar_volume_log": 10.421,
"beta_1y": 1.43609,
"market_volatility_20d": 0.10459,
"sym_gap_fill_rate": 0.18,
"sym_gap_fill_rate_dir": 0.22,
"sym_gap_fill_5d_rate": 0.62,
"sym_gap_go_rate": 0.48,
"sym_gaps_1y": 50
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Huge gap (>8%), high-volatility name: KORU 2026-10-22 -9.3%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "KORU",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.09296,
"gap_dir": -1,
"gap_atr": -0.60185,
"gap_vs_typical": 1.77902,
"gap_outside_range_atr": 0.24399,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": -0.00869,
"gap_vs_market": -0.08427,
"prior_return_1d": 0.05291,
"prior_return_5d": -0.07657,
"prior_return_20d": -0.43865,
"prior_rsi_14": 34.76,
"prior_dist_sma_20": -0.31427,
"prior_dist_sma_50": -0.38775,
"prior_dist_high_20": -0.48755,
"prior_dist_low_20": 0.14258,
"prior_close_location": 0.6055,
"prior_volume_ratio": 1.48897,
"volatility_20d": 1.21975,
"atr_pct": 0.15447,
"dollar_volume_log": 8.634,
"beta_1y": 8.78172,
"market_volatility_20d": 0.08848,
"sym_gap_fill_rate": 0.28,
"sym_gap_fill_rate_dir": 0.28,
"sym_gap_fill_5d_rate": 0.64,
"sym_gap_go_rate": 0.56,
"sym_gaps_1y": 229
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Gap up after a 5-day rally: CIEN 2026-10-09 +2.4%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "CIEN",
"as_of": "2026-10-09",
"context": {
"gap_pct": 0.02364,
"gap_dir": 1,
"gap_atr": 0.41552,
"gap_vs_typical": 1.6136,
"gap_outside_range_atr": -0.32969,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00298,
"gap_vs_market": 0.02066,
"prior_return_1d": -0.04596,
"prior_return_5d": 0.12341,
"prior_return_20d": 0.2731,
"prior_rsi_14": 62.74,
"prior_dist_sma_20": 0.15585,
"prior_dist_sma_50": 0.12363,
"prior_dist_high_20": -0.04926,
"prior_dist_low_20": 0.33759,
"prior_close_location": 0.21066,
"prior_volume_ratio": 1.31866,
"volatility_20d": 0.74022,
"atr_pct": 0.0569,
"dollar_volume_log": 9.03,
"beta_1y": 2.50558,
"market_volatility_20d": 0.10523,
"sym_gap_fill_rate": 0.5,
"sym_gap_fill_rate_dir": 0.52,
"sym_gap_fill_5d_rate": 0.84,
"sym_gap_go_rate": 0.52,
"sym_gaps_1y": 152
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Gap down into oversold (RSI < 30): INTU 2026-09-28 -2.0%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "INTU",
"as_of": "2026-09-28",
"context": {
"gap_pct": -0.02045,
"gap_dir": -1,
"gap_atr": -0.41928,
"gap_vs_typical": 3.24707,
"gap_outside_range_atr": 0.09513,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": -0.00389,
"gap_vs_market": -0.01656,
"prior_return_1d": -0.00482,
"prior_return_5d": -0.09036,
"prior_return_20d": -0.20749,
"prior_rsi_14": 29.58,
"prior_dist_sma_20": -0.1366,
"prior_dist_sma_50": -0.1505,
"prior_dist_high_20": -0.246,
"prior_dist_low_20": 0.01606,
"prior_close_location": 0.73154,
"prior_volume_ratio": 0.92454,
"volatility_20d": 0.41765,
"atr_pct": 0.04877,
"dollar_volume_log": 9.057,
"beta_1y": 0.29575,
"market_volatility_20d": 0.11137,
"sym_gap_fill_rate": 0.46,
"sym_gap_fill_rate_dir": 0.32,
"sym_gap_fill_5d_rate": 0.78,
"sym_gap_go_rate": 0.48,
"sym_gaps_1y": 100
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Gap opens beyond yesterday's range: AMAT 2026-10-22 -6.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "AMAT",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.06082,
"gap_dir": -1,
"gap_atr": -1.28329,
"gap_vs_typical": 4.38964,
"gap_outside_range_atr": 1.14113,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": -0.00869,
"gap_vs_market": -0.05212,
"prior_return_1d": 0.00978,
"prior_return_5d": -0.08439,
"prior_return_20d": -0.13795,
"prior_rsi_14": 31.02,
"prior_dist_sma_20": -0.1501,
"prior_dist_sma_50": -0.13898,
"prior_dist_high_20": -0.25274,
"prior_dist_low_20": 0.02485,
"prior_close_location": 0.35253,
"prior_volume_ratio": 0.98715,
"volatility_20d": 0.46076,
"atr_pct": 0.04739,
"dollar_volume_log": 9.481,
"beta_1y": 2.702,
"market_volatility_20d": 0.08848,
"sym_gap_fill_rate": 0.32,
"sym_gap_fill_rate_dir": 0.4,
"sym_gap_fill_5d_rate": 0.7,
"sym_gap_go_rate": 0.44,
"sym_gaps_1y": 157
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Small gap inside yesterday's range: SMH 2026-10-16 -1.4%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "SMH",
"as_of": "2026-10-16",
"context": {
"gap_pct": -0.01403,
"gap_dir": -1,
"gap_atr": -0.49003,
"gap_vs_typical": 1.28861,
"gap_outside_range_atr": -0.65067,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00188,
"gap_vs_market": -0.01591,
"prior_return_1d": -0.01045,
"prior_return_5d": -0.07975,
"prior_return_20d": -0.00316,
"prior_rsi_14": 36.46,
"prior_dist_sma_20": -0.07277,
"prior_dist_sma_50": -0.03592,
"prior_dist_high_20": -0.12609,
"prior_dist_low_20": 0.03376,
"prior_close_location": 0.91068,
"prior_volume_ratio": 2.2578,
"volatility_20d": 0.29883,
"atr_pct": 0.02863,
"dollar_volume_log": 9.622,
"beta_1y": 2.36641,
"market_volatility_20d": 0.09604,
"sym_gap_fill_rate": 0.26,
"sym_gap_fill_rate_dir": 0.3,
"sym_gap_fill_5d_rate": 0.68,
"sym_gap_go_rate": 0.4,
"sym_gaps_1y": 137
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Earnings gap down, large cap: LRCX 2026-10-22 -10.0%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "LRCX",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.1004,
"gap_dir": -1,
"gap_atr": -1.85473,
"gap_vs_typical": 5.92306,
"gap_outside_range_atr": 1.73077,
"earnings_day": 1,
"earnings_next_5d": 0,
"market_gap_pct": -0.00869,
"gap_vs_market": -0.09171,
"prior_return_1d": -0.01002,
"prior_return_5d": -0.091,
"prior_return_20d": -0.15123,
"prior_rsi_14": 31.8,
"prior_dist_sma_20": -0.15334,
"prior_dist_sma_50": -0.1484,
"prior_dist_high_20": -0.26024,
"prior_dist_low_20": 0.00676,
"prior_close_location": 0.1478,
"prior_volume_ratio": 1.83819,
"volatility_20d": 0.43061,
"atr_pct": 0.05413,
"dollar_volume_log": 9.416,
"beta_1y": 3.17786,
"market_volatility_20d": 0.08848,
"sym_gap_fill_rate": 0.42,
"sym_gap_fill_rate_dir": 0.42,
"sym_gap_fill_5d_rate": 0.68,
"sym_gap_go_rate": 0.38,
"sym_gaps_1y": 173
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Same gap, different stock: TSLA 2025-11-26 +1.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2025-11-26",
"context": {
"gap_pct": 0.01085,
"gap_dir": 1,
"gap_atr": 0.20983,
"gap_vs_typical": 0.92622,
"gap_outside_range_atr": 0.16003,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00388,
"gap_vs_market": 0.00697,
"prior_return_1d": 0.00388,
"prior_return_5d": 0.04523,
"prior_return_20d": -0.08935,
"prior_rsi_14": 48.82,
"prior_dist_sma_20": -0.02098,
"prior_dist_sma_50": -0.0329,
"prior_dist_high_20": -0.11532,
"prior_dist_low_20": 0.09567,
"prior_close_location": 0.92567,
"prior_volume_ratio": 0.81696,
"volatility_20d": 0.55194,
"atr_pct": 0.0517,
"dollar_volume_log": 10.572,
"beta_1y": 2.25248,
"market_volatility_20d": 0.15133,
"sym_gap_fill_rate": 0.42,
"sym_gap_fill_rate_dir": 0.44,
"sym_gap_fill_5d_rate": 0.72,
"sym_gap_go_rate": 0.56,
"sym_gaps_1y": 145
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Same gap, different stock: MSFT 2026-04-17 +1.1%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-04-17",
"context": {
"gap_pct": 0.01085,
"gap_dir": 1,
"gap_atr": 0.46494,
"gap_vs_typical": 2.68078,
"gap_outside_range_atr": 0.40784,
"earnings_day": 0,
"earnings_next_5d": 0,
"market_gap_pct": 0.00639,
"gap_vs_market": 0.00446,
"prior_return_1d": 0.02197,
"prior_return_5d": 0.12649,
"prior_return_20d": 0.07265,
"prior_rsi_14": 70.78,
"prior_dist_sma_20": 0.11109,
"prior_dist_sma_50": 0.07233,
"prior_dist_high_20": -0.00133,
"prior_dist_low_20": 0.17957,
"prior_close_location": 0.93548,
"prior_volume_ratio": 1.24067,
"volatility_20d": 0.30961,
"atr_pct": 0.02334,
"dollar_volume_log": 10.113,
"beta_1y": 0.98579,
"market_volatility_20d": 0.18865,
"sym_gap_fill_rate": 0.34,
"sym_gap_fill_rate_dir": 0.38,
"sym_gap_fill_5d_rate": 0.64,
"sym_gap_go_rate": 0.42,
"sym_gaps_1y": 41
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Minimal context, hand-typed: TSLA 2026-10-22 -3.2%
fill_todayWill the gap fill today?fill_5dWill the gap fill within 5 sessions?
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-22",
"context": {
"gap_pct": -0.03219,
"gap_dir": -1,
"gap_atr": -1.00978,
"earnings_day": 1,
"market_gap_pct": -0.00869,
"sym_gap_fill_rate_dir": 0.4
}
},
"questions": {
"fill_today": {
"type": "yes_no",
"instructions": "Will the gap fill today?"
},
"fill_5d": {
"type": "yes_no",
"instructions": "Will the gap fill within 5 sessions?"
}
}
}Paraphrase check
The same question in 3–4 wordings, with the real outcome. A model that understands the question gives each wording the same answer.
New highs and lows: TSLA 2026-10-21 (2 questions, each in 3–4 wordings)
new_highWill it make a new 20-day high in the next week?new_high_alt1Is it going to print a fresh 20 day peak inside the next 5 sessions?new_high_alt2Any chance it tags a new 4-week high over the coming week?- + 5 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-21",
"context": {
"return_1d": 0.03414,
"return_5d": 0.05259,
"return_20d": 0.01671,
"return_60d": 0.25706,
"return_252d": -0.13624,
"volatility_5d": 0.42207,
"volatility_20d": 0.34942,
"volatility_60d": 0.3934,
"vol_ratio_5_20": 1.20792,
"volume_ratio": 1.30117,
"volume_ratio_5d": 1.08622,
"atr_pct": 0.03188,
"rsi_14": 59.77,
"dist_sma_20": 0.04443,
"dist_sma_50": 0.06706,
"dist_sma_200": -0.0012,
"dist_high_252": -0.22525,
"dist_low_252": 0.29958,
"gap_1d": 0.02087,
"range_pct_1d": 0.02156,
"close_location": 0.71523,
"dollar_volume_log": 10.112,
"market_return_5d": 0.00453,
"market_volatility_20d": 0.08848,
"dist_high_20": -0.0061,
"dist_low_20": 0.11735,
"beta_1y": 2.21228,
"body_pct": 0.013,
"upper_wick": 0.28477,
"lower_wick": 0.12,
"range_vs_atr": 0.67641,
"sma50_vs_sma200": -0.06397,
"earnings_next_5d": 1,
"days_to_earnings": 1,
"days_since_earnings": 63,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"new_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high in the next week?"
},
"new_high_alt1": {
"type": "yes_no",
"instructions": "Is it going to print a fresh 20 day peak inside the next 5 sessions?"
},
"new_high_alt2": {
"type": "yes_no",
"instructions": "Any chance it tags a new 4-week high over the coming week?"
},
"new_high_alt3": {
"type": "yes_no",
"instructions": "Does it take out the 20-day top within 5 trading days?"
},
"new_low": {
"type": "yes_no",
"instructions": "Will it make a new 20-day low in the next week?"
},
"new_low_alt1": {
"type": "yes_no",
"instructions": "Will it set a fresh 20-session trough within five days?"
},
"new_low_alt2": {
"type": "yes_no",
"instructions": "Could it break to a new one-month low this coming week?"
},
"new_low_alt3": {
"type": "yes_no",
"instructions": "Does it undercut the 20d bottom in the next 5 sessions?"
}
}
}5% moves at any point in a month: MSFT 2026-09-30 (2 questions, each in 3–4 wordings)
rally5Will it rally at least 5% at some point in the next month?rally5_alt1Could it pop 5% or more at any point over the next 21 sessions?rally5_alt2Any chance of a 5 percent jump sometime in the coming month?- + 5 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-09-30",
"context": {
"return_1d": 0.00774,
"return_5d": 0.02459,
"return_20d": 0.02371,
"return_60d": 0.32153,
"return_252d": 0.0049,
"volatility_5d": 0.30205,
"volatility_20d": 0.24151,
"volatility_60d": 0.38583,
"vol_ratio_5_20": 1.25066,
"volume_ratio": 1.3048,
"volume_ratio_5d": 0.82073,
"atr_pct": 0.02301,
"rsi_14": 60.38,
"dist_sma_20": 0.02477,
"dist_sma_50": 0.06368,
"dist_sma_200": 0.18991,
"dist_high_252": -0.06609,
"dist_low_252": 0.47154,
"gap_1d": 0.00362,
"range_pct_1d": 0.01852,
"close_location": 0.27053,
"dollar_volume_log": 10.025,
"market_return_5d": -0.00675,
"market_volatility_20d": 0.11145,
"dist_high_20": -0.01333,
"dist_low_20": 0.05535,
"beta_1y": 0.95214,
"body_pct": 0.00411,
"upper_wick": 0.72947,
"lower_wick": 0.04948,
"range_vs_atr": 0.80503,
"sma50_vs_sma200": 0.11867,
"days_to_earnings": 21,
"days_since_earnings": 43,
"earn_usual_move": 0.05001,
"last_earn_reaction": 0.15505
}
},
"questions": {
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
},
"rally5_alt1": {
"type": "yes_no",
"instructions": "Could it pop 5% or more at any point over the next 21 sessions?"
},
"rally5_alt2": {
"type": "yes_no",
"instructions": "Any chance of a 5 percent jump sometime in the coming month?"
},
"rally5_alt3": {
"type": "yes_no",
"instructions": "Will it surge 5%+ intraday within the next four weeks?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"drop5_alt1": {
"type": "yes_no",
"instructions": "Could we see a 5% or bigger decline at any point over the next 20 sessions?"
},
"drop5_alt2": {
"type": "yes_no",
"instructions": "Will it slide 5 percent or more at some stage in the coming month?"
},
"drop5_alt3": {
"type": "yes_no",
"instructions": "Is a 5% pullback likely sometime in the next four weeks?"
}
}
}1 ATR moves tomorrow: TSLA 2026-10-27 (2 questions, each in 3–4 wordings)
atr_downWill the low reach today's close minus 1 ATR during the next session?atr_down_alt1Will tomorrow's low tag 1 ATR under today's close?atr_down_alt2Does it dip a full ATR below the close tomorrow?- + 3 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-10-27",
"context": {
"return_1d": 0.04045,
"return_5d": 0.09031,
"return_20d": 0.1548,
"return_60d": 0.26509,
"return_252d": -0.06055,
"volatility_5d": 0.55003,
"volatility_20d": 0.38705,
"volatility_60d": 0.40292,
"vol_ratio_5_20": 1.42109,
"volume_ratio": 1.23504,
"volume_ratio_5d": 1.28101,
"atr_pct": 0.03345,
"rsi_14": 65.48,
"dist_sma_20": 0.08857,
"dist_sma_50": 0.11292,
"dist_sma_200": 0.05576,
"dist_high_252": -0.18317,
"dist_low_252": 0.37017,
"gap_1d": 0.01578,
"range_pct_1d": 0.03235,
"close_location": 0.9264,
"dollar_volume_log": 10.143,
"market_return_5d": 0.00079,
"market_volatility_20d": 0.09978,
"dist_high_20": -0.00237,
"dist_low_20": 0.17804,
"beta_1y": 2.25779,
"body_pct": 0.02428,
"upper_wick": 0.0736,
"lower_wick": 0.19347,
"range_vs_atr": 0.96708,
"sma50_vs_sma200": -0.05136,
"days_since_earnings": 3,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.03077
}
},
"questions": {
"atr_down": {
"type": "yes_no",
"instructions": "Will the low reach today's close minus 1 ATR during the next session?"
},
"atr_down_alt1": {
"type": "yes_no",
"instructions": "Will tomorrow's low tag 1 ATR under today's close?"
},
"atr_down_alt2": {
"type": "yes_no",
"instructions": "Does it dip a full ATR below the close tomorrow?"
},
"atr_up": {
"type": "yes_no",
"instructions": "Will the high reach today's close plus 1 ATR during the next session?"
},
"atr_up_alt1": {
"type": "yes_no",
"instructions": "Will tomorrow's high hit 1 ATR over today's close?"
},
"atr_up_alt2": {
"type": "yes_no",
"instructions": "Can it spike one ATR above the close tomorrow?"
}
}
}Moving averages: MSFT 2026-09-29 (2 questions, each in 3–4 wordings)
touch_50Will it trade back to its 50-day moving average in the next month?touch_50_alt1Will it revisit the 50 DMA within the next 4 weeks?touch_50_alt2Does it tag the 50-day SMA sometime in the coming month?- + 3 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-09-29",
"context": {
"return_1d": -0.00051,
"return_5d": 0.02201,
"return_20d": 0.00329,
"return_60d": 0.31852,
"return_252d": 0.00331,
"volatility_5d": 0.30108,
"volatility_20d": 0.24484,
"volatility_60d": 0.38578,
"vol_ratio_5_20": 1.22968,
"volume_ratio": 0.95177,
"volume_ratio_5d": 0.75496,
"atr_pct": 0.02333,
"rsi_14": 58.46,
"dist_sma_20": 0.01811,
"dist_sma_50": 0.06061,
"dist_sma_200": 0.18122,
"dist_high_252": -0.07326,
"dist_low_252": 0.46023,
"gap_1d": -0.00214,
"range_pct_1d": 0.02208,
"close_location": 0.58363,
"dollar_volume_log": 10.016,
"market_return_5d": -0.01187,
"market_volatility_20d": 0.11404,
"dist_high_20": -0.0201,
"dist_low_20": 0.04724,
"beta_1y": 0.95428,
"body_pct": 0.00163,
"upper_wick": 0.41637,
"lower_wick": 0.50979,
"range_vs_atr": 0.94677,
"sma50_vs_sma200": 0.11372,
"days_to_earnings": 22,
"days_since_earnings": 42,
"earn_usual_move": 0.05001,
"last_earn_reaction": 0.15505
}
},
"questions": {
"touch_50": {
"type": "yes_no",
"instructions": "Will it trade back to its 50-day moving average in the next month?"
},
"touch_50_alt1": {
"type": "yes_no",
"instructions": "Will it revisit the 50 DMA within the next 4 weeks?"
},
"touch_50_alt2": {
"type": "yes_no",
"instructions": "Does it tag the 50-day SMA sometime in the coming month?"
},
"hold_200": {
"type": "yes_no",
"instructions": "Will it stay above its 200-day moving average for the next 7 sessions?"
},
"hold_200_alt1": {
"type": "yes_no",
"instructions": "Will it hold over the 200 DMA for the next 7 trading days?"
},
"hold_200_alt2": {
"type": "yes_no",
"instructions": "Does every close for the next seven days stay above the 200-day MA?"
}
}
}Where it closes: TSLA 2026-09-16 (4 questions, each in 3–4 wordings)
up_weekWill the stock be higher in a week?up_week_alt1Will it close higher in 5 days?up_week_alt2Does it finish the next 5 sessions above where it closed today?- + 10 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-09-16",
"context": {
"return_1d": 0.00421,
"return_5d": -0.02645,
"return_20d": 0.06296,
"return_60d": -0.11596,
"return_252d": -0.12672,
"volatility_5d": 0.1586,
"volatility_20d": 0.50888,
"volatility_60d": 0.58256,
"vol_ratio_5_20": 0.31166,
"volume_ratio": 0.82525,
"volume_ratio_5d": 0.76528,
"atr_pct": 0.03678,
"rsi_14": 51.11,
"dist_sma_20": 0.00053,
"dist_sma_50": 0.01829,
"dist_sma_200": -0.10024,
"dist_high_252": -0.28216,
"dist_low_252": 0.20412,
"gap_1d": 0.00317,
"range_pct_1d": 0.02837,
"close_location": 0.31389,
"dollar_volume_log": 10.147,
"market_return_5d": -0.01095,
"market_volatility_20d": 0.08581,
"dist_high_20": -0.0676,
"dist_low_20": 0.06667,
"beta_1y": 2.23361,
"body_pct": 0.00103,
"upper_wick": 0.68611,
"lower_wick": 0.27747,
"range_vs_atr": 0.77141,
"sma50_vs_sma200": -0.11641,
"days_to_earnings": 26,
"days_since_earnings": 38,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"up_week_alt1": {
"type": "yes_no",
"instructions": "Will it close higher in 5 days?"
},
"up_week_alt2": {
"type": "yes_no",
"instructions": "Does it finish the next 5 sessions above where it closed today?"
},
"up_week_alt3": {
"type": "yes_no",
"instructions": "Is it up a week from now, close to close?"
},
"down_week": {
"type": "yes_no",
"instructions": "Will the price be down in a week?"
},
"down_week_alt1": {
"type": "yes_no",
"instructions": "Will it close lower five sessions from now?"
},
"down_week_alt2": {
"type": "yes_no",
"instructions": "Is it in the red a week out versus today's close?"
},
"up3_30d": {
"type": "yes_no",
"instructions": "Will it close at least 3% higher in 30 trading days?"
},
"up3_30d_alt1": {
"type": "yes_no",
"instructions": "Six weeks out, will it be up 3% or more on a closing basis?"
},
"up3_30d_alt2": {
"type": "yes_no",
"instructions": "Will it finish 30 sessions from now with a 3%+ gain?"
},
"down3_15d": {
"type": "yes_no",
"instructions": "Will it close at least 3% lower in 15 trading days?"
},
"down3_15d_alt1": {
"type": "yes_no",
"instructions": "Three weeks from now, is it down 3% or more at the close?"
},
"down3_15d_alt2": {
"type": "yes_no",
"instructions": "Will it finish 15 days out at least 3 percent below today's close?"
}
}
}Versus the market: MSFT 2026-07-30 (2 questions, each in 3–4 wordings)
beat_spyWill it beat SPY over the next month?beat_spy_alt1Will it outperform the S&P over the coming four weeks?beat_spy_alt2Does it beat the index over the next 21 sessions?- + 3 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-07-30",
"context": {
"return_1d": 0.15505,
"return_5d": 0.18219,
"return_20d": 0.17387,
"return_60d": 0.09297,
"return_252d": -0.1129,
"volatility_5d": 0.99495,
"volatility_20d": 0.56212,
"volatility_60d": 0.44284,
"vol_ratio_5_20": 1.76999,
"volume_ratio": 3.4202,
"volume_ratio_5d": 1.24403,
"atr_pct": 0.03525,
"rsi_14": 71.83,
"dist_sma_20": 0.14738,
"dist_sma_50": 0.13221,
"dist_sma_200": 0.04304,
"dist_high_252": -0.18139,
"dist_low_252": 0.29179,
"gap_1d": 0.12125,
"range_pct_1d": 0.05819,
"close_location": 0.71086,
"dollar_volume_log": 10.149,
"market_return_5d": 0.00475,
"market_volatility_20d": 0.12427,
"dist_high_20": -0.01655,
"dist_low_20": 0.20824,
"beta_1y": 0.89433,
"body_pct": 0.03014,
"upper_wick": 0.28914,
"lower_wick": 0.208,
"range_vs_atr": 1.65103,
"sma50_vs_sma200": -0.07876,
"days_since_earnings": 0,
"earn_usual_move": 0.05001,
"last_earn_reaction": 0.15505
}
},
"questions": {
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
},
"beat_spy_alt1": {
"type": "yes_no",
"instructions": "Will it outperform the S&P over the coming four weeks?"
},
"beat_spy_alt2": {
"type": "yes_no",
"instructions": "Does it beat the index over the next 21 sessions?"
},
"lag_spy": {
"type": "yes_no",
"instructions": "Will it underperform SPY by more than 2% in three months?"
},
"lag_spy_alt1": {
"type": "yes_no",
"instructions": "Will it lag the S&P 500 by over 2% across the next quarter?"
},
"lag_spy_alt2": {
"type": "yes_no",
"instructions": "Does it trail the market by 2%+ over the next 63 sessions?"
}
}
}Volatility and range: TSLA 2026-09-29 (4 questions, each in 3–4 wordings)
move3Will the stock move more than 3% in either direction in 2 trading days?move3_alt1Will it swing over 3% either way in the next two sessions?move3_alt2Is a 3%+ move, up or down, coming within 2 days?- + 9 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-09-29",
"context": {
"return_1d": -0.0129,
"return_5d": -0.06878,
"return_20d": -0.04107,
"return_60d": -0.15944,
"return_252d": -0.19882,
"volatility_5d": 0.25764,
"volatility_20d": 0.41763,
"volatility_60d": 0.51215,
"vol_ratio_5_20": 0.61691,
"volume_ratio": 0.79738,
"volume_ratio_5d": 0.90354,
"atr_pct": 0.03532,
"rsi_14": 44.8,
"dist_sma_20": -0.03428,
"dist_sma_50": 0.01552,
"dist_sma_200": -0.10603,
"dist_high_252": -0.29266,
"dist_low_252": 0.1865,
"gap_1d": 0.00271,
"range_pct_1d": 0.02001,
"close_location": 0.16431,
"dollar_volume_log": 10.145,
"market_return_5d": -0.01187,
"market_volatility_20d": 0.11404,
"dist_high_20": -0.08787,
"dist_low_20": 0.00832,
"beta_1y": 2.21702,
"body_pct": -0.01557,
"upper_wick": 0.04533,
"lower_wick": 0.16431,
"range_vs_atr": 0.56658,
"sma50_vs_sma200": -0.1197,
"days_to_earnings": 17,
"days_since_earnings": 47,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"move3": {
"type": "yes_no",
"instructions": "Will the stock move more than 3% in either direction in 2 trading days?"
},
"move3_alt1": {
"type": "yes_no",
"instructions": "Will it swing over 3% either way in the next two sessions?"
},
"move3_alt2": {
"type": "yes_no",
"instructions": "Is a 3%+ move, up or down, coming within 2 days?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will price swings get bigger over the next week compared with the past month?"
},
"vol_up_alt1": {
"type": "yes_no",
"instructions": "Is volatility going to pick up next week versus the last month?"
},
"vol_up_alt2": {
"type": "yes_no",
"instructions": "Will the next 5 sessions be choppier than the past 20?"
},
"vol_down": {
"type": "yes_no",
"instructions": "Will price swings get smaller over the next week compared with the past month?"
},
"vol_down_alt1": {
"type": "yes_no",
"instructions": "Is volatility going to settle down next week versus the last month?"
},
"vol_down_alt2": {
"type": "yes_no",
"instructions": "Will the next 5 sessions be quieter than the past 20?"
},
"vol30": {
"type": "yes_no",
"instructions": "Will annualized volatility over the next 21 sessions exceed 30%?"
},
"vol30_alt1": {
"type": "yes_no",
"instructions": "Will realized vol over the next month run above 30% annualized?"
},
"vol30_alt2": {
"type": "yes_no",
"instructions": "Does the coming month's annualised volatility top 30%?"
}
}
}Tomorrow's bar: MSFT 2026-10-27 (6 questions, each in 3–4 wordings)
hi_gtWill the high during the next session exceed today's high?hi_gt_alt1Will it take out today's high tomorrow?hi_gt_alt2Does tomorrow trade above today's high at any point?- + 15 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-10-27",
"context": {
"return_1d": -0.00238,
"return_5d": -0.00102,
"return_20d": 0.04395,
"return_60d": 0.09163,
"return_252d": 0.02311,
"volatility_5d": 0.22369,
"volatility_20d": 0.19647,
"volatility_60d": 0.21707,
"vol_ratio_5_20": 1.13858,
"volume_ratio": 0.97895,
"volume_ratio_5d": 0.66048,
"atr_pct": 0.02037,
"rsi_14": 56.33,
"dist_sma_20": 0.00442,
"dist_sma_50": 0.04151,
"dist_sma_200": 0.21884,
"dist_high_252": -0.03596,
"dist_low_252": 0.52442,
"gap_1d": -0.00047,
"range_pct_1d": 0.01199,
"close_location": 0.47087,
"dollar_volume_log": 10.02,
"market_return_5d": 0.00079,
"market_volatility_20d": 0.09978,
"dist_high_20": -0.03596,
"dist_low_20": 0.04115,
"beta_1y": 1.00358,
"body_pct": -0.00192,
"upper_wick": 0.36897,
"lower_wick": 0.47087,
"range_vs_atr": 0.58852,
"sma50_vs_sma200": 0.17027,
"earnings_next_5d": 1,
"days_to_earnings": 2,
"days_since_earnings": 62,
"earn_usual_move": 0.05001,
"last_earn_reaction": 0.15505
}
},
"questions": {
"hi_gt": {
"type": "yes_no",
"instructions": "Will the high during the next session exceed today's high?"
},
"hi_gt_alt1": {
"type": "yes_no",
"instructions": "Will it take out today's high tomorrow?"
},
"hi_gt_alt2": {
"type": "yes_no",
"instructions": "Does tomorrow trade above today's high at any point?"
},
"lo_lt": {
"type": "yes_no",
"instructions": "Will the low during the next session undercut today's low?"
},
"lo_lt_alt1": {
"type": "yes_no",
"instructions": "Will it break today's low tomorrow?"
},
"lo_lt_alt2": {
"type": "yes_no",
"instructions": "Does tomorrow trade under today's low at some point?"
},
"inside": {
"type": "yes_no",
"instructions": "Will tomorrow be an inside day, inside today's high and low?"
},
"inside_alt1": {
"type": "yes_no",
"instructions": "Will tomorrow's whole range stay within today's high-low?"
},
"inside_alt2": {
"type": "yes_no",
"instructions": "Is tomorrow an inside bar?"
},
"green": {
"type": "yes_no",
"instructions": "Will tomorrow's candle be green, closing above its open?"
},
"green_alt1": {
"type": "yes_no",
"instructions": "Will tomorrow close above its open?"
},
"green_alt2": {
"type": "yes_no",
"instructions": "Is tomorrow a green day, open to close?"
},
"gap_up": {
"type": "yes_no",
"instructions": "Will it gap up tomorrow?"
},
"gap_up_alt1": {
"type": "yes_no",
"instructions": "Will it open more than 1% higher tomorrow?"
},
"gap_up_alt2": {
"type": "yes_no",
"instructions": "Is a gap higher of 1%+ likely at tomorrow's open?"
},
"vol_spike": {
"type": "yes_no",
"instructions": "Will volume spike tomorrow?"
},
"vol_spike_alt1": {
"type": "yes_no",
"instructions": "Will tomorrow's volume come in at more than 2x the 20-day average?"
},
"vol_spike_alt2": {
"type": "yes_no",
"instructions": "Is a big volume day coming tomorrow, double the usual?"
}
}
}Question grammar (preview)
Many question families on one stock and date.
TSLA 2026-09-18: 12 questions across families
rally_5pct_monthWill it rally at least 5% within a month?drop_3pct_2wWill it drop at least 3% within two weeks?stop_1_5atrWould a stop 1.5 ATR below today's close be hit within 5 sessions?- + 9 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "TSLA",
"as_of": "2026-09-18",
"context": {
"return_1d": -0.00527,
"return_5d": -0.0032,
"return_20d": 0.05546,
"return_60d": -0.02998,
"return_252d": -0.14462,
"volatility_5d": 0.23944,
"volatility_20d": 0.48974,
"volatility_60d": 0.5713,
"vol_ratio_5_20": 0.48891,
"volume_ratio": 1.3231,
"volume_ratio_5d": 0.92901,
"atr_pct": 0.03608,
"rsi_14": 53.77,
"dist_sma_20": 0.01299,
"dist_sma_50": 0.04004,
"dist_sma_200": -0.0832,
"dist_high_252": -0.26975,
"dist_low_252": 0.22493,
"gap_1d": 0.00841,
"range_pct_1d": 0.02786,
"close_location": 0.34673,
"dollar_volume_log": 10.163,
"market_return_5d": -0.00093,
"market_volatility_20d": 0.09598,
"dist_high_20": -0.05148,
"dist_low_20": 0.06347,
"beta_1y": 2.2341,
"body_pct": -0.01357,
"upper_wick": 0.15962,
"lower_wick": 0.34673,
"range_vs_atr": 0.77216,
"sma50_vs_sma200": -0.11849,
"days_to_earnings": 24,
"days_since_earnings": 40,
"earn_usual_move": 0.04462,
"last_earn_reaction": -0.14524
}
},
"questions": {
"rally_5pct_month": {
"type": "yes_no",
"instructions": "Will it rally at least 5% within a month?"
},
"drop_3pct_2w": {
"type": "yes_no",
"instructions": "Will it drop at least 3% within two weeks?"
},
"stop_1_5atr": {
"type": "yes_no",
"instructions": "Would a stop 1.5 ATR below today's close be hit within 5 sessions?"
},
"fall_before_rise": {
"type": "yes_no",
"instructions": "Will it fall 5% before it rises 5% within a month?"
},
"new_20d_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high within a week?"
},
"back_to_50dma": {
"type": "yes_no",
"instructions": "Will it trade back to its 50-day moving average within a month?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will realized volatility over the next 21 sessions be more than 1.25x the last 20 sessions?"
},
"above_todays_high": {
"type": "yes_no",
"instructions": "Will it trade above today's high by tomorrow's close?"
},
"volume_2x": {
"type": "yes_no",
"instructions": "Will tomorrow's volume be more than twice its 20-day average?"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it outperform SPY by more than 2% in a month?"
},
"gap_up_1pct": {
"type": "yes_no",
"instructions": "Will it gap up more than 1% tomorrow?"
},
"control_up_week": {
"type": "yes_no",
"instructions": "Will the stock close higher in a week?"
}
}
}MSFT 2026-10-07: 12 questions across families
rally_5pct_monthWill it rally at least 5% within a month?drop_3pct_2wWill it drop at least 3% within two weeks?stop_1_5atrWould a stop 1.5 ATR below today's close be hit within 5 sessions?- + 9 more
Request JSON
{
"model": "ora1",
"state": {
"symbol": "MSFT",
"as_of": "2026-10-07",
"context": {
"return_1d": 0.00087,
"return_5d": 0.03287,
"return_20d": 0.07751,
"return_60d": 0.37883,
"return_252d": 0.01051,
"volatility_5d": 0.09794,
"volatility_20d": 0.20464,
"volatility_60d": 0.38166,
"vol_ratio_5_20": 0.47858,
"volume_ratio": 0.74627,
"volume_ratio_5d": 0.70802,
"atr_pct": 0.02148,
"rsi_14": 68.21,
"dist_sma_20": 0.04568,
"dist_sma_50": 0.06842,
"dist_sma_200": 0.22562,
"dist_high_252": -0.03539,
"dist_low_252": 0.51991,
"gap_1d": 0.00269,
"range_pct_1d": 0.01329,
"close_location": 0.72017,
"dollar_volume_log": 10.041,
"market_return_5d": 0.01913,
"market_volatility_20d": 0.10662,
"dist_high_20": -0.01107,
"dist_low_20": 0.09004,
"beta_1y": 0.95293,
"body_pct": -0.00182,
"upper_wick": 0.14276,
"lower_wick": 0.72017,
"range_vs_atr": 0.61857,
"sma50_vs_sma200": 0.14713,
"days_since_earnings": 48,
"earn_usual_move": 0.05001,
"last_earn_reaction": 0.15505
}
},
"questions": {
"rally_5pct_month": {
"type": "yes_no",
"instructions": "Will it rally at least 5% within a month?"
},
"drop_3pct_2w": {
"type": "yes_no",
"instructions": "Will it drop at least 3% within two weeks?"
},
"stop_1_5atr": {
"type": "yes_no",
"instructions": "Would a stop 1.5 ATR below today's close be hit within 5 sessions?"
},
"fall_before_rise": {
"type": "yes_no",
"instructions": "Will it fall 5% before it rises 5% within a month?"
},
"new_20d_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high within a week?"
},
"back_to_50dma": {
"type": "yes_no",
"instructions": "Will it trade back to its 50-day moving average within a month?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will realized volatility over the next 21 sessions be more than 1.25x the last 20 sessions?"
},
"above_todays_high": {
"type": "yes_no",
"instructions": "Will it trade above today's high by tomorrow's close?"
},
"volume_2x": {
"type": "yes_no",
"instructions": "Will tomorrow's volume be more than twice its 20-day average?"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it outperform SPY by more than 2% in a month?"
},
"gap_up_1pct": {
"type": "yes_no",
"instructions": "Will it gap up more than 1% tomorrow?"
},
"control_up_week": {
"type": "yes_no",
"instructions": "Will the stock close higher in a week?"
}
}
}Minimal context (6 numbers), same questions
rally_5pct_monthWill it rally at least 5% within a month?drop_3pct_2wWill it drop at least 3% within two weeks?stop_1_5atrWould a stop 1.5 ATR below today's close be hit within 5 sessions?- + 9 more
Request JSON
{
"model": "ora1",
"state": {
"context": {
"return_5d": -0.0032,
"return_20d": 0.05546,
"volatility_20d": 0.48974,
"rsi_14": 53.77,
"dist_sma_50": 0.04004,
"atr_pct": 0.03608
}
},
"questions": {
"rally_5pct_month": {
"type": "yes_no",
"instructions": "Will it rally at least 5% within a month?"
},
"drop_3pct_2w": {
"type": "yes_no",
"instructions": "Will it drop at least 3% within two weeks?"
},
"stop_1_5atr": {
"type": "yes_no",
"instructions": "Would a stop 1.5 ATR below today's close be hit within 5 sessions?"
},
"fall_before_rise": {
"type": "yes_no",
"instructions": "Will it fall 5% before it rises 5% within a month?"
},
"new_20d_high": {
"type": "yes_no",
"instructions": "Will it make a new 20-day high within a week?"
},
"back_to_50dma": {
"type": "yes_no",
"instructions": "Will it trade back to its 50-day moving average within a month?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will realized volatility over the next 21 sessions be more than 1.25x the last 20 sessions?"
},
"above_todays_high": {
"type": "yes_no",
"instructions": "Will it trade above today's high by tomorrow's close?"
},
"volume_2x": {
"type": "yes_no",
"instructions": "Will tomorrow's volume be more than twice its 20-day average?"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it outperform SPY by more than 2% in a month?"
},
"gap_up_1pct": {
"type": "yes_no",
"instructions": "Will it gap up more than 1% tomorrow?"
},
"control_up_week": {
"type": "yes_no",
"instructions": "Will the stock close higher in a week?"
}
}
}Simple
General-purpose questions about a piece of text.
Is this about billing? (yes_no)
billingIs this message about billing, a charge or a refund?
Request JSON
{
"model": "ora1",
"state": "I was charged twice for my subscription this month. Please refund the extra charge.",
"questions": {
"billing": {
"type": "yes_no",
"instructions": "Is this message about billing, a charge or a refund?"
}
}
}Sentiment (choice)
sentimentOverall sentiment of the message
Request JSON
{
"model": "ora1",
"state": "Absolutely love the new dashboard. Setup took two minutes and the charts are gorgeous!",
"questions": {
"sentiment": {
"type": "choice",
"instructions": "Overall sentiment of the message",
"criteria": {
"positive": "Happy, pleased, enthusiastic",
"neutral": "Factual, no strong feeling",
"negative": "Unhappy, annoyed, disappointed"
}
}
}
}Response
sentiment positive
Spam check (yes_no)
is_spamIs this message spam or a scam (unsolicited prize, urgent click, free money)?
Request JSON
{
"model": "ora1",
"state": "CONGRATULATIONS!!! You have WON a $1000 gift card. Click the link now to claim your free prize before it expires!",
"questions": {
"is_spam": {
"type": "yes_no",
"instructions": "Is this message spam or a scam (unsolicited prize, urgent click, free money)?"
}
}
}Urgency (score)
urgencyHow urgent is this?
Request JSON
{
"model": "ora1",
"state": "The production database is down and every customer is getting errors. We need someone on this immediately.",
"questions": {
"urgency": {
"type": "score",
"instructions": "How urgent is this?",
"criteria": [
"Can wait",
"Needs attention this week",
"Needs attention today",
"Emergency, right now"
]
}
}
}Medium
More questions, choices and scores.
Support ticket triage
departmentWhich team should handle thisfrustrationHow frustrated the customer appearsis_urgentThe message conveys urgency: orders blocked, errors on every request, needs fixing now
Request JSON
{
"model": "ora1",
"state": "Our API integration started returning 500 errors on every request about 20 minutes ago, and we can't process any customer orders until this is fixed.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs, errors or integration problems",
"sales": "Pricing or account questions"
}
},
"frustration": {
"type": "score",
"instructions": "How frustrated the customer appears",
"criteria": [
"Calm, just stating facts",
"Frustrated but civil",
"Very angry, strong language"
]
},
"is_urgent": {
"type": "yes_no",
"instructions": "The message conveys urgency: orders blocked, errors on every request, needs fixing now"
}
}
}Response
department technical · frustration 0.63 · is_urgent 0.920
Product review analysis
overallOverall verdict of the reviewproduct_qualityHow the reviewer rates the product itself (sound, battery)shipping_issueMentions a problem with shipping, delivery or packaging (late, crushed box)- + 1 more
Request JSON
{
"model": "ora1",
"state": "The headphones sound great and the battery lasts all week, but shipping took three weeks and the box arrived crushed. Customer service never replied to my email.",
"questions": {
"overall": {
"type": "choice",
"instructions": "Overall verdict of the review",
"criteria": {
"recommend": "Would recommend the product",
"mixed": "Good and bad points, mixed feelings",
"avoid": "Would not recommend"
}
},
"product_quality": {
"type": "score",
"instructions": "How the reviewer rates the product itself (sound, battery)",
"criteria": [
"Poor",
"Average",
"Good",
"Excellent"
]
},
"shipping_issue": {
"type": "yes_no",
"instructions": "Mentions a problem with shipping, delivery or packaging (late, crushed box)"
},
"service_issue": {
"type": "yes_no",
"instructions": "Complains about customer service (no reply, unhelpful)"
}
}
}Content moderation
toxicContains insults, harassment or abusive languagethreatContains a threat of violence or harmactionModeration action to take
Request JSON
{
"model": "ora1",
"state": "You're an idiot if you believe that. People like you shouldn't be allowed to post here. Go away.",
"questions": {
"toxic": {
"type": "yes_no",
"instructions": "Contains insults, harassment or abusive language",
"criteria": {
"true": "Name-calling, insults, telling someone to leave",
"false": "Civil disagreement or neutral text"
}
},
"threat": {
"type": "yes_no",
"instructions": "Contains a threat of violence or harm",
"criteria": {
"true": "Threatens to hurt, attack or harm someone",
"false": "No threat of harm"
}
},
"action": {
"type": "choice",
"instructions": "Moderation action to take",
"criteria": {
"allow": "Fine to publish",
"warn": "Rude or insulting, warn the author",
"remove": "Threats or severe abuse, remove the post"
}
}
}
}Lead qualification
intentWhat the sender wantscompany_sizeSize of the sender's companydecision_makerThe sender runs a team or department and can likely decide on a purchase
Request JSON
{
"model": "ora1",
"state": "Hi, I run engineering at a 400-person fintech. We need structured classification for about 2 million support tickets a month and want to start a pilot next quarter. What does enterprise pricing look like?",
"questions": {
"intent": {
"type": "choice",
"instructions": "What the sender wants",
"criteria": {
"buy": "Ready to buy or start a pilot, asks about pricing",
"explore": "Researching, early questions",
"support": "Existing customer with a problem",
"other": "Anything else"
}
},
"company_size": {
"type": "score",
"instructions": "Size of the sender's company",
"criteria": [
"Individual or tiny team",
"Small company",
"Mid-size company, hundreds of people",
"Large enterprise, thousands"
]
},
"decision_maker": {
"type": "yes_no",
"instructions": "The sender runs a team or department and can likely decide on a purchase"
}
}
}Advanced
Structured state and criteria.
Refund decision on an order record (JSON state)
next_actionWhat should support do nexteligibleThe order is eligible for a refund under the policyconfidence_neededHow much human review this decision needs
Request JSON
{
"model": "ora1",
"state": {
"ticket": {
"subject": "Duplicate charge",
"messages": [
{
"from": "customer",
"text": "I was charged twice for order A-104. Please refund the duplicate."
},
{
"from": "support",
"text": "We are checking the charges."
}
]
},
"order": {
"id": "A-104",
"charges": [
{
"amount_usd": 49,
"status": "captured"
},
{
"amount_usd": 49,
"status": "captured"
}
]
},
"refund_policy": "Duplicate charges are eligible for a refund."
},
"questions": {
"next_action": {
"type": "choice",
"instructions": "What should support do next",
"criteria": {
"refund": "Refund the duplicate charge",
"escalate": "Escalate to a human reviewer",
"ask_info": "Ask the customer for more information",
"close": "Nothing to do, close the ticket"
}
},
"eligible": {
"type": "yes_no",
"instructions": "The order is eligible for a refund under the policy",
"criteria": {
"true": "Duplicate captured charge, policy covers duplicates",
"false": "Single charge or no policy match"
}
},
"confidence_needed": {
"type": "score",
"instructions": "How much human review this decision needs",
"criteria": [
"None, fully automatic",
"Quick glance",
"Careful review",
"Senior approval"
]
}
}
}Loan application screening (JSON state)
riskCredit risk of this applicationdecisionUnderwriting decisionaffordableThe requested amount is affordable relative to income
Request JSON
{
"model": "ora1",
"state": {
"applicant": {
"age": 34,
"employment": "full-time software engineer",
"years_at_employer": 6,
"annual_income_usd": 142000
},
"request": {
"amount_usd": 25000,
"purpose": "debt consolidation",
"term_months": 36
},
"credit": {
"score": 761,
"late_payments_24m": 0,
"utilization_pct": 18,
"open_accounts": 5
},
"notes": "Stable income, long employment history, low utilization."
},
"questions": {
"risk": {
"type": "score",
"instructions": "Credit risk of this application",
"criteria": [
"Very low risk: high score, no late payments, low utilization",
"Low risk",
"Moderate risk",
"High risk: low score, late payments, high utilization"
]
},
"decision": {
"type": "choice",
"instructions": "Underwriting decision",
"criteria": {
"approve": "Strong credit, stable income: approve",
"review": "Mixed signals: send to an underwriter",
"decline": "Weak credit or unaffordable: decline"
}
},
"affordable": {
"type": "yes_no",
"instructions": "The requested amount is affordable relative to income",
"criteria": {
"true": "Amount is small relative to annual income",
"false": "Amount is large relative to income"
}
}
}
}Intent routing, 8 intents (conversation JSON)
intentThe customer's main intent in the latest messageneeds_humanThis needs a human agent (billing changes, exceptions, angry customer)sentimentCustomer mood
Request JSON
{
"model": "ora1",
"state": {
"channel": "chat",
"conversation": [
{
"role": "user",
"text": "hey, my card got declined when I tried to upgrade to the annual plan"
},
{
"role": "agent",
"text": "Sorry about that! Did you see an error message?"
},
{
"role": "user",
"text": "it said payment failed, card declined. I checked with my bank and the card is fine. can you just switch me to invoice billing instead?"
}
]
},
"questions": {
"intent": {
"type": "choice",
"instructions": "The customer's main intent in the latest message",
"criteria": {
"payment_failure": "Card declined, payment failed",
"change_billing_method": "Switch to invoice, change how they pay",
"upgrade_plan": "Move to a bigger or annual plan",
"cancel": "Cancel subscription",
"refund": "Money back",
"bug_report": "Something in the product is broken",
"account_access": "Login or password trouble",
"other": "Anything else"
}
},
"needs_human": {
"type": "yes_no",
"instructions": "This needs a human agent (billing changes, exceptions, angry customer)"
},
"sentiment": {
"type": "score",
"instructions": "Customer mood",
"criteria": [
"Angry",
"Frustrated",
"Neutral",
"Positive"
]
}
}
}Incident review with structured instructions
severitycategoryRoot cause categoryprevented_by_ciA CI check could plausibly have caught this before production
Request JSON
{
"model": "ora1",
"state": {
"incident": {
"id": "INC-2291",
"service": "payments-api",
"started": "2026-10-18T02:14Z",
"resolved": "2026-10-18T04:02Z",
"customers_affected": 1830
},
"timeline": [
"02:14 error rate spikes to 38%",
"02:20 on-call paged",
"02:55 bad deploy identified",
"03:10 rollback started",
"04:02 error rate back to normal"
],
"root_cause": "A config change disabled connection pooling, exhausting database connections under load.",
"follow_ups": [
"Add config validation in CI",
"Alert on connection pool saturation"
]
},
"questions": {
"severity": {
"type": "score",
"instructions": {
"task": "Rate the incident severity",
"consider": [
"customer impact",
"duration",
"whether payments failed"
]
},
"criteria": [
"SEV4: minor, no customer impact",
"SEV3: limited impact",
"SEV2: significant customer impact",
"SEV1: major outage, money or data at risk"
]
},
"category": {
"type": "choice",
"instructions": "Root cause category",
"criteria": {
"deploy_or_config": {
"description": "A deploy or config change caused it",
"examples": [
"bad deploy",
"config change",
"rollback"
]
},
"capacity": "Load or capacity limits",
"dependency": "A third-party or upstream failure",
"data": "Bad data or migration"
}
},
"prevented_by_ci": {
"type": "yes_no",
"instructions": "A CI check could plausibly have caught this before production"
}
}
}