Skip to content
Documentation · all sections

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)
SystemCycleResult type
Vimshottari120 years, 9 lords, Maha → Antar → PratyantarVimshottariDashaResult
Ashtottari108 years, 8 lords (no Ketu)VimshottariDashaResult
Yogini36 years, 8 yoginis with planet lordsYoginiDashaResult
Chara (Jaimini)sign-based, 9-8-7 years per modalityCharaDashaResult
Narayan (Jaimini)sign-based, direction by lagna parity; fixed or variable yearsNarayanDashaResult

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.