The math behind your chart
Every reading on this site is computed, not copied — here is exactly what computes it, what that engine's license means, and where its precision honestly ends.
What an ephemeris is
An ephemeris is the table — nowadays the engine — that answers one question: where exactly was the Sun, the Moon, and each planet at this instant? Every birth chart, Western or Vedic, starts from that same astronomy. The two zodiacs differ only in where they start counting: tropical pins 0° Aries to the March equinox (the seasons), sidereal pins it to the stars. The offset between them is the ayanamsa — about 24°12′ today. Same sky, two rulers.
The engines, and what their licenses actually mean
Swiss Ephemeris (Astrodienst, the team behind astro.com) is the professional-astrology industry standard. It compresses NASA JPL's planetary solutions to sub-arcsecond accuracy, and it is dual-licensed: AGPL or paid. Plainly: the AGPL is a "strong copyleft" license — if your app links Swiss Ephemeris, your app's entire source code must be published under the AGPL too. And unlike the ordinary GPL, the trigger includes merely serving users over a network — so a closed-source website or app can't use it for free at all. That is the whole meaning of "AGPL or paid": either open everything, or buy a commercial license (a professional license runs on the order of CHF 750, one-time, per product) and keep your code closed.
astronomy-engine is MIT-licensed — do anything, keep your code closed if you like, just retain the copyright notice. It is pure TypeScript/JavaScript with zero data files, accurate to about ±1 arcminute for the planets, and it runs identically on a server, in a browser, and inside a phone app. This is our engine.
For completeness, the rest of the landscape: the Moshier ephemeris is public-domain analytic code with good accuracy and an aging interface; the raw NASA JPL files (DE440/441) are themselves public domain, but you would ship hundreds of megabytes and write the interpolation yourself; and the various npm packages named sweph or swisseph are just bindings to Swiss Ephemeris — a wrapper never launders a license, so they inherit "AGPL or paid" unchanged.
Why we chose the open engine — and honesty over false precision
±1 arcminute is one-sixtieth of one degree. A sign boundary only becomes ambiguous when a planet sits inside that sliver of a cusp — and when that happens, we say so on your reading with a near-cusp flag instead of pretending to a certainty the math doesn't support. Full pro-grade precision would change nothing about what your chart means; it changes the fourth decimal place.
We chose the engine that is fully open, auditable by anyone, and able to run on your own device — because for an instrument this intimate, trust matters more than an invisible arcsecond. If we ever need sub-arcsecond work (occultations, transits timed to the second), the upgrade path is a commercial Swiss Ephemeris license — a purchasing decision, not a rewrite.
The same doctrine runs through everything here: the reading tells you what the sky supports and flags what it can't — near-cusp placements, unknown birth times, pre-1900 timezone records. A mirror is only useful if it's honest.