Data Always

Posted on Nov 24, 2022Read on Mirror.xyz

Reflecting on flows models

A year ago, I posted my take on both Bitcoin and Ethereum flows modelling. It would be an understatement to say that I was naïve compared to who I feel I am today. In retrospect, the presentation of the models, as well as the models themselves, were flawed—full of what to me were unknown unknowns.


There remain attributes of the models that I believe are very strong:

  • Many prominent crypto price models break or exhibit strange edge case behavior when token supply becomes deflationary (ie: stock-to-flow implies infinite value).

    • This is a particularly large problem when modelling Ethereum because, although Ethereum isn’t permanently deflationary, its theoretically decreasing supply isn’t captured well.

      • In my view the right way to view the Ethereum token supply is not as deflationary but instead as super-saturated. Although the token supply will decrease, it will only decrease until it hits a steady state between issuance and burn—rather than a truly deflationary asset where the supply trends towards zero.
  • It provides some amount of data to support, and tells us one possible version of the story behind, SquishChaos’s Triple Halving model.

  • The model’s focus on behavior at the margins rather than trying to examine the total supply of an asset is more reflective of how commodity markets function.

    • For example, Biden’s SPR releases were about 1/1000th of daily oil futures trading volume yet put significant downwards pressure on energy prices.

      • These small marginal factors are actually extremely influential on longer time scales, but are overshadowed in the short-term by transient events.
  • PlanB’s stock-to-flow model is highly flawed but has at times been accurate. Looking under the hood with the Bitcoin flows model exposes both why stock-to-flow tracked well until this cycle, as well as why price targets were not hit.

    • The stock-to-flow model, even if one pretended that it was valid, still would break down as mining revenue transitions from mainly subsidy to transaction fees.
  • There are large discussions in the on-chain community about the signal derived from exchange flows. The discussions tend to be first-order and useless, but by considering the wider flow of coins we can adjust for issuance and filter noise from the data.

    • I think my version of flows modelling does a crude version of this, but if someone dedicated the time they could probably do a better job.
  • Rather than relying on a pre-solved demand profile, flows modelling gives us the ability to adjust price targets on an evolving basis as trends change—without throwing away the entire model.

Although the model has positive attributes, there are some prevalent issues that I now appreciate much more than I did a year ago:

  • Exchange balance and flow metrics are far less reliable than I realized at the time.

    • For Bitcoin this is mostly due to poor coverage and poor wallet tracking.

      • There are now thousands of exchanges, and although the majority of large exchanges are covered, a significant fraction of volume is missed.

      • Missing exchanges are generally newer and have different balance patterns than older exchanges, ie: when Glassnode added FTX (rip) in late-2021 it caused a large change in the pattern, from largely decreasing to stable/increasing total exchange balance.

      • Glassnode doesn’t adequately track Coinbase balances. Coinbase prepares for withdrawals by splitting a chunk of bitcoin into many small wallets before distributing them. Glassnode ignores this step making Coinbase balances a step function down.

    • Ethereum also suffers from poor coverage and wallet tracking, but in addition proper coverage would also need to extended to decentralized exchanges—at which point the lines get blurrier.

    • Every data provider has different exchange coverage making the model highly dependent on which provider one uses.

    • None of the data providers cover old exchanges (ie: MtGox) which means that the old data is extremely unreliable.

  • One of the strengths of the model is how it can be adjusted to account for changes in demand, but this by definition makes the model largely non-falsifiable which calls into question its value.

    • The assumed demand profile is falsifiable but these were also the least accurate part of the whole model.

    • The relationship between actual demand and resulting price is falsifiable but only well after the fact, and with the large imprecision of the model when this happens is less clear.

  • The assumptions around how withdrawals (post-merge) would be handled were wrong, but after accounting for partial withdrawals they were (purely by luck) accurate-ish.

  • The model obviously ignores the wider macro situation that we’re currently seeing.

  • The model doesn’t account for liquid staking derivatives which in essence inflate the supply of ether. I didn’t even know what a LSD was at the time.


I still believe the models to be directionally correct, and I think the intuition from them (required net demand levels to support long-term price) will turn out to be accurate approximations, but I don’t have any desire to update models that I see as broken.