Astro Chart
A birth chart computed the way an astronomer would compute it, then explained in plain English. No guessed positions, ever.
Whatever you think of astrology, a birth chart is a precise astronomical object. It is the position of the Sun, the Moon and the planets as seen from one exact place on Earth at one exact moment. Getting it right is a hard engineering problem, and a surprising number of tools get it quietly wrong.
The usual failure is not the astronomy. It is the clock. A birth time is written in local time, and local time is a political invention. Countries change time zones, adopt and abandon daylight saving, move the date of the switch. A birth at 00:30 in Cairo in July 1987 only means something once you know exactly what Egypt’s clocks were doing that night. Get the offset wrong by an hour and the rising sign, the houses and the angles all move.
Lately there is a second failure: tools that ask a language model to “calculate” a chart. Language models do not calculate planetary positions. They produce plausible-sounding ones.
Astro Chart was built to do the opposite of both.
What it calculates
You enter a birth date, a local birth time and a birthplace. The calculator returns the complete chart, with roughly the scope of Astro-Seek’s birth-chart page:
- Points. Sun, Moon, Mercury through Pluto, Chiron, the North and South Nodes (true or mean), Black Moon Lilith (mean, osculating or interpolated), the Ascendant, Midheaven, Descendant and IC, the Vertex, the Part of Fortune, and all twelve house cusps.
- For each point. Sign, degree, minute and second, house, speed, declination, and whether it is direct, retrograde or stationary, with the thresholds for “stationary” defined explicitly instead of left vague.
- Aspects. Conjunction, opposition, square, trine and sextile, each with its actual orb, configurable orb limits, and whether it is applying or separating.
- Zodiac and houses. Tropical by default, or sidereal with a named ayanamsa. Placidus by default, plus Whole Sign, Equal, Koch, Porphyry, Regiomontanus and Campanus.
The output is a complete structured response plus copyable plain-text summaries of the placements, houses and aspects.
The rule: no estimated positions
Every position comes from the Swiss Ephemeris, the astronomical library used by professional astrology software, with its data files covering the years 1200 to 2999. The engine refuses to fall back to a lower-precision approximation if those files are missing; it reports an error instead.
Local birth times are converted to universal time using the IANA time zone database, the same historical record of every time zone change that operating systems use. Birthplaces are resolved with GeoNames, from a bundled index of nearly 70,000 places, each linked to its time zone.
No language model touches the calculation path. Not one degree.
Honest about the hard cases
Most calculators hide their edge cases. This one names them:
- Repeated local times. When clocks fall back, 1:30 happens twice. You choose which one, or the calculator asks.
- Skipped local times. When clocks spring forward, 2:30 never happens. You choose the offset before or after the change.
- Old dates. Births before standard time can use local mean time, and the Julian calendar is available for old-style dates.
- Polar latitudes. Some house systems mathematically break near the poles. The calculator reports it, or falls back to a system you chose in advance.
- Unknown birth time. Houses and angles are omitted rather than invented, and any placement or aspect that could change during the day is flagged as uncertain.
- Manual overrides. You can enter coordinates, a time zone or a fixed UTC offset directly, bypassing every automatic rule.
Verified, not assumed
The reference test case is a real birth: 7 July 1987, 00:30, Cairo, at 30°04′N, 31°15′E, including a check of Egypt’s historical UTC offset that night. The test suite compares results against the Swiss Ephemeris reference tool and cross-checks positions against NASA JPL’s DE421 ephemeris, alongside time zone and edge-case tests. The methods, conventions and verification evidence are all documented in the open repository.
Then, plain English
A chart full of degrees means little to most people. So Astro Chart also writes a reading, and finds compatible matches, under one strict condition: the words must agree with the math.
Readings. The server recalculates the chart, extracts the facts that matter, the Big Three, element balance, the chart ruler, clusters and the tightest aspects, and only then asks an AI writer to describe those facts in plain English.
The claim checker. Every statement in the AI text such as “Venus in Leo”, “Moon in the seventh house” or a degree figure is checked against the calculation. If the writer gets something wrong it gets one chance to correct it; if it still disagrees, its text is thrown away and a deterministic template reading is shown instead. The response always says which source you are reading. Without an AI key, everything still works on the template.
Ideal match. A synastry scan runs across every possible partner birth date in a window of years, scoring the classic contacts, Sun and Moon, Venus and Mars, Moon and Moon, and returns the best birth-date windows with their Sun, Venus and Mars signs, the reasons and the cautions, plus a ranking of all twelve signs. Because a partner’s birth time is unknown, their Moon is flagged as uncertain.
Readings and matches are offered for entertainment. The positions are not.
How it is built
A Python FastAPI service does all the work and serves a lightweight vanilla JavaScript interface, deployed on Vercel. The Swiss Ephemeris keeps its settings in thread-local state, so the engine sets the ephemeris path per worker and serialises calls behind a lock; one person’s sidereal setting can never leak into another person’s chart. There is an open HTTP API with interactive documentation, and the source code is published under the AGPL-3.0 licence, as the Swiss Ephemeris licence requires.
Where it stands
Astro Chart is live and free at astro-chart-mu.vercel.app. It started from a simple brief: build a calculator as complete as the best in the field, prove it against trusted references, and never let a machine invent a planet’s position.