Why order count cannot answer the question
One order may fill once, split into many fills, or remain partially unfilled. Commission is created by executed notional, and each fill can have a different price, size, and liquidity role. Multiplying an order count by an average fee produces a number that cannot be audited.
For a monthly total, use fill or income-ledger rows and include both opening and closing activity. Treat cancellations with no execution as zero notional rather than trades.
Actual ledger amounts come before public fee tables
Account tier, Maker/Taker mix, promotional rates, fee-asset discounts, rebates, and timing can move the actual rate away from a public base tier.
The ledger amount is evidence of what was posted; the public schedule is a reasonableness check.
If a schedule-based estimate differs materially from the ledger, investigate the cause. Do not replace the historical actual with today's public rate.
Report gross commission, net commission, and funding separately
Gross commission answers how much the exchange posted as trading fees. Net commission after a separately identified rebate answers a different question. Funding paid or received belongs in total trading cost, but it should not be folded into an effective execution-fee rate.
Keeping these outputs separate makes month-to-month and venue-to-venue comparisons interpretable.
Use a weighted effective rate
Divide commission in one reporting currency by the matching executed notional. The numerator and denominator must cover the same products, assets, dates, and timezone.
Also retain Maker and Taker notional. A change in weighted rate may reflect execution behavior rather than a fee-schedule change.
Monthly effective trading-fee rate
Trading commission in reporting currency ÷ matching executed notionalFunding payments are part of total cost but do not belong in the trading-fee-rate numerator.
Apply the formula to a complete example
An anonymized month contains 800,000 USDT executed notional and 331.60 USDT gross commission. The actual weighted trading-fee rate is 0.04145%. After an 8.40 USDT rebate, net commission is 323.20 USDT; a separate 47.20 USDT funding expense brings identified total cost to 370.40 USDT.
Every amount and rate in this guide is an anonymized example that demonstrates a method. None represents a real account or a current fee schedule. Your own rates depend on the venue’s published schedule and your fee tier.
Confirm these fields before summing
Column names change across export versions, but the underlying accounting inputs remain stable.
| Field or meaning | Use | Common failure |
|---|---|---|
| Trade or ledger time | Define the complete month and timezone | Month-end rows shift between files |
| Price, quantity, or notional | Build matching executed notional | Submitted order size is used instead of filled size |
| Commission | Sum opening, closing, and partial fills | Only closing fees are counted |
| Fee asset | Convert to one reporting currency | BNB or USDC is added directly to USDT |
| Income type | Separate commission, funding, rebate, and transfer | Funding is mixed into the execution rate |
From 1,842 fills to an auditable monthly cost
Assume 210,000 USDT Maker notional and 590,000 USDT Taker notional across 1,842 recognized fills. Total executed notional is 800,000 USDT.
After converting fee assets with one documented method, gross commission is 331.60 USDT. The ledger also contains 47.20 USDT net funding paid and 8.40 USDT of separately posted rebates.
The report should preserve both gross and net figures instead of silently offsetting one with the other.
- Gross trading commission: 331.60 USDT
- Net commission after rebate: 331.60 − 8.40 = 323.20 USDT
- Weighted effective rate: 331.60 ÷ 800,000 = 0.04145%
- Identified total cost: 323.20 + 47.20 = 370.40 USDT
A mismatch with a base-tier estimate is a reason to inspect tier, role mix, fee asset, and rebate timing—not a reason to discard the ledger.
Three-step reconciliation
- 1
Export a complete month of fills and income history
Confirm export limits did not truncate the start or end of the month.
- 2
Group commission by fee asset and convert consistently
Retain original amounts and document the conversion timestamp or daily-price method.
- 3
Divide matching gross commission by matching executed notional
Compare the result with account tier only as a reasonableness check.
Confirm these five items before drawing a conclusion
- The export covers the complete calendar month
- Opening and closing fills are both present
- Fee assets are preserved before conversion
- Funding and rebates remain separate categories
- Gross total and weighted rate are both reported
Common mistakes
- Multiplying order count by an assumed average fee
- Recalculating history with today's public rate
- Combining funding paid with commission before computing the execution rate
- Attributing a funding charge to the month the position opened rather than the month it settled
Scope and limits
- Base rates do not represent every account tier
- Rebates may post later than the related trade
- Multi-asset conversion introduces a valuation convention
- A calendar month and a rolling 30 days give different settlement counts; pick one and keep it
- Sub-accounts carry their own fee tier, so a combined export distorts the weighted rate
Frequently asked questions
Should monthly futures fees include funding?
Show funding in total cost, but keep it outside the trading-commission rate. Funding depends on positions and settlement events, while commission depends on executions.
Why is my ledger commission lower than a base-rate estimate?
Possible reasons include account tier, Maker share, discounts, rebates, promotions, or an estimate that double-counted notional. Reconcile the ledger before choosing one explanation.
What if commission was paid in another asset?
Keep the original asset amount and convert it with a consistent historical method. Converting an entire month at today's price can distort the result.

