How we calculate

The chart is fact, so the maths has to be checked. Here is exactly how, with the numbers — and the places where we could not check.

Every calculation on Sunyra runs in your browser, in the same engine that will later produce our printed reports. Your birth details are not sent to us; only the place name you look up goes to OpenStreetMap to find its coordinates. This page sets out what the engine does, what it is tested against, and what we have not been able to verify.

Planet positions, tested against NASA

Positions of the Sun, Moon and planets come from astronomy-engine (MIT licence; VSOP87 planetary theory, a lunar theory after Brown, IAU 2006 precession and IAU 2000B nutation). Chiron comes from a table we generated from NASA's JPL Horizons system. We do not use the Swiss Ephemeris.

To check the engine we asked NASA JPL Horizons — the reference ephemeris used for spacecraft navigation — for the apparent geocentric position of every body at 2,000 random moments between 1900 and 2100, and compare against it on every change to the code. The test fails if any body is off by more than one arc-minute (1′, a sixtieth of a degree) at any of those moments.

Body Largest error Average error
Sun 2.3″ 0.8″
Moon 3.9″ 1.0″
Mercury 11.1″ 2.6″
Venus 19.7″ 2.3″
Mars 16.9″ 2.3″
Jupiter 14.1″ 4.5″
Saturn 22.5″ 9.8″
Uranus 19.7″ 6.9″
Neptune 20.6″ 10.9″
Pluto 8.2″ 3.0″
Chiron 0.6″ 0.1″
True lunar node 23.7″ 5.6″

″ is an arc-second, 1/3600 of a degree. The largest error anywhere is under 24″ — about the width of a coin seen from 200 metres. A nakshatra pada is 12,000″ wide.

Time matters as much as position. We convert your local time with the international time-zone database (including India's +06:30 war time in 1942–45 and daylight saving abroad), use the official leap-second record for Terrestrial Time, and the Earth-rotation measurements of the IERS for sidereal time.

Ayanamsa

The sidereal zodiac is the tropical one shifted by the ayanāṃśa. The default is Lahiri (Chitrapaksha), India's national standard, defined by the Calendar Reform Committee (1955) and the Indian Astronomical Ephemeris as 23°15′00.658″ on 21 March 1956. Our values agree with the ayanamsas printed in the Indian Astronomical Ephemeris for 1989, 1990, 2000, 2019 and 2020 to within 0.11″. KP (Krishnamurti), Raman and True Chitra (Spica fixed at 0° Libra) are also offered.

Ascendant and houses

The ascendant and midheaven come from local sidereal time, which we checked against NASA JPL Horizons at 60 random places and dates (agreement within 1.2″ for past dates), and the formulas against an independent numerical construction (within 0.1″). Houses: whole sign (the Parashari default), Placidus, equal, and KP (Placidus cusps with the KP ayanamsa).

Vedic calculations

  • Signs, nakshatras, padas and lords, dignities (exaltation, moolatrikona, own sign, and natural, temporary and compound friendship) — after Bṛhat Parāśara Horā Śāstra (BPHS), chapters 3–4.
  • Divisional charts D1 to D60 by the Parashari rules of BPHS chapter 6.
  • Vimshottari dasha (mahadasha, antardasha, pratyantardasha) from the Moon's nakshatra at birth, BPHS chapter 46, with years of 365.25 days; Yogini dasha; Chara karakas in the 7- and 8-karaka schemes.

Panchang

Tithi, nakshatra, yoga and karana with their exact end times; sunrise and sunset; Rahu kaal, Gulika, Yamaganda, Abhijit, Brahma muhurta, Amrit kaal, choghadiya and hora. We compared eight dates in New Delhi, Mumbai, Chennai, Kolkata, Bengaluru, London and New York, covering every weekday, with Drik Panchang: every timing they print matched ours within two minutes (they round to the minute). One difference is deliberate: we give moonrise by the almanac definition (the Moon's upper edge, with refraction), which is a few minutes earlier than the centre-of-the-Moon time some panchangs print.

Matching

Ashtakoota (aṣṭakūṭa, 36 gunas) with every koota's points and the reason for them, the Manglik check from the Lagna, Moon and Venus, and the Navamsa and seventh-house factors of both charts side by side.

What we have not verified

We would rather tell you than let you assume.

  • Published birth charts. We could not test the ascendant against a published database of birth charts; it is verified through NASA's sidereal time and an independent construction instead.
  • KP, Raman and True Chitra ayanamsas follow their standard numerical definitions, but we have not compared them with Krishnamurti's or Raman's own printed tables.
  • Placidus cusps are checked against the definition, not against a printed table of houses.
  • Dates before 1900 or after 2100 are outside the tested range. Chiron is shown only from 1900 to 2100.
  • Future dates. Small irregularities in the Earth's rotation cannot be predicted; after 2026 we hold the last measured values, as NASA does.
  • Time zones from coordinates use a compact map of zone boundaries; close to a border it can pick a neighbouring zone. The zone and offset we used are always shown, and you can enter another one. Old Indian records in Bombay time (+04:51) or Calcutta time (+05:53) are not in the international database — enter the offset yourself.
  • Matching tables. The points for Vashya and Gana differ between almanacs. Ours follow one published convention, named in every result. The exceptions to Manglik dosha vary between authors; we list them and never silently cancel the dosha.
  • Muhurta windows — Rahu kaal, choghadiya, Amrit kaal — follow the conventions printed in Indian panchangs, which we checked against Drik Panchang; we could not trace every one to a numbered classical verse.
  • Not yet built: Ashtakavarga, Shadbala, Chara dasha and Western aspects.

Sources and licences

  • NASA/JPL Horizons, Solar System Dynamics Group, Jet Propulsion Laboratory.
  • IERS Earth Orientation Centre (Paris Observatory): leap seconds and Earth-rotation series.
  • Indian Astronomical Ephemeris (Positional Astronomy Centre, Kolkata), as analysed in the Swiss Ephemeris documentation (Astrodienst).
  • Brihat Parashara Hora Shastra, tr. R. Santhanam; Surya Siddhanta; Muhurta Chintamani.
  • astronomy-engine © Don Cross, MIT licence. Time-zone boundaries: @photostructure/tz-lookup (CC0), built from timezone-boundary-builder data © OpenStreetMap contributors (ODbL). Places © OpenStreetMap contributors.

Last reviewed