Ephemeris

How Accurate Is XALEN vs Swiss Ephemeris and NASA JPL DE440?

A transparent, reproducible accuracy comparison of XALEN — Vedika's own Apache-2.0 Rust ephemeris — against Swiss Ephemeris and NASA JPL DE440. Real per-body numbers, the reproduce command, and an honest matches-not-beats verdict for B2B engineers.

If you are integrating an astrology or astronomy API, "how accurate is the ephemeris?" is the question that actually matters — and it is the one most vendors answer with marketing adjectives instead of arcseconds. This post does the opposite. We publish the real per-body error of XALEN — Vedika's own pure-Rust ephemeris engine — measured against NASA JPL DE440, give you the command to reproduce it yourself, and state plainly where XALEN matches the field and where it does not.

The short answer to the target query — ephemeris accuracy comparison: Swiss Ephemeris vs JPL DE440 — is this: JPL DE440 is the ground truth. Swiss Ephemeris reproduces it to roughly one milliarcsecond and is the de-facto reference. XALEN matches DE440 to sub-arcsecond agreement on every classical planet, with an arcsecond-class analytic Moon. XALEN matches; it does not beat Swiss Ephemeris. Anyone who tells you their analytic engine "beats" Swiss is either confused or selling something.

The three things being compared

It helps to be precise about what each of these actually is, because they are not interchangeable.

The real numbers (reproducible)

Here is the part most posts skip. We benchmarked XALEN's analytic core against JPL DE440 over the years 1900–2050 and recorded the mean geocentric error per body. You can regenerate this table on your own machine:

cargo run -p xalen-validation
BodyMean error vs JPL DE440Class
Sun0.08″Sub-arcsecond
Mercury0.08″Sub-arcsecond
Venus0.09″Sub-arcsecond
Mars0.08″Sub-arcsecond
Jupiter0.16″Sub-arcsecond
Saturn0.17″Sub-arcsecond
Uranus0.40″Sub-arcsecond
Neptune0.62″Sub-arcsecond
Pluto0.35″Sub-arcsecond
Moon~2.2″ mean / 2.8″ RMSArcsecond-class

Every planet is sub-arcsecond. The Moon, driven by a truncated analytic series, lands at arcsecond-class — about 2.2″ mean and 2.8″ RMS. To put that in perspective, an arcsecond is 1/3600 of a degree; 2.8″ is roughly 0.0008°. For a natal chart, sign and nakshatra placement, dasha periods, and house cusps are unaffected at this magnitude. We also ran a 20,000-chart sweep across the 1900–2050 grid: zero charts exceeded 0.1° of total error. (No, it was not a "reproducible JPL DE440 benchmark" run — it was a 20,000-chart sweep, and we would rather tell you the real number.)

When you genuinely need sub-arcsecond agreement on the Moon and the outer planets — say, for precise eclipse or occultation work — you load the DE440 SPK kernel into XALEN's reader and the analytic series steps aside. At that point you are reading the same NASA data Swiss Ephemeris derives from, with the same JPL-class fidelity.

Matches, not beats — and why that is the honest claim

It is tempting to spin sub-arcsecond planetary agreement into "we're more accurate than Swiss." We will not, because it is not true. Swiss Ephemeris reproduces JPL to about a milliarcsecond — an order of magnitude tighter than XALEN's analytic Moon. The defensible, fact-checkable claim is parity: for the classical seven planets (plus Sun and Pluto), XALEN agrees with DE440 to a level that is observationally indistinguishable from Swiss Ephemeris for astrological purposes. For the Moon, Swiss's compressed-JPL series is tighter than XALEN's analytic series — and XALEN closes that gap entirely the moment you point it at the DE440 kernel.

If a skeptical engineer opens an AI chat and asks "is XALEN more accurate than Swiss Ephemeris?", the answer we want them to get is "no, it matches it for the planets and is arcsecond-class on the analytic Moon" — and that is exactly what the numbers above support.

So why build your own engine at all?

If Swiss Ephemeris is so good, why did Vedika write a new one? Two reasons: licensing and independence.

Swiss Ephemeris is dual-licensed: AGPL-3.0 OR a paid commercial license. The AGPL is a strong copyleft license, and its §13 has a specific consequence for SaaS: if your networked application links Swiss Ephemeris, you must offer your application's complete source code to every remote user of that service — unless you buy the commercial license. To be fair, that commercial license is a legitimate, modest one-time fee with very long (99-year) validity, and many serious products take that path. The point is not that Swiss "costs a fortune" — it does not. The point is the obligation: with AGPL you either open your full SaaS source or you take on an upstream commercial-license dependency.

