# US-027 — Throughput-optimized routing: effective throughput as tiebreak

Status: done
Priority: Medium
Stage: Implemented

## Context

The greedy max-reach route selection picks nodes by shard coverage but ignores node speed.
When two nodes cover the same remaining layer range, we should prefer the faster one.
This is a tiebreak only — coverage maximization remains the primary objective.

## Effective throughput formula

```
effective_throughput = benchmark_tokens_per_sec / (queue_depth + 1)
```

`benchmark_tokens_per_sec` comes from the hardware profile at registration time.
`queue_depth` comes from the last heartbeat.

## Acceptance criteria

- [ ] `_effective_throughput(node)` helper in `server.py`
- [ ] `_select_route` uses throughput as tiebreak when `shard_end` is equal
- [ ] Test: two nodes, same shard range, different throughput → faster node selected
- [ ] Existing coverage tests still pass unchanged
- [ ] `python -m pytest` passes
