The accuracy programme

A wrong degree is the highest-severity bug there is.

Every technique in Jade is checked against an implementation that was written by someone else — because software that only agrees with itself proves nothing. Here is what is verified, what is not, and where the check found a mistake.

Verified, and against what

Positions and angles

vs Swiss Ephemeris

Golden fixtures regenerated and diffed in continuous integration. Ascendant, midheaven, the nine grahas, nutation and the obliquity all pinned to stated tolerances.

Aṣṭakavarga

vs Jagannātha Hora

Four of the sixty-four benefic rows were wrong on the first pass. Three of them cancelled out — the totals still summed correctly — and only the independent check found them.

Aṣṭakūṭa

vs All 11,664 pairings

The technique reads only two nakṣatras and two pādas, so the entire input space is enumerable. Four of the eight tables were wrong before that check, including seven zero cells in the yoni matrix.

Yogas

vs Jagannātha Hora

Twelve of sixteen agree exactly across the fixture set. The other four are documented divergences with a named option, not silent disagreements.

Transit dates

vs Swiss Ephemeris

Two five-year windows a century apart, with an independent bisection on the reference side. Every event count matched exactly.

Workspace isolation

vs A live Postgres

Row-level security is enabled and forced on every table holding your data, and a probe tries to read across the boundary on every deploy rather than trusting the configuration.

Measured

Every number below was measured, not promised

The budget column is what continuous integration enforces; the measured column is what the shipped ephemeris actually did across 18 fixture charts, generated against swisseph 2.10.03. If a measurement regresses, this page moves with it — nobody retypes anything.

QuantityBudgetWorst measuredOn
Ayanāṁśa0.050″0.0050″total-solar-eclipse-day
Nutation in longitude0.050″0.0049″total-solar-eclipse-day
Obliquity0.200″0.062″future-2099
Ascendant5.00″1.64″future-2099
Midheaven5.00″2.02″future-2099
Sun2.00″3.82″future-2099· ΔT
Moon8.00″69.1″future-2099· ΔT
Mercury15.0″9.53″southern-hemisphere
Venus10.0″5.62″future-2099
Mars8.00″3.71″nineteenth-century-us
Jupiter10.0″5.90″modern-honolulu
Saturn20.0″13.4″v0-reference-chart
Rāhu and Ketu (mean)2.00″0.431″nineteenth-century-us
True node60.0″27.7″arctic-tromso
Uranus20.0″11.0″leap-day
Neptune25.0″17.4″exact-midnight-ut
Pluto20.0″11.7″nineteenth-century-us

The rows marked ΔT come from charts outside 1900–2050, where the budget is multiplied by 20. Out there Jade’s ΔT polynomial and Swiss Ephemeris’s diverge by seconds of time, and the Moon moves 33″ a minute — so a 69″ disagreement on a 2099 chart is the two programs being asked about instants two seconds apart and both answering correctly. It is a clock difference, not a wrong position, and it is shown in its own colour so a relaxed budget can never be read as a met one.

This is the interactive provider — astronomy-engine, MIT-licensed, fast enough to scrub a timeline at sixty frames a second. It is the right tool for the interface and the wrong one for a printed date, which is why a chart you store is owed a reference-class provider and why that distinction is a field on every chart rather than a footnote here.

Open

What is not verified, and therefore not shipped

Absence is a decision. Each of these could have been implemented from a text and left to look right — which is how software ends up confidently wrong.

There is no ṣaḍbala total

Six sources assembled from about twenty sub-components, and authorities differ on at least half. Six components verify exactly against the reference and are exposed individually; ten are not implemented. A total is only as trustworthy as its weakest part, so Jade does not print one.

The East Indian chart is not shipped

It renders correctly as geometry, but the traditional Bengali sign arrangement could not be confirmed against a reference implementation. A plausible guess at a regional convention is exactly what a Bengali astrologer spots in one glance.

Interactive transit times are approximate

The in-browser ephemeris is fast enough to scrub a timeline at sixty frames a second, and its timing error runs from a fraction of a minute for the Moon to about an hour for Saturn near a station. It drives the interface; it does not drive a printed date.

The other direction

Sometimes the reference was the one that was wrong

Verification is not deference. Where the reference implementation disagrees with the classical rule, Jade keeps the classical reading and records why.

  • Dig bala’s default method returns values above the 60-virūpa ceiling on a third of the sample — up to 99.95.
  • Pakṣa bala returns −41.45 on one chart and 101.45 on another, both outside the classical range.
  • Tārā kūṭa never awards full marks, where the classical rule does.
  • Varṇa kūṭa inverts Śūdra and Vaiśya.

Two astrologers disagreeing about ayanāṁśa is normal. Software that hides which one it used is unusable. Jade stores the frame, the node type, the house system and the position basis with every chart, and shows all four in the interface.

Check it against your own software

Cast a chart you already know well and compare it degree for degree. That is the only test that matters, and it is free.