Vimshottari Dasha Calculation: A Developer Guide

11 min read
Brajesh Vashisht
Vedic astrologyVimshottari DashaDasha CalculationJyotish APINakshatra

Learn the vimshottari dasha calculation algorithm, the 120-year planetary period system, and build dasha timelines with a working API.

TL;DR

  • Vimshottari Dasha divides a 120-year cycle among 9 planets, with period lengths from 6 years (Sun) to 20 years (Venus).
  • The birth Moon nakshatra determines the starting dasha lord, and the Moon degree within that nakshatra sets the remaining balance.
  • Each Mahadasha subdivides into 9 Antardashas, then Pratyantardashas, giving five levels of timing precision.
  • Build a complete dasha timeline with the Vedic Astrology API in a single POST request.

About the author: Brajesh Vashisht is a Vedic Astrologer and KP Systems Specialist with over 22 years of experience in Vedic astrology and Krishnamurti Paddhati. He holds a postgraduate degree in Jyotish Shastra from Banaras Hindu University and has authored two books on KP sub-lord theory and nakshatra analysis. His research focuses on precision event timing using dasha systems, ashtakavarga scoring, and Vedic divisional charts.

If you are building a Vedic astrology app, the vimshottari dasha calculation is one of the first features your users will expect. Dasha periods are how Jyotish practitioners time life events: career changes, marriage, health shifts, and financial cycles. Without dasha support, a kundali app feels incomplete. The algorithm itself is elegant and deterministic, but the edge cases around fractional birth balances and multi-level subdivision catch many developers off guard. This guide walks through the full calculation from first principles, with a worked example and a live API call you can run today.

What Is the Vimshottari Dasha System

Vimshottari Dasha is the primary planetary period system in Vedic astrology. The word "vimshottari" means 120, referring to the total cycle length of 120 years. The system assigns sequential rulership periods to 9 grahas (planets), each governing a fixed number of years. During a planet period, that graha colors every area of life: career, relationships, health, and spiritual development. The sequence always follows the same order: Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury. No other ordering is used in classical Vimshottari. The starting point in this sequence depends entirely on one factor: the Moon nakshatra at birth. This is what makes every person dasha timeline unique, even for births on the same day. Practitioners use dashas alongside transits and yogas to pinpoint when specific karmic patterns will activate. The system originated in Parashari Jyotish and remains the default timing method in nearly all Vedic astrology software today.

The Nine Planetary Lords and Their Period Lengths

Each of the 9 Vimshottari lords governs a specific number of years, and these are fixed constants in every implementation. The periods are: Ketu (7 years), Venus (20 years), Sun (6 years), Moon (10 years), Mars (7 years), Rahu (18 years), Jupiter (16 years), Saturn (19 years), and Mercury (17 years). These sum to exactly 120 years. The allocation is not arbitrary. It reflects the classical Parashari assignment where each nakshatra maps to a ruling planet, and 27 nakshatras divided among 9 planets gives 3 nakshatras per planet. The year values come from ancient texts and are consistent across all schools of Vedic astrology. For developers, this means the sequence and durations are hardcoded constants, never computed dynamically. The only variable input is where in the cycle a given birth falls, which is entirely determined by the Moon position.

Ready to build this? RoxyAPI Vedic Astrology API gives you Mahadasha, Antardasha, and Pratyantardasha periods in a single POST request with full interpretations. See pricing.

How Vimshottari Dasha Calculation Starts with the Moon Nakshatra

The 27 nakshatras divide the 360-degree zodiac into equal segments of 13 degrees 20 minutes each. At birth, the Moon occupies one of these nakshatras, and each nakshatra has an assigned Vimshottari lord. For example, Ashwini (nakshatra 1) is ruled by Ketu, Bharani (nakshatra 2) by Venus, and Krittika (nakshatra 3) by Sun. This pattern repeats three times across all 27 nakshatras. To find the birth nakshatra programmatically, take the sidereal Moon longitude (after applying Lahiri ayanamsha correction), divide by 13.3333 degrees, and take the ceiling. The nakshatra number (1 through 27) maps directly to a planet in the fixed sequence. The birth Mahadasha lord is whichever planet rules that nakshatra. This single lookup is the foundation of the entire dasha timeline. Get the Moon longitude wrong, and every subsequent period shifts.

