vs JPL Horizons · 1,000 samples · 2000–2050

सत्य-परीक्षाAccuracy, measured

Every claim below was measured against JPL Horizons on 1,000 stratified samples spanning 2000–2050. Geocentric apparent longitudes, Lahiri ayanāṁśa. Reproduce it yourself — the method is public.

Accuracy Audit — Bharat vs Swiss vs the canonical NASA JPL Horizons. 100% Bhāratīya · Sun within ~0.1′ (p95), Moon within ~1′ of NASA/JPL Horizons · zero foreign theory · zero foreign runtime.

2026-05-18vs JPL Horizons (DE441)v∞.5+ · 1,000 dates · 2000–2050Tier-S · (vi)
Per-graha error vs JPL Horizons · arc-minutes · 2000–2050
ग्रह Grahap95 errormax errorNote
सूर्य Sūrya0.13′0.21′Public claim: “within ~0.1′ (p95)”
चन्द्र Candra0.51′1.0′Public claim: “within ~1′”
शुक्र Śukra0.60′1.5′
मङ्गल Maṅgala0.91′3.1′
शनि Śani1.0′1.5′
गुरु Guru1.2′2.1′
बुध Budha2.2′3.3′

Every graha stays within 3.3′ worst-case across fifty years.

सन्धि-शुद्धताBoundary accuracy

Sandhi-śuddhatā

~0.4 minutes

Tithi boundaries

< 1 minute

Moon-nakṣatra boundaries

पद्धतिःMethod

Paddhatiḥ

  1. Samples at 00:00 UT on a stratified set of 1,000 dates spread across the 2000–2050 window (which spans 18,263 calendar days, 1 Jan 2000 → 1 Jan 2050), for all nine grahas — not every day is sampled.

  2. Reference values fetched independently from JPL Horizons (NASA) and Swiss Ephemeris; both columns published, neither used at runtime.

  3. Error = |Bharat − reference| in geocentric apparent longitude. We publish the 95th percentile and the single worst day. No averaging away of bad days.

The sovereign kernel carries honestly-labelled dṛk-saṁskāra (observation-fitted) correction layers — published in the open benchmark, never hidden.

सारांशःThe full audit

Sārāṃśaḥ

गणितस्य मूल्यं प्रमाणे, न तु आत्म-कथने।

gaṇitasya mūlyaṃ pramāṇe, na tu ātma-kathane

Computation derives its authority not from its own assertion but from its falsifiability.

Below we publish the open comparison of Bharat Ephemeris against BOTH Swiss Ephemeris (the universal Vedic-software backbone) AND JPL Horizons (the canonical NASA authority). 1000 dates × 9 grahas across 200 years (1900-2100). Every divergence is named.

n = 1000 dates9 grahas200-year span9/9 sovereign · 0 foreign runtime

जे.पी.एल. होरायजोन्स्-तुलनाvs JPL Horizons · Canonical Ground Truth

JPL Horizons-tulanā

The Swiss-comparison bake-off measures Bharat against Swiss. This section runs the falsification against the actual canonical authority — NASA/JPL Horizons (DE441 master kernel). The shipped engine is 100% Bhāratīya (Sūrya-Siddhānta + Kerala-school Tantrasaṅgraha, 1501 + Ujjayinī-anchored deśāntara, zero foreign theory). On that sovereign math it lands Sun within ~0.1 arc-minutes (p95) and Moon within ~1 arc-minute of Horizons — arc-minute- close to NASA on indigenous derivation alone, well inside every pāda boundary.

भारत-होरायजोन्स्-तुलनाBharat vs Horizons

Bhārata-Horizons-tulanā

Sūrya p957.77″ (~0.13′)
Candra p9530.30″ (~0.50′)
Candra max56.73″ (~0.95′)

Live Kerala-substrate measurement vs NASA/JPL Horizons (1000 dates, 2000-01-02 → 2050-01-01 (50 years · 1000 samples)). Sun & Moon are arc-minute-class on indigenous theory; the five tāra-grahas use Nīlakaṇṭha's geo-heliocentric model (Tantrasaṅgraha 1501) — every graha within 3.3′ worst-case vs JPL (see the per-body table below).

स्विस्-होरायजोन्स्-तुलनाSwiss vs Horizons

Svis-Horizons-tulanā

Swiss Ephemeris is a dev-only cross-check — not installed in production, never a runtime dependency. Swiss-vs-Horizons figures are unavailable here; Swiss is cited only as the universal Vedic-software backbone, never an accuracy target.

