Summary
Decode gap against WSJT-X confirmed in both synthetic R&R study (S7) and real off-air corpus replay (S6, 2026-06-11). Severity escalated to High following corpus evidence.
Severity
High (escalated from Medium, 2026-06-11).
The synthetic S7 result (OpenWSFZ overall recovery ~47% vs WSJT-X ~78%) was classified Medium because normal single-signal operation was unaffected. The corpus replay (S6) extends this finding to real-world conditions:
- 42 off-air WAVs, 2,799 observations across K=3 runs
- OpenWSFZ decoded 69.7% of what WSJT-X finds (1,831 TP vs 795 FN)
- Between-appraiser Cohen's κ = 0.084 (slight agreement) — almost entirely driven by these missed decodes
- This is not a pileup/contest-only condition: the corpus represents a typical band scene across 35+ minutes of live 20 m activity
At roughly 1 in 3 signals missed, this is a material product quality defect.
Synthetic Evidence (R&R S7, run 6bab388)
| Family |
WSJT-X |
OpenWSFZ |
| co_channel (equal SNR) |
38.1% |
0–5% |
| time_freq (co-freq, staggered DT) |
100.0% |
39–44% |
| near_collision (3–50 Hz sep.) |
87–100% |
77–80% |
| capture (unequal SNR) |
67–88% |
50% |
| overall |
~78% |
~46–47% |
Real-World Evidence (S6 corpus replay, run bd1e157, 2026-06-11)
| Metric |
Value |
| WAV files |
42 |
| Runs (K) |
3 |
| Total observations |
2,799 |
| TP (both decoded) |
1,831 |
| FN (WSJT-X decoded, OpenWSFZ did not) |
795 |
| FP (OpenWSFZ decoded, WSJT-X did not) |
78 |
| TN (neither decoded) |
95 |
| OpenWSFZ decode rate vs WSJT-X |
69.7% |
| Cohen's κ |
0.084 |
Full results: qa/rr-study/results/corpus-2026-06-11/report.md
Root Cause
OpenWSFZ relies on a single ft8_decode_all call plus a spectrogram-domain second-pass (p15). The FFT bin resolution (±3.125 Hz) is insufficient for coherent cancellation of co-channel signals. WSJT-X is believed to use PCM-domain iterative successive interference cancellation (SIC), which requires sub-Hz carrier estimation and waveform reconstruction.
What a Fix Requires
- Sub-Hz carrier frequency re-estimation from matched filter peak after each decode
- PCM waveform reconstruction of the decoded signal
- Subtraction from raw PCM buffer and re-run of
ft8_decode_all
Medium-high effort. Architecture is open to it (existing p15 second-pass infrastructure is the natural extension point).
Acceptance Criteria
- S7 overall OpenWSFZ recovery ≥ 65% (vs current ~47%) on the next R&R run after any fix is applied, with co_channel (P0 2-stack equal 0 dB) ≥ 3/6
- S6 corpus replay between-appraiser κ ≥ 0.70 (substantial agreement)
- OpenWSFZ decode rate vs WSJT-X ≥ 85% on the 42-WAV corpus
🤖 Escalated by QA following S6 corpus replay bd1e157 (2026-06-11)
Summary
Decode gap against WSJT-X confirmed in both synthetic R&R study (S7) and real off-air corpus replay (S6, 2026-06-11). Severity escalated to High following corpus evidence.
Severity
High (escalated from Medium, 2026-06-11).
The synthetic S7 result (OpenWSFZ overall recovery ~47% vs WSJT-X ~78%) was classified Medium because normal single-signal operation was unaffected. The corpus replay (S6) extends this finding to real-world conditions:
At roughly 1 in 3 signals missed, this is a material product quality defect.
Synthetic Evidence (R&R S7, run
6bab388)Real-World Evidence (S6 corpus replay, run
bd1e157, 2026-06-11)Full results:
qa/rr-study/results/corpus-2026-06-11/report.mdRoot Cause
OpenWSFZ relies on a single
ft8_decode_allcall plus a spectrogram-domain second-pass (p15). The FFT bin resolution (±3.125 Hz) is insufficient for coherent cancellation of co-channel signals. WSJT-X is believed to use PCM-domain iterative successive interference cancellation (SIC), which requires sub-Hz carrier estimation and waveform reconstruction.What a Fix Requires
ft8_decode_allMedium-high effort. Architecture is open to it (existing p15 second-pass infrastructure is the natural extension point).
Acceptance Criteria
🤖 Escalated by QA following S6 corpus replay
bd1e157(2026-06-11)