Seasonality

Seasonality Widget — Year-by-Year Performance

Some assets move with the calendar. Retailers build through autumn, energy leans on winter, and a good many stocks have a quiet stretch every summer. This widget lays several years of history on a single twelve-month axis so those patterns become visible: each year is one line, each line starts at 0% on its first trading day, and what you compare is the shape of a year rather than how big it was.

HTML
How to get started

Sign up for free, add your website domain, and paste the embed code above into your HTML. Your widget will activate automatically.

AAPL

The asset to chart. Seasonality needs a few years of history — very new listings will show fewer lines.

How many past years to draw. Fewer lines read more clearly in a narrow widget; more years make a seasonal pattern easier to trust.

Every Year on One Axis

A normal price chart runs left to right through time, which makes it good at trends and poor at seasons — March 2022 and March 2026 sit years apart on the screen. Here they sit on top of each other. Each year is rebased to zero on its own first trading day, so a quiet year and a spectacular one can still be compared by where they rose and where they stalled. Hovering anywhere gives you every year's figure for that date at once, which is the question this chart exists to answer: "by late May, where was this usually?"

The Same Data as a Table

Charts show shape; tables show numbers. One button switches to a month-by-month grid — each cell is that month's own return, coloured green or red — with each year's total in the last column. Underneath, a row counts how often each month rose and how often it fell across the years shown. Five greens out of six in one column is a pattern worth a sentence in your article; three and three is not, and the table says so plainly.

How Many Years to Show

The default is five, which reads cleanly even in a narrow column and is recent enough to still describe the asset as it trades now. You can go up to ten where a longer record matters, or down to three for a young listing. A symbol with less history simply draws fewer lines rather than failing — a coin listed two years ago gets its two years.

Key Features

  • Years overlaid — three to ten years on one twelve-month axis, each rebased to 0%.
  • All years on hover — one cursor, every year's figure for that date.
  • Month-by-month table — each month's return, each year's total, colour-coded.
  • Rise and fall counts — how often each month finished up or down.
  • Clickable legend — hide a year to read the rest more clearly.
  • Stocks, indices, forex and crypto — anything with daily history.
  • Drawn as SVG — sharp at any size, no charting library to load.
  • Light and dark themes — follows the host page, with full color customization.
  • Free to embed — no signup, no API key, no monthly fees.

Who Uses This Widget?

Market commentary that runs to a calendar — "the September effect", year-end rallies, summer lulls — needs a picture that actually shows the calendar, and this is it. Research pages pair it with a symbol's overview so a reader gets both the trend and the rhythm. Education sites use it to teach what seasonality is and, just as usefully, where it does not hold. For the current trend rather than the seasonal one, use symbol overview; for the fundamentals behind it, see financials.

A Note on Reading Seasonality

A pattern across five years is an observation, not a rule. Five Marches rising tells you something about those five years; it does not promise a sixth. The widget is built to make that honest — it shows every year, including the ones that break the pattern, rather than a single averaged line that hides them. Use it to notice something worth investigating, not to predict.