Methods
This page exists so that any figure on this site can be checked, and so that its limits are stated by the site. It is the longest page here.
Several of the claims below can be watched happening rather than taken on trust: thechart gallery draws four dated moments chosen to demonstrate them, including a chart the most widely used house system cannot produce.
Ephemeris
Positions are computed with astronomy-engine, which implements a truncated VSOP87 planetary theory and the Brown/ILE lunar theory in source, with no external data files. Its stated accuracy is within about one arcminute over the range this site covers.
That is far more precision than the input justifies. A zodiac sign spans 1,800 arcminutes, and one hour of birth-time uncertainty moves the Ascendant by roughly 15°. Birth-time uncertainty exceeds ephemeris error by three to four orders of magnitude, which is why the tool asks how precisely the time is known and reports an error bar rather than a false decimal. Ptolemy made the same complaint about water clocks; see the angles.
Frames and conventions
- Longitudes are given in the true ecliptic of date, which is what the tropical zodiac requires.
- Obliquity is computed for the date, including nutation, rather than held at its J2000 value.
- Constellation lookups are performed in J2000 equatorial coordinates, which is the frame the IAU boundaries are defined against after precession to B1875.
- Constellation attribution uses each body's actual ecliptic latitude. This matters: the Moon reaches ±5.3° of latitude and therefore passes in front of eighteen constellations, including Orion, Cetus, and Auriga.
- Houses are whole sign by default. It is the division the Hellenistic and medieval sources quoted here assumed, and unlike the quadrant systems it remains defined at every latitude.
- Sidereal longitudes require an ayanamsha, the offset between the tropical and sidereal frames. No observation settles which is correct: each convention pins a chosen star to a chosen longitude, so it is a stipulation. Five are implemented (Fagan/Bradley, Lahiri, the Indian Calendar Reform Committee's round value, Krishnamurti, and a J2000 reference), the choice is the reader's, and the one in force is always named on screen alongside what it is anchored on.
- A sidereal longitude on this site is a coordinate. Most of these conventions are used in jyotiṣa, the Indian astrological tradition, which this site does not attempt to teach and whose technique it does not implement.
Why the three columns of the chart disagree, and why none of them is the error, is the subject ofthree reference frames.
Houses, and how they fail
Seven divisions are implemented: whole sign, equal, Porphyry, Alcabitius, Campanus, Regiomontanus and Placidus. They disagree with one another because each divides a different thing, which is a live dispute inside the tradition rather than a defect in any of them. What each one divides is set out at house division.
The quadrant systems have latitudes at which they have no solution. Every one of them carries an ordering check, and a system that cannot produce cusps in order at a given latitudesays so and names itself rather than falling back silently to another system. A reader is never shown one system's cusps under another system's name.
That check exists because the failure list this site started from turned out to be incomplete. Published descriptions name Placidus and Regiomontanus as the high-latitude problem cases; implementing the rest showed that Porphyry, Alcabitius and Campanus can produce out-of-order cusps too, because at extreme latitude the relationship between the Ascendant and the Midheaven itself distorts, and an arc that should measure about 90° can measure 310°.
Time
A birth time is a wall-clock reading in the timezone of the birthplace. It is converted to an absolute instant using that zone's historical rules. The visitor's own timezone is never consulted; doing so is a common and serious error, because it changes the Ascendant's sign about half the time for a one-hour discrepancy.
Two cases are ambiguous and the tool refuses to guess. When clocks go back, a stated time occurs twice and both readings are real, so the choice is offered. When clocks go forward, a stated time does not exist at all, and this is reported rather than silently shifted.
How the numbers were checked
Agreement with itself is not evidence. Wherever possible a computation here is checked against something outside it: an independent implementation, a published value, or a fact about the sky that has to hold regardless of the code.
- Placidus cusps were validated to under two arcseconds against an external reference chart, as well as against this project's own numbers.
- The heliocentric frame is checked by a fact that cannot be arranged: Earth's ecliptic latitude must be zero, because Earth defines the plane. It comes out at 1.9 × 10⁻⁸ astronomical units. That is how the correct rotation was confirmed: a rotation applied the wrong way round draws a solar system tilted by the obliquity, which looks entirely plausible.
- Frame conversions in the three-dimensional view are checked against definitions rather than against each other: the north ecliptic pole has to land on the ecliptic pole, the June solstice point has to have zero ecliptic latitude, and a fixed star's longitude has to advance with precession rather than retreat. A frame conversion applied backwards is consistent with itself, so nothing looks wrong until it is checked against a definition.
- Quoted constellation widths in the prose are parsed out of the entries and checked against the computed arcs, because a number retyped from a generated table drifts silently.
- The orbital figures quoted in the planet entries are handled the same way and for the same reason. A sidereal period, a synodic period or a greatest elongation stated in prose is parsed out of the entry and checked against what this site's own ephemeris computes. Synodic periods are compared against the mean derived from the two sidereal periods rather than against one measured interval, because both orbits are eccentric and successive intervals scatter by days on either side.
- The historical atlas overlay reports its own fit error, per plate, pulled from the manifest rather than written into the text.
Those last two carry a decision, and the alternative is the more conventional one. Figures of that kind are usually supported by citing a reference work, and this site does not cite one for them. Nobody here has opened a copy of Meeus at the page a synodic period is printed on, and attaching a book to a number that came from somewhere else is exactly the failure the entry on William Lilly is about: a label that outlives the thing it described. These numbers are not quoted from anyone. They are computed here, and what supports them is that the prose and the computation are checked against each other on every build.
The sky as it is drawn
The three-dimensional view is physically modelled, and each part of the model has a citation. Star brightness follows Pogson's ratio, the definition under which five magnitudes is exactly a factor of a hundred in flux. Atmospheric extinction dims and reddens each star by the airmass at its own altitude, using the Kasten and Young formulation because the naive secant diverges at the horizon. Low stars redden as well as dim because scattering runs as the inverse fourth power of wavelength. The sky itself is integrated through a spherical shell of air, Rayleigh, Mie and ozone terms at the standard coefficients with the Sun and the Moon as its lights, so a noon birth renders as daylight with the stars invisible, and twilight, the Earth's shadow and the blue of a moonlit night come out of the geometry rather than a palette. Every one of those has a source, listed at heliacal risings.
What is not modelled is stated too. Light is scattered once along each line of sight, with one term standing in for everything scattered more than once. The hills and trees on the horizon are invented from the place's coordinates and stand for a horizon, since a birthplace is named here only by latitude and longitude. An eclipse's shadow on the ground is one soft patch rather than the umbra's track. Body sizes are schematic; at true scale every planet would be invisible. The star sphere sits at an arbitrary radius, because the catalogue carries no distances. The chart ring's radius means nothing at all, because a zodiac wheel is a set of directions and has no size.
One consequence looks like a fault. Extinction is computed from each star's altitude at the birthplace, so stars below that horizon are extinguished to effectively nothing. Viewing the dome from outside means looking mostly at the half of the sky beneath the observer's feet, which is dark by construction, and the populated half appears on standing at the birthplace. The model describes what a person standing there could see, and it is not adjusted for a camera that has left the ground.
Known limits
- Pre-1970 timezone data. The browser's timezone database merges many pre-1970 zone histories, so offsets for early births in some zones may be inherited from a neighbouring zone. Where a birth predates standardised time locally, a local-mean-time offset derived from longitude is the right reading, and a fixed offset can be supplied directly.
- Extreme latitudes. Above about 66.5° the ecliptic can lie along the horizon and the Ascendant becomes unstable, moving as much as 173° in a minute. At the poles it is undefined. The tool reports these states instead of returning a plausible-looking number. There is a third failure here that belongs to arithmetic rather than to the sky: the closed-form expression contains a tangent of the latitude, and in double precision the tangent of 90° is a large finite number rather than an infinity, so an implementation that does not test for the case returns a confident wrong answer at the pole for every time of day.
- Dates before 1583. Dates in that period may be recorded in the Julian calendar, and the tool warns rather than silently assuming Gregorian.
- No Chiron or asteroids. The ephemeris in use does not provide them.
- Place search. The place list is served from this site, never from a third-party geocoder, so a birthplace is not sent to anyone. It is built from GeoNames and covers settlements of roughly 15,000 people and above, which leaves out many rural birthplaces. Coordinates can always be typed in directly instead, and the timezone a picked place supplies stays editable, because border and coastal cases exist and the person knows where they were born.
- Cross-quarter dating. There is no single correct date for a cross-quarter day. The calendar shows the traditional calendar date, the astronomical midpoint by solar longitude, and the temporal midpoint, which can differ by several days. None is presented as the answer.
- Heliacal risings. The ephemeris supplies no visibility criterion, so first and last visibility of a star is computed under a stated arcus visionis model. That model, not the ephemeris, dominates the uncertainty: a plausible change to the threshold moves the date of the Pleiades' first appearance by more than five days. Every such result says which model produced it.
- Orbs. The allowance within which an aspect still counts is a convention with no astronomical content. The policy in force is data rather than a buried constant, and no source here traces where the usual figures came from. See aspects.
Evidence and citation
Every entry carries at least two sources, and a citation that does not resolve to a real record fails the build rather than reaching a reader. Sources are tiered: entries may only cite sources whose details have been checked against a publisher record, a catalogue, or a scan. Where a work is known to exist but a specific detail could not be confirmed, that detail is named as unverified instead of being filled in, and the work cannot be cited for a claim until it is resolved.
Every source has its own page, which states how far its record has been verified, what remains unverified when anything does, which entries lean on it, and what each of them cites it for. That last list is the cheapest way to catch a source being used well outside its own scope.
Entries about pagan tradition also carry an evidence grade, running from a contemporary insider document or dated object through near-contemporary outside description, post-conversion written sources, post-medieval folklore collection, and modern reconstruction.
How the site checks itself
The editorial rules are enforced by the build rather than by discipline. Second-person address in an entry, a citation to an unverified source, a dangling cross-reference, an entry with fewer than two sources, an orphan with nothing linking to it: each of these fails bun run build.
Beyond that there are several hundred unit tests and several hundred end-to-end tests, the latter covering every route enumerated from the built output rather than from a list, with an accessibility audit run over both colour schemes. Performance budgets are measured from the built site per route, and exceeding one fails the build: an encyclopedia entry ships no JavaScript at all, and the chart tool's heavier panels are fetched only if a reader opens them.
The guards that catch mistakes here share a shape. Assert that computed data reaches the page; derive a test's own input from the source of truth, because a hardcoded list drifts in the direction of testing less; and confirm each new guard fails when the thing it protects is broken, because a guard nobody has watched fail is a guard nobody knows is connected.
Privacy
Birth details are never transmitted. This is enforced in three independent ways: the site's content security policy permits connections only to its own origin, the code that handles birth data is barred by a lint rule from referencing the network at all, and the chart is computed in the browser with no server involved. There is no account system and no database.
A chart can be shared as a link, and the birth data travels in the URL fragment rather than the query string. A fragment is not sent in the request line, so it reaches no access log, no content delivery network and no referrer header. The consequence in the other direction is stated next to the button: a link of that kind is the birth data, so sending one sends the date, time and place.
What this site will not compute
It will not tell anyone about themselves. That is a structural property: no component anywhere generates a sentence about a reader, entries are written in the third person and the build fails on a second-person pronoun, and interpretive claims are confined to blocks that must attribute to a named source and period. "Valens held X" is a historical statement with a truth value. "You are X" is not, and has nowhere to live in the schema.
The reasoning is set out at scope, and the short version is that the tradition contradicts itself at the level of the specific attributions any reading would have to use, so there is no single thing a chart says; and that people arrive at astrology disproportionately during rupture, which makes a confident reading most persuasive to the reader least able to discount it.