label vs measured · one row per book · checked against the fixture

The label lie

276 books pay LPs. 257 charge a fee that disagrees with their label. The label is the fee a book declares when it is created; the measured fee is what its swaps actually charged, weighted per swap, as of block 56,263,800 on chain 4663. Both numbers are exact, neither is annualized — a fee label is a cut of each swap, not a yield — and the file behind every row is plain data you can diff.

books paying LPs

loading

every book the class rule calls PAYS-LPS, as of block 56,263,800

label disagrees with measured

loading

the declared fee differs from the swap-weighted fee actually charged

label and measurement agree exactly

loading

the honesty check — two independent sources agreeing rules out a definitional artifact

disagree by over half the measured fee

loading

the census divergence threshold — label off by more than 0.5 of the measured fee

the receipts

One row per book

loading the data file

pool idhook maskdeclared labelmeasured feeverdict

The file behind this table is data/label_lie.json — plain data, rebuilt by an operator tool from the frozen fee-screen fixture, never generated in your browser. Pool ids only: no pool names, no token symbols, no hook names, anywhere.

the method

Two independent numbers

The label is the fee decoded from a book's Initialize event — what the pool declared at creation, in hundredths of a bip on a 1e6 scale (10,000 = 1 percent of the swapped amount). The measured fee is the swap-count-weighted mean of the fees its Swap events actually charged. The two never share a source: one is a declaration, the other is behavior on sampled swaps.

The PAYS-LPS class itself comes from the fee screen's class rule, which reads only swap counts and protocol-fee presence — it never reads the label. That is what makes the divergence a measurement rather than a definition: a book is not called a payer because of its label, so a label that disagrees with the charges is a finding, not a tautology.

Verdict thresholds: a row is agrees when declared and measured are exactly equal, disagrees when they differ at all, and the census threshold counts rows off by more than half the measured fee.

the hand-check

Three books, read raw, before any headline

Before any count shipped, three books were hand-checked straight from the frozen fixture — raw declared label vs raw measured fee, no code in between. This is the F2 hand-check, 2026-10-06:

  • 0x007a13fa…d6db31 — declared 10,000 (1.00%); measured 10,990 (1.099%) across 169 sampled swaps. Disagrees by 990, about 9.01% of measured. No hook.
  • 0x069bf854…d06c09 — declared 1,000 (0.10%); measured 1,000.0 across 5 sampled swaps. Exact agreement. Hook mask 0x14c0.
  • 0x14f8cf47…9e044ad — declared 8,388,608 (about 838.86% of the scale — a garbage-scale label); measured 100 (0.01%) across 577 sampled swaps. The label is about 83,886 times the measured fee. Hook mask 0x2088.

Sample two is why the honest headline is a count and not a universal: 19 of the 276 books agree exactly, and two independent sources agreeing exactly rules out the divergence being definitional. An earlier census lens reported the divergence count as 276; the fixture says 257 — the census's recompute defaulted missing labels to zero, which manufactured divergences the fixture does not carry. The row count (276, every PAYS-LPS book) and the disagreement count (257) are different numbers, and this page states both.

Everything here is MIT — fork it, mirror it, and replay every figure from the frozen fixture on chain 4663.