Why two numbers and not one. Combining fee income with a change in token quantities needs a single currency to express both in. A currency needs a price, and a price needs an oracle. That would put a new trusted input inside the one product whose whole claim is that it needs none. So both legs are published and you apply your own numéraire, visibly, with your own price source. If someone hands you a single LP return, ask which price feed produced it and at what moment.

Run it against a live signed series

Reading the catalogue…

What this figure is not

It is not an LP return you can put in a report unmodified, and that is deliberate. Three things are outside it:

Sub-basis-point rounding noise also lands on the fee leg when liquidity moves, in both directions. The largest daily decrease we have measured is about 0.0007%, two orders of magnitude inside the continuity bound that would refuse a snapshot, so it is disclosed rather than smoothed.