Learn · Bursa Malaysia

Seasonality in Bursa Stocks: How to Read Monthly Patterns

Learn how seasonality works in Bursa Malaysia stocks: month-by-month tendencies, probability of an up period, limits and a worked RM example.

Quick Answer

The short answer

Seasonality means a stock or market has tended to rise or fall in certain months, often because of recurring events such as results seasons, dividend timing, festive demand or crop cycles. It is a historical tendency expressed as a probability, not a promise, and works best as a supporting clue.

Last reviewed: 28 October 2026 · Author: Finworld Research Team · Prepared by the Finworld team, who have passed SIDC examination modules 6 (Stock Market and Securities Law) and 7 (Financial Statement Analysis and Asset Valuation)

Part 01

What seasonality is and is not

Some businesses have natural calendars. Consumer goods companies do well around festive periods. Plantation output follows weather and crop cycles. Banks and many listed companies release results on a predictable schedule. Because enough investors know these rhythms, prices sometimes show repeating tendencies at certain times of year.

Seasonality analysis counts how often a stock or index rose in each calendar month across many years. The result is usually shown as an average return and a probability of an up period. It is useful context, but it is purely historical. It cannot know that this year has a new government policy, a commodity price shock or a different interest rate backdrop.

Part 02

Why patterns might exist

It helps to separate patterns with a plausible cause from patterns that may be coincidence.

Possible driverTypical timingPlausible effect
Results seasonWeeks after each quarter endsHigher volatility, price moves on earnings
Dividend declarationsAround results announcementsInterest in high-yield names ahead of entitlement dates
Festive demandBefore major festive periodsConsumer and retail-related sentiment
Crop cyclesSeasonal production peaks and troughsPlantation earnings and price expectations
Fund reporting datesQuarter and year endsPortfolio adjustments
Budget announcementsAnnual budget periodSector-specific reactions to policy

A pattern with a clear cause is more credible than one without. If a stock has risen every August for eight years and nobody can say why, treat it with suspicion. Humans find patterns in random data very easily.

Part 03

Step-by-step method

Step 1: Choose the right subject. Look at seasonality for the index, the sector and the stock. A stock’s pattern often reflects its sector’s pattern.

Step 2: Collect enough history. Aim for ten or more years of monthly returns. Check the sample size shown, because a pattern from five observations is weak.

Step 3: Read both numbers. Look at the average return and the probability of an up period. A high average with a low probability means one or two big years carry the number. A moderate average with a high probability is more consistent.

Step 4: Look at the spread. Note the best and worst years for the month. A wide range means the average hides large swings.

Step 5: Look for a cause. Match the pattern to a real calendar event, such as results timing or a seasonal business cycle.

Step 6: Check the current context. Compare the trend, sector direction, valuation and recent news with the historical pattern. A favourable season in a falling trend carries less weight.

Step 7: Combine with other evidence. Use seasonality as a tiebreaker. If fundamentals, trend and volume are supportive and the month is historically favourable, that adds a small amount of confidence.

Step 8: Keep position size sensible. Because probability is not certainty, never size a position on the strength of a seasonal pattern alone.

Part 04

Worked example: Company A

Company A is a hypothetical Main Market consumer products company. Here is its illustrative month-by-month history over ten years, for the months around the festive season.

MonthAverage returnYears up (of 10)Probability upBest yearWorst year
October+1.2%660%+9.0%-7.5%
November+2.8%770%+11.0%-4.0%
December+0.4%550%+8.0%-9.0%
January+3.1%880%+12.5%-3.5%
February-0.6%440%+7.0%-10.0%

January looks attractive: 80% of years were up, and the worst year lost only 3.5%. November is moderate at 70%. December averages almost nothing and has a 50% chance, so it has no useful pattern. February tilts negative at 40% up.

Now consider caveats. Ten data points per month is a small sample. A 70% reading is seven positives and three negatives, and two more bad years would move it to 58%. In addition, if Company A’s January strength reflects festive demand carrying through into results, the cause is plausible. But if this year’s festive sales were weak, as shown by a poor quarterly report, the historical pattern deserves less weight. The sensible way to use the table is as a prompt for questions: why was January strong, and is that cause still present? It is not a signal to buy in December.

Part 05

Checklist

  • At least ten years of monthly data.
  • Both average return and probability of an up period reviewed.
  • Best and worst years noted.
  • A plausible cause for the pattern identified.
  • Index, sector and stock patterns compared.
  • Current trend and fundamentals consistent with the pattern.
  • Seasonality used as supporting evidence only.
  • Position size unaffected by a seasonal view alone.
Part 06

Common mistakes

  • Treating probability as certainty. Seventy per cent still fails three years in ten.
  • Data mining. Scanning hundreds of stocks will always produce a few perfect-looking patterns by chance.
  • Ignoring regime changes. A pattern formed before a major change in the business or the market may no longer apply.
  • Overlooking costs. Brokerage, stamp duty and clearing fees reduce small seasonal gains.
  • Forgetting dividends and entitlement dates. A price drop on the ex-date is not a seasonal weakness.
  • Using it alone. A favourable month does not make a weak stock a good entry.
Part 07

How Finworld helps

Finworld’s cyclical performance view shows month-by-month historical tendency and the probability of an up period, so you can see the table in the example above for real Bursa stocks without calculating it yourself. Pair it with the sector performance view to see whether the sector shares the pattern, the financial statements view to check whether recent results support it, and the technical chart to look at the current trend. The saved-filter feature in the stock screener lets you return to the same shortlist each month. Data is end-of-day and historical, and nothing here is a forecast.

FAQ

Frequently asked questions

Is seasonality reliable?

It is a tendency, not a rule. A pattern that held in eight of the last ten years can still fail in the eleventh, so use it to add context to a decision rather than to make it.

How many years of data do I need?

More is better, and at least ten years of monthly data helps reduce the effect of a few unusual years. Short histories can be dominated by a single event.

Why would Bursa stocks have seasonal patterns?

Reasons include reporting calendars, dividend declarations, festive spending, plantation crop cycles, fund window dressing and budget announcements. Some patterns have a clear cause and some are only statistical coincidence.

What is the probability of an up period?

It is the share of past years in which the stock or market rose in a given month. A figure like 70% means it rose in seven of ten past years, which still means three years it did not.

Does Finworld have seasonality data?

Yes. Finworld’s cyclical performance view shows month-by-month historical tendency and the probability of an up period. Data is end-of-day and historical, not a forecast.

Finworld provides market education and research tools only. This is not investment advice. Market data is end-of-day.

Want to see it on real Bursa data?

Book a simple demo and see how Finworld software supports your Bursa Malaysia research routine.

Book a Demo