How it is calculated
Astrology is only as interesting as its arithmetic is honest. This is what runs underneath.
Positions
Planets are apparent geocentric ecliptic positions of date, computed with the Astronomy Engine implementation of the VSOP87 and ELP2000 theories, including light-time and aberration.
Retrograde motion is not looked up in a table: the longitude is sampled either side of the moment and the instantaneous rate of change taken, so a station is caught on the day it happens.
The lunar nodes and Black Moon Lilith are mean values, which is the usual convention. Mean nodes always move backwards, so Astro Nox never describes them as 'retrograde' in a reading.
Chiron has no closed-form theory worth trusting over centuries, since Saturn and Uranus perturb it heavily. Astro Nox bundles a table sampled from JPL Horizons every eight days from 1880 to 2120 and interpolates it.
Checked against JPL Horizons
Every body was compared against JPL Horizons across dates from 1955 to 2031. The largest disagreement found was Neptune, at about eighteen arcseconds — five thousandths of a degree, far below the width of any aspect orb or the resolution of a chart wheel.
Houses and angles
The ascendant is derived from local sidereal time, the true obliquity of date and the geographic latitude; the midheaven from the right ascension of the meridian. Placidus cusps are trisected semiarcs.
Placidus fails mathematically inside the polar circles, where a degree of the ecliptic may never rise. When that happens Astro Nox falls back to Porphyry and says so rather than printing a nonsense cusp.
Whole sign, equal and Porphyry houses are all available, because the tradition genuinely disagrees and the choice changes the reading.
Aspects
Conjunction, opposition, trine, square and sextile are calculated with the usual orbs, widened for the Sun and Moon and narrowed for derived points. The quincunx, sesquiquadrate, semisquare, semisextile and quintile are calculated too, with tighter orbs.
An aspect is marked applying or separating by comparing the two bodies' longitude speeds, so a reading can say whether something is still building or already passing.
Interpretation
Readings are generated from rules, not from a language model, so the same chart always produces the same words and every sentence can be traced to a placement, an aspect or a transit.
Wording is chosen from sets of alternatives keyed on the placement itself, which keeps two different squares from reading identically without making the text random.
A forecast weights each current transit by the size of the moving body, the tightness of the orb, whether it is applying, and how much the natal point and house it lands on have to do with the topic being read.
Birth time and place
Birth data is entered as local clock time in a named place. The IANA zone attached to that place resolves the historical offset for that exact date, including wartime and daylight saving oddities, before anything is calculated.
If the birth time is unknown, noon is used and the chart is labelled as such: the planets stay close to right, but the ascendant, the houses and the Moon's degree can move a long way.