Birth chart equations
How to Calculate a Complete Birth Chart from Scratch
Lagna (Ascendant), Rasi (D1), Navamsa (D9) & Vimshottari Dasha — with equations and diagrams
This post explains the full computational pipeline used by chart calculators:
- Time conversion (IST → UTC)
- Julian Day (JD)
- Sidereal time (GMST → LST)
- Obliquity of the ecliptic
- Ascendant (Lagna) geometry and equation
- Tropical → Sidereal conversion (Lahiri)
- Rasi (D1), Nakshatra & Pada
- Navamsa (D9)
- Vimshottari Dasha + Bhukti schedule (100 years)
The emphasis here is on variables, equations, and how each value is computed.
Quick pipeline
1) Inputs and symbols
1.1 Birth inputs
| Symbol | Meaning | Unit |
|---|---|---|
| Gregorian year, month, day | — | |
| Birth time in IST (hour, minute) | — | |
| Latitude (North positive) | degrees | |
| Longitude (East positive) | degrees |
1.2 Derived time variables
| Symbol | Meaning | Unit |
|---|---|---|
| Universal Time | hours / datetime | |
| Julian Day | days | |
| Julian centuries since J2000.0 | centuries | |
| Greenwich mean sidereal time | degrees | |
| Local sidereal time | degrees | |
| Obliquity of ecliptic | degrees |
1.3 Longitudes
| Symbol | Meaning | Unit |
|---|---|---|
| Tropical ecliptic longitude | degrees | |
| Lahiri ayanamsa | degrees | |
| Sidereal ecliptic longitude (Lahiri) | degrees | |
| Ascendant longitude | degrees |
2) Time conversion (IST → UTC)
India Standard Time is UTC+05:30, so:
(If your inputs are IST, you must convert before astronomical calculations.)
3) Julian Day (JD)
A convenient form (if you already have a UTC Date):
where:
- is the time in seconds since Unix epoch (1970-01-01 00:00:00 UTC)
- 86400 is seconds per day
JD is the master clock for the rest of the pipeline.
4) Sidereal time (GMST → LST)
4.1 Julian centuries
4.2 Greenwich Mean Sidereal Time (degrees)
Normalize to degrees.
4.3 Local Sidereal Time
Normalize to degrees.
5) Obliquity of the ecliptic
Using a standard Meeus-style approximation (arcseconds):
Convert to degrees:
6) Lagna (Ascendant): geometry + equation
6.1 What Lagna is (geometrically)
Lagna is the ecliptic longitude rising on the eastern horizon at the birth location and birth moment.
It is the intersection of:
- the ecliptic plane (zodiac belt), and
- the local horizon plane, specifically the eastern intersection.
This is why Lagna depends strongly on latitude and time.
6.2 SVG diagram: Lagna geometry (horizon–ecliptic intersection)
The Ascendant (Lagna) is defined as the point where the ecliptic — the apparent path of the Sun and zodiac — intersects the eastern horizon at a specific time and location on Earth.
Due to Earth’s rotation, the zodiac appears to move westward across the sky. As a result, different zodiac degrees rise on the eastern horizon throughout the day approximately every two hours. The zodiac degree rising at the moment of birth is called the Lagna or Ascendant.
This is a conceptual diagram (not to scale). It shows the horizon plane cutting the ecliptic circle. The eastern intersection is the Ascendant (Lagna).
Side-view illustration of Lagna geometry. The Ascendant (Lagna) is the point where the zodiac, or ecliptic, intersects the eastern horizon at a given birth time and location. The opposite intersection on the western horizon is the Descendant.
6.3 Ascendant equation (tropical ecliptic longitude)
Let:
- (converted to radians)
- = latitude
- = obliquity
A robust form that selects the eastern intersection uses:
Implementation should use atan2 for quadrant correctness:
Normalize to .
7) Lahiri ayanamsa and sidereal longitudes
7.1 Lahiri ayanamsa
with:
7.2 Sidereal longitude
This applies to the Ascendant and each planet longitude (after you compute tropical ecliptic longitude).
8) Rasi (D1 chart)
Each sign spans 30°.
In a South Indian chart layout, sign locations are fixed. A standard indexing layout is:
[11] [ 0] [ 1] [ 2]
[10] [ 3]
[ 9] [ 4]
[ 8] [ 7] [ 6] [ 5]
where 0=Mēṣam (Aries), 1=Riṣapam, …, 11=Meenam.
9) Nakshatra and Pada
There are 27 nakshatras:
Nakshatra index:
Each nakshatra has 4 padas:
Pada:
10) Navamsa (D9 chart)
Each sign is divided into 9 parts:
Within-sign longitude:
Navamsa segment index:
Navamsa sign mapping depends on the sign type:
- Movable signs: start Navamsa from the same sign
- Fixed signs: start from 9th sign
- Dual signs: start from 5th sign
(Then advance signs forward.)
11) Vimshottari Dasha (100 years)
11.1 Dasha order and years
Vimshottari is a 120-year cycle:
- Ketu (7), Venus (20), Sun (6), Moon (10), Mars (7), Rahu (18), Jupiter (16), Saturn (19), Mercury (17)
Total:
11.2 Starting Mahadasha from Moon’s nakshatra lord
Moon’s nakshatra index maps to the repeating 9-lord cycle. The lord at birth starts the Mahadasha.
11.3 Balance at birth
Let be the fraction of nakshatra completed by Moon:
Balance (remaining years) for the starting lord with duration :
11.4 Bhukti (Antardasha) duration inside a Mahadasha
For a Mahadasha of length , a sub-lord with duration has Bhukti:
Generate a 100-year schedule by iterating Mahadashas forward from birth and expanding Bhuktis within each Mahadasha.
12) Accuracy notes
Small differences between websites happen due to:
- Different ayanamsa models (exact Lahiri vs approximations)
- Nutation / true obliquity vs mean obliquity
- Different ephemeris engines (Swiss Ephemeris vs simplified formulas)
- Calendar-add vs constant year-length when converting “years” to dates
If you want matching down to minutes with a specific reference site, the biggest lever is using the same ephemeris/ayanamsa convention and the same date addition convention for dashas.