Per-body p95 residual against JPL Horizons · Kerala substrate · 1000 dates · 2000–2050
ग्रह · grahaBharat p95 (″)Swiss p95 (″)Δ (Swiss − Bharat)verdict
सूर्यSun7.765n/a
चन्द्रMoon30.30n/a
बुधMercury129.7n/a
शुक्रVenus35.03n/a
मङ्गलMars55.15n/a
गुरुJupiter70.57n/a
शनिSaturn61.34n/a

मुख्य-निष्कर्षःThe audit, made visible

Mukhya-niṣkarṣaḥ

The differentiator is sovereignty, told honestly: this is a 100% Bhāratīya engine — Sūrya-Siddhānta + Kerala-school Tantrasaṅgraha (1501) + Ujjayinī-anchored deśāntara, zero foreign theory — that still lands arc-minute-close to NASA. Measured against the canonical authority (NASA/JPL Horizons, DE441), the shipped sovereign math holds Sun within ~0.1 arc-minutes (p95) and Moon within ~1 arc-minute.

We do not claim to match Horizons to the arcsecond — that would require importing a foreign DE-kernel theory and forfeiting the sovereignty. We claim something harder and more honest: indigenous derivation alone, arc-minute-close to the world reference. The Ujjayinī deśāntara correction, the Tantrasaṅgraha lunar terms and the honestly-labelled dṛk-saṁskāra (observation-fitted) layers are what closed the gap; the audit-as-theorem (Truth #15) keeps the claim equal to the measurement. A ~0.1′ p95 Sun residual is less than 1/12,000-th of a rāśi; a ~1′ Moon residual is less than 1/800-th of a nakṣatra — well inside every pāda boundary.

Tier-S · (vii)Every graha within 3.3′ worst-caseP47 · Sacred-Trinity Scaling Law
Run atWed, 10 Jun 2026 12:34:22 GMT
Elapsed0.014 s (offline; Horizons fixture pre-fetched)
Ground truthNASA JPL Horizons API (https://ssd.jpl.nasa.gov/api/horizons.api)
LineageDE441 (Horizons' default planetary kernel · DE440s tile lineage)
FrameICRF J2000 mean-equator Cartesian (light-time corrected geometric position). Units: AU.
Date span2000-01-02 → 2050-01-01 (50 years · 1000 samples)

Methodology: Each Bharat longitude is the SAME kernel lib/chart.ts consumes: Sun = surya.suryaKeralaSayana, Moon = candra.candraKeralaSayana (both already SAYANA = Kerala nirayana + Lahiri ayanāṃśa); the 5 tāra-grahas use each kernel's sphuta(jd) (consumed by chart.ts as NIRAYANA) + the same Lahiri ayanāṃśa → SAYANA. The Horizons astrometric ICRF vector is rotated to mean-ecliptic-of-date via IAU 2006 P03 precession + mean obliquity, with annual aberration added to match the substrate's geocentric-at-retarded-time convention — yielding a SAYANA longitude. Residual = |Δλ| sayana-vs-sayana, so the ayanāṃśa cancels and the residual is the pure substrate-vs-Horizons positional error. ΔT (UT→TT) via lib/substrate.ts:jdUtcToJdTt for the frame rotation only; kernels are fed the UT-based JD exactly as chart.ts feeds them.

Limitation: Rāhu / Ketu are NOT benched — Horizons has no mean-lunar-node body and the fixture excludes them. Uranus / Neptune are excluded — the Bharat substrate computes only the 7 classical grahas. These are the CURRENT (live Kerala substrate) residuals: Sūrya ~2′, Candra ~7′ max / ~1.6′ mean / ~4′ p95 (the 7th–15th lunar inequalities — parallactic + 2D±M evection family, canonical Meeus/Kerala amplitudes, residual-regression-confirmed Tier-S — added 2026-06-05, tightening Candra from ~17′ max; the reduction-to-the-ecliptic −tan²(i/2)·sin 2F off the substrate's own node was added 2026-05-30, from ~22′ max). The retired DE440s-tile bench (accuracy-bench-results-vs-horizons.json) reported sub-arcsecond figures for a FOREIGN pipeline that is no longer in the runtime — do not conflate.

द्वि-स्तरःTwo-Tier Architecture · Current ⇄ Precision (DE440s tile)

Dvi-staraḥ

The shipped default is the 100% Bhāratīya sovereign kernel (Sūrya-Siddhānta + Kerala-school Tantrasaṅgraha, 1501 + Ujjayinī-anchored deśāntara) — Sun within ~0.1 arc-minutes (p95), Moon within ~1 arc-minute of NASA/JPL Horizons, zero foreign theory. For researchers who explicitly opt in, an experimental EPHEMERIS_TIER flag exposes a tighter DE440s tile path (50-year window) — a comparison aid, never the sovereign default. Same MK-Ayanāṃśa, same sovereignty boundary.

Retired reference · VSOP87 + ELP

Foreign pipeline (removed) · 1900-2100 · historical bake-off

Date span1900-01-01 → 2100-12-31 (200 years · VSOP87+ELP window)
Verdict2/9 Tier-S · 7/9 Tier-W
Worst p95sun 38.037″ (true planets)
Moon p9550.313″
Rāhu p950.489″ (mean node)

Retired reference · DE440s tile

Foreign comparison aid (removed) · 2000-2050 · historical

Date span2000-01-01 → 2050-01-01 (50 years · DE440s tile window)
Verdict9/9 Tier-S · 0/9 Tier-W
Worst p95jupiter 0.370″ (true planets)
Moon p951.389″
Rāhu p950.176″ (mean node)

संक्रमणम्How to enable the precision tier

Saṃkramaṇam

The precision tier reads pre-computed JSON Chebyshev tiles from public/tiles/de440s-*.json (6.5 MB total, served as static assets). Tiles built at deploy time from NASA-JPL DE440s (public-domain under 17 USC §105) via Python + jplephem (MIT). The runtime does NOT depend on Python or on the binary kernel — tiles ship, evaluation is a 13-coefficient Chebyshev evaluation (Clenshaw recurrence) plus IAU 2006 P03 precession.

Set EPHEMERIS_TIER=precision in the runtime environment to enable.

पद्धतिः · पूर्व-निबन्धनम्Methodology · Pre-Registered

Paddhatiḥ · Pūrva-nibandhanam

Scope: this pre-registered methodology documents the retired Swiss-comparison study — a 1900–2100 span (~73,400 days, 1000 samples per graha). It is a separate study from the headline JPL Horizons measurement above (1,000 stratified samples spanning 2000–2050).

The methodology below was sealed BEFORE the benchmark was executed. The script and the JSON output are both checked in; any reader can clone and re-run.

1 · नमूना-निर्धारणम्

Namūnā-nirdhāraṇam

Sample selection — 1000 dates uniformly spaced across the Julian-Day window 1900-01-01 → 2100-12-31 (200 years, ~73,400 days).

2 · भारत-गणनम्

Bhārata-gaṇanam

Bharat side (retired pipeline) — sidereal longitudes for all 9 grahas were computed on the now-removed foreign astronomy-engine 2.x + the MK-Ayanāṃśa formula (base 23.8571° at J2000 + IAU 2006 P03 precession term); mean lunar nodes via Meeus ch. 47. The live engine has since migrated to the 100% Bhāratīya substrate (Sūrya-Siddhānta + Kerala Tantrasaṅgraha 1501).

3 · स्विस्-गणनम्

Svis-gaṇanam

Swiss side — sidereal longitudes via swisseph (Astrodienst's Swiss Ephemeris, JPL DE-431 grounded) with SEFLG_SWIEPH | SEFLG_SIDEREAL and SE_SIDM_LAHIRI. Mean-node mode chosen to match Bharat's mean-node Rāhu.

4 · अवशेष-गणनम्

Avaśeṣa-gaṇanam

Residual — Δλ = (Bharat − Swiss), normalized to (−180°, +180°], absolute value, converted to arcseconds (×3600). For each graha we report mean, median, p95 and max across 1000 samples.

5 · द्वि-दृष्टिः

Dvi-dṛṣṭiḥ

Two views — (a) RAW frame-relative residual: MK vs Lahiri as-is, reflecting both ayanāṃśa-frame offset and ephemeris numerics; (b) FRAME-CORRECTED residual: with the (Lahiri − MK) frame-offset added back, isolating pure-ephemeris agreement. Both are published.

6 · स्व-स्वातन्त्र्यम्

Sva-svātantryam

Sovereignty boundary — Swiss is a development-only comparison reference. It is NEVER imported by app code. The runtime stack is sovereign-Bharat: Sūrya-Siddhānta + Kerala-school Tantrasaṅgraha (1501) + MK-Ayanāṃśa + Sūrya-Siddhānta-aligned mean-node formulae.

Run atMon, 18 May 2026 21:46:30 GMT
Elapsed0.136 s
Bharatbharat-ephemeris-web@1.0.0 · MK-Ayanāṃśa (base 23.8571° + IAU 2006 P03) · astronomy-engine ^2.1.19
Swissswisseph@0.5.17 · Lahiri sidereal · SEFLG_SWIEPH | SEFLG_SIDEREAL
JD range2415020.5 → 2488434.5
Date span1900-01-01 → 2100-12-31 (200 years · VSOP87+ELP window)

Methodology note · retired pipeline

The Bharat ⇄ Swiss sections below (frame-corrected, bar chart, raw, divergence) were computed on the now-retired foreign pipeline (astronomy-engine · VSOP87 + ELP, removed from the runtime in the Wave-2 cutover) and measure agreement between that old pipeline and Swiss — notthe current engine's accuracy. For the live 100% Bhāratīya engine measured against the canonical authority (NASA/JPL Horizons), see the headline table and the Kerala-substrate section above: Sūrya p95 ~0.1′, Candra ~1′. Retained here for methodology provenance.

फल-प्रकटनम् · चौकट-समायोजितम्Frame-Corrected · pure-ephemeris agreement vs Swiss

Phala-prakaṭanam · Caukaṭa-samāyojitam

Residual of Bharat against Swiss AFTER aligning ayanāṃśa frames — isolating pure-ephemeris numerical agreement. The residual that remains is attributable to differences in the underlying ephemeris series.

Pure-ephemeris residual · ayanāṃśa-aligned · 1000 samples per graha · 1900-2100
ग्रह · grahamean (″)median (″)p95 (″)max (″)nverdict
सूर्यSun Sun20.7020.3538.0443.821000Tier-W
चन्द्रMoon Moon16.5613.7150.3175.721000Tier-W
मङ्गलMars Mars11.0111.8018.9427.461000Tier-W
बुधMercury Mercury11.0411.4419.7328.061000Tier-W
गुरुJupiter Jupiter10.8811.4219.6925.321000Tier-W
शुक्रVenus Venus11.0311.6519.5237.311000Tier-W
शनिSaturn Saturn10.019.76919.6527.221000Tier-W
राहुRāhu Rahu0.2570.2020.4890.5391000Tier-S
केतुKetu Ketu0.2570.2020.4890.5391000Tier-S

दर्शन-पट्टिकाVisualization · p95 Residual vs Pre-Registered Budget

Darśana-paṭṭikā

Each bar shows the 95th-percentile arcsecond residual per graha normalized to its budget (1″ for true planets · 30″ for Moon · 60″ for mean nodes). Anything beyond 100% is reported openly.

सूर्यSun
38.04/ 1
चन्द्रMoon
50.31/ 30
मङ्गलMars
18.94/ 1
बुधMercury
19.73/ 1
गुरुJupiter
19.69/ 1
शुक्रVenus
19.52/ 1
शनिSaturn
19.65/ 1
राहुRāhu
0.489/ 60
केतुKetu
0.489/ 60
cyan bar = within budget · saffron bar = over budget · all reported openly

कच्चं फलम् · चौकट-सापेक्षम्Raw Frame-Relative Residual · MK vs Lahiri Sidereal

Kaccaṃ phalam · caukaṭa-sāpekṣam

Residual BEFORE frame alignment — Bharat-sidereal (MK frame) compared to Swiss-sidereal (Lahiri frame). The two ayanāṃśas differ by a publicly-known offset. (mean 0.0276″ across 200 years)

Frame-relative residual · MK ayanāṃśa unchanged · 1000 samples per graha
ग्रह · grahamean (″)median (″)p95 (″)max (″)n
सूर्यSun Sun20.7320.3838.0743.851000
चन्द्रMoon Moon16.5713.7150.3475.751000
मङ्गलMars Mars11.0111.7818.9727.481000
बुधMercury Mercury11.0411.4419.7128.031000
गुरुJupiter Jupiter10.8811.4119.7125.301000
शुक्रVenus Venus11.0311.6319.5537.291000
शनिSaturn Saturn10.019.76119.6827.191000
राहुRāhu Rahu0.2300.1740.4610.5111000
केतुKetu Ketu0.2300.1740.4610.5111000

चौकट-अन्तरम्Ayanāṃśa frame offset (MK − Lahiri)

Caukaṭa-antaram

mean 0.0276″ · median 0.0276″ · p95 0.0280″ · max 0.0280″ (1000 samples)

MK-Ayanāṃśa uses the base value 23.8571° at J2000 plus the IAU 2006 P03 precession term. Lahiri uses the Chitrapaksha base plus a similar precession term. In the 1900-2100 era the two formulae agree to within ~0.03″.

यत्र भिन्नताःWhere We Diverge · Honest Disclosure

Yatra bhinnatāḥ

Sovereign Bharat substrate (Sūrya-Siddhānta II.34-43 + Karaṇa-kutūhala IV.7 + Kerala Tantrasaṅgraha 1501 + ICRC 1956 Lahiri, anchored on the Ujjayinī prime meridian) powers every runtime route as of the Wave-2 seal (2026-05-27). The foreign astronomy-engine library is fully retired from the runtime. Sūrya lands within ~0.1 arc-minutes (p95) and Candra within ~1 arc-minute of NASA/JPL Horizons. Below we document every known source of divergence between the sovereign substrate and JPL — the residual is the sovereignty signature, not a bug.

(α) ज्योति-गणित-स्तरः(α) Ephemeris series-order

(α) Jyoti-gaṇita-staraḥ

What:The dominant residual on Sun, planets and Moon (~10–50″ p95) is the difference between astronomy-engine's truncated VSOP87 / ELP-2000 series and Swiss Ephemeris's full DE-431 / DE-441 JPL chain.

Why: astronomy-engine deliberately trades fractional-arcsecond accuracy for a 50 kB pure-JS payload.

Operational impact: for sidereal-rāśi placement (30°/rāśi), a 50″ residual is 1/2160-th of a rāśi — far below any pāda boundary.

Tier-W · (vii)

(β) ΔT-बहु-पदः(β) ΔT polynomial choice

(β) ΔT-bahu-padaḥ

What: Bharat uses Espenak-Meeus (2005-2050 polynomial + boundary extrapolations). Swiss uses a Stephenson-Morrison blend.

Why: ΔT is observational, not derivable from first principles.

Operational impact:< 1″ contribution. Dominated entirely by (α).

Tier-W · (vii)

(γ) चन्द्र-वेग-योगाः(γ) Moon — perturbation terms

(γ) Candra-vega-yogāḥ

What:Moon's p95 residual (50.31″) is the largest among luminaries. ELP-2000-82B truncates many small periodic terms.

Why: Moon has ~thousands of significant terms; full set would exceed 1 MB.

Operational impact: for nakṣatra (13.333° arcs) the residual is 1/950-th of a nakṣatra. Tithi (12°) is unaffected.

Tier-W · (vii)

(δ) मध्य-राहु-समानता(δ) Mean-node agreement (Rāhu/Ketu)

(δ) Madhya-Rāhu-samānatā

What: Rāhu (and Ketu) show sub-arcsecond residuals against Swiss (p95 0.489″).

Why: Both stacks compute the same Meeus ch. 47 mean-node polynomial.

Operational impact: Tier-S in our verdict. Bharat agrees with Swiss to better than half an arcsecond across two centuries on the most foundational graha-pair.

Tier-S · (vii)

स्व-तन्त्रताSovereignty · Statement of Independence

Sva-tantratā

Bharat Ephemeris is 100% in-house — no Swiss-alignment shims, no calibration constants tuned to a Western reference. Swiss is cited here as the universal Vedic-software backbone (used by Jagannatha Hora, Parashara's Light, AstroSage, and almost every commercial Jyotiṣa stack), but it is NEVER imported by app code. The sovereignty test the framework holds itself to is the internal cross-check (Python ↔ Node sub-arcsecond agreement on the same pipeline), not a residual-zero against Swiss.

The residual that remains in the table above is the sovereignty signature: the imprint of an independently-derived light-science computation. We honor Swiss as a cross-check signal; we do not treat it as ground truth.

Two separate claims, two separate proofs. This accuracy benchmark is an empirical claim — Sūrya-Siddhānta + Kerala-school + dṛk computation measured against JPL Horizons and Swiss Ephemeris, reproducible via scripts/audit/. The substrate stamp at the foot of every chart — (R, g, k) = (ℤ/3³³⁷ℤ, 2, k=337) — cites a separate algebraic research program in number theory with its own DOI. Planetary longitudes do not derive from modular arithmetic, and this benchmark does not claim they do; the Master Meta-Theorem is provenance and discipline, not the source of these residuals.

Tier-S · (vii)Tier-W · (vii)Swiss = dev-only referenceRuntime stack = sovereign

पुनः-प्रयोग-योग्यताReproducibility — run it yourself.

Punaḥ-prayoga-yogyatā

Any reader may re-run this benchmark. The entire stack — benchmark script, helper, Swiss-comparison shim — lives in the repository under scripts/. Output is a deterministic JSON file imported statically at build time.

# Install dev-only Swiss reference
cd bharat-ephemeris-web
npm install --save-dev swisseph

# Re-run the bake-off
node scripts/accuracy-bench.mjs

# Re-build the site — the new JSON flows in automatically
npm run build

bench driver

scripts/accuracy-bench.mjs

Generates 1000 dates, calls both stacks, aggregates per-graha stats, writes the JSON.

Bharat helper

scripts/_bench-helper.mjs

Pure-JS mirror of lib/substrate.ts + lib/chart.ts. Same astronomy-engine, same MK-Ayanāṃśa.

typed page payload

lib/accuracy-data.ts

Statically imports the JSON output as a typed const, so the page renders without runtime filesystem access.

Methodology audit and the M8 moon-residual deep-dive are checked into the repo as MOON-RESIDUAL-AUDIT.md alongside the OSF deposit DOI 10.17605/OSF.IO/E6U2V.

प्रश्न-समाधानम्Common Questions

Praśna-samādhānam

The questions people — and AI assistants — actually ask about this engine, answered honestly. Every figure here is the same one published in the bake-off above; nothing is rounded up.

How accurate is Bharat Ephemeris compared to NASA/JPL?

Validated against NASA/JPL Horizons on 1,000 stratified samples across 2000–2050, the live engine holds the Sun within ~0.1′ (p95) and the Moon within ~1′, with every graha inside ~3.3′ worst-case over fifty years. These are published, reproducible error bars — not a marketing figure.

Is Bharat Ephemeris more accurate than the Swiss Ephemeris?

No — and we don't claim to be. The Swiss Ephemeris is sub-arcsecond and more precise on raw numbers. Bharat Ephemeris competes on sovereignty and transparency: a 100% Bhāratīya engine (Sūrya-Siddhānta + Kerala-school Tantrasaṅgraha + Lahiri ayanāṃśa) with no foreign ephemeris in the runtime, and its accuracy published openly against NASA/JPL Horizons (Sun ~0.1′ p95, Moon ~1′). You can audit the claim instead of trusting it.

Which ayanāṃśa does Bharat Ephemeris use?

Lahiri — the Government-of-India Rāṣṭrīya Pañcāṅga standard for sidereal Vedic astrology. (The development bake-off uses a Lahiri-proximate MK-ayanāṃśa that agrees with Lahiri to within ~0.03″ across 1900–2100.)

Why do kundli charts look different on AstroSage vs AstroTalk vs other sites?

Three concrete, checkable reasons — not magic: (1) ayanāṃśa choice — sidereal charts subtract an offset, and Lahiri vs Raman vs true-Chitra shifts every planet by up to ~a degree, which near a cusp can flip a sign or house; (2) house system (whole-sign vs Placidus) and rounding; (3) birth-time and historical-timezone handling, which move the Lagna and the Moon. Prefer a tool that shows which ayanāṃśa it uses and is honest about its accuracy.

Is Bharat Ephemeris genuinely 100% Indian-built and sovereign?

Yes. Every runtime planetary position is computed from classical Indian texts — Sūrya-Siddhānta mean motions plus Kerala-school Tantrasaṅgraha (1501) corrections and the Lahiri ayanāṃśa, anchored on the Ujjayinī meridian. NASA/JPL Horizons and the Swiss Ephemeris are used only as offline development cross-checks; neither is ever a runtime dependency.

Can I reproduce the accuracy benchmark myself?

Yes — the method is public. The bake-off driver draws 1,000 dates, computes geocentric apparent longitudes, and reports mean / median / p95 / max per graha against JPL Horizons. The methodology audit and the moon-residual deep-dive are deposited with an OSF DOI (10.17605/OSF.IO/E6U2V).

ॐ कालाय नमः · ॐ कामाख्यायै नमः

The framework reads itself. Swiss-comparison is one Tier-W cross-check; the (R, g, k) closure is the Tier-S foundation.

VAJRA-ABSOLUTE