Back to Calendar

Santali Calendar
Calculation Guide

ᱞᱮᱠᱷᱟ ᱵᱤᱰᱟᱹᱣ ᱵᱟᱰᱟᱭ

This guide explains the astronomical mathematics and logic behind the Santhali Lunar Calendar, specifically focusing on how leap years (Adhik Maas / Sarcha Chando) are calculated and why the 19-Year Metonic Cycle was chosen over a simple 3-year fixed rule.

Months of the Santali Calendar

The traditional Santali Lunar Calendar consists of 12 regular months. The new year begins with Magh Bonga. Below is the sequential list of months:

  1. Magh Bonga (ᱢᱟᱜᱽ / Jan–Feb)
  2. Fagun Bonga (ᱯᱷᱟᱹᱜᱩᱱ / Feb–Mar)
  3. Chat Bonga (ᱪᱟᱹᱛ / Mar–Apr)
  4. Baisakh Bonga (ᱵᱟᱹᱭᱥᱟᱹᱠ / Apr–May)
  5. Jhent Bonga (ᱡᱷᱮᱸᱴ / May–Jun)
  6. Ashar Bonga (ᱟᱥᱟᱲ / Jun–Jul)
  7. San Bonga (ᱥᱟᱱ / Jul–Aug)
  8. Bhador Bonga (ᱵᱷᱟᱫᱚᱨ / Aug–Sep)
  9. Dasay Bonga (ᱫᱟᱥᱟᱸᱭ / Sep–Oct)
  10. Sohrai Bonga (ᱥᱚᱦᱨᱟᱭ / Oct–Nov)
  11. Aaghar Bonga (ᱟᱜᱷᱟᱬ / Nov–Dec)
  12. Pus Bonga (ᱯᱩᱥ / Dec–Jan)

Note: During a leap year, an extra 13th month is added after Pus, known as Sarcha Chando (ᱥᱟᱨᱪᱟ ᱪᱟᱸᱫᱳ) to align the lunar calendar with the solar seasons.


1. The Core Problem: Solar vs. Lunar Years

The Santhali calendar is a lunisolar calendar, meaning it tracks both the moon phases (for months) and the solar year (for seasons).

  • 1 Solar Year (Tropical Year) = 365.24219 days
  • 1 Lunar Month (Synodic Month) = 29.53059 days
  • 1 Lunar Year (12 Months) = 12 × 29.53059 = 354.36708 days

The Annual Deficit:
365.24219 - 354.36708 = 10.87511 days

Every year, the lunar calendar falls behind the solar calendar by approximately 11 days. If left uncorrected, the calendar would drift completely out of sync with the seasons (e.g., Magh would eventually fall in summer).


2. The Simple 3-Year Rule (And Why It Fails)

To fix the 11-day deficit, most traditional rules simply add an extra month (Leap Month / Sarcha Chando) every 3 years. Let's look at the math for 3 years:

  • Accumulated drift in 3 years: 10.87511 × 3 = 32.62533 days
  • Length of 1 Leap Month: 29.53059 days
  • Remaining unadjusted drift: 32.62533 - 29.53059 = 3.09474 days

The 3-Day Problem:
Even after adding a leap month, there is a residual drift of ~3.1 days every 3 years. If we strictly follow the "1 leap every 3 years" rule, this 3-day error accumulates:

  • In 18 years = ~18 days of error
  • In 114 years = ~117 days of error

3. The Metonic Cycle Solution (The 7th Month)

In 432 BCE, the Greek astronomer Meton discovered a near-perfect mathematical alignment:
19 Solar Years are almost exactly equal to 235 Lunar Months.

  • 19 Solar Years = 19 × 365.24219 = 6939.6016 days
  • 235 Lunar Months = 235 × 29.53059 = 6939.6886 days
  • Difference = 0.087 days (Only ~2.1 hours of drift per 19 years!)

Conclusion: Instead of adding exactly 6 leap months in 18 years (the simple 3-year rule), we must add 7 leap months in 19 years. The accumulated 3-day residuals add up over 19 years to exactly form this 7th leap month, completely wiping out the drift.


4. Spacing the 7 Leap Years (The Gap Sequence)

If we have to place 7 leap years within a 19-year window, how do we space them out? If we use a strict 3-year gap (Years 1, 4, 7, 10, 13, 16, 19), the next cycle starts at Year 20. The gap between Year 19 and Year 20 is 1 Year.

Astronomical Impossibility:
You cannot have a leap year just 1 year after the previous leap year. A single year only generates 11 days of drift, which is not enough to form a 30-day month. Having a 1-year gap would instantly misalign the calendar with the seasons.

The Solution:
To avoid any 1-year or 4-year gaps, the 19 years must be divided into a combination of 3-year and 2-year gaps.
3 + 3 + 2 + 3 + 3 + 3 + 2 = 19 years

This creates the specific leap positions within the 19-year cycle: [1, 4, 7, 9, 12, 15, 18]


5. The "Extra Days Bank Account" (Easy to Understand Analogy)

