Foundations
How Is a Kundali Created? The Full Pipeline From Birth Time to Reading.
A Kundali is not summoned. It is computed. Three numbers go in — date, time, place — and a structured chart comes out. Here is the actual engineering pipeline DestinIQ runs every time you generate a chart, written so a non-engineer can follow it and an engineer can verify it. No mystification.
The inputs: three numbers, nothing more
A Vedic Kundali needs exactly three things from you:
- Birth date — the Gregorian calendar date you were born (e.g.
1988-11-05). - Birth time — the local clock time at the place of birth, ideally accurate to the minute (e.g.
10:13). The Lagna (Ascendant) shifts about 1° every 4 minutes, so a 5-minute error can move it across a sign boundary. (See the one-day typo case study for how badly this cascades.) - Birth place — geocoded to latitude, longitude, and IANA timezone (e.g.
(19.0760, 72.8777, Asia/Kolkata)for Mumbai). The latitude matters for the Lagna calculation. The timezone matters because we need to convert local time to Universal Time before doing astronomy.
Nothing else. No name, no question, no ritual. The chart is fully determined by these three numbers and the chosen ayanamsa. If you give the same three numbers to ten different astrology programs all using Lahiri, you should get the same Kundali back.
Step 1: Convert to Julian Day UT
The first thing the engine does is throw away your local clock. Astronomy does not care that you were born at “10:13 IST” — it cares about the absolute moment in time, expressed in Universal Time (UT).
DestinIQ's pipeline applies the timezone offset (IST is UT+5:30, so 10:13 IST is 04:43 UT) and then converts the resulting UT moment to a Julian Day — a continuous count of days since 1 January 4713 BCE. Julian Days are the universal time coordinate astronomers use because they avoid all the headaches of months, leap years, and calendar reforms.
The Julian Day for our example: 2447471.6979. That single number, plus the latitude and longitude, is now the only thing the rest of the pipeline needs.
Step 2: Call Swiss Ephemeris for tropical longitudes
DestinIQ uses the Swiss Ephemeris — the open-source astronomical library used by virtually every serious astrology program. Swiss Ephemeris is itself derived from NASA JPL's DE431 ephemeris, the same data set used to navigate space probes. Arc-second-accurate planetary positions for any moment between roughly 13,000 BCE and 17,000 CE.
For each classical “planet” in Vedic astrology, the engine asks Swiss Ephemeris for its tropical ecliptic longitude:
- Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn — the seven physical bodies
- Rahu (the Mean Lunar North Node) — a calculated point, not a body
- Ketu — derived as exactly 180° opposite Rahu
The mode used is “Moshier analytical” — pure analytical computation with no need for external ephemeris files. That keeps the server self-contained and the math transparent. Each call returns the planet's longitude in degrees (0-360) along the tropical ecliptic, plus its retrograde flag (positive vs negative longitude speed).
Step 3: Apply Lahiri ayanamsa to get sidereal positions
Swiss Ephemeris by default returns tropical longitudes — the system Western astrology uses, where 0° Aries is locked to the spring equinox. Vedic astrology uses the sidereal system, where 0° Aries is locked to a fixed stellar reference. The two systems differ by the ayanamsa — the precessional drift between the equinox and the fixed stars, accumulated over centuries.
DestinIQ uses the Lahiri ayanamsa, which is the Government of India's standard since 1955 (calibrated using the star Spica/Chitra as the zero-point anchor). In 2026 the Lahiri value is approximately 24°11'. The conversion:
sidereal_longitude = tropical_longitude − lahiri_ayanamsaThat single subtraction is what differentiates a Vedic chart from a Western chart on the same birth data. (See Lahiri vs KP Ayanamsa for why two Vedic apps can disagree even on the sidereal side, and the ayanamsa astronomy explainer for the underlying physics.)
Step 4: Compute the Lagna (Ascendant)
The Lagna — the rising sign — is the single most important point in a Vedic chart, and it is also the most birth-time-sensitive. The engine asks Swiss Ephemeris for the rising-sign longitude given the user's latitude, longitude, and Julian Day, configured for the Whole-Sign house system. The library returns a tropical longitude.
Subtract the Lahiri ayanamsa to convert to sidereal, then look up which of the 12 signs (each 30° wide) the sidereal Lagna falls into. That is your Lagna sign.
Because the Lagna moves about 1° per 4 minutes (the Earth rotates 360° in 24 hours = 15° per hour = 0.25° per minute = 1° per 4 minutes), a 10-minute error in birth time is a 2.5° shift — usually small, but enough to cross a sign boundary if you happen to be born near one.
Step 5: Build the 12 houses (Whole Sign)
DestinIQ uses the Whole Sign house system — the most classically faithful for Parashari Vedic astrology. The rules are simple:
- House 1 is the Lagna sign in full (0° to 30° of that sign)
- House 2 is the next sign in full
- House 3 is the sign after that, and so on through House 12
Every planet's house is determined by which sign it occupies, not by its specific degree. This is different from Placidus, Koch, or other “quadrant” systems used in Western astrology, where house cusps fall at arbitrary degrees. Whole Sign is the system Brihat Parashara Hora Shastra describes and the one most classical Vedic readings assume.
Step 6: Identify each planet's nakshatra
The 360° sidereal ecliptic is also divided into 27 Nakshatras (lunar mansions), each 13°20' wide, each subdivided into 4 padas (quarters) of 3°20'. Every planet, having a sidereal longitude, falls into exactly one Nakshatra and one Pada.
The most important Nakshatra in any chart is the Moon's — the Janma Nakshatra, “birth nakshatra.” This single placement is the seed of the entire timing system, which is the next step.
(See the 27 Nakshatras explained for the full system.)
Step 7: Derive the Vimshottari Dasha
Vimshottari Dasha is the 120-year planetary period system that gives Vedic astrology its timing layer. It runs through the nine planets in a fixed classical sequence — each one ruling for a span of years that is set by tradition, the nine periods totalling exactly 120 years. (The full sequence and the per-planet durations are in any standard Parashari text — for example Brihat Parashara Hora Shastra or K.S. Charak's textbooks listed in our references.)
The cycle starts not at the conventional first planet, but at whichever planet rules your natal Moon's nakshatra — and not from the beginning of that planet's full period, but from the balance remaining based on how far through the nakshatra the Moon was at birth.
Concretely: each Nakshatra is associated with a Dasha lord (Ashwini → Ketu, Bharani → Venus, Krittika → Sun, etc.). If your Moon was, say, 25% of the way through Ashwini at birth, your first Mahadasha is Ketu and you start with 75% of Ketu's 7-year period remaining (= 5.25 years from your birth date until Venus Mahadasha begins).
From there, the engine walks the fixed sequence forward, computing the start and end date of every Mahadasha and every Antardasha (sub-period within a Mahadasha) for the next ~120 years. Two different astrologers running this same calculation should land on the same Mahadasha switchover dates to within a day. (See the Vimshottari Dasha explainer for full mechanics.)
Step 8: Detect Yogas
With all planets, houses, signs, and the dasha timeline computed, the engine runs a yogas-detection pass against the chart. Yogas are classical configurations that classical literature names and reads — Gajakesari Yoga (Jupiter aspecting Moon), Raja Yoga (kendra-trikona lords combined), Dhana Yoga (wealth combinations), and dozens more. (See Navamsa for divisional-chart logic that intersects with this.)
DestinIQ's detection is rule-based — for each yoga in the canonical list, the code checks whether the configuration is present in the computed chart and flags it. No interpretation yet — just “Gajakesari is present” / “Vipreet Raja Yoga is not present.”
Step 9: Compute transits, Sade Sati windows, ashtakvarga
On top of the natal chart, DestinIQ pre-computes a transit timeline for the user's lifespan:
- Saturn's sign-by-sign movement, used to identify the three phases of Sade Sati from the natal Moon
- Jupiter's sign-by-sign movement (~1 year per sign)
- Rahu/Ketu sign changes (~18 months per sign, retrograde mean motion)
- Ashtakvarga point totals — a classical “strength score” per house per planet
All of this is plain astronomy plus classical interpretation rules. Nothing is invented. Nothing depends on the user's belief.
Step 10: Ground the AI in computed data
This is the step that distinguishes DestinIQ from a general-purpose AI chatbot. When you ask DestinIQ's chat “what does my Mars in Scorpio mean?”, the system does not ask the language model to recall what Mars in Scorpio means. It does this:
- Look up your chart from the database (computed via the steps above)
- Confirm: yes, this user's Mars is in Scorpio (sidereal longitude X°, sign 8, in House Y, retrograde no)
- Pass that structured fact to Claude as part of the system prompt, alongside the rest of the chart, the current Mahadasha, and the relevant transit timeline
- Then ask Claude to interpret it within classical Parashari conventions
This is “retrieval-augmented generation” — the AI is grounded in real, computed astronomical data before it speaks. It cannot fabricate placements, because the placements are passed to it as facts. This is the core technical reason general AI chatbots make up wrong astrology answers — they have no chart data on hand and no calculation engine. We do.
How DestinIQ interprets the chart
The interpretation layer is where many astrology products quietly stop being honest. Ours is built around four constraints:
1. Classical first, AI second
For any placement, we lean on what the canonical Parashari literature actually says — Brihat Parashara Hora Shastra, Phaladeepika, Saravali, Brihat Jataka. The AI is allowed to translate that into modern English and apply it to the user's context, but it is not allowed to invent novel astrological claims that are not in the corpus.
2. Descriptive, never predictive
We do not say “your Mars in Scorpio means you will become a soldier.” We say “Mars in own-sign Scorpio is read in classical literature as endurance under pressure — the warrior-discipline placement.” The first is a prediction. The second is a description of a 2,000-year-old pattern claim. Only the second is honest. (See how Vedic astrology actually works for the full reasoning behind this stance.)
3. Birth-time uncertainty disclosed
When a user's birth time is unknown or approximate, time-dependent claims (Lagna, house occupancy, exact dasha switchover dates) are softened or dropped. We do not back-fit. We never offer paid “rectification” — that is reverse-engineering a chart to events the user already told us, which is not honest.
4. Cross-domain grounding
For the same question, the chat consults: the natal chart, the current Mahadasha and Antardasha, the transit timeline (especially Saturn and Jupiter), the divisional charts where relevant (Navamsa for marriage), and any prior conversation context the user has given. The answer cites specific computed values, not vague generalities.
What you can verify yourself
Every number in your DestinIQ chart is independently verifiable. If you doubt a placement:
- Open any Swiss-Ephemeris-backed tool (e.g. Astro.com's sidereal Lahiri option) and re-cast your chart. The planetary longitudes should match within seconds of arc.
- For Vimshottari Dasha switchover dates, check against any Jyotish almanac or another Lahiri-based tool. They should agree within a day.
- For Saturn-return or Sade Sati start dates, check against any astronomy planetarium app (Stellarium is free) — when does Saturn enter the sign 12th-from-natal-Moon? That is the start of Sade Sati.
We are not interested in being trusted. We are interested in being verifiable. The whole pipeline above is publicly documented, and every step uses open standards (Swiss Ephemeris is public, Lahiri ayanamsa is public, Whole Sign is public, Vimshottari is public). The only thing we add on top is the AI layer — and that is grounded in the computed data, not free-floating.
What this rules out
Once you understand the pipeline, several common practices look indefensible:
- “Apps disagree because astrology is mystical” — they disagree because they use different ayanamsas (Lahiri vs KP New vs Raman) or different house systems (Whole Sign vs Placidus). It is a parameter choice, not a metaphysical disagreement. (See Lahiri vs KP.)
- “Birth-time rectification” sold as a service — this is reverse-engineering the chart to fit events the user already told you. It is not a calculation; it is a sales technique.
- “Premium chart secrets the AI cannot see” — there are no secret placements. The chart is fully determined by date, time, place, and ayanamsa. Anyone telling you otherwise is gating ordinary information behind a paywall.
Frequently asked, technically answered
Why Whole Sign houses?
Because that is the system Brihat Parashara Hora Shastra and most classical Parashari texts describe. Quadrant systems (Placidus, Koch) are Western inventions. KP system uses cusps. Sripathi uses unequal houses. Whole Sign is the cleanest, most classically faithful, and the one most Vedic interpretation rules were originally written for.
Why Lahiri ayanamsa specifically?
Because it is the Government of India standard (1955), it is calibrated against a fixed stellar reference (Chitra/Spica), and it is the convention most modern Indian astrology assumes. We could use Raman or KP New, but every Vedic chart in this product would shift by 23' or 6' respectively. We picked the most widely-used standard and stick to it. (See Lahiri vs KP for the trade-offs.)
What about divisional charts (Navamsa, Dasamsa, etc.)?
They are computed on top of the natal D1 chart by mathematical division of each sign. The D9 (Navamsa) divides each 30° sign into nine 3°20' sub-segments and remaps each segment to a sign per a fixed rule. Same input data, different projection. (See the Navamsa explainer.)
Does DestinIQ use the “True Node” or “Mean Node” for Rahu?
Mean Node, by default — that is the convention most classical Vedic literature assumes, and it is what Swiss Ephemeris's SE_MEAN_NODE returns. The True Node oscillates on a 173-day cycle around the Mean Node by up to about 1.7°, which can cross sign boundaries near the edges. Most Vedic readers stick with Mean for stability.
How does the Vimshottari Dasha “balance” calculation work?
Each Nakshatra spans 13°20' (= 800 arc-minutes). If your Moon at birth is, say, 200 arc-minutes into Ashwini (Ketu's nakshatra), then 25% of the nakshatra has elapsed and 75% remains. Ketu's full Mahadasha is 7 years. So your first Mahadasha is Ketu, with 75% × 7 = 5.25 years remaining from your birth date. Venus Mahadasha (the next in the fixed sequence) begins after that. The same proportional logic gives every subsequent switchover.
How long does a chart take to compute?
On DestinIQ's servers, the full pipeline (steps 1-9 above) takes about 80-150 ms per chart. Step 10 (the AI interpretation) is the slow one — typically 2-6 seconds depending on how detailed the question is. The chart itself is cached after first computation; only the AI calls run again on each new question.
The bottom line
A Kundali is a deterministic computation. Three numbers go in (date, time, place), a structured chart comes out, and a 2,000-year-old interpretive language is applied on top. The astronomy is exact, the cycles are real, the interpretation is classical, and the AI is grounded in the computed data so it cannot drift.
That is the engineering version. For the philosophical version — “but how can stars predict?” — read the companion piece: How does Vedic astrology actually work? An honest answer.
Run the pipeline on your own birth data
Generate your Kundali via this exact pipeline — Swiss Ephemeris, Lahiri ayanamsa, Whole Sign, Vimshottari Dasha. Free, in 60 seconds, with the chart structured for you to verify.
Get My Free Kundali →Related reading
- How does Vedic astrology actually work? An honest answer
- The astronomy behind Ayanamsa: 2,400 years of sidereal drift
- Lahiri vs KP Ayanamsa — why two apps disagree
- The one-day typo that rewrote a life reading
- The 27 Nakshatras explained
- Vimshottari Dasha — the 120-year timing system
- What is a Kundali — the pillar overview
References
- Swiss Ephemeris — the open-source astronomical library DestinIQ uses
- NASA JPL DE431 — the underlying ephemeris data
- Brihat Parashara Hora Shastra (BPHS), tr. R. Santhanam — the classical Parashari foundation text
- K.S. Charak, Elements of Vedic Astrology — modern compendium of classical rules
- K.N. Rao, Vimshottari and Yogini Dasha — authoritative reference on Dasha mechanics