- scheduler tick runs detect after fetch+score (once per UTC day) - ChanSignalDetector skips already-recorded signals - Prevents duplicate signal_features entries on repeated runs