Packages3 MIN READ93 / 116

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

strengths module

Audited strength factors with explicit completeness. Public imports use the package root. See the package specification and task plan (V-06, V-19).

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

Factors

The package advertises shadbala-partial only (shadbala is the six-fold planetary strength measured in virupas): the factors V-06 fully defines — uchcha, kendradi, drekkana, dig, paksha, naisargika, ojhayugma when a D9 result is supplied, saptavargaja when the request’s varga layer supplies D2, D3, D7, D9, D12 and D30, and the six sunrise-day kala factors once rise/set is connected. Each factor is either { factor, virupas, rule } or { factor, unavailable, gate?, detail }. A group sum appears only when every member is present; a total, rupas and minimum appear only when all six groups are complete. Neither zero nor an estimate fills a gap.

With rise/set connected (the runtime connects the Binder’s native Hindu sunrise), the feature reads the birth day [sunrise, nextSunrise), its sunset and, for a daytime birth, the previous sunset at the house observer, then computes nathonnata (SB-V6), tribhaga, abda and masa (SB-V5), vara and hora (SB-V7) per strengths §4.5. Vara and the abda/masa day count use the local mean solar date of that sunrise, so no timezone database is needed. Without an observer, or at a place with no sunrise, these factors are missing-capability.

With declination (angle north or south of the celestial equator) connected, ayana uses the rulebook’s fixed obliquity ε = 23°27′ and per-planet hemisphere (§4.5; Sun doubled). With mean longitude connected, chesta for Mars to Saturn is kendra / 3, where kendra = seeghrocca − (madhya + true) / 2 folded to 0–180 and the midpoint taken on the short arc. The Sun’s chesta is its ayana and the Moon’s its paksha. Each port is read once per chart. Factors that still lack an input or a reviewed formula report it first:

Factor Before the port After the port
Ayana missing-capability (declination) computed
Chesta missing-capability (mean-longitude, or null speed) computed
Yuddha missing-capability (disc-diameter) dependency-unavailable (V-02 war rule)
Drik dependency-unavailable (reviewed special aspects and drik aggregation) —

STRENGTH_SPEC_RULES transcribes the constant tables of strength spec §4.1; Moon and Mercury have no paksha class there. PARASHARI_STRENGTH_RULES (BPHS ch. 27) completes them: the Moon is benefic for paksha bala (doubled under SB-V4, so it peaks at 120) and Mercury is by-association, malefic only when it shares a sign with a natural malefic. Its saptavargaja tables score D1 moolatrikona, then own sign, then the compound (natural + temporal) relationship with the sign lord, on the SB-V1 scale the profile selects (integer 45/30/20/15/10/4/2 or halving). getStrengthRequirements(system) lists inputs and gates.