By using this site you consent to accept Mesmer Data LLC's analytics and functional cookies.
Read more by clicking 'Cookie Settings' here, or in the bottom menu.

BTC - Realized Profit & Loss Split, Entity-Adjusted (USD)


The Bitcoin Realized Profit & Loss shows the sum of profits (USD) from all profitable transactions, and sum of all losses (USD) for all unprofitable transactions, for each timeframe. The adjusted data (Profit & Loss ) uses an entity-adjusted cost basis to calculate profits, while the unadjusted data (Profit & Loss ) uses a cost basis derived from each coin's last-move price. Profits are shown as positive values, losses as negative.

Bitcoin's USD Market Price is included for reference.


Bitcoin Realized P&L Split, Entity-Adjusted & Unadjusted (USD):

for each block in blockchain:
  for each tx in block:
    pl_usd := tx.val_usd - tx.costbasis_usd
    pl_usd_eadj := tx.val_usd - tx.costbasis_usd_eadj
    if (pl_usd > 0):
      block.profit += tx.pl_usd
      block.loss += tx.pl_usd
    if (pl_usd_eadj > 0):
      block.profit_eadj += tx.pl_usd_eadj
      block.loss_eadj += tx.pl_usd_eadj
  (x,y1,y2) := (block.time, block.loss, block.profit)
  (x,y3,y4) := (block.time, block.loss_eadj, block.profit_eadj)

for each hour in blockchain:
  hr_p_usd := sum(blockchain[hr_start:hr_end].profit)
  hr_l_usd := sum(blockchain[hr_start:hr_end].loss)
  (x,y1,y2) := (hour, hr_l_usd, hr_p_usd)

  hr_p_usd_eadj := sum(blockchain[hr_start:hr_end].profit_eadj)
  hr_l_usd_eadj := sum(blockchain[hr_start:hr_end].loss_eadj)
  (x,y3,y4) := (hour, hr_l_usd_eadj, hr_p_usd_eadj)

for each day in blockchain:
  day_p_usd := sum(blockchain[day_start:day_end].profit)
  day_l_usd := sum(blockchain[day_start:day_end].loss)
  (x,y1,y2) := (day, day_l_usd, day_p_usd)

  day_p_usd_eadj := sum(blockchain[day_start:day_end].profit_eadj)
  day_l_usd_eadj := sum(blockchain[day_start:day_end].loss_eadj)
  (x,y3,y4) := (day, day_l_usd_eadj, day_p_usd_eadj)

Technical Info

As coins move between TXOs, we track the difference between the values of acquisition and sale, and we do this for every transaction on the chain. For the unadjusted data, each time a coin moves, its cost basis and profit values reset. For the entity-adjusted data, the cost basis for a coin only resets when the coin travels between entities, and intra-entity "profits" are excluded. Here we chart the sum of all profitable transactions in green and all loss transactions in red for both variants.

Our entity tracking uses a proprietary algorithm, the foundation of which groups transaction input addresses. We currently track over 99 600 000 entities, spanning over 795 000 000 addresses. The largest entity has approximately 37 480 000 addresses, and the average has 7.98.

  • Hourly and daily aggregations are derived from block data using sum for this metric.
  • Hourly data contains occasional gaps; no blocks were generated during these times.


This site is currently in Beta, and there will likely be some bugs. If you find any, please check out the FAQ first, and then let us know! Thanks! Chart views are saved between visits, so if you have any display issues and want to reset your chart view, click here.

This site is for informational use only. Users are required to conduct their own analysis, draw their own conclusions, and make their own financial decisions. Consult with qualified professionals before making investments. This service is not intended as legal, financial or investment advice. For full details please visit our Disclaimers page.