Skip to content

R&R-007: pooled attribute-Kappa gate not ratifiable — S4 matcher scores per-cycle, not per-message (ceiling effect) #59

Description

@frank001

Summary

Investigation (directed by Captain, following the R&R-005 citation cleanup, #35) into whether the §9.3/§10 pooled attribute-κ gate is ready for ratification. Full writeup: qa/rr-study/RR-007.md.

Finding: ratification cannot proceed, and not for the reason §9.3 anticipated. The originally-flagged concern (S4's positive population includes sub-threshold SNRs, same class of contamination as R&R-005's S1 ANOVA problem — 21/66 = 31.8% of S4 signals sit below the −12 dB decodable floor) is real, but is not the binding constraint.

The binding problem: harness/matcher.py's S4 truth/matching records one pooled truth row per (part, trial) — not one per injected message — and scores a match as "did the appraiser decode any one of the N pooled messages." Every other correct decode in that cycle is discarded (falls through to Pass 2 as a spurious "false positive", excluded from κ by the false_positive == False filter). This creates a ceiling effect: run 793a298 shows both appraisers at a perfect TP=15/FN=0, κ=1.000, PASS — while the same run, same build's S7 (which correctly matches per-message) shows OpenWSFZ recovering only 40% of co-channel stacks vs WSJT-X's 100%. S4 cannot currently distinguish good QRM handling from bad.

Recommendation

  1. Attribute-κ gate remains advisory (no change to current behavior).
  2. Scope a harness redesign so S4 records and matches truth per individual message (carrying that message's own SNR), analogous to S7's existing per-message design — a prerequisite for evaluating the decodable-SNR-restricted population §9.3 already calls for.
  3. Re-run S4 and re-evaluate pooled κ against real per-message data before revisiting ratification.

See qa/rr-study/RR-007.md §4 for candidate acceptance criteria (draft, not yet ratified).

Scope note

Investigation and recommendation only — implementation not started, pending Captain decision on how to proceed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions