We ran the same 2,000 birth charts through 9 versions of the kaal sarp dosh rule. The share of charts with the dosha ran from 3.1% to 33.1%. The math is simple. The settings around it are where apps split.

Kaal sarp dosh is a chart shape that tradition names. All seven planets from the Sun to Saturn sit on one side of the line from Rahu to Ketu. Rahu and Ketu are the two points where the Moon's path crosses the Sun's path. They always sit exactly opposite each other, so the line between them cuts the zodiac into two halves.

A program tests it in three steps. Measure each planet's position forward from Rahu, from 0 to 360 degrees. Put the planets under 180 degrees in one list and the rest in the other. If either list is empty, the dosha is present.

Apps disagree on five settings around that test. They are a planet on the line, one planet outside, the direction, the lagna (the rising sign) and the way Rahu is calculated. Our API takes the strict rule in both directions, with a 1-degree "partial" flag. Under that rule, 7.5% of our 2,000 births had the dosha.

The kaal sarp dosh rule as code

The check needs eight numbers: the longitudes of Rahu and of the seven planets. A longitude is a planet's place on the zodiac circle, from 0 to 360 degrees. Ketu needs no number of its own, because it is always Rahu plus 180 degrees.

// Kaal sarp check: are the Sun to Saturn all on one side of the Rahu-Ketu line?
const PLANETS = ["Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"];

function kaalSarpCheck(longitudes) {
  const rahu = longitudes.Rahu;
  const rahuToKetu = [];
  const ketuToRahu = [];
  for (const planet of PLANETS) {
    // How far the planet sits forward from Rahu, from 0 to 360 degrees.
    const offset = (longitudes[planet] - rahu + 360) % 360;
    if (offset < 180) {
      rahuToKetu.push(planet);
    } else {
      ketuToRahu.push(planet);
    }
  }
  const present = rahuToKetu.length === 0 || ketuToRahu.length === 0;
  return { present, rahuToKetu, ketuToRahu };
}

Rahu and Ketu themselves are left out of the test. Our rulebook says so in rule DO-03. The API also puts a planet at exactly 0 or 180 degrees in neither list. In our 2,000 births, that never happened once. Why rule IDs matter shows how to put a rule like this in front of users.

A worked example: John Doe

John Doe was born on Aug 15, 1990, at 10:30 AM in New York. The API puts his Rahu at 283.51 degrees, in Capricorn. Here is each planet measured forward from there.

Planet

Degrees past Rahu

Side of the line

Distance to the line

Mars

104.2°

Rahu to Ketu

75.8°

Moon

131.1°

Rahu to Ketu

48.9°

Jupiter

172.2°

Rahu to Ketu

7.8°

Venus

174.8°

Rahu to Ketu

5.2°

Sun

195.3°

Ketu to Rahu

15.3°

Mercury

222.2°

Ketu to Rahu

42.2°

Saturn

342.6°

Ketu to Rahu

17.4°

Four planets sit on one side and three on the other, so John has no kaal sarp dosh. This is the API's answer, shortened. John Doe, born Aug 15, 1990, at 10:30 AM in New York:

{
  "dosha": "kaalsarpa",
  "rule": "all seven grahas (Sun through Saturn) on one side of the Rahu-Ketu axis",
  "present": false,
  "type": null,
  "rahu_house": 5,
  "grahas_between_rahu_and_ketu": ["Moon", "Mars", "Jupiter", "Venus"],
  "grahas_between_ketu_and_rahu": ["Sun", "Mercury", "Saturn"],
  "partial": false,
  "grahas_on_axis": []
}

The call is POST /v1/dosha/kaalsarpa with the birth date, time and place. The answer also carries a plain-English answer block for your users. The full field list is in the API reference.

Nine settings, nine answers

We picked 2,000 random birth moments between 1950 and 2009. Each one was in New York, Chicago, Houston or Los Angeles. For each birth, we called the API with the true node and the mean node, and fetched the planets and the ascendant. Then we scored every birth under each setting below.

Setting

Births with the dosha

Share

Our API: strict rule, both directions, true node

151

7.5%

The same with the mean node

153

7.7%

A planet within 1° of the line breaks it

144

7.2%

A planet within 3° of the line breaks it

132

6.6%

A planet within 5° of the line breaks it

119

6.0%

The lagna must sit on the same side

74

3.7%

A planet in the same sign as Rahu or Ketu breaks it

72

3.6%

Only the Rahu-to-Ketu direction counts

62

3.1%

One planet outside still counts as partial

662

33.1%

Bar chart of 2,000 random births scored under nine versions of the kaal sarp dosh rule, from 3.1% of charts with only the Rahu-to-Ketu direction to 33.1% when one planet outside still counts, with the API's strict rule at 7.5%

Every row uses the same births and the same planet positions. Only the rule changes. So when a user says "the other app says I have it", one of these settings can explain the gap. The next sections take them one at a time.

A planet sitting on the line

A planet very close to Rahu or Ketu is one case where the sources split. Some teachers say it breaks the "hemming in". Others count the dosha anyway. They also differ on how close is close. One source names 3 degrees, and others give no number.

