Use cases · Corporates
Financial journalist / media: 20 ways to use Ora
Fact-checked market color: what is true today, in plain words, with the rule behind it. Each example is a complete, runnable request with the real answers it returned (43 requests, captured 2026-10-31), what they mean and, where it fits, the action it would send.
ora-fin-0.1.1. Another model changes the request JSON and the Playground link; run it there to see its answers.Rule functions and facts used by this player (51)
offset 11ref 7abs 5sma 5max 4avg 4beat_eps_last 3beat_revenue_last 3atr 3highest 2last_earnings_move 2years_of_growth 2highestbars 1beat_streak 1eps_growth_yoy 1eps_surprise_pct 1min 1zscore 1days_since_earnings 1last_earnings_gap 1pre_earnings_close 1cut_last 1days_since_ex_div 1div_change_pct 1pays_dividend 1days_since_split 1days_to_split 1last_split_ratio 1reverse_split_last 1dragonfly_doji 1engulfing_bear 1evening_star 1gap_up 1outside_bar 1roc 1adx 1days_to_earnings 1next_report_amc 1log 1sqrt 1std 1hlc3 1obv 1sum 1three_white_soldiers 1lowest 1rsi 1div_yield_ttm 1raised_last 1bbupper 1ema 1
Examples 11–20 of 20 · page 2 of 2
Financial journalist / media · example 11
Fact check: what kind of day did GLD have?
When a commodity story calls a session a "reversal", check the candle against defined patterns.
- StateGLD
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"GLD"} The server fills in the latest completed session.
Questions
engulf_bear | rule | engulfing_bear()engulfing bear candle: A red body that engulfs yesterday's green body. |
evening | rule | evening_star()evening star candle: A green bar, a small bar that stays above its close, then a red bar closing below the middle of the first. |
gap_up | rule | gap_up()gap up candle: Today's whole range is above yesterday's high: an unfilled gap up. |
dragonfly | rule | dragonfly_doji()dragonfly doji candle: Doji with a long lower wick (60%+ of the range) and almost no upper wick. |
outside | English → rule | Is today an outside day? |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
engulf_bearengulfing bear candle: A red body that engulfs yesterday's green body. | 0.0907 | false |
eveningevening star candle: A green bar, a small bar that stays above its close, then a red bar closing below the middle of the first. | 0.1476 | false |
gap_upgap up candle: Today's whole range is above yesterday's high: an unfilled gap up. | 0.0541 | false |
dragonflydragonfly doji candle: Doji with a long lower wick (60%+ of the range) and almost no upper wick. | 0.0579 | false |
outsideIs today an outside day compiled to outside_bar() | 0.0823 | false |
drop5A 5% drawdown within a month | 0.435 | 44% · close to even |
What it means
For GLD on the session of 2026-10-30: Not true: engulfing bear candle: A red body that engulfs yesterday's green body.; evening star candle: A green bar, a small bar that stays above its close, then a red bar closing below the middle of the first.; gap up candle: Today's whole range is above yesterday's high: an unfilled gap up.; dragonfly doji candle: Doji with a long lower wick (60%+ of the range) and almost no upper wick.; Is today an outside day. Forecasts: A 5% drawdown within a month 44%.
If no reversal pattern is true, the story avoids the word; an outside day or engulfing candle supports it.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "GLD"
},
"questions": {
"engulf_bear": {
"type": "yes_no",
"ask": "engulfing_bear()"
},
"evening": {
"type": "yes_no",
"ask": "evening_star()"
},
"gap_up": {
"type": "yes_no",
"ask": "gap_up()"
},
"dragonfly": {
"type": "yes_no",
"ask": "dragonfly_doji()"
},
"outside": {
"type": "yes_no",
"instructions": "Is today an outside day?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (GLD, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"engulf_bear": {
"yes_no": 0.0907,
"rule": "engulfing_bear()",
"basis": "rule"
},
"evening": {
"yes_no": 0.1476,
"rule": "evening_star()",
"basis": "rule"
},
"gap_up": {
"yes_no": 0.0541,
"rule": "gap_up()",
"basis": "rule"
},
"dragonfly": {
"yes_no": 0.0579,
"rule": "dragonfly_doji()",
"basis": "rule"
},
"outside": {
"yes_no": 0.0823,
"rule": "outside_bar()",
"basis": "pattern"
},
"drop5": {
"yes_no": 0.435
}
},
"context": {
"symbol": "GLD",
"as_of": "2026-10-30"
}
}dragonfly_doji engulfing_bear evening_star gap_up outside_bar
Financial journalist / media · example 12
Weekly sector wrap: which sector ETFs led?
For the Friday wrap, check each sector ETF's week and month so the leader board is factual.
- ScheduleFri at 16:20 ET
- State6 symbols
- Questions3 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"XLK"} then XLE, XLF, XLV, XLY, XLU, one request each. The server fills in the latest completed session.
Questions
down_week | English → rule | Is the stock down over the last week? |
up_month | English → rule | Is the stock up over the last month? |
roc | rule | roc(C, 5) > 2Up more than 2% over five sessions |
Answers
| Symbol | down_weekrule | up_monthrule | rocrule | Fired |
|---|---|---|---|---|
XLK | 0.7811 | 0.0654 | 0.1102 | none |
XLE | 0.2934 | 0.9419 | 0.3082 | none |
XLF | 0.2009 | 0.9009 | 0.2309 | none |
XLV | 0.0973 | 0.9454 | 0.7409 | wrap_line |
XLY | 0.1227 | 0.8944 | 0.5065 | none |
XLU | 0.162 | 0.9259 | 0.5131 | none |
true false not known for rules; forecasts are odds. Hover a column for its question.
Actions
Rules on the answers decide what to send. Each symbol runs its own request, so each one can fire.
roc >= 0.6→Emailweekend-editor{
"subject": "Sector wrap: XLV up over 2% this week",
"text": "XLV (2026-10-30): up more than 2% over five sessions (74%); up on the month 95%."
}What it means
Session of 2026-10-30, 6 symbols: Is the stock down over the last week: true for XLK of 6. Is the stock up over the last month: true for XLE, XLF, XLV, XLY, XLU of 6. Up more than 2% over five sessions: true for XLV of 6. wrap_line fired for XLV.
Only sectors with a verified weekly gain get a line, which becomes the lead of the weekend wrap.
As a scheduled workflow (Fri at 16:20 ET)
Create it under Workflows in the console: it runs these questions for every symbol on the schedule and fires the actions per symbol. The answers above are what one run returned.
{
"name": "Weekly sector wrap: which sector ETFs led?",
"symbols": "XLK XLE XLF XLV XLY XLU",
"days": [
5
],
"at_time": "16:20",
"model": "ora-fin-0.1.1",
"questions": {
"down_week": {
"type": "yes_no",
"instructions": "Is the stock down over the last week?"
},
"up_month": {
"type": "yes_no",
"instructions": "Is the stock up over the last month?"
},
"roc": {
"type": "yes_no",
"ask": "roc(C, 5) > 2"
}
},
"actions": [
{
"id": "wrap_line",
"when": "roc >= 0.6",
"do": "email",
"connection": "weekend-editor",
"subject": "Sector wrap: {{symbol}} up over 2% this week",
"message": "{{symbol}} ({{as_of}}): up more than 2% over five sessions ({{roc|pct}}); up on the month {{up_month|pct}}."
}
]
}Request JSON (XLK; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "XLK"
},
"questions": {
"down_week": {
"type": "yes_no",
"instructions": "Is the stock down over the last week?"
},
"up_month": {
"type": "yes_no",
"instructions": "Is the stock up over the last month?"
},
"roc": {
"type": "yes_no",
"ask": "roc(C, 5) > 2"
}
},
"actions": [
{
"id": "wrap_line",
"when": "roc >= 0.6",
"do": "email",
"connection": "weekend-editor",
"subject": "Sector wrap: {{symbol}} up over 2% this week",
"message": "{{symbol}} ({{as_of}}): up more than 2% over five sessions ({{roc|pct}}); up on the month {{up_month|pct}}."
}
],
"dry_run": true
}Response JSON (XLK, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"down_week": {
"yes_no": 0.7811,
"rule": "C < C[-5]",
"basis": "pattern"
},
"up_month": {
"yes_no": 0.0654,
"rule": "C > C[-21]",
"basis": "pattern"
},
"roc": {
"yes_no": 0.1102,
"rule": "roc(C, 5) > 2",
"basis": "rule"
}
},
"context": {
"symbol": "XLK",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "wrap_line",
"fired": false,
"status": "skipped"
}
]
}Financial journalist / media · example 13
Fact check: is oil (USO) breaking out?
A commodities reporter checks whether the oil fund broke out on volume before writing "surge".
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"USO"} then XLE, one request each. The server fills in the latest completed session.
Questions
breakout | rule | C > highest(C, 20) and V > 1.5 * ref(avg(V, 20), -1)20-day breakout on 1.5× volume |
high20 | rule | H > highest(H, 20)Took out the 20-day high intraday |
up2 | English → rule | Did the stock rise more than 2% today? |
adx | rule | adx(14) > 25Trending (ADX above 25) |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | breakoutrule | high20rule | up2rule | adxrule | rally5forecast |
|---|---|---|---|---|---|
USO | 0.1578 | 0.6486 | 0.2035 | 0.8459 | 0.658 |
XLE | 0.0692 | 0.6226 | 0.454 | 0.0708 | 0.491 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: 20-day breakout on 1.5× volume: true for none of 2. Took out the 20-day high intraday: true for USO, XLE of 2. Did the stock rise more than 2% today: true for none of 2. Trending (ADX above 25): true for USO of 2. Highest odds for “A 5% rally within a month”: USO at 66%.
"Breakout" needs the breakout rule; a 2% up day alone supports "rose", not "surged".
Request JSON (USO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "USO"
},
"questions": {
"breakout": {
"type": "yes_no",
"ask": "C > highest(C, 20) and V > 1.5 * ref(avg(V, 20), -1)"
},
"high20": {
"type": "yes_no",
"ask": "H > highest(H, 20)"
},
"up2": {
"type": "yes_no",
"instructions": "Did the stock rise more than 2% today?"
},
"adx": {
"type": "yes_no",
"ask": "adx(14) > 25"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (USO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"breakout": {
"yes_no": 0.1578,
"rule": "C > highest(C, 20) and V > 1.5 * ref(avg(V, 20), -1)",
"basis": "rule"
},
"high20": {
"yes_no": 0.6486,
"rule": "H > highest(H, 20)",
"basis": "rule"
},
"up2": {
"yes_no": 0.2035,
"rule": "C / C[-1] - 1 > 0.02",
"basis": "pattern"
},
"adx": {
"yes_no": 0.8459,
"rule": "adx(14) > 25",
"basis": "rule"
},
"rally5": {
"yes_no": 0.658
}
},
"context": {
"symbol": "USO",
"as_of": "2026-10-30"
}
}Financial journalist / media · example 14
Earnings preview: who reports in the next two weeks?
Build the earnings-preview list from calendar facts, with last quarter's record for each name.
- State4 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"AAPL"} then AMZN, MSFT, AMD, one request each. The server fills in the latest completed session.
Questions
soon | English → rule | Is earnings in the next 14 days? |
amc | English → rule | Does the stock report after the close next time? |
beat | English → rule | Did the stock beat on both EPS and revenue last quarter? |
big | rule | abs(last_earnings_move) > 5Last earnings move bigger than 5% |
beat_next | forecast | Will the stock beat earnings next quarter? Beating earnings next quarter |
Answers
| Symbol | soonrule | amcrule | beatrule | bigrule | beat_nextforecast |
|---|---|---|---|---|---|
AAPL | 0.9463 | 0.8591 | 0.8591 | 0.9463 | 0.545 |
AMZN | 0.0537 | 0.8591 | 0.1409 | 0.0537 | 0.476 |
MSFT | 0.0537 | 0.8591 | 0.8591 | 0.0537 | 0.528 |
AMD | 0.9463 | 0.8591 | 0.8591 | 0.9463 | 0.563 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 4 symbols: Is earnings in the next 14 days: true for AAPL, AMD of 4. Does the stock report after the close next time: true for AAPL, AMZN, MSFT, AMD of 4. Did the stock beat on both EPS and revenue last quarter: true for AAPL, MSFT, AMD of 4. Last earnings move bigger than 5%: true for AAPL, AMD of 4. Highest odds for “Beating earnings next quarter”: AMD at 56%.
The preview lists only names with a report inside the window, and labels the beat-next-quarter odds as a forecast.
Request JSON (AAPL; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AAPL"
},
"questions": {
"soon": {
"type": "yes_no",
"instructions": "Is earnings in the next 14 days?"
},
"amc": {
"type": "yes_no",
"instructions": "Does the stock report after the close next time?"
},
"beat": {
"type": "yes_no",
"instructions": "Did the stock beat on both EPS and revenue last quarter?"
},
"big": {
"type": "yes_no",
"ask": "abs(last_earnings_move) > 5"
},
"beat_next": {
"type": "yes_no",
"instructions": "Will the stock beat earnings next quarter?"
}
}
}Response JSON (AAPL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"soon": {
"yes_no": 0.9463,
"rule": "days_to_earnings <= 14",
"basis": "pattern"
},
"amc": {
"yes_no": 0.8591,
"rule": "next_report_amc > 0.5",
"basis": "pattern"
},
"beat": {
"yes_no": 0.8591,
"rule": "beat_eps_last > 0.5 and beat_revenue_last > 0.5",
"basis": "pattern"
},
"big": {
"yes_no": 0.9463,
"rule": "abs(last_earnings_move) > 5",
"basis": "rule"
},
"beat_next": {
"yes_no": 0.545
}
},
"context": {
"symbol": "AAPL",
"as_of": "2026-10-30"
}
}abs beat_eps_last beat_revenue_last days_to_earnings last_earnings_move next_report_amc
Financial journalist / media · example 15
Fact check: are the bitcoin ETFs (IBIT, FBTC) at highs or in a slump?
A crypto reporter checks the listed bitcoin funds before describing the market.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"IBIT"} then FBTC, one request each. The server fills in the latest completed session.
Questions
near_high | rule | C >= 0.98 * max(H, 252)Within 2% of the 52-week high |
drawdown | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
trend | English → rule | Is the stock above its 50-day moving average? |
hv | English → rule | Is 20-day historical volatility above 40%? |
big5 | forecast | Will there be a big move in either direction in the next 5 days? A big move either way in 5 days |
Answers
| Symbol | near_highrule | drawdownrule | trendrule | hvrule | big5forecast |
|---|---|---|---|---|---|
IBIT | 0.0537 | 0.9082 | 0.1649 | 0.1383 | 0.363 |
FBTC | 0.0537 | 0.9074 | 0.1693 | 0.1314 | 0.394 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: Within 2% of the 52-week high: true for none of 2. More than 20% off the 52-week high: true for IBIT, FBTC of 2. Is the stock above its 50-day moving average: true for none of 2. Is 20-day historical volatility above 40%: true for none of 2. Highest odds for “A big move either way in 5 days”: FBTC at 39%.
Both funds should agree; the article describes the state the rules support and keeps the forecast as odds.
Request JSON (IBIT; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "IBIT"
},
"questions": {
"near_high": {
"type": "yes_no",
"ask": "C >= 0.98 * max(H, 252)"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 50-day moving average?"
},
"hv": {
"type": "yes_no",
"instructions": "Is 20-day historical volatility above 40%?"
},
"big5": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
}
}
}Response JSON (IBIT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"near_high": {
"yes_no": 0.0537,
"rule": "C >= 0.98 * max(H, 252)",
"basis": "rule"
},
"drawdown": {
"yes_no": 0.9082,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"trend": {
"yes_no": 0.1649,
"rule": "C > sma(C, 50)",
"basis": "comparison"
},
"hv": {
"yes_no": 0.1383,
"rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) > 0.4",
"basis": "pattern"
},
"big5": {
"yes_no": 0.363
}
},
"context": {
"symbol": "IBIT",
"as_of": "2026-10-30"
}
}Financial journalist / media · example 16
Breaking-news desk: alert on large opening gaps
Post to the newsroom's Teams channel when a widely-held stock gapped more than one ATR at the open.
- StateAAPL
- Questions5 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"AAPL"} The server fills in the latest completed session.
Questions
gap_atr | rule | abs(O - C[-1]) > ref(atr(14), -1)Opened more than one ATR away from yesterday's close |
gap_up | rule | O > C[-1] * 1.01Opened more than 1% above yesterday's close |
gap_dn | rule | O < C[-1] * 0.99Opened more than 1% below yesterday's close |
faded | rule | O > C[-1] and C < C[-1]Gapped up but closed under yesterday's close |
big5 | forecast | Will there be a big move in either direction in the next 5 days? A big move either way in 5 days |
Answers
| Question | Answer | Reading |
|---|---|---|
gap_atrOpened more than one ATR away from yesterday's close | 0.0637 | false |
gap_upOpened more than 1% above yesterday's close | 0.06 | false |
gap_dnOpened more than 1% below yesterday's close | 0.2378 | false |
fadedGapped up but closed under yesterday's close | 0.1532 | false |
big5A big move either way in 5 days | 0.409 | 41% · close to even |
Actions
Rules on the answers decide what to send.
gap_atr >= 0.6→Webhookteams-newsroomelse→Slackmarkets-desk{
"text": "AAPL (2026-10-30): normal open (gap over 1 ATR 6%)."
}What it means
For AAPL on the session of 2026-10-30: Not true: Opened more than one ATR away from yesterday's close; Opened more than 1% above yesterday's close; Opened more than 1% below yesterday's close; Gapped up but closed under yesterday's close. Forecasts: A big move either way in 5 days 41%. Fired: quiet (Slack → markets-desk).
Large gaps usually mean news; the alert sends reporters looking for it.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AAPL"
},
"questions": {
"gap_atr": {
"type": "yes_no",
"ask": "abs(O - C[-1]) > ref(atr(14), -1)"
},
"gap_up": {
"type": "yes_no",
"ask": "O > C[-1] * 1.01"
},
"gap_dn": {
"type": "yes_no",
"ask": "O < C[-1] * 0.99"
},
"faded": {
"type": "yes_no",
"ask": "O > C[-1] and C < C[-1]"
},
"big5": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
}
},
"actions": [
{
"id": "teams_alert",
"when": "gap_atr >= 0.6",
"do": "webhook",
"connection": "teams-newsroom",
"body": {
"text": "{{symbol}} ({{as_of}}): opening gap larger than 1 ATR. Up 1% {{gap_up|pct}}, down 1% {{gap_dn|pct}}, faded {{faded|pct}}."
}
},
{
"id": "quiet",
"when": "else",
"do": "slack",
"connection": "markets-desk",
"message": "{{symbol}} ({{as_of}}): normal open (gap over 1 ATR {{gap_atr|pct}})."
}
],
"dry_run": true
}Response JSON (AAPL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"gap_atr": {
"yes_no": 0.0637,
"rule": "abs(O - C[-1]) > ref(atr(14), -1)",
"basis": "rule"
},
"gap_up": {
"yes_no": 0.06,
"rule": "O > C[-1] * 1.01",
"basis": "rule"
},
"gap_dn": {
"yes_no": 0.2378,
"rule": "O < C[-1] * 0.99",
"basis": "rule"
},
"faded": {
"yes_no": 0.1532,
"rule": "O > C[-1] and C < C[-1]",
"basis": "rule"
},
"big5": {
"yes_no": 0.409
}
},
"context": {
"symbol": "AAPL",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "teams_alert",
"fired": false,
"status": "skipped"
},
{
"id": "quiet",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "markets-desk",
"preview": {
"text": "AAPL (2026-10-30): normal open (gap over 1 ATR 6%)."
}
}
]
}Financial journalist / media · example 17
Fact check: is AMD's rally broad or a one-day pop?
Check whether a rally has persistence: several up days, price above its typical-price average and rising OBV.
- StateAMD
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"AMD"} The server fills in the latest completed session.
Questions
mostly_up | rule | sum(C > C[-1], 10) >= 6Up on at least six of the last ten days |
hlc3 | rule | hlc3() > sma(hlc3(), 20)Typical price above its 20-day average |
obv | English → rule | Is on-balance volume higher than 20 sessions ago? |
soldiers | English → rule | Are the last three candles three white soldiers? |
best | English → rule | Was today the best day of the last 20 sessions? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
mostly_upUp on at least six of the last ten days | 0.55 | on the line (true) |
hlc3Typical price above its 20-day average | 0.1082 | false |
obvIs on-balance volume higher than 20 sessions ago compiled to obv() > ref(obv(), -20) | 0.1504 | false |
soldiersAre the last three candles three white soldiers compiled to three_white_soldiers() | 0.0537 | false |
bestWas today the best day of the last 20 sessions compiled to (C > C[-1]) and (C / C[-1] - 1 > ref(max(C / C[-1] - 1, 19), -1)) | 0.0537 | false |
up_weekHigher in a week | 0.577 | 58% · close to even |
What it means
For AMD on the session of 2026-10-30: Not true: Typical price above its 20-day average; Is on-balance volume higher than 20 sessions ago; Are the last three candles three white soldiers; Was today the best day of the last 20 sessions. On the line: Up on at least six of the last ten days. Forecasts: Higher in a week 58%.
"Extends its rally" needs persistence rules true; a best-day rule alone supports "jumped".
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AMD"
},
"questions": {
"mostly_up": {
"type": "yes_no",
"ask": "sum(C > C[-1], 10) >= 6"
},
"hlc3": {
"type": "yes_no",
"ask": "hlc3() > sma(hlc3(), 20)"
},
"obv": {
"type": "yes_no",
"instructions": "Is on-balance volume higher than 20 sessions ago?"
},
"soldiers": {
"type": "yes_no",
"instructions": "Are the last three candles three white soldiers?"
},
"best": {
"type": "yes_no",
"instructions": "Was today the best day of the last 20 sessions?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (AMD, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"mostly_up": {
"yes_no": 0.55,
"rule": "sum(C > C[-1], 10) >= 6",
"basis": "rule"
},
"hlc3": {
"yes_no": 0.1082,
"rule": "hlc3() > sma(hlc3(), 20)",
"basis": "rule"
},
"obv": {
"yes_no": 0.1504,
"rule": "obv() > ref(obv(), -20)",
"basis": "pattern"
},
"soldiers": {
"yes_no": 0.0537,
"rule": "three_white_soldiers()",
"basis": "pattern"
},
"best": {
"yes_no": 0.0537,
"rule": "(C > C[-1]) and (C / C[-1] - 1 > ref(max(C / C[-1] - 1, 19), -1))",
"basis": "pattern"
},
"up_week": {
"yes_no": 0.577
}
},
"context": {
"symbol": "AMD",
"as_of": "2026-10-30"
}
}Financial journalist / media · example 18
Fact check: are long bonds (TLT) at multi-month lows?
Before writing that bond prices hit lows, check the window and the size of the move.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"TLT"} then IEF, one request each. The server fills in the latest completed session.
Questions
low20 | English → rule | Did the stock make a new 20-day low today? |
low55 | rule | C < lowest(C, 55)Closed under every close of the last 55 sessions |
down_month | English → rule | Is the stock down more than 5% over the last month? |
rsi_low | English → rule | Is the stock oversold on RSI, below 30? |
down_week | forecast | Will the stock be lower in a week? Lower in a week |
Answers
| Symbol | low20rule | low55rule | down_monthrule | rsi_lowrule | down_weekforecast |
|---|---|---|---|---|---|
TLT | 0.0537 | 0.0537 | 0.0537 | 0.0546 | 0.504 |
IEF | 0.0537 | 0.0537 | 0.0537 | 0.0537 | 0.413 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: Did the stock make a new 20-day low today: true for none of 2. Closed under every close of the last 55 sessions: true for none of 2. Is the stock down more than 5% over the last month: true for none of 2. Is the stock oversold on RSI, below 30: true for none of 2. Highest odds for “Lower in a week”: TLT at 50%.
"Lowest close in nearly three months" needs the 55-session rule; a 20-day low supports a weaker claim.
Request JSON (TLT; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "TLT"
},
"questions": {
"low20": {
"type": "yes_no",
"instructions": "Did the stock make a new 20-day low today?"
},
"low55": {
"type": "yes_no",
"ask": "C < lowest(C, 55)"
},
"down_month": {
"type": "yes_no",
"instructions": "Is the stock down more than 5% over the last month?"
},
"rsi_low": {
"type": "yes_no",
"instructions": "Is the stock oversold on RSI, below 30?"
},
"down_week": {
"type": "yes_no",
"instructions": "Will the stock be lower in a week?"
}
}
}Response JSON (TLT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"low20": {
"yes_no": 0.0537,
"rule": "L < lowest(L, 20)",
"basis": "pattern"
},
"low55": {
"yes_no": 0.0537,
"rule": "C < lowest(C, 55)",
"basis": "rule"
},
"down_month": {
"yes_no": 0.0537,
"rule": "C / C[-21] - 1 < -0.05",
"basis": "pattern"
},
"rsi_low": {
"yes_no": 0.0546,
"rule": "rsi(C, 14) < 30",
"basis": "pattern"
},
"down_week": {
"yes_no": 0.504
}
},
"context": {
"symbol": "TLT",
"as_of": "2026-10-30"
}
}Financial journalist / media · example 19
Fact check: has JNJ raised its dividend for 25+ years?
"Dividend aristocrat" claims need a growth record; check it from the payment history.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"JNJ"} then KO, one request each. The server fills in the latest completed session.
Questions
y25 | English → rule | Has the stock grown its dividend for 25 years in a row? |
y10 | English → rule | Has the stock grown its dividend for 10 years in a row? |
raised | English → rule | Did the stock raise its dividend last time? |
yield | English → rule | Is the dividend yield above 3%? |
Answers
| Symbol | y25rule | y10rule | raisedrule | yieldrule |
|---|---|---|---|---|
JNJ | 0.9463 | 0.9463 | 0.1409 | 0.0648 |
KO | 0.0683 | 0.9463 | 0.1409 | 0.0537 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: Has the stock grown its dividend for 25 years in a row: true for JNJ of 2. Has the stock grown its dividend for 10 years in a row: true for JNJ, KO of 2. Did the stock raise its dividend last time: true for none of 2. Is the dividend yield above 3%: true for none of 2.
Calendar-year totals can break a streak in years with an extra payment, so the article cites the rule's definition when the answer surprises.
Request JSON (JNJ; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "JNJ"
},
"questions": {
"y25": {
"type": "yes_no",
"instructions": "Has the stock grown its dividend for 25 years in a row?"
},
"y10": {
"type": "yes_no",
"instructions": "Has the stock grown its dividend for 10 years in a row?"
},
"raised": {
"type": "yes_no",
"instructions": "Did the stock raise its dividend last time?"
},
"yield": {
"type": "yes_no",
"instructions": "Is the dividend yield above 3%?"
}
}
}Response JSON (JNJ, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"y25": {
"yes_no": 0.9463,
"rule": "years_of_growth >= 25",
"basis": "pattern"
},
"y10": {
"yes_no": 0.9463,
"rule": "years_of_growth >= 10",
"basis": "pattern"
},
"raised": {
"yes_no": 0.1409,
"rule": "raised_last > 0.5",
"basis": "pattern"
},
"yield": {
"yes_no": 0.0648,
"rule": "div_yield_ttm > 3",
"basis": "pattern"
}
},
"context": {
"symbol": "JNJ",
"as_of": "2026-10-30"
}
}Financial journalist / media · example 20
Fact check: is volatility rising (VXX)?
Check the volatility ETF before writing that fear is rising, and separate today's facts from forecasts.
- StateVXX
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"VXX"} The server fills in the latest completed session.
Questions
up2 | English → rule | Did the stock rise more than 2% today? |
above_band | English → rule | Did the stock close above the upper Bollinger Band? |
spike | rule | V > 2 * ref(avg(V, 20), -1)Volume more than twice the previous 20-day average |
ema | rule | C > ema(C, 10)Above its 10-day exponential average |
vol_rise | forecast | Will volatility rise over the next 5 days? Volatility rising over 5 days |
calm | forecast | Will volatility calm down over the next 5 days? Volatility calming over 5 days |
Answers
| Question | Answer | Reading |
|---|---|---|
up2Did the stock rise more than 2% today compiled to C / C[-1] - 1 > 0.02 | 0.9463 | true |
above_bandDid the stock close above the upper Bollinger Band compiled to C > bbupper(C, 20) | 0.599 | on the line (true) |
spikeVolume more than twice the previous 20-day average | 0.9357 | true |
emaAbove its 10-day exponential average | 0.9398 | true |
vol_riseVolatility rising over 5 days | 0.254 | 25% · unlikely |
calmVolatility calming over 5 days | 0.621 | 62% · likely |
What it means
For VXX on the session of 2026-10-30: True now: Did the stock rise more than 2% today; Volume more than twice the previous 20-day average; Above its 10-day exponential average. On the line: Did the stock close above the upper Bollinger Band. Forecasts: Volatility rising over 5 days 25%; Volatility calming over 5 days 62%.
Today's rules support "volatility rose"; the two forecasts are odds that point in opposite directions and are reported as such, if at all.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VXX"
},
"questions": {
"up2": {
"type": "yes_no",
"instructions": "Did the stock rise more than 2% today?"
},
"above_band": {
"type": "yes_no",
"instructions": "Did the stock close above the upper Bollinger Band?"
},
"spike": {
"type": "yes_no",
"ask": "V > 2 * ref(avg(V, 20), -1)"
},
"ema": {
"type": "yes_no",
"ask": "C > ema(C, 10)"
},
"vol_rise": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"calm": {
"type": "yes_no",
"instructions": "Will volatility calm down over the next 5 days?"
}
}
}Response JSON (VXX, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"up2": {
"yes_no": 0.9463,
"rule": "C / C[-1] - 1 > 0.02",
"basis": "pattern"
},
"above_band": {
"yes_no": 0.599,
"rule": "C > bbupper(C, 20)",
"basis": "comparison"
},
"spike": {
"yes_no": 0.9357,
"rule": "V > 2 * ref(avg(V, 20), -1)",
"basis": "rule"
},
"ema": {
"yes_no": 0.9398,
"rule": "C > ema(C, 10)",
"basis": "rule"
},
"vol_rise": {
"yes_no": 0.254
},
"calm": {
"yes_no": 0.621
}
},
"context": {
"symbol": "VXX",
"as_of": "2026-10-30"
}
}Information, not investment advice. Rules answer from the latest completed daily session; forecasts are probabilities. Actions ran as dry runs: nothing was sent. More in Corporates: Investor relations team, Corporate treasury, CFO office, Bank credit analyst.