A logarithmic regression fitted to Bitcoin’s entire recorded price history, with the conventional coloured bands drawn as fixed offsets above and below the trend line. The chart is drawn live in your browser from public price data.
Loading price history…
This is general information, not financial advice. BizziKit is not licensed to provide financial product advice and nothing on this page is a recommendation to buy, sell or hold anything. The band names shown on the chart — including “buy” and “sell” — are the conventional labels of the original model, reproduced so the chart is recognisable. They are not our view and should not be read as a signal.
The model is fitted to past prices. It has no predictive power, no underlying mechanism, and its band boundaries are chosen by hand rather than derived from the data. Crypto assets are volatile and you can lose the entire amount. If you are making a decision with money, seek advice from someone licensed to give it.
Two things, and it is worth separating them because only one of them is arithmetic.
The first is a regression. Bitcoin’s price is plotted on a logarithmic scale against time, and a straight line is fitted through it by least squares. Because both axes are compressed — price logarithmically, time by its natural logarithm — a line on this chart describes a curve in ordinary terms: rapid early growth flattening progressively. That fit is objective. Given the same data, anyone gets the same line.
The second is the bands, and they are not arithmetic at all. They are drawn at fixed offsets above and below the regression line, and the size of those offsets was chosen because it produces a chart where the price mostly stays inside the colours. Nothing in the data determines where one band ends and the next begins.
That is the distinction to hold on to. The line is fitted. The rainbow is decoration with names attached.
A practical consequence worth knowing: different published rainbow charts disagree about which band the price is in, and none of them is wrong. They use different band widths, different starting dates and sometimes different fitting methods, so the same price on the same day lands in different colours depending on whose chart you are looking at. If two rainbow charts give you different readings, that is the model working as designed rather than one of them being broken — which is itself a reason not to treat the band name as information.
The labels — from “maximum bubble territory” down to “basically a fire sale” — are inherited from the original chart, which was made as a half-joke and acquired a following it was never designed to carry.
We have kept them because they are what the artefact is known by, and renaming them would make the chart harder to recognise. But they are the model’s own labels, not a recommendation from us, and a band called “buy” is a colour on a chart rather than a conclusion about anything.
The fit statistic shown above the chart is usually high, and it is routinely over-read.
R² here measures how much of the variation in log price the trend line accounts for. Two things inflate it. Taking logs of a series that has moved across several orders of magnitude compresses enormous differences into small ones — the gap between $100 and $1,000 is the same distance as between $10,000 and $100,000. And any series that has generally risen over time will correlate strongly with time.
So a high R² on this chart tells you that Bitcoin’s price has broadly trended upward on a log scale. It does not tell you the model has found a law, and it says nothing about what happens next. The residuals — the distance between price and the line — are where all the interesting behaviour is, and they are large, persistent, and not random.
It is fitted to the past, including the future you want to predict. The line is drawn through data that already happened. A model fitted to a period will describe that period well. That is not evidence it will describe the next one.
The bands move as data arrives. Because the regression is refitted on the full history, the position of every band changes over time. A price that sat in one band under last year’s fit can sit in a different band under this year’s, without the price having moved.
There is no mechanism. A power law in physics comes with a reason. Here the functional form was chosen because it fits, not because anything about Bitcoin implies it. Curve-fitting without a mechanism is description, not explanation.
Survivorship. The chart exists because Bitcoin’s history looks like this. Assets whose history did not fit a tidy log-linear trend do not have famous rainbow charts.
Read as description rather than forecast, it does something no price chart does: it shows how far price currently sits from its own long-run trend, on a scale where early history is still visible.
That is a real perspective. A linear chart of a decade of Bitcoin makes everything before the last few years invisible. This one does not, and being able to see the whole shape at once is worth having — provided you stop at “here is where it sits relative to trend” and do not continue to “therefore it will”.
What is the Bitcoin rainbow chart?
A logarithmic regression fitted to Bitcoin’s price history with coloured bands drawn at fixed offsets above and below the trend line. The regression is calculated from the data; the band boundaries are chosen by hand.
Is the rainbow chart a prediction?
No. It is fitted to prices that have already happened and has no mechanism behind it. It describes where price sits relative to its own past trend and cannot tell you what happens next.
Why is the R² so high?
Because the fit is performed on log price against log time. Taking logs compresses very large differences, and any generally rising series correlates with time. A high value here is much weaker evidence than the same number on an unlogged series.
Do the bands move?
Yes. The regression is refitted as new prices arrive, so every band shifts over time. A price can change band without moving, simply because the underlying fit has been recalculated.
Where does the price data come from?
CoinGecko’s public API, fetched in your browser and cached locally for twelve hours. Nothing is sent to our servers — the site has no backend.