Reference (N=200, lattice, no shock): success / bits per success / welfare per agent & central: 0.997 / 82.8 / 42.7; federated: 1.000 / 53.3 / 43.7; none: 0.918 / 15.3 / 55.0; norms: 0.960 / 23.7 / 57.3; records: 1.000 / 24.8 / 59.3 \\ Records without verification & success 0.960, bits per success 25.8, welfare 57.2 \\ Norms, extra bits per task after a distribution shock by adaptation delay & delay 0: +0.03; delay 10: +1.92; delay 1000: +3.79 (KL $= 1.98$ bits) \\ Break-even (norms cheaper than none incl. set-up) & s=16,zipf=0.0,T=40,learn=200.0: no; s=64,zipf=0.0,T=40,learn=200.0: no; s=64,zipf=0.5,T=40,learn=200.0: no; s=64,zipf=1.0,T=10,learn=0.0: yes; s=64,zipf=1.0,T=10,learn=200.0: no; s=64,zipf=1.0,T=10,learn=1000.0: no; s=64,zipf=1.0,T=40,learn=0.0: yes; s=64,zipf=1.0,T=40,learn=200.0: no; s=64,zipf=1.0,T=40,learn=1000.0: no; s=64,zipf=1.0,T=160,learn=0.0: yes; s=64,zipf=1.0,T=160,learn=200.0: no; s=64,zipf=1.0,T=160,learn=1000.0: no; s=64,zipf=1.5,T=40,learn=200.0: no; s=64,zipf=2.5,T=40,learn=200.0: no; s=256,zipf=0.0,T=40,learn=200.0: no; s=256,zipf=1.5,T=10,learn=200.0: no; s=256,zipf=1.5,T=10,learn=1000.0: no; s=256,zipf=1.5,T=40,learn=200.0: no; s=256,zipf=1.5,T=40,learn=1000.0: no; s=256,zipf=1.5,T=160,learn=200.0: yes; s=256,zipf=1.5,T=160,learn=1000.0: no \\ Heterogeneity $\epsilon$: success none vs norms & eps=0.05,none: 0.984; eps=0.05,norms: 0.960; eps=0.25,none: 0.918; eps=0.25,norms: 0.960; eps=0.6,none: 0.808; eps=0.6,norms: 0.960 \\ Federated branching $b$: success / messages per task / root load & b=4: 0.93 / 8.86 / 48; b=8: 0.99 / 6.61 / 42; b=16: 1.00 / 6.27 / 209 \\ Coding gain (norms): $H(p)$, $L_{code}$, $L_{raw}$ & s=16,zipf=0.0: 4.00, 4.00, 4; s=64,zipf=0.0: 6.00, 6.00, 6; s=64,zipf=0.5: 5.78, 6.24, 6; s=64,zipf=1.0: 4.86, 5.44, 6; s=64,zipf=1.5: 3.44, 4.00, 6; s=64,zipf=2.5: 1.45, 1.96, 6; s=256,zipf=0.0: 8.00, 8.00, 8; s=256,zipf=1.5: 3.92, 4.44, 8 \\ Theorem checks & T1 ($H\le L