The funding rate collector has been rebuilt. The change that matters is that it now records account equity at the settlement instant.
Return rate = funding collected over a period ÷ principal. The numerator can be recovered at any time; the denominator cannot. Account equity is a point-in-time value, and it can only be read by standing on the settlement point itself. Recovering it afterwards leaves you dividing by the most recent snapshot — and if the account added to its position in between, the resulting return comes out visibly too low.
After the rebuild:
- The collector records return and the account equity of that moment together at every settlement point. The standard cadence is three — 00:00, 08:00 and 16:00 UTC — but the number per day is not a constant: Binance has moved a batch of contracts to 4-hour settlement and a few to 1-hour. A collector with “three a day” hard-coded under-samples those contracts silently. Cadence is now resolved per symbol from
fapi/v1/fundingInfo, falling back to 8 hours when the pair is absent and clamped to a 0–24 hour range - Every return figure carries an effective sample count (settlements with an equity snapshot / total settlements), and rows below 50% are marked
- Historical flows can be backfilled by date range, and backfilled rows are explicitly marked as having no equity snapshot so they never enter the return calculation
Publishing the sample count looks like a small thing, but it decides whether a return figure can be believed at all — one computed from three samples looks exactly like one computed from three hundred.
This pipeline is what backs the public funding rate dataset: 450 symbols and 878,142 settlement records reaching back to 2020. BTCUSDT accounts for 7,344 of them with 85.95% positive, ETHUSDT 86.19% over the same span — those percentages are publishable precisely because the settlement count behind each one can be opened and checked.
