| name | prediction-markets-analysis |
| description | Analyze Kalshi prediction markets with Octagon research, cached/fresh reports, event history, and comparison tools. |
Prediction Markets Analysis
Use this skill when the user asks about a Kalshi prediction-market event, market-implied probability, Octagon model probability, catalysts, mispricing, contract dynamics, or a comparison between related markets.
Workflow
- When the user provides a Kalshi URL, pass the full URL directly to
octagon_prediction_market_research as marketUrl; do not use Bash, curl, or direct Kalshi API calls to preprocess it.
- Classify the user's ask before choosing a tool path:
- Current odds, prices, probabilities, or live market snapshot: call
octagon_prediction_market_history first with limit: 5-10, days: 14, excludeEmptyModel: false, includeAnalysis: true, and format: "summary".
- Research memo, model probability, edge, drivers, catalysts, or mispricing: call
octagon_prediction_market_research with cacheMode: "cache" first. Cached reports are free and fast.
- Fresh analysis, create a report, refresh thesis, or update model view: call
octagon_prediction_market_research with cacheMode: "refresh" only after making clear that fresh reports are available to Octagon Plus, Pro, and Enterprise users and cost 3 credits.
- What changed: call cached research plus recent history, then compare report context against the latest market movement.
- If cache mode says no prior report exists, do not pretend Octagon has a model view. Answer from
octagon_prediction_market_history if available and say: "No Octagon research report exists yet; use refresh to create the first full report/model view."
- If cache mode returns an older report, state its age plainly when visible in the response, for example: "Latest cached Octagon report is 5 days old; use refresh for a fresh catalyst/model update." Use the cached report as prior context, not as a live model update.
- If refresh is used successfully, immediately follow with
cacheMode: "cache" and octagon_prediction_market_history so the final answer includes the generated report plus latest movement context.
- If a default or refresh report request times out, treat fallback output as partial success, not total failure. Use the report-status block to explain which source timed out, whether cache exists, whether history is available, and whether model probability/edge is unavailable.
- Use
octagon_prediction_market_compare when the user asks which market is more attractive, inconsistent, liquid, or mispriced.
- Summarize the result with market probability, Octagon model probability when present, edge when present, drivers, counterarguments, evidence gaps, and what would change the view.
Prefer concise research notes with market signal, model-vs-market edge, live contract snapshot, historical resolution context, drivers, bull and bear cases, mispricing thesis, and evidence gaps.
Copy Patterns
For no cached report: "No cached Octagon research report exists for this market yet. I can still answer current market-implied odds from Octagon history. To create the first full Octagon research memo/model view, run refresh; then re-check cache to view the generated report."
For stale cached report: "The latest cached Octagon report is 5 days old. I will use it as prior context, but the market may have moved. For a fresh catalyst/model update, run refresh; then compare the refreshed report against recent history."
For timeout with fallback data: "The fresh report did not complete before the timeout. This is a partial-success answer: cache/history fallback returned usable market data, but not a fresh Octagon model report."