Signals v3 — continuous evaluation
Signals no longer wait for a nightly job. Every account is now evaluated against every active condition as events arrive, with a median firing latency of 1.8 seconds. This is the largest change to the evaluation engine since launch, and it is live for every workspace.
Streaming evaluation. Conditions are checked as events land rather than on a schedule. Nightly evaluation remains available for signals that depend on billing state, which still settles daily.
Signal backtesting. Before activating a signal, replay it against the last twelve months of history to see how often it would have fired and against which accounts.
Firing explanations. Every firing now links to the specific events, thresholds and time windows that produced it. Available in the UI and on the API as explanation.
Signal editor now shows the compiled SQL for any condition built in the visual builder, so your data team can review rather than rebuild.
Throttle configuration moved to the signal level, with per-channel overrides. The old workspace-wide throttle is migrated automatically.
The signals.evaluated_at field is deprecated in favour of signals.fired_at. The old field continues to return values until 1 February 2027.