Statistical

Monthly Returns Heatmap

Every Bitcoin month since 2010 as a coloured cell in a year-by-month grid. Annual totals on the right, monthly averages on the bottom — and the sample-size honesty most seasonality pages skip.

Chart data refreshed 01 May 2026 · 20:20 UTC

Month-to-date

+3.2%

Current month

Year-to-date

−11.6%

Vs prior Dec close

Best month

+453.0%

Nov 2013

Worst month

−38.7%

Aug 2011

  JanFebMarAprMayJunJulAugSepOctNovDec Year
2026 −12%
2025 −5%
2024 +119%
2023 +154%
2022 −65%
2021 +64%
2020 +298%
2019 +90%
2018 −74%
2017 +1435%
2016 +124%
2015 +36%
2014 −58%
2013 +5475%
2012 +187%
2011 +1471%
2010 +344%
Avg +8.8%+12%+10.0%+32%+18%+8.6%+8.4%−2.2%−3.9%+26%+35%+11%
Cells clamped at ±40% for legibility. Tooltip shows the raw return. Best month ever: Nov 2013 (+453%). Worst: Aug 2011 (−39%).

TL;DR

What it is
Bitcoin's monthly percentage return rendered as a year-by-month grid. Sage = up month, rust = down month. The right column is the annual total; the bottom row is the per-calendar-month historical average across every year on the record.
Where we are
Year-to-date −11.6% — a soft year-to-date but well within the historical envelope. The current month is +3.2% through the latest close.
Why it matters
Most "Bitcoin seasonality" pages skip the sample-size test. Of the twelve calendar months on this chart, 0 carries a return statistically distinguishable from zero at the conventional p < 0.05 threshold (t-stat > 2.14 for samples this small). The headline tendencies — “Uptober”, “September weakness” — are real in the record but largely indistinguishable from chance.
The catch
Daily closes only — intra-day moves don't count. Best read against rolling CAGR, volatility, and halving-cycle overlay, not on its own.

What the chart shows

01

The Bitcoin Monthly Returns Heatmap arranges every monthly percentage return since trading began in July 2010 into a year-by-month grid. Rows are years, newest on top; columns are January through December. Each cell shows the raw return for that month, with sage indicating positive and rust indicating negative; colour intensity tracks magnitude, clamped at ±40% so outlier months don't drown out the rest of the grid. The right edge column is each year's total return; the bottom row is the historical average across every year for that calendar month.

Today's reading: month-to-date +3.2%, year-to-date −11.6%. The best single Bitcoin month on record is November 2013 at +453.0%; the worst is August 2011 at −38.7%. Closes themselves rebuild overnight; the heatmap refreshes nightly.

How it is calculated

02

For every (year, month) pair where both endpoints have a daily close on record:

ret(y, m) = close(last day of m, y) / close(last day of m−1, y) − 1

The current month uses the most recent close in place of an end-of-month close, so the latest row always has a month-to-date cell. The annual total column is December close divided by the prior December close minus one, with a fall-back to compounding the defined month returns when December itself is unavailable (the first and current years).

Per-calendar-month statistics. The page computes per-month sample size, mean, median, standard deviation, and a t-statistic against zero. The t-statistic is mean / (stdev / √n). With samples of ten to sixteen years per calendar month, the conventional p < 0.05 two-tailed critical value sits near 2.14. Months with |t-stat| above that threshold are statistically distinguishable from zero on the available record; the rest are not. The full derivation, including the ±40% colour clamp and the month-end close conventions, is on the methodology page.

How to read it

03

The heatmap reads in three directions. Read by row to see how a single year unfolded month by month — was the bear front-loaded or back-loaded; did the rally come in June or November? Read by column to see how a calendar month has historically behaved across cycles. Read the bottom row to see the per-month average. The temptation is to treat the bottom row as a forecast; the table immediately below it is the antidote.

