Packages1 MIN READ81 / 116

Internal module guide. This module is now part of @astrology/vedic; use the public package README for application setup.

ashtakavarga module

Natal Bhinna and Sarva Ashtakavarga, the bindu (point) tables that score how strongly each sign is supported by the planets. Public imports use the package root. See the package specification and task plan (V-07).

Run pnpm --filter @astrology/vedic build, check, and test after building dependencies (pnpm build:vedic builds all).

Calculation

computeAshtakavarga(natalFacts, rules) counts, for each of the seven planet BAVs, the contributors whose inclusive sign offset is in the table cell; degrees are never read. The unreduced SAV must total 337 and every result names its stage. scoreTransitSign reads natal bindus for a transiting sign and returns null for bodies without a BAV.

PARASHARI_BAV_RULES ships the BPHS ch. 66 contribution table (its Sun row is the specification’s SUN_BAV_REFERENCE). Validation rejects any cell that is missing, unsorted, out of range or that breaks the expected per-BAV totals (48/49/39/54/56/52/39).

The profile’s ashtakavargaReduction adds a reduced stage beside the unreduced tables, which transits keep reading: trikonaShodhana (cases T1–T4) and then ekadhipatyaShodhana (E1–E6, only the seven planets mark a sign occupied) run on each BAV separately. E4 lowers the unoccupied figure to the occupied one, the only reading under which “made equal” changes anything. Fixture F-AV4 pins the trikona step.