# QVT α-5 ablation matrix — 5-axis × 18-cell verdict

**Baseline**: `3a961a3` (captured 2026-05-31T00:44:22.323616+00:00).
**Cells available**: 2/18.

| Row | Tier | Model | Path Δ | Graded Δ | Abst F1 Δ | Token Δ | Latency Δ (s) | Verdict |
|---|---|---|---|---|---|---|---|---|
| L1 (baseline (production)) | M_M | `gemma4:e4b` | +0.015 | -0.017 | -0.018 | +74 | +2.34 | **reject** |
| L5 (full stack) | M_M | `gemma4:e4b` | +0.008 | -0.027 | -0.109 | +55 | +4.71 | **reject** |

## 5-axis Pareto-aware verdict rule (plan Step 5)

Per cell, Δ vs L1/M_M baseline median per axis. Noise band =
max − min across the baseline's paired-N=3 runs.

Quality axes (higher = better): path_coverage, graded_answer, abstention_f1.
Cost axes (lower = better): token_cost (answer chars proxy), latency_cost (seconds).

- **strong-adopt** — at least one quality Δ > +band AND at least
  one cost Δ < −band (lower = improvement), no cost regression
- **adopt** — quality+ on at least one axis, cost flat
- **efficiency-adopt** — quality flat, cost down on at least one axis
- **tier-gated** — quality+ but cost regressed (justify per tier;
  small-tier accept, large-tier reject)
- **reject** — any quality axis Δ < −band (no cost gain redeems)
- **zero** — within noise band on all five

## Routing policy decision

| Per-tier pattern | Policy |
|---|---|
| `strong-adopt` or `adopt` on ≥ 2 tiers incl. M_M | enable as default (flip `.env.example`) |
| `efficiency-adopt` on all tiers | enable as default (free efficiency) |
| only one tier `*-adopt` | tier-gated (router keys on `JAMES_LLM_MODEL`) |
| `zero` on all tiers | delete / document as inert (deprecation PR) |
| `reject` on ≥ 1 tier | keep opt-in indefinitely |
| `tier-gated` verdict on any cell | per-tier evaluation (small ≤ large?) |

Follow-up PRs (one per layer with non-`zero` verdict) cite the
specific cell here as their Quality Delta Card source.