# Router Benchmark — shipped heuristic+bandit  vs  @metaharness/router (k-NN / KRR)  vs  tiny-dancer score()

- ts: 2026-06-15T19:12:46Z  node: v22.22.1  platform: darwin-arm64
- N=400, dim=32, epochs=40, hidden=12, seed=42
- split: train=280, test=120  label_balance(test): cheap=56, strong=64
- @metaharness/router: native_available=true  native_version=2.2.3  auto_backend=native

| System | Accuracy | Cost-adj reward | Latency mean | p50 | p95 |
|---|---|---|---|---|---|
| trivial: always cheap | 46.7% | — | 0ms | — | — |
| trivial: always strong | 53.3% | — | 0ms | — | — |
| **heuristic+thompson-bandit (shipped, cold)** | **55.8%** | 14.20 | 0.077ms | 0.053ms | 0.190ms |
| **INTEGRATED ruflo path (CLAUDE_FLOW_ROUTER_NEURAL=1)** | **100.0%** | 60.80 | 0.066ms | 0.059ms | 0.095ms |
| **@metaharness/router 0.3.2 k-NN (pure TS, no training)** | **100.0%** | 60.27 | 0.111ms | 0.098ms | 0.140ms |
| **@metaharness/router 0.3.2 KRR (pure TS, LOO-tuned)** | **100.0%** | 60.27 | 0.019ms | 0.019ms | 0.021ms |
| **tiny-dancer fastgrnn score() (0.1.22)** | **100.0%** | 63.11 | 0.037ms | 0.036ms | 0.042ms |

Agreements (binary cheap/strong, fraction of test set):
  baseline_vs_tinydancer: 55.0%
  baseline_vs_mh_knn: 55.0%
  baseline_vs_mh_krr: 55.0%
  mh_knn_vs_tinydancer: 100.0%

Training/build cost:
  @metaharness/router k-NN: build 0.17ms (no model file; uses raw examples in-memory)
  @metaharness/router KRR:  train 93065.5ms, λ=1.00e-2, looQuality=0.9259, JSON artifact 418290B
  tiny-dancer FastGRNN:     train 24.1ms, val_acc=1.000, safetensors 6164B

===BENCH_JSON===
