Stock Impact
stock_impactHow news moved a specific company/asset (incl commodities like GOLD.COMM) — per-article impact
(direction + aspect + why), most recent first. Near-duplicate stories are MERGED by default (each row
= one story + dup_count); collapse=false for the raw feed. limit = how many (default 20, max 50). Ordered by how hard each story hits this entity (relevance, 1.0 = directly about it; a market wrap that touches it ranks lower), then recency; companies_in_story says when it is one of several
— heavily-covered assets have HUNDREDS, so keep it small + narrow. TIME-SCOPE with from_/to (ISO)
or window ('90d','qtd','1y'); to COMPARE periods, call once per period. ⚠️ News starts 2026-01-01 —
older ranges return nothing (no coverage, not 'no news'; price/volatility history goes back decades).
🔵 BONDS/RATES: a specific tenor/rate (US-2Y.GB, SOFR.MM) with no news of its own returns the
country's benchmark-10Y macro news tagged scope:'curve_macro' + macro_source — narrate those as
curve-wide central-bank context, not tenor-specific. 📏 MAGNITUDE: for a listed, priced asset each story has
price_move = close-to-close % of the session it landed in (day_pct) and of the next one (next_day_pct) —
the market's reaction next to the direction. It is the WHOLE day's move (other news counts too), not the story's
isolated effect; say so. End-of-day prices: a story from today has no session close yet.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"ticker": "<ticker>"
},
"name": "stock_impact"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Upper time bound, ISO date `YYYY-MM-DD`. | |
| from_ | No | Lower time bound, ISO date `YYYY-MM-DD`. ⚠️ Ava Advisor NEWS coverage starts 2026-01-01 (nothing before). | |
| limit | No | Max rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles. | |
| ticker | Yes | A Ava Advisor ticker OR a company/asset NAME — the SERVER resolves it (no lookup step). A COMPANY/proper NAME passes AS-IS in any language (茅台/トヨタ/삼성 resolve natively — never translate a name); a generic COMMODITY/SECTOR concept must be ENGLISH (黄金→'gold', 原油→'crude oil'). Pass the user's full request in `context` to disambiguate ('apple' company vs fruit); if still ambiguous you get a `needs_confirmation` with candidates — resolve from conversation or ask, then re-call. Exact tickers pass through (Ava Advisor suffixes: Korea .KO, Taiwan .TW, commodity .COMM, crypto .CC, FX .FOREX, bond .GB, rate .MM). | |
| window | No | News-recency window: `7d`/`30d`/`90d`/`180d`/`1y` or `mtd`/`qtd`/`ytd`. Omit → a sensible default. (Price history is unaffected — this only scopes the NEWS lens.) | |
| context | No | OPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `ticker` entity means (the apple COMPANY vs the fruit COMMODITY; which Samsung). One context per call, shared by all tickers here. | |
| country | No | OPTIONAL market disambiguator — pass ONLY when `ticker` is a plain NAME that collides across markets (the Thai vs Korean 'KBANK'); omit for a distinctive name or an exact ticker (an unneeded country silently 0-matches). A country NAME or ISO-2 code ('South Korea'/'KR'); the server normalizes, so pass the NAME when unsure — never GUESS a 2-letter code ('CH' = Switzerland, not China). | |
| collapse | No | Merge near-duplicate stories (same article from many outlets) into one row + `dup_count`. Default ON; pass `false` for the raw un-deduped feed. | |
| direction | No | Filter by impact direction: `pos` | `neg` | `ambiguous`. Omit → all. |