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

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.

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

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.