- Dharmagya
- panchang-ts docs
- Dashas & Transits
Dashas & Transits
panchang-ts · v5.0.0 · MIT
Vimshottari (3-level), Ashtottari, Yogini, Chara, and Narayan dashas, plus the daily transits — Chandra Balam, Tarabala, and Sade Sati.
Five classical dasha systems
import {
computeVimshottariDashaFromBirth, computeVimshottariPratyantar,
computeAshtottariDasha, computeYoginiDasha, computeCharaDasha, computeNarayanDasha,
} from 'panchang-ts';
// 1. Vimshottari — 120-year, 9-lord, with 3-level Maha→Antar→Pratyantar.
const vim = computeVimshottariDashaFromBirth(birth, 'lahiri');
const pratyantars = computeVimshottariPratyantar(vim.mahaDashas[0]!.antarDashas[0]!);
// 2. Ashtottari — 108-year, 8-lord cycle (no Ketu).
const ash = computeAshtottariDasha(birth, moonLon);
// 3. Yogini — 36-year, 8 yoginis.
const yog = computeYoginiDasha(birth, moonLon);
yog.mahaDashas[0]!.yogini; // 'Dhanya'
yog.mahaDashas[0]!.lord; // 'Jupiter'
// 4. Chara (Jaimini) — sign-based, 9-8-7 years per modality, forward only.
const cha = computeCharaDasha(birth, loc);
// 5. Narayan (Jaimini) — sign-based, parity-based direction.
// Vishama-pada lagna {Aries, Taurus, Gemini, Libra, Scorpio, Sag} → forward
// Sama-pada lagna {Cancer, Leo, Virgo, Capricorn, Aquarius, Pisces} → backward
const nar = computeNarayanDasha(birth, loc);
nar.direction; // 'forward' | 'backward'
// Narayan variable-duration variant (Sanjay Rath):
const narV = computeNarayanDasha(birth, loc, 'lahiri', { duration: 'variable' });
narV.mahaDashas[0]!.years; // 0..12 from rashi-to-lord count (+1 exalt, -1 debil)| System | Cycle | Result type |
|---|---|---|
| Vimshottari | 120 years, 9 lords, Maha → Antar → Pratyantar | VimshottariDashaResult |
| Ashtottari | 108 years, 8 lords (no Ketu) | VimshottariDashaResult |
| Yogini | 36 years, 8 yoginis with planet lords | YoginiDashaResult |
| Chara (Jaimini) | sign-based, 9-8-7 years per modality | CharaDashaResult |
| Narayan (Jaimini) | sign-based, direction by lagna parity; fixed or variable years | NarayanDashaResult |
computeVimshottariDashaFromBirth derives the Moon's longitude itself; computeVimshottariDasha, computeAshtottariDasha and computeYoginiDasha take a sidereal Moon longitude you already have (from computePlanetaryPositions or a chart). The order/year constants (ASHTOTTARI_ORDER, YOGINI_ORDER, CHARA_RASHI_YEARS, …) are exported for building your own UI — see the export list.
Daily transits — Chandra Balam and Tarabala
The daily result carries both when you pass natal indices (see Daily Panchang). The standalone helpers are computeChandraBalam and computeTarabala:
const r = getDailyPanchang(date, loc, {
timezone: 330,
janmaRashi: 3, // 0 = Mesha … 11 = Meena
janmaNakshatra: 0, // 0 = Ashwini … 26 = Revati
})!;
r.chandraBalam; // { house, quality: 'strong'|'weak', name, englishName }
r.tarabala; // { taraIndex, name, englishName, quality }Chandra Balam counts the transit Moon's house from the janma rashi (1 = janma rashi itself); houses 1, 3, 6, 7, 10, 11 are Shubha. Tarabala is the 9-tara cycle from the janma nakshatra: Janma, Sampat, Vipat, Kshema, Pratyari, Sadhaka, Vadha, Mitra, Ati-Mitra.
Sade Sati
import { computeSadeSati } from 'panchang-ts';
const ss = computeSadeSati(natalMoonRashiIndex, new Date());
// → { active, phase: 1|2|3|null, currentArcStart, currentArcEnd, nextArcStart }Saturn's seven-and-a-half-year arc over the natal Moon sign: phase 1 is Saturn in the 12th from the Moon, phase 2 on the Moon, phase 3 in the 2nd. Arc boundaries are accurate to ±1–2 days against authoritative ephemerides — see Accuracy.