To easily understand how the 19-year cycle naturally handles the residual drift, think of it as an "Extra Days Bank Account".

  • Rule 1 (Earning): Every normal solar year, we earn roughly 11 extra days, which we deposit into the bank.
  • Rule 2 (Spending): Whenever the bank balance crosses 30 days, we withdraw those 30 days to buy 1 Leap Month for that year.

Let's track the bank balance starting from 2024, leading up to the 2034 shift (the 2-year gap):

The First Cycle (2026 Leap)

  • 2024: 11 days deposited.
  • 2025: 11 days deposited.
  • 2026: 11 days deposited. (Total: 33 days)
  • We withdraw 30 days for the 2026 Leap Month.
  • Remaining Bank Balance = 3 days.

The Second Cycle (2029 Leap)

  • 2027: +11 = 14 days
  • 2028: +11 = 25 days
  • 2029: +11 = 36 days
  • We withdraw 30 days for the 2029 Leap Month.
  • Remaining Bank Balance = 6 days.

The Third Cycle (2032 Leap)

  • 2030: +11 = 17 days
  • 2031: +11 = 28 days
  • 2032: +11 = 39 days
  • We withdraw 30 days for the 2032 Leap Month.
  • Remaining Bank Balance = 9 days.

The Fourth Cycle (The 2-Year Gap in 2034)

Because we already have 9 days saved up, we don't have to wait 3 full years for the balance to cross 30!

  • 2033: +11 = 20 days
  • 2034: +11 = 31 days! (Crossed 30 in just 2 years)
  • We withdraw 30 days for the 2034 Leap Month.
  • Remaining Bank Balance = 1 day.

If we had stubbornly waited 3 years until 2035, the bank balance would have been 31 + 11 = 42 days. This means the calendar would be out of sync with the seasons by 12 days! By leaping in 2034 instead, the calendar stays perfectly aligned.

This cycle of earning and spending continues. By the end of exactly 19 years, the fractional math perfectly balances out, and the Bank Balance hits exactly 0.00, completely resetting the cycle.


6. Implementation in Santhali Calendar

To preserve historical compatibility, the cycle was anchored to 2026 (a known leap year).

  • Cycle Anchor: 2026
  • Positions within 19 years: 1, 4, 7, 9, 12, 15, 18
  • Resulting Leap Years: 2026, 2029, 2032, 2034, 2037, 2040, 2043, 2045...
// 7 leap years (13-month years) per 19-year cycle
// Drift: only ~2.1 hours per 19 years
const METONIC_CYCLE_START  = 2026;
const METONIC_LEAP_POS     = new Set([1, 4, 7, 9, 12, 15, 18]);

function isLeapYear(y) {
  // Normalize year to a 1-19 position
  const pos = ((y - METONIC_CYCLE_START) % 19 + 19) % 19 + 1; 
  return METONIC_LEAP_POS.has(pos);
}

Deep Verification

Using the exact Meeus astronomical algorithm, this logic has been stress-tested across a 10,001-year span (2023 to 12023). The 19-year Metonic pattern perfectly contains the drift, ensuring zero critical errors over millennia.


7. Why is Sarcha Chando Added After "Pus Bonga"?

You might wonder why the 13th month (Sarcha Chando) is always inserted at the very end of the year, immediately following Pus Bonga (the 12th month), rather than in the middle of the year.

The reasoning is deeply tied to the Santali agricultural and cultural cycle:

  • The New Year Anchor: The traditional Santali new year begins with Magh Bonga. Magh marks the end of the harvest season and the beginning of new agricultural preparations, celebrated through festivals like Magh Sim.
  • Preventing Seasonal Drift: Because the calendar drifts backward by 11 days every year, Magh Bonga tries to occur earlier and earlier (e.g., sliding into December).
  • The Buffer: By placing the extra 30-day month (Sarcha Chando) exactly before Magh Bonga (right after Pus), the calendar effectively "hits pause." This 30-day buffer pushes the upcoming Magh Bonga forward, returning it to its correct seasonal window (late January / early February).
  • Agricultural & Ritual Idle Time: Pus Bonga falls around December-January. During this specific window, major agricultural work (like harvesting) has concluded, and the community is largely free from major festivals or pujas. Extending the calendar during this "idle" period ensures that no crucial agricultural or religious activities are disrupted by the insertion of an extra month.

By resetting the calendar right before the first month starts, it ensures that all subsequent festivals throughout the year fall perfectly within their correct natural seasons.

Guru Gomkey's Confirmation

In his book ᱯᱟᱹᱨᱥᱤ ᱯᱚᱦᱟ (Parsi Poha), within the chapter "ᱜᱮᱞᱵᱟᱨ ᱪᱟᱸᱫᱚ" (Twelve Months), Guru Gomkey Pt. Raghunath Murmu explicitly wrote:

"ᱡᱮᱛᱮ ᱪᱟᱸᱫᱚ ᱱᱟᱯᱟᱭ ᱛᱮᱜᱮ ᱪᱟᱞᱟᱜ, ᱯᱩᱥ ᱟᱨ ᱢᱟᱜᱽ ᱜᱮ ᱠᱤᱱ ᱨᱮᱯᱮᱡ ᱵᱟᱲᱟᱜ᱾"

