অসমীয়া বৰ্ষপঞ্জী Assamese Calendar · Surya-Siddhanta reckoning ← Back to the calendar

How the Assamese Calendar Is Calculated

Panjika tradition, Surya-Siddhanta astronomy, and a verified open implementation

White paper · Published by the Majuli Farm team · Reference implementation: oxomiacalendar.in · Last revised October 2026
Archived version of record: doi:10.5281/zenodo.23218799 · CC BY 4.0

The Assamese calendar (অসমীয়া বৰ্ষপঞ্জী) is a sidereal solar calendar: its twelve months are the Sun's stays in the twelve fixed zodiac signs, computed by the classical Surya Siddhanta. On top of that solar frame sits a lunisolar layer of tithis and lunar months, which is what actually fixes Bihu, Durga Puja, Bohag and every other festival date. This paper sets out the whole derivation — the tradition, the astronomy, the mathematics and the verification — so that it can be reproduced from first principles by anyone, in any century, without a printed almanac.

1. The panjika tradition

A panjika (পঞ্জিকা) is an almanac: a year-by-year table of the Sun's and Moon's positions, from which the dates of months, tithis and festivals are read. In Assam and Bengal the panjika has been a printed household object for well over a century, and the compilers' calculation rules — not any government body — are what most people actually follow.

Two schools divide the tradition. The older Surya-Siddhantic (or odrik) school computes planetary positions from the classical Sanskrit siddhantas, using constants fixed more than a thousand years ago. The reforming drik-siddhantic school, which in Bengal dates from the Vishuddha Siddhanta Panjika of 1890, computes them from modern observational astronomy. Both are internally consistent; they simply answer a slightly different question, and their festival dates can fall a day apart.

India's Calendar Reform Committee (1952–55), chaired by the astrophysicist Meghnad Saha, found the country using some thirty different systems for dating the same festivals, and noted that rival almanac houses in a single city routinely published different dates for the same observance. It recommended a modern-ephemeris basis for religious calculation and a tropical national civil calendar. The civil calendar was never widely adopted, and a great many traditional panjikas — Assam's among them — kept the Surya-Siddhantic reckoning they had always used.

Why this matters for the calendar on this site This calendar deliberately follows the traditional Surya-Siddhantic reckoning, not the modern drik system, because that is the reckoning the printed Assamese panjika follows. Where this calendar differs from a drik-based app, the difference is a feature of the tradition, not an error in the arithmetic.

2. The five limbs of the panchanga

Panchanga means "five limbs". Every Indian almanac is built from the same five quantities, and all five are simple functions of just two numbers: the sidereal longitude of the Sun (λ☉) and of the Moon (λ☾). Writing the elongation E = (λ☾ − λ☉) mod 360°:

LimbWhat it isDefinitionCount
Tithi তিথিlunar dayeach 12° of elongation: t = ⌊E/12°⌋ + 130 per lunation
Vara বাৰweekdayday-count modulo 7, reckoned sunrise to sunrise7
Nakshatra নক্ষত্ৰlunar mansioneach 13°20′ of the Moon's longitude27
Yoga যোগsum-angleeach 13°20′ of (λ☉ + λ☾)27
Karana কৰণhalf-tithieach 6° of elongation60 per lunation

A tithi is not a day. Its mean length is one thirtieth of a synodic month — 0.98435 days, about 23 hours 37 minutes — but because the Moon's speed varies, an actual tithi runs anywhere from roughly 20 to 27 hours. The civil day takes the name of whichever tithi is running at sunrise. A tithi short enough to begin and end between two sunrises is skipped entirely (kshaya); one long enough to span two sunrises is counted twice (adhika). This is the single most common reason a calendar date "jumps".

3. The Surya Siddhanta: text and constants

The Surya Siddhanta is the astronomical treatise underlying most traditional Indian calendars. The text that survives is a revised one — scholars variously date the extant recension to roughly the 4th, 8th or 10th century CE, and Varahamihira (c. 505 CE) already summarises an older version with slightly different constants. It was translated into English by Ebenezer Burgess in 1860, with notes by W. D. Whitney, and that translation remains the standard reference.

Its power lies in a handful of integers. The text fixes the number of revolutions each body completes in a mahayuga of 4,320,000 years, alongside the number of civil days in that period. Every position, for any date past or future, follows from these by arithmetic alone:

