Every birth chart and planetary position on DesiUtils comes from one calculation engine. It computes positions from a Meeus/VSOP87-class implementation, entirely in your browser, converts them to the sidereal zodiac with the Lahiri ayanamsa, places them in whole-sign houses, and takes Rahu and Ketu as the mean lunar nodes - the conventions shared by mainstream Indian Panchang practice. Typical precision is within 0.3 degrees of Swiss Ephemeris Lahiri values for birth dates from 1900 onwards, which keeps sign, nakshatra, and house assignments stable for almost all charts - with one caveat we repeat everywhere it applies: when a planet or the Lagna sits within about 0.3 degrees of a sign, nakshatra, pada, or navamsa boundary, the placement can flip between neighbouring buckets, and the honest move is to cross-check it against a professional ephemeris. This page is the engine-level story behind all of it: what we compute, the astronomy underneath, what browser-side really means, and the checking program - chart parity against Jagannatha Hora, panchang cross-checks against Drik Panchang, and an automated test suite - that stands behind every number we show.
Quick Facts
| Item | Detail |
|---|---|
| Calculation engine | astronomia, an MIT-licensed JavaScript implementation of Meeus's Astronomical Algorithms |
| Planetary theory | VSOP87 - Sun derived from Earth's position; Mars, Mercury, Jupiter, Venus, Saturn with light-time, aberration, FK5, and nutation corrections |
| Moon | Truncated ELP-2000/82 lunar series as given by Meeus, plus nutation |
| Rahu and Ketu | Mean lunar node; Ketu exactly opposite Rahu |
| Ayanamsa | Lahiri (Chitrapaksha): 22.460 degrees at 1 January 1900, advancing 50.2879 arcseconds per year |
| House system | Whole-sign (house 1 = the Lagna's sign) |
| Timezones | IANA database with historical DST; dasha dates shown on the birthplace calendar |
| Typical precision | Within 0.3 degrees of Swiss Ephemeris Lahiri for birth dates from 1900 onwards |
| Boundary rule | Placements within about 0.3 degrees of a cutoff are treated as provisional - cross-check before relying on them |
| Checked against | Jagannatha Hora, Drik Panchang, JPL Horizons (DE441) - July 2026 checks |
| Test scale | 261 test suites, more than 6,800 tests, as of August 2026 |
| Privacy | Charts computed in your browser; birth details never uploaded |
What DesiUtils computes
As of August 2026 the astrology section has 34 live calculators. Every one that computes a chart or a planetary position - the full Kundli, each divisional chart, every dasha, dosha, yoga, and Jaimini tool - reads those positions from the same engine, so no two DesiUtils tools can disagree about where a planet sits. The two panchang-timing lookups, Rahu Kaal and Disha Shool, are the deliberate exceptions: they work from sunrise windows and the weekday, which need no planetary longitudes at all.
| Family | What it covers | Start with |
|---|---|---|
| Kundli and matching | Full birth chart with D1/D9, Panchang, dasha and dosha summary; Ashtakoot and Porutham matching | Kundli Generator |
| Dashas | Vimshottari mahadasha, antardasha and pratyantardasha; Yogini dasha | Vimshottari Dasha |
| Doshas and Saturn phases | Mangal Dosha, Kaal Sarp, Pitra Dosha, Sade Sati - each with how common the result is | Mangal Dosha |
| Yogas | Raj Yoga, Neecha Bhanga, Gaja Kesari, Panch Mahapurusha, Dhana Yoga | Raj Yoga |
| Ashtakavarga | Sarvashtakavarga and Bhinnashtakavarga point tables | Ashtakavarga |
| Divisional charts | Nine vargas from D2 (Hora) to D30 (Trimsamsa), each with its own tool page | Navamsa (D9) |
| Jaimini | Chara Karakas, Karakamsha, Arudha Lagna, Upapada Lagna, Ishta Devata | Ishta Devata |
| Tajika (annual) | Varshphal solar return with Mudda Vimshottari dasha | Varshphal |
| Panchang and Moon | Rahu Kaal, Disha Shool, Rashi and Birth Star lookups | Rahu Kaal |
A deliberate division of labour: this page owns the engine story, and each tool page owns its own system's method. How the navamsa mapping rule works, how Mangal Dosha houses are counted, how a dasha balance is derived - those explanations live with their calculators, where they can be read next to a live chart.
The astronomy under the hood
Positions come from astronomia, an MIT-licensed JavaScript implementation of Jean Meeus's Astronomical Algorithms, driving the VSOP87 planetary theory. The Sun's apparent longitude is derived from Earth's VSOP87 position; Mars, Mercury, Jupiter, Venus, and Saturn run the full Meeus chapter 33 pipeline - heliocentric VSOP87 positions, one light-time iteration, aberration, FK5 frame correction, and nutation. The Moon uses the truncated ELP-2000/82 lunar series as given by Meeus, plus nutation. Retrograde flags come from a centred difference on apparent longitude, which times stations to within about a minute for Mercury and Venus and within five minutes for Jupiter and Saturn against JPL Horizons reference times.
On top of that tropical base, the Vedic conventions are explicit choices, matching common Indian Panchang practice:
- Lahiri (Chitrapaksha) ayanamsa - implemented as a linear model anchored at 22.460 degrees on 1 January 1900 and advancing at 50.2879 arcseconds per year, the convention fixed by the Calendar Reform Committee (1956) and carried by the Rashtriya Panchang. At present-day dates it sits typically under 0.01 degrees from Swiss Ephemeris Lahiri - about 36 arcseconds, far inside any sign or nakshatra boundary that matters.
- Mean nodes - Rahu is the Moon's mean ascending node, Ketu exactly opposite. The mean node is the steady, classical convention; a true-node setting can differ from it by anything from arcminutes up to nearly 2 degrees, which is one of the standard reasons two calculators disagree.
- Whole-sign houses - house 1 is the Lagna's whole sign, the classical default of Vedic practice. The Lagna itself is computed from apparent sidereal time, the true obliquity, and the birth latitude.
- Real timezone history - the birth moment is converted through the IANA timezone database, so historical offsets and DST are honoured, and dasha dates are shown on the birthplace calendar. A birth at 04:10 IST is about 22:40 UT the previous evening; the dates you see match the calendar the birth was recorded on, not the UTC calendar.
What browser-side actually means
When you generate a chart on DesiUtils, the ephemeris runs in the page, on your device. Your date, time, and place of birth are not uploaded, not stored on a server, and not attached to any account - there is no signup. Even the optional paid-report checkout sends only a product identifier; birth details never leave the page.
Browser-side does not mean less accurate. A planetary longitude is a deterministic calculation: the same theory with the same constants produces the same result on a phone as on a server farm. Accuracy is a property of the algorithms - which series, which corrections, which ayanamsa model - not of where the arithmetic runs. The server-side calculators you may be comparing against run the same class of computation; moving it to your device changes who sees your birth data, not the answer.
How we check our math
Assertions about accuracy are cheap; the checking program is the substance. Ours has four legs, and the numbers below are quoted directly from our July 2026 verification records.
1. Chart parity against Jagannatha Hora. JHora (P.V.R. Narasimha Rao's software) is the reference implementation of the Vedic software world, and we compare against it under pinned, on-screen settings - Traditional Lahiri ayanamsa with zero correction, mean nodes - so the comparison is apples to apples. On a pinned reference chart, all ten points (the nine grahas and the Lagna) matched JHora's displayed longitudes to within one arcminute, and a later sitting on the same chart matched every displayed row exactly at display precision. Divisional placements were then checked sign by sign: the D3, D7, D9, D12, and D30 each matched 10 of 10 bodies. On the Jaimini side, the Arudha Lagna, A5, and Upapada Lagna all matched - including a case where the classical 1st/7th exception redirects the pada, exactly the branch a wrong implementation gets wrong.
2. Annual-chart parity. The Tajika Varshphal was checked against an independent commercial calculator (named in Sources): the solar-return moment agreed within 3.27 minutes, the Mudda Vimshottari dasha came out as the identical nine-row sequence, and every period start landed within two days.
3. Panchang cross-checks against Drik Panchang. For the 2026 shraddha-fortnight calendar our engine independently reproduced all 18 of Drik Panchang's date assignments, including a double-tithi date most forward-counting gets wrong, and the tithi boundaries we checked landed within one minute of Drik's clock times. Drik Panchang remains the minute-precision authority for observance timing; the engine's job is to verify the assignments independently, and it does.
| What is checked | Reference | Result |
|---|---|---|
| Longitudes of nine grahas + Lagna, pinned chart | Jagannatha Hora 8.0 (Traditional Lahiri, mean nodes) | All ten within one arcminute; later sitting exact at display precision |
| D3, D7, D9, D12, D30 sign placements | Jagannatha Hora 8.0 | 10 of 10 bodies in each of the five charts |
| Arudha Lagna, A5, Upapada Lagna | Jagannatha Hora 8.0 (strict-classical settings) | All three match, including a fired 1st/7th exception |
| Varshphal solar return + Mudda dasha | Independent commercial calculator (see Sources) | Return moment within 3.27 minutes; identical 9-row sequence; starts within 2 days |
| 2026 shraddha calendar (16 tithi + 2 nakshatra rows) | Drik Panchang | All 18 date assignments reproduced; checked boundaries within 1 minute |
| Retrograde station times | JPL Horizons (DE441) | Within about a minute (Mercury, Venus) and five minutes (Jupiter, Saturn); 1,205 planet-day sweep, zero flag disagreements |
4. An automated test suite. As of August 2026 the codebase runs 261 test suites - more than 6,800 individual tests - over the engine and every tool's rules. The parity charts above are pinned inside that suite as regression fixtures - a future change that moved any of those placements or station times would fail the automated test run.
One more habit belongs in this list: disclosing the boundary cases instead of hiding them. The engine documents a 0.3-degree envelope, and at the Moon's mean rate 0.3 degrees is about 33 minutes of clock time - so a position that close to a nakshatra, pada, or navamsa cutoff is genuinely provisional, and we say so where it matters: the flip risk is documented beside the accuracy claims on this page and the tool pages, birth-time sensitivity is called out for dasha and navamsa work, and the standing advice is to cross-check a boundary-adjacent placement against a professional ephemeris rather than treat a coin-flip as a certainty.
Precision, honestly
The working envelope: typical precision within 0.3 degrees of Swiss Ephemeris Lahiri for birth dates from 1900 onwards. The remaining gap has known sources - a truncated nutation series, the linear Lahiri model rather than a Swiss-Ephemeris-matched polynomial, and simplified precession handling.
What 0.3 degrees means in practice: a sign spans 30 degrees, a nakshatra 13 deg 20 min, a pada 3 deg 20 min. For the vast majority of charts, sign, nakshatra, and whole-sign house assignments are therefore stable, and displayed degrees agree with observatory-grade tools to within a fraction. The exception is the boundary case from the TL;DR: within roughly 0.3 degrees of a cutoff, a small difference between ayanamsa or precession implementations can flip a placement to the neighbouring bucket. Dasha lord derivation is the most sensitive spot, because the starting mahadasha changes with the Moon's nakshatra; navamsa and pada boundaries are the narrowest. For a boundary-adjacent placement, cross-check with a professional ephemeris before leaning on it. We do not claim Swiss-Ephemeris-grade or observatory-grade precision - we claim a stated envelope, checked the ways described above.
✨Why calculators disagree
Two honest calculators can show you different charts from the same birth details, and the reasons are almost always conventions rather than bugs:
- Ayanamsa family. Lahiri, Raman, Yukteshwar, and Fagan-Bradley zodiacs differ enough to shift every longitude wholesale, and even within "Lahiri" there are variants - a linear model, polynomial fits, True Chitrapaksha - that differ by arcseconds to arcminutes. A chart is only comparable to another chart under the same ayanamsa.
- House system. Whole-sign houses and quadrant systems such as Placidus or Sripati can put the same planet in different houses, especially far from the equator.
- Node model. Mean nodes move smoothly; true nodes oscillate around them and can differ by anything from arcminutes up to nearly 2 degrees - enough to move Rahu and Ketu a sign when they sit near a boundary.
- Precession and nutation detail. How much of the full series an engine carries moves longitudes by fractions of a degree - invisible mid-sign, decisive at a boundary.
None of these switches makes a calculator wrong; they make it a different convention. What a trustworthy tool owes you is a statement of which conventions it uses - ours are Lahiri, whole-sign, mean nodes, stated above and on every relevant tool page. For the tool-level version of this answer, see the FAQ on the Kundli Generator page.
What we deliberately do not do
No paid remedies, no fear-selling, no personalized prescriptions. The tools classify and explain, and they do not dress common configurations up as rare afflictions. Where a page notes traditional observances, they are described as cultural practice - never sold, never personalized, and never framed as the escape from a doom the page just invented. Where a dosha is checked, the tool page also shows how often that configuration occurs across birth moments, so a result that applies to a large share of charts reads as exactly that.
No advisory. Everything here is descriptive - what the configuration is, which classical rule detects it, how common it is - and never a life instruction. The readings are offered as cultural and informational interest, not as a substitute for professional advice of any kind.
No black box. The conventions are disclosed, the boundary cases are stated instead of smoothed over, and the same input always produces the same output. Where our deliberate choices can diverge from another school's - node lordship in Jaimini work, for instance - the tool page discloses the fork rather than silently picking a side.
Bottom line
One engine behind every chart, stated conventions - Meeus/VSOP87 positions, Lahiri ayanamsa, whole-sign houses, mean nodes, computed in your browser - a stated precision envelope of 0.3 degrees with its boundary caveat mirrored wherever it bites, and a checking program that compares charts against Jagannatha Hora, Drik Panchang, and JPL Horizons and locks the chart parity and station times into regression tests. That is the whole story, and every claim in it is one we can reproduce on demand. Start with the Kundli Generator, or browse all 34 tools on the astrology hub; for how any one system is calculated, its own tool page is the place that answers.
Sources
- Jean Meeus, Astronomical Algorithms, 2nd edition (1998), Willmann-Bell - the computational basis for solar, lunar, planetary, nodal, and ascendant positions.
- P. Bretagnon and G. Francou, VSOP87 planetary theory, Astronomy and Astrophysics (1988) - the planetary position series.
- astronomia v4.2.0 - the MIT-licensed JavaScript implementation of Meeus's algorithms the engine is built on.
- Calendar Reform Committee, Government of India (1956), as carried by the Rashtriya Panchang - the Lahiri (Chitrapaksha) ayanamsa convention.
- Jagannatha Hora 8.0 (P.V.R. Narasimha Rao) - chart-parity reference for longitudes, divisional charts, and Jaimini padas, July 2026 sittings.
- Drik Panchang - authority and cross-check reference for tithi and panchang timing, July 2026.
- AstroSage annual horoscope (Varshphal) report, July 2026 - parity comparator for the Tajika solar return and Mudda dasha check.
- JPL Horizons ephemeris system (DE441), NASA Jet Propulsion Laboratory - reference for retrograde station timing, July 2026.