Free lesson · Crypto markets
A reconciled spot research ledger
Open interactive lessonPractice calculationsExplore labs
Start with the idea
A reliable research result explains every change in cash and token balances. Trades, transfers and rewards should not be mixed together.
Symbols, units & horizon
- All q variables: units of one named base token
- start/end: ledger boundary balances
- buy/sell: executed quantities during the interval
- deposit/withdraw: external token flows
- fee: charges paid in this token
- no rewards in this example
When and why to use this
Create a spot portfolio project with a transaction ledger, currency translation and zero unexplained balance residuals.
A reliable research result explains every change in cash and token balances. Trades, transfers and rewards should not be mixed together.
Track beginning balances, buys, sells, fees by asset, deposits, withdrawals and ending balances. Mark the ending portfolio with documented prices and keep external flows separate from trading profit.
Reconcile quantity first, then value. Transfer between your own accounts changes location but not consolidated wealth apart from fees. A negative residual indicates missing, duplicated or incorrectly signed events rather than an alpha signal.
A reconciled spot research ledger
- Start with the verified beginning token balance.
- Add purchases and deposits; subtract sales and withdrawals.
- Subtract fees charged in this token and compare with the observed ending balance.
Start .5 BTC; buy .2; sell .1; deposit .05; withdraw .03; fee .001. Ending balance=.619 BTC.
Apply it in a strategy
- Create a spot portfolio project with a transaction ledger, currency translation and zero unexplained balance residuals.
- Record the input timestamp, executable quantity, currency and horizon. Reconcile the result with a cash-flow or state table.
- Stress this failure condition: Counting internal transfers as new wealth or marking unredeemable balances at par inflates performance.
Research deliverable
Build and explain a a reconciled spot research ledger worksheet. Create a spot portfolio project with a transaction ledger, currency translation and zero unexplained balance residuals.
Evidence boundary: Synthetic arithmetic and scenarios illustrate mechanics. They are not historical returns, a paper replication, or evidence of an executable edge. Research sources and their access limitations are recorded at the end of this module.
Primary research and operational references · reviewed 12 September 2026
Further reading: Schmeling, Schrimpf & Todorov — Crypto carry ↗
BIS Working Paper 1087; initially April 2023 · Review: Primary publisher summary and abstract checked 2026-09-12; full paper not reviewed in this authoring pass. Markets/data: Bitcoin and Ether spot/futures; exact sample endpoints not verified in this pass. Interpretation: Motivates separating quoted carry from capital and margin constraints. Limits: Summary-level access; no inference that a quoted basis is a realizable return. No independent replication performed.
Further reading: Aldasoro, Beltrán & Grinberg — Stablecoin flows and spillovers to FX markets ↗
BIS Working Paper 1340, 27 March 2026 · Review: Primary publisher summary and abstract checked 2026-09-12. Markets/data: Four USD stablecoins, 27 fiat currencies, 64 exchanges, 2021–2025. Interpretation: Motivates studying stablecoin conversion as a segmented FX route with balance-sheet constraints. Limits: The identification and quantitative estimates require full-paper review; a parity gap is not a frictionless trading profit. No independent replication performed.
Research sources, review dates and limitations
Python implementation
Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.
# Python 3.10+; standard library unless NumPy is imported below.
# Inputs and outputs use the units defined in this lesson. Synthetic teaching example.
def ending_balance(start,bought,sold,deposited,withdrawn,fees):
if min(start,bought,sold,deposited,withdrawn,fees)<0: raise ValueError("Flow magnitudes must be nonnegative")
return start+bought-sold+deposited-withdrawn-fees
print(ending_balance(.5,.2,.1,.05,.03,.001))Continue learning
Crypto Markets: Instruments, Ownership and Cash Flows — all lessons- Base, quote and instrument identity
- Returns across two currencies
- Order-book depth and average execution price
- Stablecoin conversion is an FX route
- Custody claims and recovery scenarios
- Token issuance, unlocks and dilution
- Staking rewards and economic return
- A reconciled spot research ledger
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations