Packages2 MIN READ88 / 116

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

matching module

Ashtakoota matching, the eight-factor (koota) compatibility score out of 36, over two sets of Moon facts. Public imports use the package root. See the package specification and task plan (V-11).

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

Evaluation

evaluateAshtakoota(pair, rules) admits both subjects (sidereal, nakshatra and pada 1–4, pada inside the stated sign, identical profile/rulebook/Binder engine), then returns all eight kootas in fixed order with points, maximum, verdict and basis. Ordered kootas score first against second and the direction is echoed. Points are summed in hundredths, so a total equal to the threshold meets it.

Nadi and Bhakoot doshas carry present, cancelled and the deciding cancellation ids; a cancellation never awards points or removes the dosha. Cancellations are named predicates selected by the rulebook; cancellations: null is reported explicitly. Every matrix must cover its domain with points in 0..max and maxima must sum to 36. The package needs no snapshot, astronomy port or other calculator.

PARASHARI_ASHTAKOOTA_RULES ships the Muhurta Chintamani tables: first is the groom and second the bride. Vashya splits change Sagittarius to chatushpada and Capricorn to jalachara from 15°, so a subject in a split sign needs the Moon’s degree (matchingSubjectFromSnapshot supplies it); without it the pair fails with INSUFFICIENT_INPUT. Ashwini (groom) with Rohini scores 24.5.