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.