Use cases · Individuals
Dividend investor: 20 ways to use Ora
Builds income: yield, growth streaks, ex-dates, cuts and the price trend under the payout. Each example is a complete, runnable request with the real answers it returned (47 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 (35)
div_yield_ttm 14sma 11raised_last 8years_of_growth 5cut_last 5max 5div_count_ttm 3div_change_pct 3days_to_ex_div 2rsi 2beat_eps_last 2miss_eps_last 1last_div_amount 1next_div_amount 1days_since_ex_div 1zscore 1ref 1eps_year_ago 1last_eps 1revenue_growth_yoy 1adx 1div_ttm 1pays_dividend 1roc 1atr 1bbmid 1log 1offset 1sqrt 1std 1hammer 1inverted_hammer 1lowest 1tweezer_bottom 1median 1
Examples 11–20 of 20 · page 2 of 2
Dividend investor · example 11
Is the 'cut' at XOM really a special dividend
A special followed by a regular payment reads as a cut; compare the amounts before acting.
- StateXOM
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"XOM"} The server fills in the latest completed session.
Questions
cut | English → rule | Did the stock cut its dividend last time? |
change | rule | div_change_pct < 0Last payment below the previous one |
count | rule | div_count_ttm >= 4Four or more ex-dates in the past year |
ttm2 | English → rule | Has the stock paid more than $2 per share in dividends over the past year? |
Answers
| Question | Answer | Reading |
|---|---|---|
cutDid the stock cut its dividend last time compiled to cut_last > 0.5 | 0.1409 | false |
changeLast payment below the previous one | 0.45 | on the line (false) |
countFour or more ex-dates in the past year | 0.55 | on the line (true) |
ttm2Has the stock paid more than $2 per share in dividends over the past year compiled to div_ttm > 2 | 0.9463 | true |
What it means
For XOM on the session of 2026-10-30: True now: Has the stock paid more than $2 per share in dividends over the past year. Not true: Did the stock cut its dividend last time. On the line: Last payment below the previous one; Four or more ex-dates in the past year.
If four or more payments came in a year and the trailing total is steady, a one-off cut flag is the special payment rolling off.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "XOM"
},
"questions": {
"cut": {
"type": "yes_no",
"instructions": "Did the stock cut its dividend last time?"
},
"change": {
"type": "yes_no",
"ask": "div_change_pct < 0"
},
"count": {
"type": "yes_no",
"ask": "div_count_ttm >= 4"
},
"ttm2": {
"type": "yes_no",
"instructions": "Has the stock paid more than $2 per share in dividends over the past year?"
}
}
}Response JSON (XOM, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"cut": {
"yes_no": 0.1409,
"rule": "cut_last > 0.5",
"basis": "pattern"
},
"change": {
"yes_no": 0.45,
"rule": "div_change_pct < 0",
"basis": "rule"
},
"count": {
"yes_no": 0.55,
"rule": "div_count_ttm >= 4",
"basis": "rule"
},
"ttm2": {
"yes_no": 0.9463,
"rule": "div_ttm > 2",
"basis": "pattern"
}
},
"context": {
"symbol": "XOM",
"as_of": "2026-10-30"
}
}Dividend investor · example 12
Email me three days before PG's ex-dividend
Buy before the ex-date to get the payment; a reminder arrives when the date is close.
- StatePG
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"PG"} The server fills in the latest completed session.
Questions
ex3 | rule | days_to_ex_div <= 3Declared ex-date within 3 days |
ex_soon | rule | days_to_ex_div <= 30Goes ex-dividend within 30 days |
trend | rule | C > sma(C, 50)Above the 50-day average |
pays | rule | pays_dividend > 0.5Pays a dividend |
Answers
| Question | Answer | Reading |
|---|---|---|
ex3Declared ex-date within 3 days | 0.0537 | false |
ex_soonGoes ex-dividend within 30 days | 0.0537 | false |
trendAbove the 50-day average | 0.9375 | true |
paysPays a dividend | 0.8591 | true |
Actions
Rules on the answers decide what to send.
ex3 >= 0.6→EmailmeWhat it means
For PG on the session of 2026-10-30: True now: Above the 50-day average; Pays a dividend. Not true: Declared ex-date within 3 days; Goes ex-dividend within 30 days. No action fired: every rule was false.
The reminder only fires inside three days of a declared ex-date.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "PG"
},
"questions": {
"ex3": {
"type": "yes_no",
"ask": "days_to_ex_div <= 3"
},
"ex_soon": {
"type": "yes_no",
"ask": "days_to_ex_div <= 30"
},
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"pays": {
"type": "yes_no",
"ask": "pays_dividend > 0.5"
}
},
"actions": [
{
"id": "ex_reminder",
"when": "ex3 >= 0.6",
"do": "email",
"connection": "me",
"subject": "{{symbol}} goes ex-dividend within 3 days",
"message": "{{symbol}} ({{as_of}}): buy before the ex-date to receive the next payment. Above the 50-day: {{trend|pct}}."
}
],
"dry_run": true
}Response JSON (PG, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"ex3": {
"yes_no": 0.0537,
"rule": "days_to_ex_div <= 3",
"basis": "rule"
},
"ex_soon": {
"yes_no": 0.0537,
"rule": "days_to_ex_div <= 30",
"basis": "rule"
},
"trend": {
"yes_no": 0.9375,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"pays": {
"yes_no": 0.8591,
"rule": "pays_dividend > 0.5",
"basis": "rule"
}
},
"context": {
"symbol": "PG",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "ex_reminder",
"fired": false,
"status": "skipped"
}
]
}Dividend investor · example 13
Dividend growth with price momentum: MSFT, HD, COST, UNH
Dividend growers that are also price leaders: the payout grows and so does the stock.
- State4 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MSFT"} then HD, COST, UNH, one request each. The server fills in the latest completed session.
Questions
raised | rule | raised_last > 0.5Raised its last dividend |
raise5 | English → rule | Was the last dividend raised by more than 5%? |
leader | rule | roc(C, 63) > 10 and C >= 0.95 * max(H, 63)Up more than 10% in a quarter, near the high |
rsi50 | rule | rsi(C, 14) > 50RSI above 50 |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | raisedrule | raise5rule | leaderrule | rsi50rule | rally5forecast |
|---|---|---|---|---|---|
MSFT | 0.1409 | 0.1409 | 0.3324 | 0.4101 | 0.495 |
HD | 0.1409 | 0.1409 | 0.1142 | 0.9001 | 0.524 |
COST | 0.1409 | 0.1409 | 0.2031 | 0.901 | 0.353 |
UNH | 0.1409 | 0.1409 | 0.0723 | 0.7746 | 0.509 |
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: Raised its last dividend: true for none of 4. Was the last dividend raised by more than 5%: true for none of 4. Up more than 10% in a quarter, near the high: true for none of 4. RSI above 50: true for HD, COST, UNH of 4. Highest odds for “A 5% rally within a month”: HD at 52%.
A raise above five percent with price leadership is the core of a dividend-growth sleeve.
Request JSON (MSFT; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MSFT"
},
"questions": {
"raised": {
"type": "yes_no",
"ask": "raised_last > 0.5"
},
"raise5": {
"type": "yes_no",
"instructions": "Was the last dividend raised by more than 5%?"
},
"leader": {
"type": "yes_no",
"ask": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)"
},
"rsi50": {
"type": "yes_no",
"ask": "rsi(C, 14) > 50"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (MSFT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"raised": {
"yes_no": 0.1409,
"rule": "raised_last > 0.5",
"basis": "rule"
},
"raise5": {
"yes_no": 0.1409,
"rule": "div_change_pct > 5",
"basis": "pattern"
},
"leader": {
"yes_no": 0.3324,
"rule": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)",
"basis": "rule"
},
"rsi50": {
"yes_no": 0.4101,
"rule": "rsi(C, 14) > 50",
"basis": "rule"
},
"rally5": {
"yes_no": 0.495
}
},
"context": {
"symbol": "MSFT",
"as_of": "2026-10-30"
}
}Dividend investor · example 14
DRIP or cash? Reinvest when JNJ trades below its average
Turn off automatic reinvestment when the stock is stretched, and reinvest when it is below its averages.
- StateJNJ
- Questions4 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"JNJ"} The server fills in the latest completed session.
Questions
below50 | rule | C < sma(C, 50)Below the 50-day |
below_mid | rule | C < bbmid(C, 20)Below the middle Bollinger Band |
stretched | rule | C > sma(C, 20) + 2 * atr(14)Stretched: more than 2 ATR above the 20-day |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
below50Below the 50-day | 0.1691 | false |
below_midBelow the middle Bollinger Band | 0.0783 | false |
stretchedStretched: more than 2 ATR above the 20-day | 0.4048 | on the line (false) |
up_weekHigher in a week | 0.525 | 53% · close to even |
Actions
Rules on the answers decide what to send.
below50 >= 0.6→Webhookbroker-apistretched >= 0.6→Webhookbroker-apiWhat it means
For JNJ on the session of 2026-10-30: Not true: Below the 50-day; Below the middle Bollinger Band. On the line: Stretched: more than 2 ATR above the 20-day. Forecasts: Higher in a week 53%. No action fired: every rule was false.
Below the averages, the dividend is reinvested; stretched, it is held as cash for later.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "JNJ"
},
"questions": {
"below50": {
"type": "yes_no",
"ask": "C < sma(C, 50)"
},
"below_mid": {
"type": "yes_no",
"ask": "C < bbmid(C, 20)"
},
"stretched": {
"type": "yes_no",
"ask": "C > sma(C, 20) + 2 * atr(14)"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "broker_drip_on",
"when": "below50 >= 0.6",
"do": "webhook",
"connection": "broker-api",
"body": {
"account": "income",
"symbol": "{{symbol}}",
"drip": "on",
"as_of": "{{as_of}}"
}
},
{
"id": "broker_drip_off",
"when": "stretched >= 0.6",
"do": "webhook",
"connection": "broker-api",
"body": {
"account": "income",
"symbol": "{{symbol}}",
"drip": "off",
"as_of": "{{as_of}}"
}
}
],
"dry_run": true
}Response JSON (JNJ, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"below50": {
"yes_no": 0.1691,
"rule": "C < sma(C, 50)",
"basis": "rule"
},
"below_mid": {
"yes_no": 0.0783,
"rule": "C < bbmid(C, 20)",
"basis": "rule"
},
"stretched": {
"yes_no": 0.4048,
"rule": "C > sma(C, 20) + 2 * atr(14)",
"basis": "rule"
},
"up_week": {
"yes_no": 0.525
}
},
"context": {
"symbol": "JNJ",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "broker_drip_on",
"fired": false,
"status": "skipped"
},
{
"id": "broker_drip_off",
"fired": false,
"status": "skipped"
}
]
}Dividend investor · example 15
Covered-call income funds: JEPI and QYLD
Option-income ETFs pay high yields but give up upside; check trend and drawdown.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"JEPI"} then QYLD, one request each. The server fills in the latest completed session.
Questions
monthly | English → rule | Does the stock pay a monthly dividend? |
yield3 | rule | div_yield_ttm > 3Yield above 3% |
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 |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
Answers
| Symbol | monthlyrule | yield3rule | trendrule | drawdownrule | drop5forecast |
|---|---|---|---|---|---|
JEPI | 0.8591 | 0.9463 | 0.9463 | 0.0537 | 0.071 |
QYLD | 0.8591 | 0.9463 | 0.9463 | 0.0537 | 0.223 |
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: Does the stock pay a monthly dividend: true for JEPI, QYLD of 2. Yield above 3%: true for JEPI, QYLD of 2. Is the stock above its 200-day moving average: true for JEPI, QYLD of 2. More than 20% off the 52-week high: true for none of 2. Highest odds for “A 5% drawdown within a month”: QYLD at 22%.
Monthly payments with an intact trend keep these as income sleeves; a deep drawdown means the yield is being paid out of capital.
Request JSON (JEPI; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "JEPI"
},
"questions": {
"monthly": {
"type": "yes_no",
"instructions": "Does the stock pay a monthly dividend?"
},
"yield3": {
"type": "yes_no",
"ask": "div_yield_ttm > 3"
},
"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)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (JEPI, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"monthly": {
"yes_no": 0.8591,
"rule": "div_count_ttm >= 11",
"basis": "pattern"
},
"yield3": {
"yes_no": 0.9463,
"rule": "div_yield_ttm > 3",
"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"
},
"drop5": {
"yes_no": 0.071
}
},
"context": {
"symbol": "JEPI",
"as_of": "2026-10-30"
}
}Dividend investor · example 16
Utilities as defensive income: XLU, NEE, DUK, SO
Utilities hold up in risk-off weeks; check yield and relative calm.
- State4 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"XLU"} then NEE, DUK, SO, one request each. The server fills in the latest completed session.
Questions
yield3 | rule | div_yield_ttm > 3Yield above 3% |
hv_low | English → rule | Is 20-day historical volatility below 20%? |
trend | rule | C > sma(C, 50)Above the 50-day average |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | yield3rule | hv_lowrule | trendrule | beat_spyforecast |
|---|---|---|---|---|
XLU | 0.0537 | 0.9117 | 0.8865 | 0.445 |
NEE | 0.3876 | 0.1322 | 0.8965 | 0.491 |
DUK | 0.9463 | 0.3415 | 0.933 | 0.492 |
SO | 0.9463 | 0.2471 | 0.9128 | 0.484 |
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: Yield above 3%: true for DUK, SO of 4. Is 20-day historical volatility below 20%: true for XLU of 4. Above the 50-day average: true for XLU, NEE, DUK, SO of 4. Highest odds for “Beating SPY over a month”: DUK at 49%.
Calm, yielding utilities in trend are where the income investor hides; weak ones get trimmed.
Request JSON (XLU; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "XLU"
},
"questions": {
"yield3": {
"type": "yes_no",
"ask": "div_yield_ttm > 3"
},
"hv_low": {
"type": "yes_no",
"instructions": "Is 20-day historical volatility below 20%?"
},
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
}
}Response JSON (XLU, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"yield3": {
"yes_no": 0.0537,
"rule": "div_yield_ttm > 3",
"basis": "rule"
},
"hv_low": {
"yes_no": 0.9117,
"rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) < 0.2",
"basis": "pattern"
},
"trend": {
"yes_no": 0.8865,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.445
}
},
"context": {
"symbol": "XLU",
"as_of": "2026-10-30"
}
}Dividend investor · example 17
Quarterly dividend review row to a spreadsheet (Zapier)
Append a row per holding with the dividend facts so the yearly review writes itself.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"KO"} then PEP, one request each. The server fills in the latest completed session.
Questions
yield3 | rule | div_yield_ttm > 3Yield above 3% |
raised | rule | raised_last > 0.5Raised its last dividend |
grower | rule | years_of_growth >= 10Ten years of dividend growth |
cut | English → rule | Did the stock cut its dividend last time? |
raise_next | forecast | Will the company raise its dividend next year? Raising the dividend next year |
Answers
| Symbol | yield3rule | raisedrule | growerrule | cutrule | raise_nextforecast | Fired |
|---|---|---|---|---|---|---|
KO | 0.0537 | 0.1409 | 0.9463 | 0.1409 | 0.517 | row |
PEP | 0.9463 | 0.1409 | 0.9463 | 0.1409 | 0.496 | row |
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.
yield3 >= 0→Webhookzapier-sheet{
"symbol": "KO",
"as_of": "2026-10-30",
"yield_above_3": 0.0537,
"raised_last": 0.1409,
"grew_10y": 0.9463,
"cut_last": 0.1409,
"p_raise_next_year": 0.517
}{
"symbol": "PEP",
"as_of": "2026-10-30",
"yield_above_3": 0.9463,
"raised_last": 0.1409,
"grew_10y": 0.9463,
"cut_last": 0.1409,
"p_raise_next_year": 0.496
}What it means
Session of 2026-10-30, 2 symbols: Yield above 3%: true for PEP of 2. Raised its last dividend: true for none of 2. Ten years of dividend growth: true for KO, PEP of 2. Did the stock cut its dividend last time: true for none of 2. Highest odds for “Raising the dividend next year”: KO at 52%. row fired for KO, PEP.
Every run appends a row; the spreadsheet shows the dividend story over the year.
Request JSON (KO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "KO"
},
"questions": {
"yield3": {
"type": "yes_no",
"ask": "div_yield_ttm > 3"
},
"raised": {
"type": "yes_no",
"ask": "raised_last > 0.5"
},
"grower": {
"type": "yes_no",
"ask": "years_of_growth >= 10"
},
"cut": {
"type": "yes_no",
"instructions": "Did the stock cut its dividend last time?"
},
"raise_next": {
"type": "yes_no",
"instructions": "Will the company raise its dividend next year?"
}
},
"actions": [
{
"id": "row",
"when": "yield3 >= 0",
"do": "webhook",
"connection": "zapier-sheet",
"body": {
"symbol": "{{symbol}}",
"as_of": "{{as_of}}",
"yield_above_3": "{{yield3}}",
"raised_last": "{{raised}}",
"grew_10y": "{{grower}}",
"cut_last": "{{cut}}",
"p_raise_next_year": "{{raise_next}}"
}
}
],
"dry_run": true
}Response JSON (KO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"yield3": {
"yes_no": 0.0537,
"rule": "div_yield_ttm > 3",
"basis": "rule"
},
"raised": {
"yes_no": 0.1409,
"rule": "raised_last > 0.5",
"basis": "rule"
},
"grower": {
"yes_no": 0.9463,
"rule": "years_of_growth >= 10",
"basis": "rule"
},
"cut": {
"yes_no": 0.1409,
"rule": "cut_last > 0.5",
"basis": "pattern"
},
"raise_next": {
"yes_no": 0.517
}
},
"context": {
"symbol": "KO",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "row",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "zapier-sheet",
"preview": {
"body": {
"symbol": "KO",
"as_of": "2026-10-30",
"yield_above_3": 0.0537,
"raised_last": 0.1409,
"grew_10y": 0.9463,
"cut_last": 0.1409,
"p_raise_next_year": 0.517
}
}
}
]
}Dividend investor · example 18
Hammer at the lows in VZ: an income entry
A reversal candle at the 20-day low in a high-yielder can be the time to add.
- StateVZ
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"VZ"} The server fills in the latest completed session.
Questions
hammer_low | rule | hammer() and L <= 1.01 * lowest(L, 20)Hammer at a 20-day low |
inv | rule | inverted_hammer()inverted hammer candle: Shooting-star shape after a five-bar decline. |
tw_bot | rule | tweezer_bottom()tweezer bottom candle: Red then green, with lows within 0.1% of each other. |
yield3 | rule | div_yield_ttm > 3Yield above 3% |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
hammer_lowHammer at a 20-day low | 0.0667 | false |
invinverted hammer candle: Shooting-star shape after a five-bar decline. | 0.1565 | false |
tw_bottweezer bottom candle: Red then green, with lows within 0.1% of each other. | 0.1136 | false |
yield3Yield above 3% | 0.9463 | true |
up_weekHigher in a week | 0.462 | 46% · close to even |
What it means
For VZ on the session of 2026-10-30: True now: Yield above 3%. Not true: Hammer at a 20-day low; inverted hammer candle: Shooting-star shape after a five-bar decline.; tweezer bottom candle: Red then green, with lows within 0.1% of each other.. Forecasts: Higher in a week 46%.
A reversal candle at the low with the yield intact is an add; without a candle, the investor waits.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VZ"
},
"questions": {
"hammer_low": {
"type": "yes_no",
"ask": "hammer() and L <= 1.01 * lowest(L, 20)"
},
"inv": {
"type": "yes_no",
"ask": "inverted_hammer()"
},
"tw_bot": {
"type": "yes_no",
"ask": "tweezer_bottom()"
},
"yield3": {
"type": "yes_no",
"ask": "div_yield_ttm > 3"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (VZ, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"hammer_low": {
"yes_no": 0.0667,
"rule": "hammer() and L <= 1.01 * lowest(L, 20)",
"basis": "rule"
},
"inv": {
"yes_no": 0.1565,
"rule": "inverted_hammer()",
"basis": "rule"
},
"tw_bot": {
"yes_no": 0.1136,
"rule": "tweezer_bottom()",
"basis": "rule"
},
"yield3": {
"yes_no": 0.9463,
"rule": "div_yield_ttm > 3",
"basis": "rule"
},
"up_week": {
"yes_no": 0.462
}
},
"context": {
"symbol": "VZ",
"as_of": "2026-10-30"
}
}Dividend investor · example 19
Tobacco payers MO and PM: payout and price
High-yield tobacco stocks: is the payout raising and the price stable.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MO"} then PM, one request each. The server fills in the latest completed session.
Questions
raised | rule | raised_last > 0.5Raised its last dividend |
yield3 | rule | div_yield_ttm > 3Yield above 3% |
grower | rule | years_of_growth >= 10Ten years of dividend growth |
median_up | rule | C > median(C, 50)Above its 50-day median close |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
Answers
| Symbol | raisedrule | yield3rule | growerrule | median_uprule | drop5forecast |
|---|---|---|---|---|---|
MO | 0.8591 | 0.9463 | 0.9463 | 0.9378 | 0.543 |
PM | 0.8591 | 0.355 | 0.9463 | 0.9463 | 0.458 |
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: Raised its last dividend: true for MO, PM of 2. Yield above 3%: true for MO of 2. Ten years of dividend growth: true for MO, PM of 2. Above its 50-day median close: true for MO, PM of 2. Highest odds for “A 5% drawdown within a month”: MO at 54%.
Raised payouts and a price above its median keep the position; a cut is a hard review.
Request JSON (MO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MO"
},
"questions": {
"raised": {
"type": "yes_no",
"ask": "raised_last > 0.5"
},
"yield3": {
"type": "yes_no",
"ask": "div_yield_ttm > 3"
},
"grower": {
"type": "yes_no",
"ask": "years_of_growth >= 10"
},
"median_up": {
"type": "yes_no",
"ask": "C > median(C, 50)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (MO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"raised": {
"yes_no": 0.8591,
"rule": "raised_last > 0.5",
"basis": "rule"
},
"yield3": {
"yes_no": 0.9463,
"rule": "div_yield_ttm > 3",
"basis": "rule"
},
"grower": {
"yes_no": 0.9463,
"rule": "years_of_growth >= 10",
"basis": "rule"
},
"median_up": {
"yes_no": 0.9378,
"rule": "C > median(C, 50)",
"basis": "rule"
},
"drop5": {
"yes_no": 0.543
}
},
"context": {
"symbol": "MO",
"as_of": "2026-10-30"
}
}Dividend investor · example 20
Bank dividends: JPM, BAC, WFC, C after their reports
Bank payouts move with earnings; check the reports and the raises.
- State4 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"JPM"} then BAC, WFC, C, one request each. The server fills in the latest completed session.
Questions
beat | English → rule | Did the stock beat EPS estimates last quarter? |
raised | rule | raised_last > 0.5Raised its last dividend |
yield | rule | div_yield_ttm > 2Dividend yield above 2% |
trend | rule | C > sma(C, 50)Above the 50-day average |
raise_next | forecast | Will the company raise its dividend next year? Raising the dividend next year |
Answers
| Symbol | beatrule | raisedrule | yieldrule | trendrule | raise_nextforecast |
|---|---|---|---|---|---|
JPM | 0.1409 | 0.8591 | 0.0537 | 0.3034 | 0.499 |
BAC | 0.1409 | 0.8591 | 0.9463 | 0.0951 | 0.469 |
WFC | 0.8591 | 0.8591 | 0.7258 | 0.3296 | 0.503 |
C | 0.8591 | 0.8591 | 0.5197 | 0.0765 | 0.492 |
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: Did the stock beat EPS estimates last quarter: true for WFC, C of 4. Raised its last dividend: true for JPM, BAC, WFC, C of 4. Dividend yield above 2%: true for BAC, WFC of 4. Above the 50-day average: true for none of 4. Highest odds for “Raising the dividend next year”: WFC at 50%.
Banks that beat and raised keep their income weight; misses without raises get trimmed.
Request JSON (JPM; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "JPM"
},
"questions": {
"beat": {
"type": "yes_no",
"instructions": "Did the stock beat EPS estimates last quarter?"
},
"raised": {
"type": "yes_no",
"ask": "raised_last > 0.5"
},
"yield": {
"type": "yes_no",
"ask": "div_yield_ttm > 2"
},
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"raise_next": {
"type": "yes_no",
"instructions": "Will the company raise its dividend next year?"
}
}
}Response JSON (JPM, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"beat": {
"yes_no": 0.1409,
"rule": "beat_eps_last > 0.5",
"basis": "pattern"
},
"raised": {
"yes_no": 0.8591,
"rule": "raised_last > 0.5",
"basis": "rule"
},
"yield": {
"yes_no": 0.0537,
"rule": "div_yield_ttm > 2",
"basis": "rule"
},
"trend": {
"yes_no": 0.3034,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"raise_next": {
"yes_no": 0.499
}
},
"context": {
"symbol": "JPM",
"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, Long-term passive investor, Crypto trader, FX trader, Commodities trader, Social trading community, Students and universities.