Pillar A — How it works
Published 2026-05-02 · Updated 2026-06-18 · By Avinash Chandan, Founder, Navamsha
Ashtakoot Gun Milan: All 8 Kootas and the 36-Point System Explained
Ashtakoot Gun Milan is a classical North Indian marriage compatibility method that scores a bride and groom out of 36 points across eight kootas (categories), each derived from their respective Moon signs, Nakshatras, and related attributes.
Matrimony platforms surface the total score (often with a threshold near 18/36) but the underlying breakdown matters for explainability, cancellation rules, and trust. Navamsha computes all eight kootas deterministically from Lahiri sidereal Moon longitudes via /apis/compatibility.
The eight kootas and maximum points
| Koota | Max points |
|---|---|
| Varna | 1 |
| Vashya | 2 |
| Tara (Dina) | 3 |
| Yoni | 4 |
| Graha Maitri | 5 |
| Gana | 6 |
| Bhakoot | 7 |
| Nadi | 8 |
The maximum total is 36 points. Navamsha returns both raw total_score and effective_total_score when classical cancellation rules restore points on specific kootas.
Varna (1 point)
Varna compares spiritual temperament classes (Brahmin, Kshatriya, Vaishya, Shudra) assigned by Moon sign. The groom's varna should be equal or higher than the bride's for full points.
Vashya (2 points)
Vashya measures mutual influence based on Moon sign categories (Chatushpada, Manav, Jalachara, Vanachara, Keeta). Same vashya scores highest; partial scores apply when Manav is paired with other types.
Tara / Dina (3 points)
Tara counts Nakshatra distance from each person's Moon to the other's. Auspicious remainders contribute 1.5 points each direction, for up to 3 points total.
Yoni (4 points)
Yoni assigns an animal symbol to each Nakshatra and scores sexual compatibility and temperament harmony. Friendly yoni pairs score higher; enemy pairs score zero or reduced points.
Graha Maitri (5 points)
Graha Maitri compares the Moon sign lords' natural friendship (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn relationships). Mutual friends score highest; one-sided or enemy relationships reduce points.
Gana (6 points)
Gana classifies Nakshatras as Deva, Manushya, or Rakshasa temperament. Same gana is ideal; Deva-Manushya pairings score moderately; Rakshasa mismatches score lower.
Bhakoot (7 points)
Bhakoot examines Moon sign distance (2/12, 5/9, 6/8 relationships are traditionally inauspicious). Favorable sign pairs score full points; dosha pairs score zero unless cancelled.
Nadi (8 points)
Nadi is the highest-weight koota, classifying Nakshatras into Adi, Madhya, and Antya groups related to health and progeny. Same nadi scores zero — the classic Nadi dosha — unless cancellation conditions apply.
Computing Gun Milan via API
The Ashtakoot endpoint accepts bride and groom birth payloads, computes both charts with Swiss Ephemeris and Lahiri ayanamsa, and returns per-koota breakdown with source_rule identifiers for audit trails.
curl
curl -X POST "https://api.navamsha.in/api/v1/compatibility/ashtakoot" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "bride": { "year": 1995, "month": 8, "date": 15, "hours": 14, "minutes": 30, "seconds": 0, "latitude": 19.0760, "longitude": 72.8777, "timezone": 5.5, "settings": { "ayanamsha": "lahiri", "observation_point": "topocentric" } }, "groom": { "year": 1993, "month": 3, "date": 22, "hours": 9, "minutes": 15, "seconds": 0, "latitude": 28.6139, "longitude": 77.2090, "timezone": 5.5, "settings": { "ayanamsha": "lahiri", "observation_point": "topocentric" } } }'Python
import httpx
resp = httpx.post(
"https://api.navamsha.in/api/v1/compatibility/ashtakoot",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"bride": {"year": 1995, "month": 8, "date": 15, "hours": 14, "minutes": 30,
"latitude": 19.076, "longitude": 72.8777, "timezone": 5.5,
"settings": {"ayanamsha": "lahiri"}},
"groom": {"year": 1993, "month": 3, "date": 22, "hours": 9, "minutes": 15,
"latitude": 28.6139, "longitude": 77.209, "timezone": 5.5,
"settings": {"ayanamsha": "lahiri"}},
},
)
result = resp.json()["output"]
print(result["total_score"], "/", result["maximum_score"])
print(result["breakdown"]["nadi"])Use /api/v1/compatibility/ashtakoot/detailed when you need cancellation registry evidence for Nadi, Bhakoot, and other classical exceptions. Explore the full matchmaking catalog at /apis/compatibility — 10,000 free calls/month on the launch tier.
FAQ
What is a passing Gun Milan score?
Traditional thresholds often cite 18/36 as a minimum, but practice varies by community and whether doshas are cancelled. Products should show the breakdown, not only the total, so users understand Nadi or Bhakoot zeros.
Does Navamsha apply cancellation rules?
Yes. The detailed Ashtakoot endpoint returns a cancellations array and effective_total_score reflecting classical exception rules. The basic endpoint returns raw koota scores and total_score.
Which ayanamsa is used for Gun Milan?
Lahiri ayanamsa for both charts. Moon longitude drives every koota, so ayanamsa consistency between partners matters more than almost any other setting.
How fast is the Ashtakoot API?
Matchmaking computes two charts plus eight kootas in one request. Navamsha optimizes for interactive matrimony UX — typically sub-50ms on lightweight infrastructure for single-pair scoring at scale.