Signals

A signal is the atom of the pipeline — one news item, scored by the AI, with a direction call and a confidence.

Every 15 minutes a server job pulls news and per-ticker headlines. Each deduplicated, ticker-attributed headline is sent to the model with a structured prompt. The model returns a direction, a confidence between 0 and 1, and a one-paragraph reasoning trace. All of that is written to the signals table.

Lifecycle

  • pending — scored but not yet considered for execution. The next portfolio pass decides.
  • traded — a position was opened from this signal.
  • skipped_* — the agent decided not to act. The suffix tells you why.
  • errored — execution attempted but the broker rejected the order. See the trade row for details.

Skip reasons

FieldTypeDescription
skipped_low_confidenceConfidence was below min_confidence_to_trade.
skipped_auto_disabledauto_trade_enabled is off in Config.
skipped_not_tradableTicker not found in the eToro instrument cache.
skipped_conflictAn existing open position contradicts this signal — agent refuses to trade against itself.
skipped_capsWould breach max_simultaneous_positions or session_budget_usd.
skipped_non_directionalModel returned no clear long/short call.
skipped_staleHeadline too old to act on (outside news_lookback_minutes).

Key fields

FieldTypeDescription
tickertextPrimary ticker the signal applies to.
directionlong | shortAI's directional call.
confidence0–1Model's strength score for the signal.
signal_sourcetextnews | event | combined — what triggered the scoring.
modedemo | liveWhich environment the signal belongs to.
reasoningtextWhy the AI made this call. Always include this when debugging.
statusenumLifecycle state — see above.

How to use the page

  • Filter to traded when you want to audit recent executions.
  • Filter to high-confidence + skipped when something feels off — every skip has a reason.
  • Click any row to expand the AI reasoning and the original headline.