Quantity per mahayugaValue
Civil (savana) days1,577,917,828
Solar revolutions4,320,000
Lunar sidereal revolutions57,753,336
Revolutions of the Moon's apogee488,203
Synodic months53,433,336
Intercalary (adhika) months1,593,336

These few integers already imply the lengths of the year and the month:

sidereal year = 1,577,917,828 / 4,320,000 = 365.258756 days
sidereal month = 1,577,917,828 / 57,753,336 = 27.321674 days
synodic month = 1,577,917,828 / 53,433,336 = 29.530588 days

Compare the modern values: the sidereal month is 27.321661 days and the synodic month 29.530589 days. The Surya Siddhanta's synodic month is accurate to about one part in thirty million — a tenth of a second per lunation. Its sidereal year, however, is about 3.4 minutes too long, and that small excess is the origin of the slow drift discussed in §11.

All counting starts from the epoch of Kali Yuga, conventionally midnight at Ujjain on 18 February 3102 BCE (Julian calendar) — Julian Day 588,465.5. The elapsed-day count from that epoch is the ahargana, and it is the pivot of every calculation that follows.

4. The mathematics: mean and true longitude

Step 1 — the mean longitude

Because revolutions are uniform in the model, mean longitude is a proportion. With A the ahargana, R the revolutions per mahayuga and C = 1,577,917,828:

λ̄ = 360° × frac( R · A / C )

This gives mean daily motions of 0.985603°/day for the Sun and 13.176350°/day for the Moon.

Step 2 — the equation of centre (manda-phala)

A body moving on a circle at constant speed is not what we see: real orbits are elliptical, so a body runs ahead of its mean position in one half of the orbit and behind in the other. The siddhantas correct for this with an epicycle of circumference p degrees, measured from the apogee (mandocca). With anomaly κ = λ̄ − λ_apogee:

Δ = arcsin( (p / 360°) · sin κ )
λ = λ̄ − Δ

The Surya Siddhanta gives the Sun an epicycle of about 13°40′–14° and the Moon about 31°40′–32°. For the Sun this produces a maximum correction of 2°10′ — against a true modern maximum of about 1°55′. That overestimate of roughly a fifth of a degree is equivalent to about five hours of solar motion, and it is why a Surya-Siddhantic sankranti falls some hours away from a modern one.

Historically the sine itself came from a table: 24 tabulated values at intervals of 3°45′ on a radius of R = 3438 (the number of arcminutes in a radian), beginning 225, 449, 671, 890… and ending at 3438. The table is generated by a recurrence that is, in effect, the discrete form of the differential equation d²(sin)/dθ² = −sin — a remarkable thing to find in a text of this age. A modern implementation may use a machine sine instead; the difference is far below the resolution of a calendar.

5. The Moon, and why dates differ by a day

The Sun's motion is simple enough that classical theory handles it well. The Moon's is not. Modern lunar theory needs several periodic terms where the classical model has only one:

TermAmplitudeIn Surya Siddhanta?
Equation of centre6.29°Yes — the manda correction
Evection1.27°No
Variation0.66°No
Annual equation0.19°No

There is an elegance hidden in that omission. At new moon and full moon, evection subtracts from the equation of centre: 6.29° − 1.27° ≈ 5.02°. The Surya Siddhanta's lunar epicycle of 31°40′ yields a maximum correction of 5.05°. In other words the classical lunar constant was effectively fitted to the syzygies — the configurations that matter for eclipses and for the new and full moons that anchor the lunar month. Near new and full moon the classical Moon is very good indeed. At the quarters, where evection instead adds, the error grows to a couple of degrees.

The practical consequence The Moon gains about 12.2° of elongation per day, so one degree of error is roughly two hours. A two-degree error moves the ending moment of a tithi by four hours or so — and if that moment crosses a sunrise, the tithi named on that civil day changes, and a festival moves by one day. This is why two honest almanacs can disagree by a day, and why ritual dates should always be confirmed against a current printed panjika.

6. The twelve Assamese months

An Assamese month is the interval during which the Sun occupies one sidereal zodiac sign. The instant it crosses from one sign to the next is the sankranti (সংক্ৰান্তি), and that instant — not any fixed rule of thumb — defines the month boundary.

