Serving a Mixture-of-Experts (MoE) model pays for expert precision twice: the resident footprint pays for every expert the router can reach, while each batch-one decode step pays only for the experts it selects.
These are two different rate functionals over the same per-expert widths, yet published per-expert MoE allocators constrain only the first.
We call the difference the store-read gap; in the released BitsMoE checkpoint, 2.54 bits per weight (bpw) of storage become 7.50 bpw of decode traffic.
We propose DuoRate, which stores once and reads per workload.
Offline, it stores one uniform tier of a prefix-readable weight stream and bakes a distortion tensor.
Online, it profiles a workload's own prefill without labels and solves a Lagrangian rate-distortion allocation under the decode functional;
routing frequency provably cancels from every per-expert decision, and the solve costs one dot product per expert and a bisection.
A deployment therefore keeps a single artifact that prefill reads at the stored rate and decode reads at the workload's own rate.
On Qwen3-30B-A3B, DuoRate reading 2.3 bpw exceeds every 2-bit-class baseline by 6.3 to 47.0 points of average accuracy, and at 2.9 bpw it matches 4-bit formats that read 1.4-1.6 bpw more.
The advantage is largest under long decoding: on GSM8K, DuoRate at 2.9 bpw matches or exceeds every 4-bit format and trails BF16 by only 0.25 points, and at 2.6 bpw it still matches or exceeds the 4.5-bit NF4 and FP4.
Against controls in its own format, the allocation alone is worth 0.07-0.11 bpw of read rate.
Code will be released upon publication.