Loading...
Loading...
Argument-fuelling reference
Tithis cross calendar-day boundaries about a third of the time. Two panchangs computing the same tithi from the same instant can show it on different dates — because the rule for assigning a tithi to a date depends on which classical kala (time-window) it is present in, not on midnight.
Nirnaya Sindhu and Dharmasindhu prescribe nine classical time-windows; a festival or vrat asks "is the relevant tithi present at this window on this date?". The window matters because the tithi may straddle two civil dates.
A tithi is one of 30 divisions of the Moon's elongation from the Sun — exactly 12° per tithi. Because the Moon's orbital speed varies between about 11.7°/day (apogee) and 15.4°/day (perigee), the time it takes the Sun-Moon elongation to advance 12° ranges from 19h 59m to 26h 47m. The average tithi is just under one solar day, so roughly every third tithi straddles two consecutive civil dates.
When that happens, which civil date carries the tithi? Two panchangs can answer differently because the canonical rule (the kala-vyapti rule) prescribes a different anchor window for different observances. Ekadashi anchors at Arunodaya (pre-dawn), Janmashtami at Nishita (midnight), Karwa Chauth at Chandrodaya (moonrise). A panchang that publishes "Ekadashi today" is asking a different question from one that publishes "Ashtami today" — and a third panchang may apply different traditions (Smarta vs Vaishnava) to break ties.
For every festival or vrat date, the engine evaluates the relevant tithi against the prescribed kala window in priority order. Ekadashi: tithi present at Arunodaya wins; if absent there, fall through to sunrise. Janmashtami: tithi present at Nishita wins, with the Smarta and Vaishnava break-tie rules in their respective tradition flags. The classical rules are encoded once in src/lib/calendar/festival-generator.ts and re-used across the daily panchang view, the festival calendar, and the muhurta engine.
When our published date differs from another panchang for the same festival, the reason is almost always a kala-vyapti disagreement (we used Arunodaya, they used sunrise) or a tradition difference (Smarta vs Vaishnava). The arithmetic is the same; the rule is what differs. The Calculation Standards page documents the rule choices explicitly so the difference is auditable.
Suppose Shukla Ekadashi for a given month begins at 22:14 on day D and ends at 19:50 on day D+1. At Arunodaya of day D+1 (roughly 05:50 local), Ekadashi tithi IS present — so observance is on D+1. At sunrise of D+1 (roughly 06:30), Ekadashi is also present, so the sunrise rule agrees here. But at Arunodaya of day D+2, Ekadashi has already ended at 19:50 of D+1 — so D+2 is NOT an Ekadashi day. A panchang that defaulted to "tithi at sunset of D" would have published Ekadashi for D, and that's the kind of disagreement readers see.