#MonthRashi (sign)Usually beginsTypical length
1বহাগ BohagMesha14–15 April31
2জেঠ JethVrisha15 May31–32
3আহাৰ AharMithuna15 June31–32
4শাওণ XaonKarkata16–17 July31–32
5ভাদ BhadoSimha17 August31
6আহিন AhinKanya17–19 September30–31
7কাতি KatiTula18–19 October30
8আঘোণ AghonVrishchika17 November29–30
9পুহ PuhDhanu16 December29
10মাঘ MaghMakara14–16 January29–30
11ফাগুন FagunKumbha13 February30
12চ'ত SotMeena15 March30–31

The months are unequal because the Earth's orbit is an ellipse. By Kepler's second law the Sun appears to move fastest when the Earth is near perihelion in early January and slowest near aphelion in early July. A 30° sign is therefore crossed in about 29.4 days in Puh and about 31.6 days in Ahar. Month lengths of 29 to 32 days are normal, and they are not the same every year.

Regional traditions differ on which civil day the sankranti belongs to. In Tamil usage a sankranti before sunset begins the month that same day; in Kerala the cut-off is early afternoon; in Odisha the month begins on the sankranti day itself. The Bengal–Assam tradition pushes the start to the following day, with a further rule for sankrantis falling between midnight and sunrise.

7. Sunrise, location and the civil day

The Indian civil day runs from sunrise to sunrise, and the tithi, the weekday and the month boundary are all evaluated at local sunrise. That makes the reference place part of the calendar's definition, not an implementation detail. This calendar uses Jorhat (26.75° N, 94.22° E) as its reference meridian, the traditional centre of Upper Assam almanac production.

Jorhat lies 11.7° east of the 82.5° E meridian on which Indian Standard Time is based, so the Sun rises there about 47 minutes earlier than IST would suggest. Moving the reference to Guwahati would shift sunrise by roughly ten minutes — enough, in a boundary case, to move a date. Sunrise itself is computed from standard solar-position formulae, taking the upper limb of the Sun with atmospheric refraction at an altitude of −0°50′:

cos H₀ = [ sin h₀ − sin φ · sin δ ] / ( cos φ · cos δ )
sunrise = solar transit − H₀ / 15° (hours)

where φ is latitude, δ the Sun's declination and h₀ = −0.833°. Indian almanac editors differ here too: some advocate the centre of the solar disc with no refraction, which moves sunrise by three or four minutes at this latitude.

8. Bhaskarabda, Shaka and Shankarabda

An Assamese panjika carries several year-counts at once. Each has its own epoch and its own moment of rollover, and they are not interchangeable.

EraEpochCommemoratesRolls over at
Bhaskarabda ভাস্কৰাব্দ593/594 CEthe accession of Bhaskaravarman, king of KamarupaBohag (Assamese New Year)
Shakabda শক78 CEthe pan-Indian Shaka era; India's national eraBohag, in Assamese usage
Shankarabda শংকৰাব্দ1449 CEthe birth of Srimanta Sankardevhis birth month (Ahin–Kati)
Gregorian1 CEcivil / international use1 January

Bhaskarabda is Assam's own era, added to the Government of Assam's official calendar in October 2021 alongside the Shaka and Gregorian years. Official usage — state holiday lists, public utilities, and the Chief Minister's own New Year statements — increments it at Bohag: 1 Bohag 1433 fell on 15 April 2026, and 1 January 2024 was 15 Puh 1430. This calendar reproduces both of those reference dates exactly. Historians disagree about the underlying chronology: the 593/594 CE epoch is also associated with Shashanka of Gauda, and whether Bhaskaravarman's accession truly falls there is contested, with several authorities placing his reign around 600–650 CE.

Shankarabda counts from the traditionally accepted birth year of Srimanta Sankardev, 1449 CE, and rolls over in his birth month rather than at the new year — which is why, for part of the year, the gap between Shankarabda and Bhaskarabda is not constant. Here too the chronology is debated: the earliest biographies record only Sankardev's death, in 1568, and some scholars argue for a birth in the 1480s.

On disagreement A calendar is a cultural artefact as much as an astronomical one. Where sources genuinely conflict — on an era's epoch, on a month-start rule, on a festival's observance window — this paper records the conflict rather than silently choosing a side. That is the only way a reference document stays usable when scholarship moves.

