What each month, quarter and weekday has actually paid, for any coin, measured from real closes and nothing else. No fitted model, no smoothing, no black box. Every cell here is a subtraction and a division you can redo by hand, and the working is printed at the bottom. Small samples make loud claims, so the observation count sits next to every statistic. Analytics, not financial advice.
Market wide
⏱ Live on the clockwhat the calendar is counting down to, updating on its own
Loading
…
📊 The readcompleted months only, the running month never counts
Loading history…
📅 Monthly returns
Average
Median
Show range
Cycle tags
Project ahead
Loading the full history…
-60%+100%halving monthrunning month, to dateprojected
🔮 The rest of the waywhat seasonality alone would draw, and nothing more
Read this first. This is not a forecast. It takes each remaining month, applies that month's own historical median return, and compounds them. The shaded band is the historical spread of those same months, not a confidence interval. It knows nothing about the future, it has no view on price, and the band is wide because monthly outcomes genuinely are. It is here so the shape of seasonality is visible, not so anyone trades from it.
Projected path
OWLCHART.COM
🎯 Seasonality readaverage and win rate disagree more often than people expect
📈 The shape of the yearthe same numbers, drawn two ways
Average return by month
OWLCHART.COM
Monthly win rate, share of months closing green
OWLCHART.COM
🔄 Year against yearcumulative path from January, pick any two, or a whole cycle group
OWLCHART.COM
🗑 Quarters and yearscompounded from the monthly closes, never averaged
Loading…
🌱 Altcoin season calendarwhich months alts actually beat Bitcoin, every month since 2019, not one live gauge
Loading the basket…
Building the alt season history…
Bitcoin seasonAltcoin seasonEach cell is the share of the largest alts we can price that beat Bitcoin that month, and the count behind every cell is in its tooltip. Above 75% is the usual definition of alt season, below 25% is Bitcoin season.
📅 Day of weekthey do not show you this one
Loading…
⛏ Halving cyclesthe countdown reads the live block height, not a fixed date
🔄 The four year framinga widely used story, shown so you can judge it yourself
This framing labels each year of the halving cycle. It describes what happened across past cycles, and three or four cycles is not a sample anyone should lean on. It is here because people trade on it, not because it is proven. The grid above is measured, this panel is narrative, and the difference matters.
₿ Bitcoin, the full record2011 to today, shown because the coin above is too young to carry a seasonal claim
Loading Bitcoin…
Show the maths, every number on this page
Monthly return. For a month m, return is (close(m) - close(m-1)) / close(m-1), each close being the last traded price of that calendar month in UTC. Nothing adjusted, nothing annualised. Average against median. Average is the arithmetic mean of every completed instance of that month, median is the middle value. They separate badly when one year is extreme, which is exactly why both are offered. Most sites show one and let you assume. Win rate. Completed instances of that month closing above the month before, divided by completed instances. Always shown with its observation count, because eight observations and eighteen are not the same evidence. Range.(high - low) / low inside the month, a plain measure of the ground it covered. Quarter and year. Compounded from the monthly returns inside the period, prod(1 + r) - 1, never a mean of months. Day of week. From daily closes, (close(d) - close(d-1)) / close(d-1), grouped by the UTC weekday of the closing day. Year against year. Cumulative product of monthly returns from January, so every line starts at zero and the shape is comparable across years of wildly different price. Projection. Each remaining month takes its own historical median return, compounded forward from the last close. The band is the 25th to 75th percentile of that month's historical returns, compounded the same way. It is a restatement of the past, not a forecast, and it carries no information about what is coming. The running month. Excluded from every average, median, win rate and streak. It appears once, dashed, as month to date, so an unfinished period can never flatter the record. Halving countdown.(1050000 - height) x 600 seconds from the live block height, so it tracks the network's real pace instead of assuming a date. Halving months are ringed gold in the grid. The market-wide indices. TOTAL, TOTAL2, TOTAL3, OTHERS, TOTAL-ES and TOTAL-E50 are built here, not bought in. Basket is the top 100 by market cap with wrapped and staked duplicates removed, so nothing is counted twice. For each month, every member that traded in that month and the previous one contributes its return weighted by its previous market value, weight = supply x close(m-1), giving R(m) = sum(w x r) / sum(w), chained into a level. Members joining or leaving change the next return, never the level, so there are no phantom jumps. Stablecoins are held at one dollar rather than fetched. This is an honest approximation of a market-cap index, it is not any vendor's TOTAL2, and it will not match one to the decimal. Altcoin season. For each month, the share of the largest alts whose return beat Bitcoin's return that same month. The pool is the top 50 by market cap with stablecoins and wrapped or staked duplicates removed, and only those with a full monthly history on a major venue, which in practice is around two dozen names rather than fifty. Every cell prints its own count, and months with fewer than eight are dropped entirely. Above 75% is the usual definition of alt season, below 25% is Bitcoin season. It measures BREADTH, how many beat Bitcoin, and says nothing about size: a month can be broadly green for alts while everything still falls. History depth. Bitcoin reaches 2011 by stitching an older daily record onto the modern one. Other coins begin at their own first traded month, printed beside the coin name so a short history is never mistaken for a long one.
📅 Share this calendar
The copy button puts a picture of the grid above straight onto your clipboard, ready to paste into a post. No download, no saved file.
Built from public market closes and the public block height. Seasonality is a base rate over a small sample, not a prediction, and a base rate says nothing about any particular month ahead. The past behaviour of a market is not a promise about its future. For information and education only, not financial advice.