The Ashtakoot system scores a prospective match out of 36 gunas, and Indian matchmaking practice treats 18 as the pass mark. We wanted to know where that cutoff actually sits in the range of scores the system can produce, so we scored 200,000 randomly paired birth instants spanning 1900 to 2099 through the same engine our calculator uses. 71.51% of them clear 18. The median pair scores 21.5 and the mean is 21.11. Only 2.50% reach 32, and a perfect 36 came up 264 times in 200,000. Read the number carefully: this is a statement about where the cutoff falls in the distribution, not a claim about anybody's marriage, and the pairs are randomly assembled birth instants rather than real couples.
Quick Facts
| Item | Value |
|---|---|
| Sample | 200,000 birth-instant pairs, sampled independently |
| Range sampled | 1 January 1900 to 31 December 2099 |
| Share clearing 18 gunas | 71.51% |
| Median total | 21.5 of 36 |
| Mean total | 21.11 of 36 |
| Where 18 sits | The 28th percentile - below the median random pair |
| Share reaching 32 | 2.50% |
| Perfect 36 | 264 pairs, or 0.13% |
| Engine | The same one behind our matching tool: Meeus/VSOP87 Moon, Lahiri ayanamsa |
| Artifact | scripts/ashtakoot-base-rate.output.json, committed to the repository |
What we ran
Every one of the 36 gunas derives from just two things about each partner: the sign and the nakshatra the Moon occupied at birth. Nothing else enters the total. That matters for the design, because the Moon's sidereal longitude is a function of the moment alone and not of the birthplace, so a location grid would add cost and change nothing. The sweep samples instants, not cities.
Each of the 200,000 pairs is built from two independently sampled birth instants. Partner A's date is spread evenly across the 200-year window; the other three axes - A's time of day, B's date, B's time of day - use low-discrepancy sequences with different irrational step sizes so they stay decorrelated from one another. Partner B must never reuse partner A's date: two people born on the same day have the Moon in the same or an adjacent sign, which would collapse Bhakoot and Graha Maitri onto a near-diagonal and skew the whole distribution.
Three checks are computed alongside the result and stored in the artifact. The Moon is spread across the twelve signs to within 0.02 percentage points of uniform, so the sampling is not aliased against a lunar period. The full 12x12 table of A's sign against B's sign gives a chi-square of 34.1 on 121 degrees of freedom, confirming the two partners really are independent - a check the marginals cannot perform, since each stays uniform even if B always equalled A. And an independent 50,000-pair subsequence reproduces the cumulative curve to within 0.62 percentage points at its worst point.
The distribution
Guna totals are not spread evenly across 0 to 36. The eight kootas are weighted very unequally - Nadi alone is worth 8 points and Bhakoot 7, while Varna is worth 1 - so the achievable totals bunch heavily in the middle. This is what the cutoff is being applied to:
| Guna total | Share of pairs at or above | Note |
|---|---|---|
| 12 | 92.95% | Often cited as the minimum worth considering |
| 15 | 83.70% | |
| 18 | 71.51% | The conventional pass mark |
| 21 | 53.53% | Close to the median pair, which scores 21.5 |
| 24 | 38.83% | |
| 27 | 20.15% | |
| 28 | 13.53% | Sometimes described as an excellent match |
| 30 | 5.29% | |
| 32 | 2.50% | |
| 36 | 0.13% | 264 pairs out of 200,000 |
Where the pass mark sits
18 is half of 36, which makes it read like a midpoint. In the distribution it is not one. A score of 18 sits at roughly the 28th percentile, meaning about 28% of randomly assembled pairs fall below it and the rest clear it. The median random pair scores 21.5, comfortably above the line. Percentage-of-maximum and percentile are different quantities here, and they diverge sharply: 30 gunas is 83% of the maximum but the 95th percentile.
The honest way to state the consequence is as a property of the scoring system rather than of people. A test set at 18 out of 36 is not a selective test against this distribution. Whether that is a flaw depends on what the cutoff was ever meant to do - a screen designed to exclude only clearly adverse combinations would be expected to pass most pairs, and nothing in our data establishes what the classical intent was. What the data does settle is that the cutoff cannot be described as demanding.
How much does calculation precision move this?
A fair objection: we publish a boundary caveat of our own. When a placement sits within the engine's measured margin - 0.01 degrees (36 arcseconds), a little over three times the largest difference ever observed against Swiss Ephemeris Lahiri - of a sign, nakshatra, or pada edge, it can flip between neighbouring buckets, and a flipped nakshatra changes Tara, Yoni, Gana, and Nadi at once. So does the headline survive that caveat? We measured it rather than asserting it, by re-running the identical 200,000-pair sweep with every Moon in the sample displaced - and we stress-tested far past the real margin, at 0.3 degrees, about 30 times the published orb, alongside a 1-arcminute run that brackets the margin itself.
| Displacement applied to every Moon | Share clearing 18 | Pairs whose total changed | Pairs moving more than 7 points |
|---|---|---|---|
| None (the published figure) | 71.51% | - | - |
| 0.3 degrees, both partners same direction | 71.50% to 71.57% | 5.52% to 5.56% | 1.79% to 1.83% |
| 0.3 degrees, partners in opposite directions | 71.54% | 5.51% to 5.57% | 1.80% to 1.82% |
| 1 arcminute, both partners | 71.49% to 71.50% | 0.31% to 0.32% | 0.11% |
The aggregate barely moves, even at 30 times the real margin. Displacing every Moon in the sample by the full 0.3 degrees shifts the headline by at most 0.07 percentage points, leaves the median at 21.5, and disturbs the cumulative curve by no more than 0.074 percentage points anywhere along it. For scale, resampling the study with an independent 50,000-pair subsequence moves that same curve by 0.62 points - roughly eight times more. The precision question is a smaller source of uncertainty here than sampling noise is.
Individual pairs are a different story, and this is the more useful finding. Under the 0.3-degree stress test, 5.5% of pairs get a different total, about 1.8% move by more than 7 points - more than a whole koota changing hands - and the largest single swing we observed was 26.5 points out of 36. That extreme is rare and it is not a typical effect, but it is real: it happens when a Moon sits near a point where a sign boundary and a nakshatra boundary nearly coincide, so both flip together and four kootas move at once. At the engine's actual measured margin the effect is bounded by the 1-arcminute row: about 0.3% of pairs shift at all.
Both things are true at the same time, and they answer different questions. The claim about the system is robust. A specific couple's number is not something to treat as precise to the point, which is why our matching tool reports a placement as provisional when it sits near a boundary rather than quietly picking a side.
What this study does not say
- It is not a statement about real couples. The pairs are independently sampled birth instants. Real birth dates are not uniformly distributed across the year or across decades, and real couples are not randomly paired - they are filtered by geography, community, age, and often by this very test. This is a structural base rate for the scoring system, not a demographic one.
- It does not measure whether Ashtakoot matching predicts anything. We did not track outcomes, because we have none. Nothing here supports or refutes the tradition's claims about compatibility. The study measures how often the system's own rules fire, which is a separate question from whether they mean what practitioners take them to mean.
- It does not cover Mangal Dosha. The Mangal check is not part of the 36 and is handled separately in practice, so it is excluded here and set identically for both partners. Some traditions weight it heavily enough to override a high guna total.
- Ashtakoot is not the only system. South Indian practice commonly uses Porutham, which counts a different set of agreements and would produce its own distribution. Nothing here transfers to it.
- Conventions matter. Every figure assumes the Lahiri ayanamsa and the nakshatra divisions our engine uses. A calculator built on a different ayanamsa would place some Moons in adjacent nakshatras and would not reproduce these numbers exactly.
Reproduce it
The sweep is a committed script that imports the production engine directly rather than reimplementing it, so the study and the calculator cannot drift apart. Both the sweep and the precision test write their results to JSON artifacts in the repository, and the precision test asserts that its unperturbed control reproduces the committed distribution bucket for bucket - if the two ever disagree, it fails rather than reporting a difference it caused itself. The figures on this page are read from those artifacts.
DesiUtils toolKundli MatchingScore a real pair on the same engine, with the percentile shownSources
- Ashtakoot koota definitions and point weightings as given in standard Vedic matching practice: Varna 1, Vashya 2, Tara 3, Yoni 4, Graha Maitri 5, Gana 6, Bhakoot 7, Nadi 8.
- Jean Meeus, Astronomical Algorithms, 2nd edition (1998), Willmann-Bell - the basis for the lunar longitudes the sweep samples.
- Lahiri (Chitrapaksha) ayanamsa, the convention fixed by the Calendar Reform Committee (1956) and carried by the Rashtriya Panchang.
- Our engine conventions, precision envelope, and the parity checks behind them: Kundli Calculator Accuracy.