A higher account balance is not proof of funding income. A monthly reconciliation rests on one identity:
Closing equity − opening equity − net deposits = funding + realized P&L + change in unrealized P&L − fees + rebates − borrowing interest + unexplained difference
The left side comes straight from the account. The right side is what you classify line by line. Only when both sides agree can you say how much funding contributed this month. Whatever does not reconcile stays in the last term; do not push it into funding to make the sheet balance.
Which components make up a return, and why only one of them reliably repeats, is covered in splitting returns into five parts. This piece is a template you can fill in, plus a mistake we made ourselves.
Step 1: fix the boundaries
State four things: start and end time, time zone, which accounts are included, and the reporting currency. Funding belongs to the month in which it settled; judge the boundary settlement by its settlement time, not by the date on a screenshot.
Transfers between your own accounts are cash flows inside a single account but should cancel in a consolidated view. If they do not cancel, the same money appears as an outflow in one place and an inflow in another, and can even be read as new profit.
Step 2: classify by statement type
Using Binance USDⓈ-M futures as an example, statement entry types map roughly onto the right-hand side of the identity:
| Category | Usual statement type | Watch out for |
|---|---|---|
| Funding | FUNDING_FEE |
Can be positive or negative; assign by settlement time |
| Realized P&L | REALIZED_PNL |
Includes the entry and exit basis between legs, which is not interest |
| Fees | COMMISSION |
Maker and taker rates differ; use actual fills |
| Rebates | Rebate entries | Some arrive daily, some monthly; align across month-ends |
| Internal transfers | TRANSFER |
Cancel against the matching entry in the other account |
| Borrowing interest | Margin account interest records | Not in the futures statement, and the easiest to miss |
| Change in unrealized P&L | Closing valuation − opening valuation | Both ends must use the same valuation method |
Keep the exchange’s original type and transaction ID, then add your own category column so you can trace entries later.

The line we once missed: borrowing interest
The borrowing-interest row is in the template for a reason. In our own system, interest on borrowed-and-sold assets once sat outside every cost table. It was converted per asset and added to cumulative cost only in August 2026. Until then, the net figure was overstated every month, and the system never raised an error. Omissions like this do not fail loudly. They just make the numbers look better.
So every category in the template needs an explicit data source. If a category is zero this month, write “0, checked” instead of leaving it blank.
Step 3: keep the unexplained difference
Mismatches are normal. Common causes:
- Inconsistent time boundaries (the account cuts days in UTC, the report uses local time);
- Currency conversion at different timestamps;
- Rebates or interest arriving late;
- A whole category of records that was never exported.
Record the difference with the suspected cause, and start next month’s reconciliation by clearing last month’s. A difference that keeps appearing in the same direction usually means a category is missing.
Step 4: compute a return last, and name the method
Compute a return only after the books reconcile, and say which method you used. The same funding data gives very different numbers depending on method. From our yearly data (as of 2026-09-27):
- BTCUSDT in 2021 sums to 30.64% period by period; an older dashboard reported 35.83% by compounding;
- BTCUSDT since 2020 sums to 80.68% in total, versus 109.62% compounded;
- The weakest complete year was ETHUSDT in 2022, at just 0.79% summed.
We always report the summed figure, because positions are not automatically reinvested; the compounded number describes a position that never existed. See summed versus compounded funding. When quoting returns, show the worst year alongside the best.
Template columns
Date (settlement time) | account | original type | transaction ID | amount | currency | conversion rate and timestamp | converted amount | your category | notes. At month-end, total by category and plug the totals into the identity above.
How an investor can check the returns a platform reports is covered in the six things you can verify, and the one you cannot. Year-by-year data is on our performance page. This is a reporting structure, not an audit opinion; positive funding in the past does not mean the next period will be positive.
