The sky ledger
Where the Sun, the Moon and the planets are on every day the site names, to the minute, how each figure is made, and what it is held to.
Each day has a page of its own at /sky/<date>/, for every Eastern date from 1 January 2026 to 31 December 2030.
What is computed
- The positions of the Sun, the Moon and the planets Mercury to Pluto, and their motion: how fast each moves along the ecliptic, and whether it is direct or retrograde.
- Their signs, and the Moon's phase and how much of it is lit.
- The day's events, each to the second: aspects, stations, ingresses, lunations, eclipses, and the equinoxes and solstices.
- When the Moon is void of course.
- For one reader, on their own device, the houses and the planetary hours.
- From the Moon and the day's events, the Verb; and from the whole sky, the Board.
By what
Astronomy Engine, by Don Cross, under the MIT licence, version 2.1.19 of astronomy-engine, which its author gives as accurate to about an arcminute for the Sun, the Moon and the planets. On top of it is the site's own layer: the Eastern day, the events found by bisection to the second, the void-of-course Moon, the Verb and the Board. It is one module, shared by the server, the browser and the tools, so the figure a page prints, the bloom a reader opens and the figure a tool checks are one figure.
Checked against what
Every Eastern day from 1 January 2026 to 31 December 2028 is computed ahead into an almanac and checked against Skyfield 1.55 with JPL's DE440s ephemeris, run offline through tools/oracle.py; against NASA's eclipse catalogue; and against a table of known events. Every ingress and station of Jupiter, Saturn, Uranus, Neptune and Pluto, and every aspect between two of them, is the oracle's own instant. Every other instant is the engine's, held within these tolerances of the oracle's:
| What | Bodies | Within |
|---|---|---|
| Lunation | The Sun and the Moon | 4 minutes |
| Equinox or solstice | The Sun | 2 minutes |
| Ingress | The Sun | 2 minutes |
| Ingress | The Moon | 4 minutes |
| Ingress | Mercury | 40 minutes |
| Ingress | Venus | 40 minutes |
| Ingress | Mars | 2 hours |
| Station | Mercury | 30 minutes |
| Station | Venus | 45 minutes |
| Station | Mars | 3 hours |
| Aspect | Any two bodies | 0.03° of their relative motion, at least 4 minutes and at most 6 hours |
| Ingress, station or aspect | Jupiter, Saturn, Uranus, Neptune and Pluto | the oracle's own instant |
| Longitude at noon | The Sun | 0.01° |
| Longitude at noon | The Moon | 0.03° |
| Longitude at noon | Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto | 0.02° |
| Kind | Rows | Within |
|---|---|---|
| Equinox or solstice | 12 | 2 minutes |
| Eclipse | 14 | 2 minutes |
| Station | 11 | 36 hours |
| Aspect | 1 | 30 minutes |
The conventions
- A longitude is apparent and geocentric, on the ecliptic and the equinox of the instant: tropical.
- The degree is the floor: the Sun's 231.3298° at noon Eastern on Friday 13 November 2026 is 21° Scorpio.
- Houses are whole signs.
- A day is the civil day in US Eastern time, from local midnight up to the next, by the US rule in force since 2007: daylight time, UTC−4, from the second Sunday of March to the first Sunday of November, and standard time, UTC−5, the rest of the year.
- Positions are for noon Eastern; events are to the second, printed to the minute.
- The Moon is void of course from its last exact aspect, made in its current sign, to any other body, until it enters the next sign.
- A hybrid eclipse is not reported: the engine names none.
- An aspect is exact: one body meets, sextiles, squares, trines or opposes another at the instant of their conjunction, sextile, square, trine or opposition.
What the ledger does not claim
The sky is the frame, never the cause. The ledger records where the planets are and when they move. It does not say what follows from it, for anyone.
Where each year is pinned
The almanac's manifest, src/sky/almanac/manifest.json, is pinned at f7e95df9baca43a72d94b446cb0e288009882a6a9b9f7630f2a0e360d5930bf6, and pins each year by its digest. A day after 31 December 2028 is computed live, not yet pinned, and its page says so.
| Year | File | Digest |
|---|---|---|
| 2026 | src/sky/almanac/2026.json | e00a31f80224167b340314a700477d04c05a4691acdc27645b547100d1c8fd23 |
| 2027 | src/sky/almanac/2027.json | fa9a3cbf3bf76d2903bec7af02a28275fd0b34a237659f18babedca5273342d9 |
| 2028 | src/sky/almanac/2028.json | 0f42550af7b67ce00c8b248437a6bf9838c94b2810b35bf895ef5a52fb53e0a9 |
How to read the feed
The same facts leave as a feed, in JSON Feed 1.1 at /sky/feed.json and in RSS 2.0 at /sky/feed.xml, for today and the two days after, by the Eastern date.
- One item is one fact: a station, an ingress, an aspect, a lunation, an eclipse or a season, the day's positions at noon, the Moon's phase, each void-of-course interval and the Verb.
- Its text is one plain sentence ending with its Eastern date, at most 280 characters, and its title the first words of it, at most 60.
- Its address is the day's ledger page, with the fragment of the line that states it.
- It is dated from the start of the Eastern day before its own, so no item is dated more than a day ahead, and its date does not change between reads.
- Its id is the same on every read.
A sentence of the site's that states a sky fact is held to the ledger within these windows, in days either side of its date: a planet in a sign within 45, a station within 3, an ingress within 4, an aspect within 4, and a phase from 4 before to 1 after.