9. The lunar overlay: tithi, paksha, adhika masa

The civil calendar is solar; the festival calendar is lunar. The two are stitched together by a naming rule.

Paksha and tithi numbering

A lunation divides into two fortnights: shukla paksha (waxing, tithis 1–15, ending at Purnima) and krishna paksha (waning, tithis 16–30 in continuous numbering, ending at Amavasya). Tithi 15 is the full moon; tithi 30 is the new moon. Ekadashi — the eleventh tithi of each fortnight — falls at elongation counts 11 and 26.

Naming the lunar month

In the amanta scheme used across Assam and Bengal, a lunar month runs from one new moon to the next, and it takes its name from the solar sign the Sun enters during that lunation. The lunation containing the Mesha sankranti is Vaishakha, the one containing the Kanya sankranti is Ashvina, and so on.

Adhika masa — the leap month

Twelve lunations fall about eleven days short of a solar year, so the lunar and solar frames must periodically be re-synchronised. The rule is elegant and purely observational:

A lunation in which no sankranti occurs is an intercalary month (adhika masa).

Because a lunation (29.53 days) is slightly shorter than the shortest solar month (29.4 days), such a lunation is possible but uncommon: on average one occurs every 32.5 months — seven in nineteen years, the same Metonic ratio that governs leap months in other lunisolar calendars. An adhika month carries no festivals; the observances fall in the following, "true" month. Much more rarely, a lunation can contain two sankrantis, producing a suppressed month (kshaya masa) — a phenomenon confined to the Aghon–Magh stretch and separated by gaps of 19 to 141 years.

10. How festival dates are fixed

Knowing the tithi is not enough to date a festival. Each observance specifies which part of the day the required tithi must occupy. These windows are codified in the dharmashastra digests — in Bengal and Assam, chiefly Raghunandana's sixteenth-century tattvas.

RuleWindowGoverns
udaya-vyapiniat sunrisemost vratas; the day's tithi name
madhyahnamiddayGanesh Chaturthi
aparahnaafternoonMahalaya and shraddha; Vijaya Dashami
pradoshaduskLakshmi Puja, Diwali
nishithamidnightJanmashtami; Kali Puja in Bengal

If a tithi occupies the required window on two consecutive days, or on neither, further tie-breaking rules apply — conventionally the earlier day is taken. This is a second, entirely independent source of one-day differences between almanacs, quite apart from any disagreement about astronomy.

The Bihus, and the solar festivals

Assam's defining festivals are tied to the solar frame, which is why they recur on nearly the same Gregorian date each year:

The lunar festivals — Durga Puja, Doul, Janmashtami, Shivaratri, Kali Puja, Ras — move across the Gregorian year because they follow the lunar overlay of §9 and the observance windows above.

11. Precession, ayanamsa and the drift of Bihu

The Indian calendar is nirayana (sidereal): it measures longitude from a fixed point among the stars, not from the moving equinox. Because the Earth's axis precesses — about 50.3 arcseconds a year, one degree in 72 years, a full circuit in roughly 25,800 years — a sidereal calendar slowly drifts relative to the seasons. The angular gap between the tropical and sidereal zero points is the ayanamsa, currently about 24°.

This is why Mesha Sankranti, which once coincided with the spring equinox, now falls around 14 April; and why Makara Sankranti, nominally the turn toward the northern course, now falls about 24 days after the actual December solstice. Bohag Bihu and Magh Bihu drift with them.

Surya-Siddhantic reckoning adds a second, smaller drift of its own. Because its sidereal year is about 3.4 minutes too long, it slips roughly one day every sixty years against the seasons, and gradually against modern sidereal positions too. Over the span a living calendar is used this is imperceptible; over centuries it is the main reason traditional and drik almanacs diverge.

The Surya Siddhanta itself does not describe unbounded precession but trepidation — a libration of the equinox through ±27° — which Burgess read as a 7,200-year cycle. The Calendar Reform Committee instead fixed a modern sidereal origin, the Chitrapaksha or Lahiri ayanamsa, at 23°15′ on 21 March 1956; that is the value used by drik almanacs today.

12. The reference implementation

Everything above is implemented, openly and in full, in the calendar at oxomiacalendar.in. It is worth stating what kind of program it is, because it differs from almost every other calendar tool.