Computing the Birth Dasha Balance

The Moon is rarely at the exact start of a nakshatra at birth. It has already traveled some portion through the nakshatra, which means part of the first Mahadasha has already elapsed. The birth dasha balance tells you how much of that first period remains. The formula is straightforward. Calculate the end degree of the current nakshatra. Subtract the Moon sidereal longitude from that end degree. Divide by the nakshatra span (13.3333 degrees). Multiply by the total dasha years for that planet. In code:

nakshatra_end = nakshatra_number * 13.3333
fraction_remaining = (nakshatra_end - moon_longitude) / 13.3333
balance_years = fraction_remaining * dasha_years_for_lord

For example, if the Moon is at 201.5 degrees sidereal, it falls in nakshatra 16 (Vishakha, ruled by Jupiter). Nakshatra 16 ends at 213.3333 degrees. The fraction remaining is (213.3333 - 201.5) / 13.3333 = 0.8875. Jupiter Mahadasha is 16 years, so the birth balance is 0.8875 * 16 = 14.2 years. The traditional conversion uses Savana years of 360 days each to break this into years, months, and days.

Building the Full 120-Year Mahadasha Timeline

Once you have the birth dasha lord and the remaining balance, building the complete timeline is deterministic. Start with the birth date. Add the balance years for the first Mahadasha. That gives you the end date of the first period and the start date of the second. The second Mahadasha lord is the next planet in the fixed Vimshottari sequence after the birth lord. Its duration is the full allotted years for that planet. Continue through all 9 planets in order. If you reach Mercury (end of sequence), wrap back to Ketu. After completing all 9 periods starting from the birth lord, you have covered exactly 120 years. In practice, some periods fall entirely before or after a person lifetime, but the full cycle is always calculated for completeness. Every period has a precise start date and end date.

Antardasha Sub-Periods: Dividing Each Mahadasha

Each Mahadasha is subdivided into 9 Antardashas (also called Bhukti). The subdivision follows the same Vimshottari sequence, starting with the Mahadasha lord itself. The duration of each Antardasha is proportional to its planet Vimshottari years relative to the Mahadasha duration. The formula: Antardasha duration = (Mahadasha years * Antardasha planet years) / 120. For a Jupiter Mahadasha (16 years), the Jupiter-Jupiter Antardasha lasts (16 * 16) / 120 = 2.1333 years. The Jupiter-Saturn Antardasha lasts (16 * 19) / 120 = 2.5333 years. This proportional division ensures all 9 Antardashas sum to exactly the Mahadasha duration. The sequence within Jupiter Mahadasha would be: Jupiter, Saturn, Mercury, Ketu, Venus, Sun, Moon, Mars, Rahu. Each Antardasha further subdivides into 9 Pratyantardashas using the same proportional logic, giving 81 sub-sub-periods per Mahadasha. This nesting continues through Sukshma and Prana levels for ultra-precise timing.

Five Levels of Dasha Precision

The Vimshottari system supports five levels of nesting, each providing finer timing resolution. Mahadasha covers years to decades. Antardasha (Bhukti) covers months to years. Pratyantardasha covers weeks to months. Sukshma Dasha covers days to weeks. Prana Dasha covers hours to days. At each level, the same proportional formula applies: take the parent period duration and divide it among the 9 planets based on their Vimshottari year ratios. The mathematical elegance is that you only need three inputs to calculate any level: the birth date, the sidereal Moon longitude, and the current date. Most practitioners work with three levels (Mahadasha, Antardasha, Pratyantardasha) for daily consultations. KP astrology practitioners often drill down to Sukshma level for event rectification. For most app use cases, three levels provide sufficient precision for users.

Worked Example: Calculating Dashas for a Delhi Birth

Consider a birth on July 4, 1990 at 10:12 AM IST in Delhi (latitude 28.6139, longitude 77.209). The sidereal Moon longitude (Lahiri ayanamsha) falls in Swati nakshatra (nakshatra 15), ruled by Rahu. Rahu Mahadasha is 18 years. The birth dasha balance calculation determines how much of the Rahu period remains at birth. If the balance is approximately 14 years 2 months 18 days, the Rahu Mahadasha runs from birth until roughly September 1, 2004. After Rahu, the sequence continues: Jupiter Mahadasha (16 years, ending around 2020), then Saturn (19 years, ending around 2039), Mercury (17 years), Ketu (7 years), Venus (20 years), Sun (6 years), Moon (10 years), and Mars (7 years). Within the Jupiter Mahadasha, the Jupiter-Jupiter Antardasha runs first, followed by Jupiter-Saturn, Jupiter-Mercury, and so on through all 9 sub-periods.