This translates to: "All months pass smoothly, but it is only Pus and Magh that quarrel with each other." This historic cultural insight perfectly aligns with the astronomical reality—the calendar's leap correction (Sarcha) must happen right between Pus and Magh to resolve their "quarrel" and keep the seasons aligned.


8. Continuous Metonic Chain (Dynamic Magh Alignment)

A critical feature of this engine is how it determines the start of the year (Magh Bonga). Historically, many simplistic algorithms force Magh to always begin on the "first New Moon in January." However, this creates a major mathematical bug: during a leap year, the 13th month (Sarcha Chando) naturally falls in January of the following year. If the engine naively searched for January, it would mistakenly assign Sarcha Chando's New Moon to the next year's Magh, causing calendar collisions.

To solve this completely, the calendar does not rely on Gregorian boundaries (January/February) to find Magh. Instead, it relies on a Continuous Metonic Chain:

  1. It starts from a fixed anchor (Magh 2023).
  2. It perfectly counts the exact number of elapsed lunar months since that anchor (adding 12 or 13 months per year based on the 19-year cycle position).
  3. It steps forward through the New Moon chain by that exact index.

Because of this, Magh is mathematically permitted to float naturally—sometimes starting in January, and sometimes in February (after a leap year pushes it late). The months form an unbroken, perfectly aligned continuous chain from 2023 to 2050 without ever overlapping or requiring manual correction.


9. Base Year & Chandradarshan (ᱢᱩᱞᱩᱜ ᱮᱛᱚᱦᱚᱵ) Logic

In addition to the Metonic cycle, the calendar relies on precise astronomical anchors to determine the exact start of every month.

The Astronomical Base Epoch (J2000.0)

To calculate moon phases, the engine uses the Jean Meeus Astronomical Algorithms.

  • Base Epoch: January 6, 2000 at 18:14:00 UTC (Standard J2000.0 epoch).
  • From this exact point in time, the algorithm computes the position of the Moon, Earth, and Sun to mathematically predict the exact millisecond of every New Moon and Full Moon, accurately compensating for orbital eccentricities over 10,000 years.

Chandradarshan (ᱢᱩᱞᱩᱜ ᱮᱛᱚᱦᱚᱵ) — Sighting the Crescent Moon

The Santhali month does not strictly begin at the exact minute of the New Moon (Amavasya, when the moon is completely dark). Instead, it begins at Chandradarshan (Muluq Etohob), which is the first visible sighting of the waxing crescent moon after sunset.

To mathematically program this visual event, the engine uses a specific cutoff time:

  • Cutoff Time: 17:00 IST (5:00 PM Indian Standard Time)
  • Rule 1: If the exact New Moon occurs before 17:00 IST, the crescent moon will be visible just after sunset on the same day. Therefore, the new month starts that evening.
  • Rule 2: If the exact New Moon occurs after 17:00 IST, the moon will be too close to the sun and will set before it can be seen. The crescent will only be visible after sunset on the next day. Therefore, the new month starts the following evening.

By applying this 17:00 IST rule, the engine perfectly replicates the traditional human practice of sky-watching (Muluq Etohob) through pure mathematics.

Why 17:00 (5:00 PM) instead of 18:00 (6:00 PM)?

You might wonder why the cutoff isn't exactly at sunset (e.g., 6:00 PM).

  • Winter Sunsets: In Eastern India (Jharkhand, Bengal, Odisha), where the Santhali community predominantly resides, the sun sets between 5:05 PM and 5:15 PM during winter (December–January).
  • If the cutoff was set to 6:00 PM, a New Moon occurring at 5:45 PM in winter would be considered as happening "before the cutoff." But by 5:45 PM in winter, the sun has already set! It would be impossible for the month to start that evening.
  • Therefore, 5:00 PM acts as a scientifically sound "safe limit" that perfectly balances both summer and winter sunset times, ensuring the lunar days roll over correctly regardless of the season.

10. Key Santali Lunar Terms

The mathematical engine is designed to accurately align with these traditional Santali lunar concepts:

  • New Moon (ᱧᱤᱨ ᱪᱟᱸᱫᱳ - Nir Cando): The exact astronomical moment of Amavasya when the moon is completely dark.
  • Moon Sighting (ᱢᱩᱞᱩᱜ ᱮᱛᱚᱦᱚᱵ - Mulug Etohop): The visual sighting of the first crescent moon. This marks the first day of the Santali month. The engine calculates this using the 17:00 IST cutoff rule.
  • Full Moon (ᱠᱩᱱᱟᱹᱢᱤ - Kunami): The precise astronomical Full Moon. Key festivals and rituals are aligned with the Kunami of specific months.
  • Fifth Day (ᱢᱚᱬᱮ ᱢᱟᱦᱟᱸ - Mone Maha): The 5th day after Mulug Etohop. This day holds special significance for initiating many traditional festivals and rituals.