Skip to content
Documentation · all sections

Annual Charts & Sensitive Points

panchang-ts · v5.0.0 · MIT

Varshaphala with 27 Sahams, Tithi Pravesha, Arudha padas, Hora/Ghati/Bhava/Sripati lagnas, Upagrahas, and Argala.

Varshaphala — the Tajik annual chart

import { computeVarshaphala } from 'panchang-ts';

// Annual chart for the Nth solar return.
const v = computeVarshaphala(birth, 30, loc);
v.solarReturnInstant;
v.varshaLagna.rashi.name;
v.muntha.rashi; v.muntha.house;     // muntha = (natalLagnaRashi + 30) mod 12
v.yearLord;                          // strongest of 4 candidates by Shadbala
v.sahams.Punya.house;
v.sahams.Vivaha.rashi;

27 Sahams: Punya, Vidya, Yasas, Mitra, Karma, Vivaha, Putra, Roga, Marana, Rajya, Raja, Bandhu, Dharma, Gnati, Apamrityu, Bhratri, Matri, Pitri, Sama, Bandhana, Karyasiddhi, Vyapara, Sastra, Asha, Labha, Susha, Tapas — the list is exported as ALL_SAHAM_NAMES, with SahamName / SahamFormula types for building your own tables.

Tithi Pravesha

import { computeTithiPravesha } from 'panchang-ts';

// Annual chart cast when the Sun is in the natal sidereal sign AND the
// Sun–Moon separation equals the natal separation. Preserves natal tithi exactly.
const tp = computeTithiPravesha(birth, 30, loc);
tp.natalTithi === tp.praveshTithi;   // always true

Arudha padas

import { computeArudhas } from 'panchang-ts';

// Image/reflection of each bhava. Arudha[0] = Arudha Lagna (AL).
const a = computeArudhas(d1);
a[0]!.bhava;            // 1 — AL
a[0]!.arudhaRashi;      // 0..11
a[6]!.bhava;            // 7 — Darapada (spouse pada)

Special lagnas

import {
  computeHoraLagna, computeGhatiLagna, computeBhavaLagna, computeSripatiLagna,
} from 'panchang-ts';

// Time-derived sensitive points from sunrise on/before birth.
computeHoraLagna(birth, loc);     // 30°/hour (1 rashi/hour)
computeGhatiLagna(birth, loc);    // 75°/hour (1 rashi/24 min)
computeBhavaLagna(birth, loc);    // 15°/hour (1 rashi/2 hours)
computeSripatiLagna(birth, loc);  // = natal lagna (cusp 1)

// Sripati cusps 2–12 (opt-in) — 4 angular cusps + trisected intermediates.
// Defined at every latitude (unlike Placidus).
const sripati = computeSripatiLagna(birth, loc, 'lahiri', 'en', { includeCusps: true });
sripati.cusps;  // number[12] of bhava madhyas; cusps[0/3/6/9] = ASC/IC/DSC/MC

Upagrahas

import { computeUpagrahas } from 'panchang-ts';

// Gulika, Mandi (rising-asc at Saturn segment start/midpoint),
// plus Sun-derived Dhuma, Vyatipata, Parivesha, Indrachapa, Upaketu.
const u = computeUpagrahas(birth, loc);
u.gulika.longitude; u.gulika.rashi; u.gulika.house;

Argala

import { computeArgala } from 'panchang-ts';

// Planets in 2/4/11 from a bhava form Argala (intervention);
// 3/10/12 form Virodhargala (counter). Each planet hits exactly 6 of 12 bhavas.
const arg = computeArgala(d1);
arg[0]!.argala; arg[0]!.virodhargala;

// Trikonargala (5/9 trine, opt-in) — Ketu reversal: 5th-from → virodhaka,
// 9th-from → source.
const argT = computeArgala(d1, { includeTrikonargala: true });
argT[0]!.trikona!.sources;
argT[0]!.trikona!.virodhakas;