Calendar-month significance — t-statistic vs zero, df = n − 1, two-tailed p < 0.05 cut at ≈ 2.14
ReadingRegimeWhat it has meant
January 10/16 green · avg +8.8%n=16 · mean +8.8% · stdev +29.5% · t-stat 1.20 — within sampling noise.
February 10/16 green · avg +12.3%n=16 · mean +12.3% · stdev +28.7% · t-stat 1.71 — within sampling noise.
March 8/16 green · avg +10.0%n=16 · mean +10.0% · stdev +48.8% · t-stat 0.82 — within sampling noise.
April 11/16 green · avg +32.1%n=16 · mean +32.1% · stdev +85.7% · t-stat 1.50 — within sampling noise.
May 10/16 green · avg +18.1%n=16 · mean +18.1% · stdev +44.7% · t-stat 1.62 — within sampling noise.
June 10/15 green · avg +8.6%n=15 · mean +8.6% · stdev +29.8% · t-stat 1.12 — within sampling noise.
July 10/15 green · avg +8.4%n=15 · mean +8.4% · stdev +17.1% · t-stat 1.91 — within sampling noise.
August 6/16 green · avg −2.2%n=16 · mean −2.2% · stdev +23.0% · t-stat -0.39 — within sampling noise.
September 6/16 green · avg −3.9%n=16 · mean −3.9% · stdev +13.7% · t-stat -1.14 — within sampling noise.
October 11/16 green · avg +26.4%n=16 · mean +26.4% · stdev +55.2% · t-stat 1.92 — within sampling noise.
November 10/16 green · avg +34.7%n=16 · mean +34.7% · stdev +114.1% · t-stat 1.22 — within sampling noise.
December 9/16 green · avg +11.1%n=16 · mean +11.1% · stdev +28.2% · t-stat 1.57 — within sampling noise.

Historical readings

04

Pulling the annual total alongside each cycle's headline year shows the cycle structure in a different shape than the heatmap surfaces. 2013 and 2017 were both monster bull years; 2014 and 2018 were the symmetric capitulation years; 2020 was the first year the Covid flush and the recovery compounded into a positive annual; 2021 stalled despite a November cycle top. Best- and worst-month columns make the volatility regime visible.

Refreshed 01 May 2026 — annual total, plus that year's best and worst single months from the live grid.
DateEventAnnualBest · worst month
2011Year 2011 — first $32 ATH + Mt Gox bear+1471.4%Best Apr +346.1% · worst Aug −38.7%
2013Year 2013 — first parabolic year+5475.0%Best Nov +453.0% · worst Dec −33.0%
2014Year 2014 — first multi-year bear−58.0%Best May +39.4% · worst Feb −30.7%
2017Year 2017 — ICO mania top+1435.3%Best May +72.5% · worst Mar −9.4%
2018Year 2018 — crypto-winter−74.3%Best Apr +35.2% · worst Mar −35.6%
2020Year 2020 — Covid flush + ETF prelude+298.3%Best Dec +58.7% · worst Mar −26.5%
2021Year 2021 — cycle top+63.6%Best Oct +48.7% · worst May −33.4%
2022Year 2022 — post-FTX−64.8%Best Mar +24.5% · worst Jun −36.6%
2024Year 2024 — spot-ETF launch+119.4%Best Feb +45.9% · worst Jun −11.0%

The seasonality skeptic's table

05

The page's distinctive contribution is the per-calendar-month table above: sample size, mean, standard deviation, and a t-statistic against zero. The t-statistic is the right test for “is this month statistically different from a fair coin?”. With Bitcoin's roughly fifteen years of data, conventional two-tailed significance at p < 0.05 needs |t-stat| above about 2.14. 0 of the twelve calendar months clear that bar.

The four highest mean-return months on record are: November (+34.7%, n=16, t=1.22); April (+32.1%, n=16, t=1.50); October (+26.4%, n=16, t=1.92); May (+18.1%, n=16, t=1.62). Even those readings — the strongest tendencies the data supports — carry standard deviations on the order of +114.1% to +44.7%. Bitcoin’s monthly returns are noisy enough that one cycle of out-of-character prints can flip a column average by several percentage points.

None of this means “Uptober” or “September weakness” are wrong observations of the historical record. They are real in the data; October has been the most reliably positive calendar month and September is among the weakest. But the academic literature on calendar effects in stock returns — Sullivan, Timmermann & White (2001) is the canonical critique — warns that calendar tendencies that look strong cycle-by-cycle largely vanish when the universe of tested patterns is properly accounted for. With Bitcoin's smaller sample, the warning is stronger, not weaker.

Best and worst months on record

06

