# CQR Baseline Characterization — Summary v1

Descriptive run per `aura-persona/cqr-baseline-characterization-spec-v0_1.md` / `claude-code-prompt-cqr-baseline-characterization.md`. No tier attaches (R0); F-035 stays closed. Full machine-readable output: `baseline_characterization_v1.json`.

Apparatus: `git_sha=5f849f9d220199f337421b0289a0f213dc60a6b8`, `datadir_source=cqr_datadir_primary`, datadir copy hash-verified unchanged across all phases. D1 `BAAI/bge-reranker-v2-m3` (revision `953dc6f6f85a1b2dbfca4c34a2796e7dde08d41e`, operator-approved download, CPU/fp32), D2 K=100 (A3) / K=50 (A4), D3 Appendix A prompt verbatim, D4 BM25 k1=1.2 b=0.75 lowercase `\w+` tokenizer. A1–A3 double-passed, bit-identical JSON confirmed. A4: two full passes, 400+400=800 calls (at the hard cap exactly), 0 unparseable replies either pass, gold-rank agreement 6/8 exact between passes; pass 1 is the reported ranking. No causal-augmented-embedding arm run (exclusion clause).

## Summary table

| arm | median | mean | R@1 | R@5 | R@10 | MRR | recall@20 | decoy-cleared |
|---|---|---|---|---|---|---|---|---|
| A1 BM25 | 17.0 | 113.6 | 0.000 | 0.125 | 0.250 | 0.072 | 0.625 | 0/8 |
| A2 Hybrid (RRF) | 26.5 | 86.1 | 0.000 | 0.125 | 0.250 | 0.085 | 0.375 | 0/8 |
| A3 Cross-encoder | 51.5 | 95.0 | 0.000 | 0.000 | 0.375 | 0.062 | 0.375 | 0/8 |
| A4 LLM ceiling | 11.5 | 78.9 | 0.000 | 0.250 | 0.500 | 0.108 | 0.625 | 0/8 |
| similarity (ref) | 28.0 | 58.4 | 0.000 | 0.250 | 0.250 | 0.114 | 0.375 | 0/8 |
| graph (ref) | 77.0 | 87.3 | 0.000 | 0.000 | 0.000 | 0.013 | 0.000 | 0/8 |
| ablated (ref) | 74.0 | 97.3 | 0.000 | 0.000 | 0.000 | 0.013 | 0.000 | n/a (not computed in original run) |

Reference-row median/mean reproduced exactly from `cqr_scoring_v1.json` (similarity 28.0/58.375, graph 77.0/87.25, ablated 74.0/97.25) — confirms the join to the frozen reference rows is correct.

Decoy-cleared denominator excludes questions with zero same-document decoy candidates (none here — all 8 have ≥1 decoy in every arm where decoy data exists); `ablated`'s original run never recorded `decoy_best_rank_c`, so its decoy-cleared cell is reported as unavailable rather than inferred.

Per-question ranks, decoy ranks, A4 pass-agreement detail, and the full apparatus/dials block are in `baseline_characterization_v1.json`. Interpretation (R1–R3 readings) is the operator's.