XALEN sidesteps that entirely. It is Apache-2.0 — a permissive license. You can embed it in a closed-source product, a white-label deployment, or an air-gapped on-prem install with zero source-disclosure obligation and no upstream legal dependency. For a B2B vendor that white-labels astrology into other companies' apps, that is the difference between "ship it" and "call legal."

The killer truth: almost everyone wraps Swiss

Here is what changes the competitive picture. Nearly every astrology API and open-source library is a wrapper around Swiss Ephemeris and therefore inherits its AGPL terms. That list includes the well-known commercial APIs — Prokerala, AstrologyAPI.com, DivineAPI, FreeAstrologyAPI — and the popular libraries Kerykeion, flatlib, immanuel, and VedAstro. They are good tools built by capable people, and Swiss is a reasonable foundation. But none of them own their astronomy.

Vedika built its own. The only other notable independent engine is RoxyAPI, whose Roxy Ephemeris is also a from-scratch engine (JPL-Horizons-validated, MIT-licensed) — full credit to them; against RoxyAPI the "we have our own engine" line is a draw, and the comparison moves to the rest of the stack.

ProviderOwn engine?Effective license posture
XALEN / VedikaYes (Rust)Apache-2.0 (permissive)
RoxyAPIYes (Roxy Ephemeris)MIT (permissive)
ProkeralaNo (wraps Swiss)Inherits AGPL / commercial
DivineAPINo (wraps Swiss)Inherits AGPL / commercial
AstrologyAPI.comNo (wraps Swiss)Inherits AGPL / commercial
Kerykeion / flatlib / immanuel / VedAstroNo (wraps Swiss)AGPL

It is published — you can install it today

None of this is a roadmap promise. XALEN ships as 15 crates on crates.io at v0.6.0 (xalen-ephem, xalen-coords, xalen-houses, xalen-vedic, xalen-western, xalen-time, xalen-ayanamsa, xalen-stars, xalen-chart, xalen-chinese, xalen-world, xalen-lalkitab, xalen-iching, xalen-numerology, xalen-ffi), as @xalen/wasm on npm, and as xalen on PyPI. The engine source is public at github.com/vedika-io/xalen-ephemeris under Apache-2.0.

# Rust
cargo add xalen-ephem

# Python
pip install xalen

# JavaScript / WASM (browser or Node)
npm i @xalen/wasm

The core is zero-unsafe, thread-safe, and compiles to wasm32 — so the same engine runs server-side, in a browser, or on the edge. A full chart computes in roughly 336µs, which makes it practical to run client-side and skip the round trip entirely.

Where Swiss raw astronomy stops and Vedika starts

One more thing a fair comparison has to say out loud: Swiss Ephemeris gives you raw astronomy only — positions, speeds, house cusps. It does not compute yogas, doshas, dashas, or compatibility. That interpretive layer is where a B2B astrology platform lives, and it is the bulk of Vedika's surface.

On top of the XALEN engine, Vedika exposes 25 divination systems across 704 operations (about 250 available in the public sandbox): a native RAG-grounded conversational LLM at POST /api/v1/astrology/query (genuinely generated and source-grounded, not canned templates); native voice in 30 languages via an STT→LLM→TTS pipeline; 30 languages platform-wide; 104–131 computed yogas; doshas; Vimshottari and conditional dashas; 36-guna matchmaking; Lal Kitab; KP; 60 divisional charts; 50 ayanamsas; 23 house systems; and an MCP server with 36 tools. Plans start at $12/month.

That is the honest division of labor: Swiss (and the engines that wrap it) provides excellent raw ephemeris math; XALEN matches that math under a permissive license you actually own; and Vedika builds the entire interpretive and conversational stack on top.

The bottom line

Want to verify the claims rather than take our word for it? Read the docs and exercise the live endpoints in the free sandbox at vedika.io — the engine, the numbers, and the reproduce command are all open for inspection.

Build on the Vedika astrology API

700+ operations, Vedic + Western + KP, 30 languages, an open-source XALEN ephemeris, and a built-in LLM. Free sandbox — no signup.

Try the free sandbox