The chart's extremes cluster in the early 2010s by mathematical necessity — when Bitcoin traded in single dollars, a $20 monthly move was a multiplier; the same dollar swing today is a percent. The best Bitcoin month on record is November 2013 at +453.0%; the worst is August 2011 at −38.7%. Both extremes are visible in the upper-left of the heatmap as saturated cells. The interesting observation is what happens later in the grid: cell magnitudes compress over time as the asset matures, the same maturation pattern that shows up on the rolling-volatility chart.

What this means for you

07

For a dollar-cost-averaging investor. Don't time around the monthly grid. The per-month statistical signal is too weak relative to the monthly volatility for a calendar-month rule to add value at a meaningful horizon. A steady weekly buy across the post-2015 history will hit roughly the per-month average over time anyway, and the path-dependent variance across years dwarfs the seasonality.

For a cycle-timing trader. The grid is a cycle-context lens, not an entry rule. Reading rows shows you the shape of each cycle: back-loaded vs front-loaded, two-stage vs single-stage. The halving-cycle overlay and drawdown add cycle-position context the heatmap can't provide on its own.

For a researcher. The per-month statistics table is reproducible from the daily-close history. The t-statistic threshold and the ±40% colour clamp are both judgement calls; the methodology page records them. Cross-reference seasonality findings here against the academic literature on calendar effects (Sullivan, Timmermann & White 2001; Bouman & Jacobsen 2002 on the Halloween effect in equities) before publishing strong claims.

When it fails

08

Sample size. Bitcoin has fifteen-and-change years of monthly closes. Per-calendar-month sample sizes run from ten to sixteen. That is too small to support strong claims about month-of-year tendencies. The seasonality-skeptic table above is the page's main acknowledgment of this; reading it before the bottom-row averages is the whole point. Any single cycle's strong or weak prints can shift a column average by a few percentage points.

Daily closes only. Returns use last daily close of each month. A month that closed slightly up on the last day after having been strongly up intra-month reads as flat; a month that put in an intra-day wick but recovered by close reads as positive. For weekly granularity or intra-day detail, a different chart would be needed.

Colour clamp at ±40%. The colour scale clamps so a 60% month and a 45% month look the same shade of green. The number in the cell always shows the raw value; the bestMonth and worstMonth callouts surface the absolute extremes.

Month-end snapshot conventions. Different price providers snapshot month-end at slightly different times. A handful of historical months can read a few percentage points off the figures other sites publish, depending on the venue or aggregator they use. The direction is always correct; magnitude can drift one to ten percentage points on a small number of dates. Cross-reference the data sources page for our specific provenance.

Frequently asked

09

Canonical questions from Google's “People also ask” block for bitcoin monthly returns, answered against the data on this page.

What does each cell on the Bitcoin Monthly Returns heatmap represent?
Each cell is one calendar month's percentage return — last-day close divided by the prior month's last-day close, minus one. Green is positive, rust is negative; intensity tracks magnitude, clamped at ±40% so outlier months don't drown out the rest of the grid. The current month uses the most recent close in place of an end-of-month close.
What is Bitcoin's best and worst month ever?
On the daily-close record, the best Bitcoin month was November 2013 at +453.0%; the worst was August 2011 at −38.7%. Both extremes cluster in the early 2010s when absolute price moves translated into much larger percentage swings.
Are Bitcoin monthly returns seasonal?
Mostly no, despite the popular framing. Across 16 Octobers on record, the average return is +26.4% with a standard deviation of +55.2%; the t-statistic against zero is 1.92, below the conventional p < 0.05 threshold of about 2.14 for a sample this small. Of the twelve calendar months, 0 carries a return statistically distinguishable from zero on this sample.
Is October bullish for Bitcoin?
October has historically tilted positive — 11 of 16 on-record Octobers were green, with an average of +26.4%. The hit-rate is real but the sample is small. The standard deviation is +55.2% — a single rough October can flip the average several percentage points. Treat “Uptober” as a tendency in the historical record, not a forecast.
Is "Sell in May and go away" relevant for Bitcoin?
It maps from equity markets, where Bouman & Jacobsen documented the “Halloween indicator” in The Halloween Indicator, ‘Sell in May and Go Away’: Another Puzzle (American Economic Review, 2002). On Bitcoin's 17 years of data, May's average return is +18.1% with a t-statistic of 1.62; not statistically distinguishable from zero. Crypto-markets have not yet produced the multi-decade record needed to prove or disprove a Halloween effect on Bitcoin.