There are no lookup tables. The page stores no list of month starts, no table of tithis, no festival dates. It computes the Sun's and Moon's positions from the Surya-Siddhantic constants at the moment you load it. That is why it works for any year — 1800 or 2200 — and why it can never go stale or require an annual update. It is also why the whole calendar, engine and interface together, is a single file of a few tens of kilobytes that runs entirely in your browser with no server and no network.

The computation, end to end

  1. Date to day-count. The civil date is converted to a Julian Day Number, and thence to an ahargana from the Kali epoch.
  2. Mean longitudes. Sun, Moon and lunar apogee from the revolution ratios of §3.
  3. True longitudes. The manda correction of §4 is applied to each.
  4. Sunrise. Computed for Jorhat, giving the instant at which the day's quantities are evaluated.
  5. Sankranti instants. The moment the Sun's longitude crosses a multiple of 30° is found by Newton–Raphson iteration, converging to well under a second:
    tn+1 = tn − f(tn) / f′(tn), where f(t) = λ☉(t) − 30°k
  6. Month and day number. From the sankranti instants and the sunrise rule of §6.
  7. Tithi. ⌊E/12°⌋ + 1 evaluated at sunrise.
  8. Lunar month and adhika detection. New moons are located by the same iteration on elongation; each lunation is then named, or flagged intercalary, by the sankranti rule of §9.
  9. Festivals. Each rule is expressed as a lunar month, a paksha, a tithi and an observance window, then matched against the computed day.

The constants, stated in full

So that anyone may reproduce or audit the result, the engine's parameters are these:

Mahayuga civil days C = 1,577,917,828
Revolutions: Sun 4,320,000 · Moon 57,753,336 · lunar apogee 488,203
Epoch (Kali Yuga) JD 588,465.5
Sun: apogee 77.25°, epicycle 14° / 360°
Moon: epicycle 31.66° / 360°
Sunrise reference: Jorhat 26.75° N, 94.22° E, IST (UTC+5:30), h₀ = −0.833°
Month rule: month begins at the first sunrise after the sankranti instant
Tithi: ⌊elongation / 12°⌋ + 1, evaluated at sunrise

13. Verification and known limits

A traditional calendar can only be validated against the tradition. The engine's solar output was therefore checked day by day against a printed Assamese panjika's month-start table across 1950–2100 — 73,204 days, about 1,812 month boundaries.

CheckResult
Solar longitude, RMS against the reference≈ 3 arcseconds (≈ 1.2 minutes of time)
Month boundaries, 1950–2100essentially all reproduced; the few differences trace to sankrantis falling within about two minutes of sunrise
Era yearsreproduced exactly across the range
Rangeunbounded — verified to resolve correctly for 1820 and 2195

Three arcseconds is roughly a minute of time in the Sun's position. When a sankranti falls within a minute or two of sunrise, no amount of precision settles which civil day it belongs to — the answer depends on the almanac's own definition of sunrise, and on its reference meridian. Those are the residual cases.

What is reliable, and what to confirm The solar side — the Assamese date, the month, the sankranti, the era years and the Bihus — follows the printed panjika closely and may be relied on. The lunar side — tithi, and the festivals that depend on it — is computed with the classical manda-only Moon described in §5. That is the correct traditional behaviour, but on boundary tithis it can differ from a printed panjika by one day. Confirm ritual dates against a current panjika.

Open questions

Intellectual honesty requires naming what is not settled. Three points remain under review and will be revised here as evidence accumulates:

If you maintain a panjika, or hold older printed editions, and can check a date against this calendar, that contribution would be welcomed. A calendar tradition survives by being tested.

14. Sources and further reading

Reuse This paper is published freely so that the reckoning it describes cannot be lost. It may be quoted, translated, taught from and reproduced under CC BY 4.0. Please cite the archived version of record: Pegu, Migang Migom (2026), How the Assamese Calendar Is Calculated, Zenodo, doi:10.5281/zenodo.23218799.

See the calendar in action →

অসমীয়া বৰ্ষপঞ্জী · A free, ad-free Assamese calendar computed live by the Surya Siddhanta — no tables, any year.
Made with care by the Majuli Farm team · মাজুলী ফাৰ্ম দল