Our API does not pick a side. When a planet sits within 1 degree of the line, it sets partial to true and names the planet in grahas_on_axis. The present field still follows the strict rule. Rule DO-03 states this choice in plain words.

The flag needs care in your screens. In our survey, 135 births had partial set to true. Only 7 of them had the dosha. The other 128 had a planet near the line but planets on both sides. So read present first, and show partial only as a note under a "yes".

The orb you choose moves the count. A 1-degree break leaves 144 births with the dosha. A 3-degree break leaves 132, and a same-sign break leaves only 72.

One planet outside: the "partial" forms

Several sites we read also call a chart "partial kaal sarp" when six planets sit on one side and one sits on the other. Strict teachers do not count this at all. This is a different "partial" from the API's 1-degree flag, so keep the two apart in your screens.

This setting makes the biggest gap of all. In our survey, 511 births had exactly one planet outside. That is 25.6% of all births. Adding them to the 151 full cases gives 662, or 33.1%.

The lone planet outside was most often the Moon, in 141 births. Jupiter came next with 136, then Saturn with 121 and Mars with 81. The Moon is the fastest of the seven. It moved 14.26 degrees on John's birthday, so it can sit alone on the far side for a few days.

The API does not label these charts. You can find them yourself: one of the two planet lists has exactly one name in it. If you show it, call it something else, so users do not read it as the full dosha.

Direction, the lagna and the node

Direction. The planets can be hemmed in two ways. Going forward through the signs from Rahu to Ketu is the classic form. Going from Ketu to Rahu is called Kaal Amrit yoga by some writers, who read it more gently. Our API counts both as present. You can tell them apart from the two lists. In our survey, 62 births had the Rahu-to-Ketu form and 89 had the Ketu-to-Rahu form.

The lagna. The lagna, or ascendant, is the sign rising in the east at birth. One teacher's write-up of B. V. Raman's rule says to ignore it. Our API leaves it out too, as rule DO-03 says. We also tested a stricter reading that wants the lagna on the same side as the planets. It cut our count from 151 to 74, about half.

The node. Rahu can be calculated two ways: the true node is its real position, and the mean node is a smoothed average. Our API uses the true node unless you send node: "mean". This setting barely matters here. Only 8 of 2,000 births changed their answer, and the glossary explains the two.

The 12 named types

Each kaal sarp form has a serpent name, picked by the house that holds Rahu. Our API counts houses by whole sign from the lagna, under rule CH-06. It returns the name in type, and rahu_house as a number.

Rahu's house

Type

Births in our survey

1

Anant

12

2

Kulik

9

3

Vasuki

20

4

Shankhpal

11

5

Padma

9

6

Mahapadma

15

7

Takshak

9

8

Karkotak

11

9

Shankhachud

14

10

Ghatak

17

11

Vishdhar

11

12

Sheshnag

13

The 151 cases spread over all 12 types, from 9 to 20 each. One point matters for your forms. The type depends on the lagna, and the lagna changes sign about every two hours. So the type needs an accurate birth time, even when the yes or no does not.

If you want to check a whole chart before the dosha, our free kundli tool shows where Rahu and every planet sit.

Banner inviting readers to open the free kundli tool and see where Rahu and every planet sit in a chart

How often the dosha appears

Pages online give estimates. One says about 15% of charts. Another says about 1 chart in 25 to 30. We measured instead. Under our API's rule, 151 of 2,000 births had it: 7.5%.

The share is not steady over time. It depends on where the slow planets sit in a given year. Births from the 1990s had it in 13 of 341 cases. Births from the 2000s had it in 34 of 346.

We also checked noon in New York on every day of two years. In 1990, John's birth year, the dosha formed on 0 of 365 days. In 2026, it formed on 51 days. Those days came in 6 runs between Mar 17 and Jul 9. The longest run was 13 days, from Jun 7 to Jun 19. The Moon sets the rhythm. Each month it swings to one side of the line, then back.

So "how common is it" depends on the rule and on the year.

What to show your users

Start from the strict answer and name the rule. The API returns the rule text in every response, so you can show it as is. Then show the two planet lists, so users can see the result with their own eyes.

Keep the extra settings visible and separate. Show the 1-degree flag as a note under a "yes". If you add the lagna rule or the one-planet-outside form, label them as other views, not as the main result. Our doshas feature page shows the full response for each dosha.

Banner for the yogas and doshas API page, which shows each dosha check with the rule it used

Keep the tone calm. Kaal sarp dosh is a later tradition, not found in the oldest texts, and schools still argue over its details. Our API's own answer calls a dosha "a tendency to keep in mind, not a fixed fate". Remedies appear in the reading sections only when the chart has the dosha, under rule RM-04.

The manglik check has the same kind of gaps, with exceptions that the API lists but does not apply. Our post on how the manglik check works walks through them. The short definition of this dosha lives in the kaal sarp dosh glossary entry.

In our survey, all 9 answers came from the same planet positions. The gap was always the rule, never the sky. Pick each setting on purpose, and show your users which one you picked.