Every date in the Nanakshahi Jantri comes out of one of two machines. Sangrands — the first day of each solar month — come from the sun alone: the moment its sidereal longitude crosses a 30° boundary. Gurpurabs and lunar observances come from the sun and moon together: the angle between them, cut into 30 slices called tithis. This page runs both machines live, in your browser, using the same conventions as the feed you can subscribe to — calibrated against the printed Jantri from Amritsar. (How the feed was rebuilt.)

Machine 1 — the sidereal sun and the sangrand

The Jantri’s solar year is sidereal: the sun’s position is measured against the fixed stars, not against the seasons. The two zero-points drift apart by about 50″ a year — the accumulated gap, called the ayanamsa, is now just over 24°. That is why Vaisakhi falls around 13–14 April rather than at the March equinox: the sidereal Mesha boundary sits 24° “later” along the ecliptic than the tropical one.

A sankranti is the instant the sun’s sidereal longitude crosses a multiple of 30° — entering a new rashi. The Jantri’s rule, forced by 11 of the 36 sangrands in the pinned years, is sunrise-to-sunrise: the new month begins on the day (Amritsar sunrise to next Amritsar sunrise) that contains the sankranti moment. A sankranti at 3 a.m. belongs to the previous civil day.

Pick a month and year, and watch the derivation:

Machine 2 — the tithi and the gurpurab

A tithi is one-thirtieth of the moon’s monthly lap around the sun: each time the moon pulls another 12° ahead (in ecliptic longitude), a new tithi begins. Tithis 1–15 are the bright half (sudi), ending at purnmashi (full moon, 168°–180°); tithis 16–30 are the dark half (vadi), ending at massia (new moon). Because the moon’s speed varies, a tithi lasts anywhere from ~20 to ~26 hours — it is a phase angle, not a day.

Two conventions pin a tithi to a civil date:

Which lunar month? Lunar months run new moon to new moon (amanta), and a month is named by the sankranti it contains — the month holding the Mesha sankranti is Chet, and so on. A rare month containing no sankranti is adhik (intercalary) and hosts no gurpurabs — the Jantri prints it as ਵਾ:ਜੇਠ and skips it.

Which day? The udaya rule: the event falls on the day whose sunrise at Amritsar lands inside the target tithi. If the moon moves fast enough that a tithi begins and ends between two sunrises (kshaya, skipped), the event takes the day the tithi actually ran; if a tithi covers two sunrises (vridhi), the first day wins.

Pick a gurpurab and year:

Notice what this means: a gurpurab keeps its tithi, not its Gregorian date — and not even its Nanakshahi date. Parkash Guru Nanak Dev Ji is always Katak purnmashi, but that full moon can land in solar Katak one year and solar Maghar the next. The date moves in every calendar except the lunar one it is defined in.

What this page doesn’t show

Two festival dates use time-window rules instead of sunrise: Bandi Chhor Divas takes the evening (pradosh) the massia tithi covers, and the Jantri’s Dussehra uses an afternoon (aparahna) window. And a handful of observances are moved by the Jantri’s compilers for practical reasons no formula predicts — the feed never guesses those; they appear only once printed.

Accuracy, honestly

The math on this page is a compact in-browser ephemeris (Meeus-style series, good to about an arcminute), running the same calibrated conventions as the real engine: Lahiri-type ayanamsa (23.8532° at J2000 + 50.28796″/yr), Amritsar sunrise, sunrise-to-sunrise sangrands, udaya tithis. Checked against the pinned printed-Jantri data it reproduces all 26 sangrands and all 25 massia/purnmashi of NS 557–558, and the tithi gurpurabs above. Dates carrying a ✓ printed Jantri badge match the published Jantri; anything else is marked ≈ computed — same honesty policy as the feed. For anything you plan around, trust the feed, which uses a full ephemeris and pinned data — or better, the Jantri itself. The full engine is open source: nanakshahi-jantri.