The following plots are based on historical data of bitcoin. The source code that produces these plots is available here . This analysis was last updated on 2025-Jul-25.
Below is the historic price of bitcoin in USD/BTC, which will be the center of this analysis. This plot shows the conversion ratio USD/BTC as a function of time and it is commonly found in many online sources, for example Google and Yahoo (for USD/BTC).
The `y` axis is in linear scale, which is completely misleading. Since USD/BTC is a ratio, when it moves from 1 to 2 you will gain (or loose) exactly the same as when it moves from 1000 to 2000, or from 1000000 to 2000000. Looking at the plot below, for example, it may seem that not much happened before 2017 as compared to the period 2017-2025. This conclusion, however, cannot be more mistaken. During 2011-2017 it experienced more than a ×10000 increase in its value, as compared with merely ×100 in 2017-2025. This is a bias introduced by the wrongly chosen linear scale, which is unfortunately the most common out there for these plots.
If we take the logarithm of the bitcoin price and the logarithm of the time, the data seems to follow a linear trend, as seen in the plot below. A linear function is fit, the parameters are shown in the plot itself.
It is possible to plot exactly the same data but in linear time. Such a plot is shown below, and the equation of the fit describing the conversion rate in linear time is
$$\text{conversion rate}= \left( \frac{ t-\text{2009-Jan-03} } { 1\text{ day} } \right) ^{ \text{ 5.70e+00 } } \times \text{ 2.79e-17 } \text{USD/BTC}$$
By extending the fit into the future it is possible to get an estimation of the future of bitcoin. This is shown below. This plot is commonly known as "rainbow plot".
For ease of read, it is possible to reverse the logarithm in the y axis to get the data in the units of the conersion rate. This is shown below.
Here is a detail in the years to come:
By substracting the fit to the conversion rate (in logarithmic units) it is possible to observe the deviations of bitcoin from the average evolution to study its volatility:
Ignoring the time variable and plotting this data in a histogram it looks like this:
We can show the same data in a violin plot, where it is easier to observe te differences in each halving cycle. This plot is shown below.
As seen in the previous plots, after every halving the bitcoin gets more stable, i.e. less fluctuations. For those who like to exploit the volatility for short- and mid-term trading, this is bad news. We can still expect a volatility of about a ×2 ÷2 with respect to the mean price for the current halving era nhalving=4.
It is possible to define the "price offset" as $$ \text{price offset} := \frac{ \log \text{ USD/BTC } - \log \text{fit} } { \frac{d}{dt} \log \text{fit} }$$ which has units of time (e.g. days). The plot of the price offset is shown below. The interpretation of this quantity is that it measures how much you have to wait until the average price of Bitcoin is the price for that day. For example if the price offset is of 1000 days, this means that if you bought Bitcoin that day you are paying a price higher than the one that should correspond in that day, and you are paying the price that it should have 1000 days in the future. As another example, a price offset of -500 days means that you are paying the price Bitgoin had, on average, 500 days ago.
Updated on 2025-Jul-25.
Source code