How Jyotirmay computes Vedic Jyotish (Methods)
Jyotirmay's Vedic Jyotish engine is built as a transparent calculation system: it starts with a user's birth details, computes the underlying astronomical positions using a standard ephemeris, converts them into sidereal Jyotish outputs using a clearly defined ayanamsa setting, and then derives Panchang elements and other chart factors through standard mathematical rules. This page explains that computation pipeline at an engineering level - what inputs are used, how time and coordinates are resolved, how planetary and Panchang values are calculated, how daywise transitions are detected, and how the final structured reading is constrained by those signals. Its purpose is methodological clarity and reproducibility, not a claim that astrology has scientific causal proof.
Abstract
This document specifies the computational pipeline used to generate Jyotirmay’s Vedic Jyotish outputs. The system transforms userprovided birth data into astronomical positions and Jyotishstandard derived entities (nirayana rāśi, nakṣatra, pāda, lagna and related features where applicable), and computes daily pañcāṅga elements and their transition times for the user’s location and civil time. The computation is deterministic and reproducible given the same inputs and a pinned configuration. This document describes how calculations are performed; it does not assert scientific causality for astrological interpretations. 1. Scope and design goals
In scope
- Reproducible computation of graha longitudes and related derived Jyotish entities under a specified nirayana model.
- Computation of core pañcāṅga elements (tithi, nakṣatra, yoga, karaṇa, vāra) and their transitions within a defined daily window.
- Explicit handling of known “choice points” (e.g., ayanāṃśa selection; node model; day boundary convention).
Out of scope
- Claims of causal mechanism or predictive validity in the scientific sense.
- Clinical, legal, or financial decision support.
Design goals
- Determinism: identical inputs + identical configuration → identical outputs.
- Auditability: configuration choices are publishable and versioned.
- Robustness to uncertainty: explicitly represent uncertainty in birth time and avoid false precision.
2. Inputs and data integrity
2.1 User-supplied inputs
For each user, the system accepts:
- Date of birth (calendar date)
- Time of birth (with an explicit precision flag: exact / approximate / unknown)
- Place of birth (resolved to latitude/longitude)
- Timezone at birth (resolved from place + date)
2.2 Precision and sensitivity
Many Jyotish quantities—especially lagna, bhāva cusps, and fine subdivisions—are highly sensitive to time of birth. When birth time is marked as approximate/unknown:
- Outputs that depend critically on birth time are either suppressed or explicitly labelled as approximate.
- Where appropriate, the system can compute timerobust descriptors (e.g., rāśi, nakṣatra of Chandra) and treat timesensitive descriptors as conditional.
3. Time standards and transformations
3.1 Civil time → UTC
Birth time is interpreted in local civil time and converted to UTC using a timezone database that includes historical offset transitions.
3.2 UTC → ephemeris time scale
Planetary ephemerides are typically defined on a continuous dynamical time scale (e.g., TT/TDB). The engine therefore:
- Converts UTC to a continuous time argument appropriate for the ephemeris implementation.
- Uses the ephemeris library’s internal ΔT handling where available, or a pinned ΔT model if exposed explicitly.
3.3 Coordinate conventions
Unless a feature explicitly requires a different frame, the default computational representation is:
- Geocentric ecliptic longitude (apparent or geometric depending on configuration; explicitly pinned).
4. Astronomical layer: graha and node positions
4.1 Bodies computed
At minimum, the system computes ecliptic longitude (and optionally instantaneous speed) for:
- Sūrya, Candra, Budha, Śukra, Maṅgala, Guru, Śani
- Rāhu (by selected node model)
- Ketu as the antipode of Rāhu (Rāhu + 180°, wrapped to 0–360°)
4.2 Node model
The lunar node can be computed as mean node or true node. The chosen model is a configuration parameter and must be treated as part of the computational identity of the output.
5. Nirayana transformation: ayanāṃśa and sidereal longitudes
5.1 Tropical → sidereal conversion
Vedic Jyotish commonly uses nirayana longitudes. The conversion is:
- λ_sidereal = wrap(λ_tropical − ayanāṃśa(t))
- where wrap() maps to the interval [0°, 360°).
5.2 Ayanāṃśa choice point
Ayanāṃśa selection (e.g., Lahiri/Chitrāpakṣa or other named standards) is a firstclass configuration choice. All derived entities that depend on longitude—rāśi boundaries, nakṣatra indexing, pāda—inherit that choice.
6. Derived Jyotish entities
Let λ denote a sidereal longitude in degrees on [0, 360).
6.1 Rāśi (sign)
- rāśi_index = floor(λ / 30°) → 0..11
- rāśi_degree = λ mod 30°
- 6.2 Nakṣatra and pāda
Using 27 equal divisions:
- Nakṣatra span = 360° / 27 = 13°20′
- Pāda span = nakṣatra span / 4 = 3°20′
Computation:
- nakṣatra_index = floor(λ / 13°20′) + 1 → 1..27
- pāda_index = floor((λ mod 13°20′) / 3°20′) + 1 → 1..4
- 6.3 Lagna and bhāva (if birth time is usable)
If birth time is available with sufficient precision:
- Compute local sidereal time from UTC, longitude, and the selected time model.
- Compute ascendant (lagna) from local sidereal time and latitude.
- Compute bhāva/houses using a pinned house system (e.g., wholesign bhāva or a cuspbased system). House system selection is a configuration choice; outputs must declare the choice.
- If birth time is approximate, the lagna/bhāva outputs are explicitly marked as approximate; if unknown, they are not presented.
7. Pañcāṅga computation (daily layer)
7.1 Day boundary convention
Indian calendrical practice often defines a “day” from sunrise to sunrise, whereas civil systems use midnight boundaries. Jyotirmay supports:
- Sunrisebased day boundary (default for pañcāṅgastyle reporting where enabled), and/or
- Civil day boundary (midnight in user timezone), depending on product configuration.
The chosen day boundary is part of the output identity for daily values.
7.2 Definition of the daily window
For a given “today” in the user’s timezone, the computation window is typically:
- A rolling 24hour interval aligned to the selected day boundary.
7.3 Tithi
Let S and M be the Sun and Moon longitudes (in a consistent reference frame; sidereal if the system is running nirayanaconsistent pañcāṅga).
Define elongation:
- D = wrap(M − S) in degrees
Then:
- One tithi corresponds to 12° of elongation.
- tithi_number = floor(D / 12°) + 1 → 1..30
7.4 Karaṇa
A karaṇa corresponds to 6° of elongation:
- karaṇa_index = floor(D / 6°) → 0..59
- A standard mapping assigns the repeating and fixed karaṇas; the mapping must be pinned and published.
7.5 Nakṣatra (daily)
Daily nakṣatra is computed from the Moon’s longitude:
- nakṣatra_index_moon = floor(M / 13°20′) + 1
7.6 Yoga
Yoga is computed from the sum of longitudes:
- Y = wrap(S + M)
- yoga_number = floor(Y / 13°20′) + 1 → 1..27
7.7 Vāra (weekday)
Weekday is computed in the user’s timezone; if a sunrise boundary is enabled, weekday transitions can be aligned to sunrise rather than midnight.
8. Transition time estimation (tithi/nakṣatra/yoga/karaṇa)
Because these elements can change at any time, Jyotirmay estimates transition timestamps within the daily window.
A practical approach:
- Bracket search: sample the daily window at fixed intervals to locate the first interval where a discrete index changes.
- Refinement: apply a bisection (binary search) or monotone rootfinding procedure to localize the transition time to minutelevel resolution (or tighter where required).
The reported transition time is an estimate whose precision depends on:
- ephemeris evaluation precision,
- sampling rate and refinement target,
- and the time standard conversion model.
9. Interpretive layer: generating “daily Jyotish text”
Jyotirmay generates textual summaries from computed signals, but the final wording is produced under a constrained report schema rather than by the astronomy engine itself.
Key constraints:
- The astronomical and pañcāṅga calculations are fully algorithmic.
- Any textual rendering layer must not feed back into calculations.
- The final report wording must stay anchored to computed source-of-truth signals and disclosed basis tags.
- If multiple interpretive traditions are supported, each tradition’s mapping rules must be versioned and declared.
- 10. Validation, regression testing, and reproducibility
Validation focuses on computational correctness and consistency:
- Crosschecking computed pañcāṅga elements against trusted published sources.
- Unit tests for angle wrapping, boundary conditions at rāśi/nakṣatra edges, and transition detection.
- Regression tests for a curated set of natal charts and dates where the expected outputs are pinned.
For reproducibility, the system should record and/or publish:
- ephemeris library name + version,
- ephemeris dataset identifier (if applicable),
- ayanāṃśa standard,
- node model (mean/true),
- house system (if used),
- sunrise model (if sunrise boundary is used),
- timezone database version.
11. Known sources of variance across traditions
Expert practitioners will recognize legitimate variance caused by:
- ayanāṃśa standard selection,
- mean vs true node,
- house system choice,
- sunrise definition (apparent sunrise vs refraction model; geographic altitude),
- whether pañcāṅga computations are performed in tropical or sidereal frame,
- rounding conventions for reporting degrees and transition times.
- Jyotirmay treats these as explicit configuration choices rather than hidden assumptions.
12. Limitations and disclaimer
- Outputs may be materially affected by birth time uncertainty and timezone resolution errors (especially around historical transitions).
- This document describes deterministic computation. It does not claim a scientific causal mechanism for astrology.
- Jyotirmay should not be used as a sole basis for medical, legal, or financial decisions.
References
- Swiss Ephemeris Documentation (technical reference for ephemeris computations and sidereal options):
- https://www.astro.com/ftp/swisseph/doc/swisseph.pdf (Astro.com)
- NASA/JPL Solar System Dynamics — Horizons System Manual (authoritative reference on highprecision ephemerides and coordinate outputs):
- https://ssd.jpl.nasa.gov/horizons/manual.html (JPL Solar System Dynamics)
- IANA Time Zone Database (authoritative reference for historical timezone rules):
- https://www.iana.org/time-zones (IANA)
- NCERT (hosted by IIT Kanpur) — Knowledge Traditions and Practices of India, Chapter on Astronomy in India (definitions of sunrisebased day, tithi as 12° elongation, etc.):
- https://sathee.iitk.ac.in/ncert-books/class-11/knowledge-traditions-and-practices-of-india/chapter-05-astronomy-in-india/ (Sathee)
- India Meteorological Department / Positional Astronomy Centre brochure (Government of India context for Rashtriya Panchang and pañcāṅga elements):
- https://mausam.imd.gov.in/imd_latest/contents/pdf/pubbrochures/Positional%20Astronomy%20Centre.pdf (Mausam)