The method

Nothing here is a lookup table.

Most free chart sites get one thing wrong — historical timezones — and every house in the chart moves. Here is exactly how ours is built, and how we check it.

  1. 01

    Resolve the birth moment

    We turn your local clock time into one exact UTC instant. For that we use the timezone rules in force that year, not today’s. India had no daylight saving. Much of the US changed its rules in 2007. Britain ran British Standard Time from 1968 to 1971. We apply each one as it actually was.

    Why it matters. A one-hour error moves the Ascendant by roughly 15°, usually a whole sign. Every house placement shifts with it. This is the single most common source of wrong charts elsewhere.

  2. 02

    Compute the positions

    We use VSOP87 for the planets and Brown’s lunar theory for the Moon. That gives each body’s position as seen from Earth, against the true ecliptic and equinox of the date. It gives the daily motion too.

    Why it matters. Accurate to about one arcminute — 1/60th of a degree. A zodiac sign is 30° wide and an aspect orb is 6–8°, so this is roughly 400× finer than astrology can read.

  3. 03

    Derive the chart

    The Ascendant and Midheaven come from local sidereal time, latitude and the obliquity of the ecliptic. House cusps follow from the system you pick. Aspects are the angular separations between every pair of bodies.

    Why it matters. Sidereal charts subtract the Lahiri ayanamsa, currently about 24°. That is why your Vedic Sun often sits one sign back from the Western one. Same sky, different zero point.

01 · Verification

What we verify

Astrology output is not falsifiable, so the astronomy underneath it has to be. These are real assertions in the test suite, not claims.

The Ascendant is verified, not assumed

Our tests take the Ascendant our formula produces and push it back through a separate conversion. It has to land on the horizon — altitude zero. We run this at five latitudes, including the equator and the southern hemisphere. It runs across the whole clock too. A separate check confirms we picked the rising point, not the setting one.

The Sun is checked against the equinox

At the instant the library independently calculates the March equinox, our pipeline must report the Sun at 0°00′ Aries. That validates the entire coordinate chain in one assertion.

Moon phase against known dates

We check phase calculations against the recorded new and full moons of January 2024. Illumination has to fall below 2% at the new moon and above 98% at the full.

Planet positions against NASA JPL Horizons

JPL Horizons is NASA's own service for where the planets are. We compare our positions with it on fixed dates. The Sun agrees to 0.004 arcseconds, Saturn to 0.017, and the Moon to under 2.5. An arcsecond is one 3,600th of a degree.

Open JPL Horizons

02 · Your data

What we store

Nothing. We compute your chart on each request, and the result lives entirely in the URL. So you can bookmark it, or send it to someone, and it rebuilds exactly the same. No account, no database record, no email — for any of the free tools.

03 · Our limits

Where we stop

Placidus is built in. The algorithm has no closed form. Each cusp depends on its own semi-arc, so we solve it by iteration. We check it against a separate brute-force solve, at ten latitudes north and south. The two agree to within 0.01°. Inside the polar circles Placidus is genuinely undefined, because part of the ecliptic never rises there. We say so rather than return a number.

If you have no birth time, we leave out the Ascendant and all house placements. We do not fall back to noon. A chart built that way looks complete and is not.

See it for yourself

Every chart page links to its own JSON, with the exact UTC instant and offset we resolved.

Cast a chart