Use cases · Individuals
Long-term passive investor: 20 ways to use Ora
Index funds and a few core holdings: rebalancing triggers, drawdowns and staying the course. 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 (15)
sma 17offset 12max 11log 4sqrt 4std 4ref 3rsi 3roc 2atr 2bblower 1bbupper 1ema 1highest 1linreg 1
Examples 11–20 of 20 · page 2 of 2
Long-term passive investor · example 11
Small-cap sleeve: IWM, IJR, VB trend and drawdown
Small caps lag and lead in cycles; check them as a group.
- State3 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"IWM"} then IJR, VB, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
drawdown | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
golden | rule | sma(C, 50) > sma(C, 200)50-day above the 200-day |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | trendrule | drawdownrule | goldenrule | rally5forecast |
|---|---|---|---|---|
IWM | 0.5564 | 0.0537 | 0.8318 | 0.285 |
IJR | 0.7856 | 0.0537 | 0.8644 | 0.248 |
VB | 0.7481 | 0.0537 | 0.8951 | 0.262 |
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 IJR, VB of 3. More than 20% off the 52-week high: true for none of 3. 50-day above the 200-day: true for IWM, IJR, VB of 3. Highest odds for “A 5% rally within a month”: IWM at 28%.
Below trend with a drawdown, the sleeve is under target and gets topped up at the rebalance.
Request JSON (IWM; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "IWM"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"golden": {
"type": "yes_no",
"ask": "sma(C, 50) > sma(C, 200)"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (IWM, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.5564,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"drawdown": {
"yes_no": 0.0537,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"golden": {
"yes_no": 0.8318,
"rule": "sma(C, 50) > sma(C, 200)",
"basis": "rule"
},
"rally5": {
"yes_no": 0.285
}
},
"context": {
"symbol": "IWM",
"as_of": "2026-10-30"
}
}Long-term passive investor · example 12
Factor ETFs: QUAL, MTUM, VLUE, USMV
Which factor sleeves are in trend this quarter.
- State4 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"QUAL"} then MTUM, VLUE, USMV, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
roc | rule | roc(C, 20) > 5Up more than 5% in 20 sessions |
drawdown | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | trendrule | rocrule | drawdownrule | beat_spyforecast |
|---|---|---|---|---|
QUAL | 0.9463 | 0.0554 | 0.0537 | 0.495 |
MTUM | 0.2691 | 0.0537 | 0.1679 | 0.486 |
VLUE | 0.9291 | 0.058 | 0.0537 | 0.512 |
USMV | 0.9463 | 0.4568 | 0.0537 | 0.427 |
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 the stock above its 200-day moving average: true for QUAL, VLUE, USMV of 4. Up more than 5% in 20 sessions: true for none of 4. More than 20% off the 52-week high: true for none of 4. Highest odds for “Beating SPY over a month”: VLUE at 51%.
The passive investor keeps fixed factor weights; the read only explains the quarter's performance.
Request JSON (QUAL; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "QUAL"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"roc": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
}
}Response JSON (QUAL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.9463,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"roc": {
"yes_no": 0.0554,
"rule": "roc(C, 20) > 5",
"basis": "rule"
},
"drawdown": {
"yes_no": 0.0537,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.495
}
},
"context": {
"symbol": "QUAL",
"as_of": "2026-10-30"
}
}Long-term passive investor · example 13
Gold as a diversifier: GLD trend
Is the gold sleeve doing its job?
- StateGLD
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"GLD"} The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
new_high | English → rule | Did the stock make a new 52-week high today? |
ext | English → rule | Is the stock more than 10% above its 200-day moving average? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
trendIs the stock above its 200-day moving average compiled to C > sma(C, 200) | 0.0537 | false |
new_highDid the stock make a new 52-week high today compiled to H > highest(H, 252) | 0.0537 | false |
extIs the stock more than 10% above its 200-day moving average compiled to C > sma(C, 200) * 1.1 | 0.0537 | false |
up_weekHigher in a week | 0.566 | 57% · close to even |
Actions
Rules on the answers decide what to send.
ext >= 0.6→Slackfamily-financeWhat it means
For GLD on the session of 2026-10-30: Not true: Is the stock above its 200-day moving average; Did the stock make a new 52-week high today; Is the stock more than 10% above its 200-day moving average. Forecasts: Higher in a week 57%. No action fired: every rule was false.
Gold far above its 200-day has grown beyond its target weight; trimming it back is the rebalance.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "GLD"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"new_high": {
"type": "yes_no",
"instructions": "Did the stock make a new 52-week high today?"
},
"ext": {
"type": "yes_no",
"instructions": "Is the stock more than 10% above its 200-day moving average?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "trim_gold",
"when": "ext >= 0.6",
"do": "slack",
"connection": "family-finance",
"message": "{{symbol}} ({{as_of}}) is more than 10% above its 200-day ({{ext|pct}}); the gold sleeve may be over target."
}
],
"dry_run": true
}Response JSON (GLD, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.0537,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"new_high": {
"yes_no": 0.0537,
"rule": "H > highest(H, 252)",
"basis": "pattern"
},
"ext": {
"yes_no": 0.0537,
"rule": "C > sma(C, 200) * 1.1",
"basis": "comparison"
},
"up_week": {
"yes_no": 0.566
}
},
"context": {
"symbol": "GLD",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "trim_gold",
"fired": false,
"status": "skipped"
}
]
}Long-term passive investor · example 14
Friday contribution check for a three-fund plan
On contribution days, check each fund and post one note so purchases follow the plan.
- ScheduleFri at 12:00 ET
- State3 symbols
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"VTI"} then VXUS, BND, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
drawdown | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
rsi_ob | rule | rsi(C, 14) > 70RSI above 70 |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
Answers
| Symbol | trendrule | drawdownrule | rsi_obrule | drop5forecast | Fired |
|---|---|---|---|---|---|
VTI | 0.9415 | 0.0537 | 0.0537 | 0.187 | none |
VXUS | 0.3255 | 0.0537 | 0.0537 | 0.233 | none |
BND | 0.2013 | 0.0537 | 0.2726 | 0.007 | 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.
drawdown >= 0.6 or rsi_ob >= 0.6→Slackfamily-financeWhat it means
Session of 2026-10-30, 3 symbols: Is the stock above its 200-day moving average: true for VTI of 3. More than 20% off the 52-week high: true for none of 3. RSI above 70: true for none of 3. Highest odds for “A 5% drawdown within a month”: VXUS at 23%. note fired for none.
Every fund gets bought on schedule; the note only says which one is furthest below its high.
As a scheduled workflow (Fri at 12:00 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": "Friday contribution check for a three-fund plan",
"symbols": "VTI VXUS BND",
"days": [
5
],
"at_time": "12:00",
"model": "ora-fin-0.1.1",
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"rsi_ob": {
"type": "yes_no",
"ask": "rsi(C, 14) > 70"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "note",
"when": "drawdown >= 0.6 or rsi_ob >= 0.6",
"do": "slack",
"connection": "family-finance",
"message": "{{symbol}} ({{as_of}}): 20% drawdown {{drawdown|pct}}, overbought {{rsi_ob|pct}}. Contribution goes in as planned."
}
]
}Request JSON (VTI; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VTI"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"rsi_ob": {
"type": "yes_no",
"ask": "rsi(C, 14) > 70"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "note",
"when": "drawdown >= 0.6 or rsi_ob >= 0.6",
"do": "slack",
"connection": "family-finance",
"message": "{{symbol}} ({{as_of}}): 20% drawdown {{drawdown|pct}}, overbought {{rsi_ob|pct}}. Contribution goes in as planned."
}
],
"dry_run": true
}Response JSON (VTI, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.9415,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"drawdown": {
"yes_no": 0.0537,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"rsi_ob": {
"yes_no": 0.0537,
"rule": "rsi(C, 14) > 70",
"basis": "rule"
},
"drop5": {
"yes_no": 0.187
}
},
"context": {
"symbol": "VTI",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "note",
"fired": false,
"status": "skipped"
}
]
}Long-term passive investor · example 15
Cash-like funds: SGOV and BIL steady
The emergency fund sits in Treasury bills; confirm they are behaving like cash.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"SGOV"} then BIL, one request each. The server fills in the latest completed session.
Questions
calm | English → rule | Is 20-day historical volatility below 20%? |
up_year | rule | C > C[-252]Higher than a year ago |
atr_low | English → rule | Is the 14-day ATR less than 2% of the price? |
down_week | forecast | Will the stock be lower in a week? Lower in a week |
Answers
| Symbol | calmrule | up_yearrule | atr_lowrule | down_weekforecast |
|---|---|---|---|---|
SGOV | 0.9463 | 0.9463 | 0.9463 | 0.513 |
BIL | 0.9463 | 0.9463 | 0.9463 | 0.533 |
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 20-day historical volatility below 20%: true for SGOV, BIL of 2. Higher than a year ago: true for SGOV, BIL of 2. Is the 14-day ATR less than 2% of the price: true for SGOV, BIL of 2. Highest odds for “Lower in a week”: BIL at 53%.
Calm, rising bill funds are cash doing its job; anything else is worth a look at what the fund holds.
Request JSON (SGOV; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SGOV"
},
"questions": {
"calm": {
"type": "yes_no",
"instructions": "Is 20-day historical volatility below 20%?"
},
"up_year": {
"type": "yes_no",
"ask": "C > C[-252]"
},
"atr_low": {
"type": "yes_no",
"instructions": "Is the 14-day ATR less than 2% of the price?"
},
"down_week": {
"type": "yes_no",
"instructions": "Will the stock be lower in a week?"
}
}
}Response JSON (SGOV, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"calm": {
"yes_no": 0.9463,
"rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) < 0.2",
"basis": "pattern"
},
"up_year": {
"yes_no": 0.9463,
"rule": "C > C[-252]",
"basis": "rule"
},
"atr_low": {
"yes_no": 0.9463,
"rule": "atr(14) / C < 0.02",
"basis": "pattern"
},
"down_week": {
"yes_no": 0.513
}
},
"context": {
"symbol": "SGOV",
"as_of": "2026-10-30"
}
}Long-term passive investor · example 16
Long-term signal: golden cross on VTI
A slow signal for a slow investor: the 50-day over the 200-day.
- StateVTI
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"VTI"} The server fills in the latest completed session.
Questions
golden | rule | sma(C, 50) > sma(C, 200)50-day above the 200-day |
cross | English → rule | Did a golden cross happen today? |
sma200 | rule | sma(C, 200) > ref(sma(C, 200), -20)The 200-day average is rising |
linreg | rule | linreg(C, 100) > ref(linreg(C, 100), -20)100-day regression line rising over a month |
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 |
|---|---|---|
golden50-day above the 200-day | 0.9463 | true |
crossDid a golden cross happen today compiled to (sma(C, 50) > sma(C, 200)) and (ref(sma(C, 50), -1) <= ref(sma(C, 200), -1)) | 0.0537 | false |
sma200The 200-day average is rising | 0.9463 | true |
linreg100-day regression line rising over a month | 0.7637 | true |
drop5A 5% drawdown within a month | 0.187 | 19% · unlikely |
What it means
For VTI on the session of 2026-10-30: True now: 50-day above the 200-day; The 200-day average is rising; 100-day regression line rising over a month. Not true: Did a golden cross happen today. Forecasts: A 5% drawdown within a month 19%.
A golden alignment with a rising 200-day confirms the long trend; it changes nothing in a fixed plan.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VTI"
},
"questions": {
"golden": {
"type": "yes_no",
"ask": "sma(C, 50) > sma(C, 200)"
},
"cross": {
"type": "yes_no",
"instructions": "Did a golden cross happen today?"
},
"sma200": {
"type": "yes_no",
"ask": "sma(C, 200) > ref(sma(C, 200), -20)"
},
"linreg": {
"type": "yes_no",
"ask": "linreg(C, 100) > ref(linreg(C, 100), -20)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (VTI, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"golden": {
"yes_no": 0.9463,
"rule": "sma(C, 50) > sma(C, 200)",
"basis": "rule"
},
"cross": {
"yes_no": 0.0537,
"rule": "(sma(C, 50) > sma(C, 200)) and (ref(sma(C, 50), -1) <= ref(sma(C, 200), -1))",
"basis": "pattern"
},
"sma200": {
"yes_no": 0.9463,
"rule": "sma(C, 200) > ref(sma(C, 200), -20)",
"basis": "rule"
},
"linreg": {
"yes_no": 0.7637,
"rule": "linreg(C, 100) > ref(linreg(C, 100), -20)",
"basis": "rule"
},
"drop5": {
"yes_no": 0.187
}
},
"context": {
"symbol": "VTI",
"as_of": "2026-10-30"
}
}Long-term passive investor · example 17
Dollar strength and international funds: UUP and VXUS
A rising dollar weighs on unhedged international returns; check both.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"UUP"} then VXUS, one request each. The server fills in the latest completed session.
Questions
trend | rule | C > sma(C, 50)Above the 50-day average |
three_m | rule | C > C[-63]Higher than three months ago |
rsi50 | rule | rsi(C, 14) > 50RSI above 50 |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | trendrule | three_mrule | rsi50rule | up_weekforecast |
|---|---|---|---|---|
UUP | 0.8725 | 0.9463 | 0.7635 | 0.561 |
VXUS | 0.0851 | 0.0958 | 0.0926 | 0.587 |
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 UUP of 2. Higher than three months ago: true for UUP of 2. RSI above 50: true for UUP of 2. Highest odds for “Higher in a week”: VXUS at 59%.
A strong dollar explains weak international returns; the investor keeps the allocation and rebalances.
Request JSON (UUP; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "UUP"
},
"questions": {
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"three_m": {
"type": "yes_no",
"ask": "C > C[-63]"
},
"rsi50": {
"type": "yes_no",
"ask": "rsi(C, 14) > 50"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (UUP, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.8725,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"three_m": {
"yes_no": 0.9463,
"rule": "C > C[-63]",
"basis": "rule"
},
"rsi50": {
"yes_no": 0.7635,
"rule": "rsi(C, 14) > 50",
"basis": "rule"
},
"up_week": {
"yes_no": 0.561
}
},
"context": {
"symbol": "UUP",
"as_of": "2026-10-30"
}
}Long-term passive investor · example 18
Municipal bond sleeve: MUB and VTEB
Tax-free bond funds: calm, trending and not in a drawdown.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MUB"} then VTEB, one request each. The server fills in the latest completed session.
Questions
trend | rule | C > sma(C, 50)Above the 50-day average |
hv | English → rule | Is 20-day historical volatility below 20%? |
drawdown | rule | C < 0.95 * max(H, 252)More than 5% below its 52-week high |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | trendrule | hvrule | drawdownrule | up_weekforecast |
|---|---|---|---|---|
MUB | 0.8666 | 0.9463 | 0.0885 | 0.588 |
VTEB | 0.8783 | 0.9463 | 0.1003 | 0.561 |
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 MUB, VTEB of 2. Is 20-day historical volatility below 20%: true for MUB, VTEB of 2. More than 5% below its 52-week high: true for none of 2. Highest odds for “Higher in a week”: MUB at 59%.
Calm munis need nothing; a five percent drawdown is unusual for this sleeve and worth understanding.
Request JSON (MUB; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MUB"
},
"questions": {
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"hv": {
"type": "yes_no",
"instructions": "Is 20-day historical volatility below 20%?"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.95 * max(H, 252)"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (MUB, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.8666,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"hv": {
"yes_no": 0.9463,
"rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) < 0.2",
"basis": "pattern"
},
"drawdown": {
"yes_no": 0.0885,
"rule": "C < 0.95 * max(H, 252)",
"basis": "rule"
},
"up_week": {
"yes_no": 0.588
}
},
"context": {
"symbol": "MUB",
"as_of": "2026-10-30"
}
}Long-term passive investor · example 19
Annual portfolio review note to the family (Teams)
Once a year, post a one-line state of each core fund to the family channel.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"VOO"} then BND, one request each. The server fills in the latest completed session.
Questions
year | rule | C > C[-252]Higher than a year ago |
trend | English → rule | Is the stock above its 200-day moving average? |
drawdown | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | yearrule | trendrule | drawdownrule | beat_spyforecast | Fired |
|---|---|---|---|---|---|
VOO | 0.9463 | 0.9463 | 0.0537 | 0.512 | teams |
BND | 0.2986 | 0.2013 | 0.0537 | 0.279 | teams |
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.
year >= 0→Webhookfamily-teams{
"text": "VOO (2026-10-30): higher than a year ago 95%, above the 200-day 95%, in a 20% drawdown 5%."
}{
"text": "BND (2026-10-30): higher than a year ago 30%, above the 200-day 20%, in a 20% drawdown 5%."
}What it means
Session of 2026-10-30, 2 symbols: Higher than a year ago: true for VOO of 2. Is the stock above its 200-day moving average: true for VOO of 2. More than 20% off the 52-week high: true for none of 2. Highest odds for “Beating SPY over a month”: VOO at 51%. teams fired for VOO, BND.
The note is a record, not a trade signal.
Request JSON (VOO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VOO"
},
"questions": {
"year": {
"type": "yes_no",
"ask": "C > C[-252]"
},
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drawdown": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
},
"actions": [
{
"id": "teams",
"when": "year >= 0",
"do": "webhook",
"connection": "family-teams",
"body": {
"text": "{{symbol}} ({{as_of}}): higher than a year ago {{year|pct}}, above the 200-day {{trend|pct}}, in a 20% drawdown {{drawdown|pct}}."
}
}
],
"dry_run": true
}Response JSON (VOO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"year": {
"yes_no": 0.9463,
"rule": "C > C[-252]",
"basis": "rule"
},
"trend": {
"yes_no": 0.9463,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"drawdown": {
"yes_no": 0.0537,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.512
}
},
"context": {
"symbol": "VOO",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "teams",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "family-teams",
"preview": {
"body": {
"text": "VOO (2026-10-30): higher than a year ago 95%, above the 200-day 95%, in a 20% drawdown 5%."
}
}
}
]
}Long-term passive investor · example 20
Is the index too concentrated in tech: XLK vs SPY
When technology runs far ahead, a cap-weighted index concentrates; check it.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"XLK"} then SPY, one request each. The server fills in the latest completed session.
Questions
ext | English → rule | Is the stock more than 10% above its 200-day moving average? |
three_m | rule | C > C[-63]Higher than three months ago |
near_high | rule | C >= 0.98 * max(H, 252)Within 2% of the 52-week high |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | extrule | three_mrule | near_highrule | beat_spyforecast |
|---|---|---|---|---|
XLK | 0.1261 | 0.6105 | 0.0537 | 0.498 |
SPY | 0.0537 | 0.3809 | 0.0834 | 0.514 |
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 more than 10% above its 200-day moving average: true for none of 2. Higher than three months ago: true for XLK of 2. Within 2% of the 52-week high: true for none of 2. Highest odds for “Beating SPY over a month”: SPY at 51%.
Tech far above its average shows concentration risk; a passive investor may add an equal-weight sleeve rather than trade.
Request JSON (XLK; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "XLK"
},
"questions": {
"ext": {
"type": "yes_no",
"instructions": "Is the stock more than 10% above its 200-day moving average?"
},
"three_m": {
"type": "yes_no",
"ask": "C > C[-63]"
},
"near_high": {
"type": "yes_no",
"ask": "C >= 0.98 * max(H, 252)"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
}
}Response JSON (XLK, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"ext": {
"yes_no": 0.1261,
"rule": "C > sma(C, 200) * 1.1",
"basis": "comparison"
},
"three_m": {
"yes_no": 0.6105,
"rule": "C > C[-63]",
"basis": "rule"
},
"near_high": {
"yes_no": 0.0537,
"rule": "C >= 0.98 * max(H, 252)",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.498
}
},
"context": {
"symbol": "XLK",
"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 Individuals: Retail investor, Active day trader, Swing trader, Options trader, Dividend investor, Crypto trader, FX trader, Commodities trader, Social trading community, Students and universities.