Use cases · Buy side
Private equity: 20 ways to use Ora
Public comparables, exit windows and listed-portfolio monitoring around deals. Each example is a complete, runnable request with the real answers it returned (46 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 (42)
sma 13max 9offset 4lowest 4ema 3log 2ref 2sqrt 2std 2beat_eps_last 2beat_revenue_last 2days_to_earnings 2roc 2atr 2swinghigh 2swinglow 2div_yield_ttm 2avg 1abs 1last_earnings_move 1pre_earnings_close 1lowestbars 1adx 1diminus 1diplus 1engulfing_bear 1evening_star 1tweezer_top 1beat_streak 1beats_last4 1eps_growth_yoy 1next_report_bmo 1crossup 1macd 1macdsignal 1pays_dividend 1raised_last 1years_of_growth 1barssince 1dragonfly_doji 1hammer 1rsi 1
Examples 11–20 of 20 · page 2 of 2
Private equity · example 11
Rates backdrop for deal financing
Long bond prices move inversely to yields; read the financing backdrop from TLT and IEF.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"TLT"} then IEF, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 50-day moving average? |
rising | rule | sma(C, 50) > ref(sma(C, 50), -10)The 50-day average is rising |
new_low | English → rule | Did the stock make a new 20-day low today? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | trendrule | risingrule | new_lowrule | up_weekforecast |
|---|---|---|---|---|
TLT | 0.8482 | 0.1584 | 0.0537 | 0.561 |
IEF | 0.8514 | 0.0882 | 0.0537 | 0.483 |
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: Is the stock above its 50-day moving average: true for TLT, IEF of 2. The 50-day average is rising: true for none of 2. Did the stock make a new 20-day low today: true for none of 2. Highest odds for “Higher in a week”: TLT at 56%.
Rising bond prices mean falling yields and cheaper financing; a new 20-day low in bonds means yields are rising.
Request JSON (TLT; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "TLT"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 50-day moving average?"
},
"rising": {
"type": "yes_no",
"ask": "sma(C, 50) > ref(sma(C, 50), -10)"
},
"new_low": {
"type": "yes_no",
"instructions": "Did the stock make a new 20-day low today?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (TLT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.8482,
"rule": "C > sma(C, 50)",
"basis": "comparison"
},
"rising": {
"yes_no": 0.1584,
"rule": "sma(C, 50) > ref(sma(C, 50), -10)",
"basis": "rule"
},
"new_low": {
"yes_no": 0.0537,
"rule": "L < lowest(L, 20)",
"basis": "pattern"
},
"up_week": {
"yes_no": 0.561
}
},
"context": {
"symbol": "TLT",
"as_of": "2026-10-30"
}
}Private equity · example 12
Earnings prep for a listed portfolio company
The board observer wants to know when the listed portfolio company reports and how the last few quarters went.
- StateDAL
- Questions6 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"DAL"} The server fills in the latest completed session.
Questions
soon | English → rule | Is earnings in the next 14 days? |
beats | English → rule | Has the stock beaten EPS estimates in at least 3 of the last 4 quarters? |
streak | English → rule | Has the stock beaten EPS estimates 4 quarters in a row? |
eps_growth | rule | eps_growth_yoy > 10EPS up more than 10% on the year |
bmo | English → rule | Does the stock report before the market opens next time? |
beat_next | forecast | Will the stock beat earnings next quarter? Beating earnings next quarter |
Answers
| Question | Answer | Reading |
|---|---|---|
soonIs earnings in the next 14 days compiled to days_to_earnings <= 14 | 0.0537 | false |
beatsHas the stock beaten EPS estimates in at least 3 of the last 4 quarters compiled to beats_last4 >= 3 | 0.55 | on the line (true) |
streakHas the stock beaten EPS estimates 4 quarters in a row compiled to beat_streak >= 4 | 0.0537 | false |
eps_growthEPS up more than 10% on the year | 0.1498 | false |
bmoDoes the stock report before the market opens next time compiled to next_report_bmo > 0.5 | 0.8591 | true |
beat_nextBeating earnings next quarter | 0.496 | 50% · close to even |
Actions
Rules on the answers decide what to send.
soon >= 0.6→Emailboard-observerWhat it means
For DAL on the session of 2026-10-30: True now: Does the stock report before the market opens next time. Not true: Is earnings in the next 14 days; Has the stock beaten EPS estimates 4 quarters in a row; EPS up more than 10% on the year. On the line: Has the stock beaten EPS estimates in at least 3 of the last 4 quarters. Forecasts: Beating earnings next quarter 50%. No action fired: every rule was false.
The board observer gets the earnings date and track record ahead of time; facts carry rules, the beat-next question is a forecast.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "DAL"
},
"questions": {
"soon": {
"type": "yes_no",
"instructions": "Is earnings in the next 14 days?"
},
"beats": {
"type": "yes_no",
"instructions": "Has the stock beaten EPS estimates in at least 3 of the last 4 quarters?"
},
"streak": {
"type": "yes_no",
"instructions": "Has the stock beaten EPS estimates 4 quarters in a row?"
},
"eps_growth": {
"type": "yes_no",
"ask": "eps_growth_yoy > 10"
},
"bmo": {
"type": "yes_no",
"instructions": "Does the stock report before the market opens next time?"
},
"beat_next": {
"type": "yes_no",
"instructions": "Will the stock beat earnings next quarter?"
}
},
"actions": [
{
"id": "board_note",
"when": "soon >= 0.6",
"do": "email",
"connection": "board-observer",
"subject": "{{symbol}} reports within two weeks",
"message": "{{symbol}} ({{as_of}}) reports within 14 days. Beat 3 of last 4: {{beats|pct}}. EPS growth over 10%: {{eps_growth|pct}}. Before the open: {{bmo|pct}}."
}
],
"dry_run": true
}Response JSON (DAL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"soon": {
"yes_no": 0.0537,
"rule": "days_to_earnings <= 14",
"basis": "pattern"
},
"beats": {
"yes_no": 0.55,
"rule": "beats_last4 >= 3",
"basis": "pattern"
},
"streak": {
"yes_no": 0.0537,
"rule": "beat_streak >= 4",
"basis": "pattern"
},
"eps_growth": {
"yes_no": 0.1498,
"rule": "eps_growth_yoy > 10",
"basis": "rule"
},
"bmo": {
"yes_no": 0.8591,
"rule": "next_report_bmo > 0.5",
"basis": "pattern"
},
"beat_next": {
"yes_no": 0.496
}
},
"context": {
"symbol": "DAL",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "board_note",
"fired": false,
"status": "skipped"
}
]
}beat_streak beats_last4 days_to_earnings eps_growth_yoy next_report_bmo
Private equity · example 13
Travel sector recovery read: JETS, MAR, RCL
Before buying a travel services business, check whether listed travel names are recovering together.
- State3 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"JETS"} then MAR, RCL, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
hh_hl | rule | (swinghigh(3) > swinghigh(3, 2)) and (swinglow(3) > swinglow(3, 2))Higher swing highs and higher swing lows |
mom | rule | roc(C, 63) > 10 and C >= 0.95 * max(H, 63)Up more than 10% in a quarter, near the high |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | trendrule | hh_hlrule | momrule | rally5forecast |
|---|---|---|---|---|
JETS | 0.174 | 0.0729 | 0.0537 | 0.575 |
MAR | 0.9422 | 0.9308 | 0.7489 | 0.432 |
RCL | 0.8699 | 0.5339 | 0.1212 | 0.609 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 3 symbols: Is the stock above its 200-day moving average: true for MAR, RCL of 3. Higher swing highs and higher swing lows: true for MAR of 3. Up more than 10% in a quarter, near the high: true for MAR of 3. Highest odds for “A 5% rally within a month”: RCL at 61%.
Higher swing highs and lows across the group are a recovery signal; mixed answers suggest a name-specific story.
Request JSON (JETS; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "JETS"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"hh_hl": {
"type": "yes_no",
"ask": "(swinghigh(3) > swinghigh(3, 2)) and (swinglow(3) > swinglow(3, 2))"
},
"mom": {
"type": "yes_no",
"ask": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (JETS, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.174,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"hh_hl": {
"yes_no": 0.0729,
"rule": "(swinghigh(3) > swinghigh(3, 2)) and (swinglow(3) > swinglow(3, 2))",
"basis": "rule"
},
"mom": {
"yes_no": 0.0537,
"rule": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)",
"basis": "rule"
},
"rally5": {
"yes_no": 0.575
}
},
"context": {
"symbol": "JETS",
"as_of": "2026-10-30"
}
}Private equity · example 14
Selling an energy asset: is the oil tape supportive?
Timing the sale of an upstream asset: check crude and E&P equities for trend and momentum.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"USO"} then XOP, one request each. The server fills in the latest completed session.
Questions
trend | rule | C > sma(C, 50)Above the 50-day average |
ema_up | rule | ema(C, 20) > ema(C, 50)20-day EMA above the 50-day EMA |
macd | English → rule | Is the MACD line above its signal line? |
cross | rule | crossup(C, sma(C, 200))Crossed above the 200-day today |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | trendrule | ema_uprule | macdrule | crossrule | rally5forecast |
|---|---|---|---|---|---|
USO | 0.9434 | 0.9463 | 0.7902 | 0.05 | 0.658 |
XOP | 0.9204 | 0.9463 | 0.6153 | 0.05 | 0.506 |
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: Above the 50-day average: true for USO, XOP of 2. 20-day EMA above the 50-day EMA: true for USO, XOP of 2. Is the MACD line above its signal line: true for USO, XOP of 2. Crossed above the 200-day today: true for none of 2. Highest odds for “A 5% rally within a month”: USO at 66%.
Buyers pay more for energy assets in a rising oil tape; a sale process launched into weakness risks lower bids.
Request JSON (USO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "USO"
},
"questions": {
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"ema_up": {
"type": "yes_no",
"ask": "ema(C, 20) > ema(C, 50)"
},
"macd": {
"type": "yes_no",
"instructions": "Is the MACD line above its signal line?"
},
"cross": {
"type": "yes_no",
"ask": "crossup(C, sma(C, 200))"
},
"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": {
"trend": {
"yes_no": 0.9434,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"ema_up": {
"yes_no": 0.9463,
"rule": "ema(C, 20) > ema(C, 50)",
"basis": "rule"
},
"macd": {
"yes_no": 0.7902,
"rule": "macd(C) > macdsignal(C)",
"basis": "comparison"
},
"cross": {
"yes_no": 0.05,
"rule": "crossup(C, sma(C, 200))",
"basis": "rule"
},
"rally5": {
"yes_no": 0.658
}
},
"context": {
"symbol": "USO",
"as_of": "2026-10-30"
}
}Private equity · example 15
Volatility gate before launching a listing roadshow
Roadshows are pulled when markets get volatile; gate the launch on VXX and SPY volatility.
- State2 symbols
- Questions3 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"SPY"} then VXX, one request each. The server fills in the latest completed session.
Questions
atr_low | English → rule | Is the 14-day ATR less than 2% of the price? |
vol_up | English → rule | Is 5-day volatility higher than 20-day volatility? |
vol_rise | forecast | Will volatility rise over the next 5 days? Volatility rising over 5 days |
Answers
| Symbol | atr_lowrule | vol_uprule | vol_riseforecast | Fired |
|---|---|---|---|---|
SPY | 0.9463 | 0.8872 | 0.558 | hold |
VXX | 0.0537 | 0.923 | 0.254 | hold |
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.
atr_low >= 0.6 and vol_up < 0.5→Slackecm-dealelse→Slackecm-deal{
"text": "SPY (2026-10-30): volatility up (5-day over 20-day 89%). Hold the launch decision."
}{
"text": "VXX (2026-10-30): volatility up (5-day over 20-day 92%). Hold the launch decision."
}What it means
Session of 2026-10-30, 2 symbols: Is the 14-day ATR less than 2% of the price: true for SPY of 2. Is 5-day volatility higher than 20-day volatility: true for SPY, VXX of 2. Highest odds for “Volatility rising over 5 days”: SPY at 56%. go fired for none. hold fired for SPY, VXX.
The deal channel gets a go or hold note per instrument; the bankers make the call with that context.
Request JSON (SPY; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SPY"
},
"questions": {
"atr_low": {
"type": "yes_no",
"instructions": "Is the 14-day ATR less than 2% of the price?"
},
"vol_up": {
"type": "yes_no",
"instructions": "Is 5-day volatility higher than 20-day volatility?"
},
"vol_rise": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
}
},
"actions": [
{
"id": "go",
"when": "atr_low >= 0.6 and vol_up < 0.5",
"do": "slack",
"connection": "ecm-deal",
"message": "{{symbol}} ({{as_of}}): calm tape (ATR under 2% {{atr_low|pct}}). Volatility rising next 5 days {{vol_rise|pct}}."
},
{
"id": "hold",
"when": "else",
"do": "slack",
"connection": "ecm-deal",
"message": "{{symbol}} ({{as_of}}): volatility up (5-day over 20-day {{vol_up|pct}}). Hold the launch decision."
}
],
"dry_run": true
}Response JSON (SPY, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"atr_low": {
"yes_no": 0.9463,
"rule": "atr(14) / C < 0.02",
"basis": "pattern"
},
"vol_up": {
"yes_no": 0.8872,
"rule": "std(log(C / C[-1]), 5) * sqrt(5 / 4) > std(log(C / C[-1]), 20) * sqrt(20 / 19)",
"basis": "pattern"
},
"vol_rise": {
"yes_no": 0.558
}
},
"context": {
"symbol": "SPY",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "go",
"fired": false,
"status": "skipped"
},
{
"id": "hold",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "ecm-deal",
"preview": {
"text": "SPY (2026-10-30): volatility up (5-day over 20-day 89%). Hold the launch decision."
}
}
]
}Private equity · example 16
Dividend recap comps: do listed peers pay and grow?
A dividend recapitalization is easier to justify when listed peers return cash; check payout facts for consumer staples comps.
- State3 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"CL"} then KMB, GIS, one request each. The server fills in the latest completed session.
Questions
pays | rule | pays_dividend > 0.5Pays a dividend |
grower | rule | years_of_growth >= 10Ten years of dividend growth |
yield | English → rule | Is the dividend yield above 3%? |
raised | rule | raised_last > 0.5Raised its last dividend |
Answers
| Symbol | paysrule | growerrule | yieldrule | raisedrule |
|---|---|---|---|---|
CL | 0.8591 | 0.9463 | 0.0537 | 0.1409 |
KMB | 0.8591 | 0.9463 | 0.9463 | 0.1409 |
GIS | 0.8591 | 0.0537 | 0.9463 | 0.1409 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 3 symbols: Pays a dividend: true for CL, KMB, GIS of 3. Ten years of dividend growth: true for CL, KMB of 3. Is the dividend yield above 3%: true for KMB, GIS of 3. Raised its last dividend: true for none of 3.
Peers with long growth records support a payout-heavy capital structure in the model.
Request JSON (CL; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "CL"
},
"questions": {
"pays": {
"type": "yes_no",
"ask": "pays_dividend > 0.5"
},
"grower": {
"type": "yes_no",
"ask": "years_of_growth >= 10"
},
"yield": {
"type": "yes_no",
"instructions": "Is the dividend yield above 3%?"
},
"raised": {
"type": "yes_no",
"ask": "raised_last > 0.5"
}
}
}Response JSON (CL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"pays": {
"yes_no": 0.8591,
"rule": "pays_dividend > 0.5",
"basis": "rule"
},
"grower": {
"yes_no": 0.9463,
"rule": "years_of_growth >= 10",
"basis": "rule"
},
"yield": {
"yes_no": 0.0537,
"rule": "div_yield_ttm > 3",
"basis": "pattern"
},
"raised": {
"yes_no": 0.1409,
"rule": "raised_last > 0.5",
"basis": "rule"
}
},
"context": {
"symbol": "CL",
"as_of": "2026-10-30"
}
}Private equity · example 17
Chemicals cycle: DOW and LYB near cycle lows?
Buying a chemicals business near the bottom of the cycle: check how far the listed comps are from their highs and whether selling is exhausting.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"DOW"} then LYB, one request each. The server fills in the latest completed session.
Questions
dd | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
since_low | rule | barssince(L < lowest(L, 60)) > 20No new 60-day low for more than 20 sessions |
hammer | rule | hammer()hammer candle: Lower wick at least twice the body, upper wick at most 10% of the range, closing below the close five bars back. |
doji | rule | dragonfly_doji()dragonfly doji candle: Doji with a long lower wick (60%+ of the range) and almost no upper wick. |
rally10 | forecast | Will it rally at least 10% at some point in the next month? A 10% rally within a month |
Answers
| Symbol | ddrule | since_lowrule | hammerrule | dojirule | rally10forecast |
|---|---|---|---|---|---|
DOW | 0.1985 | 0.5361 | 0.0583 | 0.0558 | 0.613 |
LYB | 0.144 | 0.9463 | 0.0826 | 0.0545 | 0.594 |
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: More than 20% off the 52-week high: true for none of 2. No new 60-day low for more than 20 sessions: true for LYB of 2. hammer candle: Lower wick at least twice the body, upper wick at most 10% of the range, closing below the close five bars back.: true for none of 2. dragonfly doji candle: Doji with a long lower wick (60%+ of the range) and almost no upper wick.: true for none of 2. Highest odds for “A 10% rally within a month”: DOW at 61%.
Comps far off their highs that have stopped making new lows are the setup a cyclical buyer looks for.
Request JSON (DOW; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "DOW"
},
"questions": {
"dd": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"since_low": {
"type": "yes_no",
"ask": "barssince(L < lowest(L, 60)) > 20"
},
"hammer": {
"type": "yes_no",
"ask": "hammer()"
},
"doji": {
"type": "yes_no",
"ask": "dragonfly_doji()"
},
"rally10": {
"type": "yes_no",
"instructions": "Will it rally at least 10% at some point in the next month?"
}
}
}Response JSON (DOW, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"dd": {
"yes_no": 0.1985,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"since_low": {
"yes_no": 0.5361,
"rule": "barssince(L < lowest(L, 60)) > 20",
"basis": "rule"
},
"hammer": {
"yes_no": 0.0583,
"rule": "hammer()",
"basis": "rule"
},
"doji": {
"yes_no": 0.0558,
"rule": "dragonfly_doji()",
"basis": "rule"
},
"rally10": {
"yes_no": 0.613
}
},
"context": {
"symbol": "DOW",
"as_of": "2026-10-30"
}
}Private equity · example 18
Real estate exit read: REIT trend and yield
For a real estate exit, read REIT pricing (VNQ, PLD, O) as a public proxy for cap rates.
- State3 symbols
- Questions3 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"VNQ"} then PLD, O, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
yield | English → rule | Is the dividend yield above 3%? |
mom | rule | C > C[-63]Higher than three months ago |
Answers
| Symbol | trendrule | yieldrule | momrule |
|---|---|---|---|
VNQ | 0.6285 | 0.8893 | 0.1417 |
PLD | 0.1012 | 0.7763 | 0.0631 |
O | 0.1427 | 0.9463 | 0.1066 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 3 symbols: Is the stock above its 200-day moving average: true for VNQ of 3. Is the dividend yield above 3%: true for VNQ, PLD, O of 3. Higher than three months ago: true for none of 3.
Rising REIT prices usually mean falling implied cap rates, which supports exit valuations for private real estate.
Request JSON (VNQ; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VNQ"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"yield": {
"type": "yes_no",
"instructions": "Is the dividend yield above 3%?"
},
"mom": {
"type": "yes_no",
"ask": "C > C[-63]"
}
}
}Response JSON (VNQ, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.6285,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"yield": {
"yes_no": 0.8893,
"rule": "div_yield_ttm > 3",
"basis": "pattern"
},
"mom": {
"yes_no": 0.1417,
"rule": "C > C[-63]",
"basis": "rule"
}
},
"context": {
"symbol": "VNQ",
"as_of": "2026-10-30"
}
}Private equity · example 19
Semiconductor comps structure for a chip deal
Check swing structure and momentum in SOXX and two large chip names before a semiconductor transaction.
- State3 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"SOXX"} then TXN, QCOM, one request each. The server fills in the latest completed session.
Questions
hh | rule | swinghigh(5, 1) > swinghigh(5, 2)Higher swing high |
hl | rule | swinglow(5, 1) > swinglow(5, 2)Higher swing low |
rsi | rule | rsi(C, 14) > 50RSI above 50 |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | hhrule | hlrule | rsirule | beat_spyforecast |
|---|---|---|---|---|
SOXX | 0.8805 | 0.1417 | 0.095 | 0.533 |
TXN | 0.8927 | 0.9457 | 0.8708 | 0.513 |
QCOM | 0.8818 | 0.8394 | 0.1044 | 0.506 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 3 symbols: Higher swing high: true for SOXX, TXN, QCOM of 3. Higher swing low: true for TXN, QCOM of 3. RSI above 50: true for TXN of 3. Highest odds for “Beating SPY over a month”: SOXX at 53%.
Higher highs and lows in the group support a richer exit case; lower ones push the model toward the downside.
Request JSON (SOXX; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SOXX"
},
"questions": {
"hh": {
"type": "yes_no",
"ask": "swinghigh(5, 1) > swinghigh(5, 2)"
},
"hl": {
"type": "yes_no",
"ask": "swinglow(5, 1) > swinglow(5, 2)"
},
"rsi": {
"type": "yes_no",
"ask": "rsi(C, 14) > 50"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
}
}Response JSON (SOXX, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"hh": {
"yes_no": 0.8805,
"rule": "swinghigh(5, 1) > swinghigh(5, 2)",
"basis": "rule"
},
"hl": {
"yes_no": 0.1417,
"rule": "swinglow(5, 1) > swinglow(5, 2)",
"basis": "rule"
},
"rsi": {
"yes_no": 0.095,
"rule": "rsi(C, 14) > 50",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.533
}
},
"context": {
"symbol": "SOXX",
"as_of": "2026-10-30"
}
}Private equity · example 20
Morning tape for the deal team
Every Monday before the deal meeting, a short read on the broad market, small caps and credit.
- ScheduleMon at 08:30 ET
- State3 symbols
- Questions3 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"SPY"} then IWM, HYG, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | trendrule | drop5forecast | up_weekforecast | Fired |
|---|---|---|---|---|
SPY | 0.9451 | 0.203 | 0.598 | tape |
IWM | 0.5564 | 0.234 | 0.526 | tape |
HYG | 0.1909 | 0.009 | 0.499 | tape |
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.
trend >= 0→Slackdeal-team{
"text": "SPY (2026-10-30): above 200-day 95%, higher in a week 60%, 5% drawdown odds 20%."
}{
"text": "IWM (2026-10-30): above 200-day 56%, higher in a week 53%, 5% drawdown odds 23%."
}{
"text": "HYG (2026-10-30): above 200-day 19%, higher in a week 50%, 5% drawdown odds 1%."
}What it means
Session of 2026-10-30, 3 symbols: Is the stock above its 200-day moving average: true for SPY of 3. Highest odds for “A 5% drawdown within a month”: IWM at 23%. tape fired for SPY, IWM, HYG.
The Monday post gives the deal meeting a common, sourced market backdrop in three lines.
As a scheduled workflow (Mon at 08:30 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": "Morning tape for the deal team",
"symbols": "SPY IWM HYG",
"days": [
1
],
"at_time": "08:30",
"model": "ora-fin-0.1.1",
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "tape",
"when": "trend >= 0",
"do": "slack",
"connection": "deal-team",
"message": "{{symbol}} ({{as_of}}): above 200-day {{trend|pct}}, higher in a week {{up_week|pct}}, 5% drawdown odds {{drop5|pct}}."
}
]
}Request JSON (SPY; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SPY"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "tape",
"when": "trend >= 0",
"do": "slack",
"connection": "deal-team",
"message": "{{symbol}} ({{as_of}}): above 200-day {{trend|pct}}, higher in a week {{up_week|pct}}, 5% drawdown odds {{drop5|pct}}."
}
],
"dry_run": true
}Response JSON (SPY, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.9451,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"drop5": {
"yes_no": 0.203
},
"up_week": {
"yes_no": 0.598
}
},
"context": {
"symbol": "SPY",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "tape",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "deal-team",
"preview": {
"text": "SPY (2026-10-30): above 200-day 95%, higher in a week 60%, 5% drawdown odds 20%."
}
}
]
}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 Buy side: Financial advisor / RIA, Wealth manager, Family office, Hedge fund PM, Quant researcher, Portfolio manager (long-only), Risk manager, VC / growth investor, Fund-of-funds allocator.