How to Get Vimshottari Dasha Periods from an API

You can retrieve complete dasha calculations using the Vedic Astrology API without implementing the algorithm yourself. Here is a working curl example to get the current Mahadasha, Antardasha, and Pratyantardasha for the Delhi birth chart above:

curl -X POST https://roxyapi.com/api/v2/vedic-astrology/dasha/current \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "date": "1990-07-04",
    "time": "10:12:00",
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5
  }'

The response includes moonNakshatra, nakshatraName, nakshatraLord, and the full mahadasha, antardasha, and pratyantardasha objects with planet, startDate, endDate, durationYears, and interpretation fields. It also returns remainingInMahadasha, remainingInAntardasha, and remainingInPratyantardasha with years, months, days, and totalDays breakdowns.

To get the complete 120-year timeline with all 9 Mahadasha periods:

curl -X POST https://roxyapi.com/api/v2/vedic-astrology/dasha/major \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "date": "1990-07-04",
    "time": "10:12:00",
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5
  }'

This returns a mahadashas array of all 9 periods with birthDashaBalance and totalYears: 120.

To get all 9 Antardasha sub-periods for a specific Mahadasha (for example, Jupiter):

curl -X POST https://roxyapi.com/api/v2/vedic-astrology/dasha/sub/jupiter \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "date": "1990-07-04",
    "time": "10:12:00",
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5
  }'

The response includes mahadashaLord, mahadashaPeriod with full details, and an antardashas array of 9 sub-periods. All endpoints accept the lang query parameter for localized interpretations. See the full API reference for response schemas.

Frequently Asked Questions

Q: What is the difference between Mahadasha and Antardasha? A: Mahadasha is the major planetary period lasting years to decades. Antardasha (also called Bhukti) is a sub-period within the Mahadasha, lasting months to a few years. Each Mahadasha contains 9 Antardashas. The Mahadasha lord sets the overall theme, while the Antardasha lord modifies it with its own planetary influence.

Q: How is vimshottari dasha calculation different from Ashtottari Dasha? A: Vimshottari uses a 120-year cycle with all 9 Vedic planets, while Ashtottari uses a 108-year cycle with only 8 planets (excluding Ketu). Vimshottari is the default system in Parashari Jyotish and is used by the vast majority of practitioners. Ashtottari is applied only when specific birth conditions are met, primarily nighttime births in Shukla Paksha.

Q: Why does the Moon nakshatra determine the starting dasha? A: In Vedic astrology, the Moon represents the mind and the soul karmic imprint at birth. The nakshatra the Moon occupies at the moment of birth reflects the karmic starting point. Since each nakshatra is governed by a specific planet, that planet Mahadasha begins at birth, with the elapsed portion already consumed based on the Moon degree.

Q: Can two people born on the same day have different dashas? A: Yes. The Moon moves roughly 12 to 14 degrees per day, which can span an entire nakshatra. Even a few hours difference in birth time can place the Moon in a different nakshatra or at a significantly different degree within the same nakshatra, resulting in a different dasha lord or a different birth balance. Birth location also affects the calculation through timezone conversion.

Q: How accurate are the dasha dates from an API compared to manual calculation? A: API calculations use high-precision ephemeris data verified against NASA JPL Horizons, with Lahiri ayanamsha for sidereal correction. This produces dasha dates consistent with authoritative Vedic astrology references. Manual calculation using printed tables typically introduces rounding errors at the Antardasha and Pratyantardasha levels.

Conclusion

The vimshottari dasha calculation is a deterministic algorithm built on three inputs: the birth date, the sidereal Moon longitude, and the Vimshottari constants. Once you understand the nakshatra lookup, the birth balance formula, and the proportional subdivision logic, the entire 120-year timeline with all five nesting levels follows naturally. For developers building Vedic astrology products, the Vedic Astrology API handles the ephemeris, ayanamsha, and multi-level subdivision for you, returning complete dasha timelines in structured JSON. Check pricing and start building today.