Skip to content
MayaAstro

Methodology

Every astrological choice we make, in plain English

Astrology is a craft of choices. Two practitioners working from the same birth data can produce different charts because they pick different reference frames, house systems, or ephemerides. We disclose every choice MayaAstro makes so you can decide whether our numbers match what you trust.

Reference frame

Vedic features use the sidereal zodiac with the Lahiri (Chitrapaksha) ayanamsa — the government-of-India standard adopted by most Indian almanacs (panchangs). Western features use the tropical zodiac measured from the moving vernal equinox. We never mix the two within a single feature.

House system

We use Whole Sign houses— the system used in classical Jyotish and in pre-Renaissance Western astrology. Each sign is one house; the rising sign is the first house. We chose Whole Sign because it's the system embedded in the texts most of our calculators draw from (Brihat Parashara Hora Shastra for dasha and yogas, classical compatibility texts for Ashtakoot Guna Milan). Other systems (Placidus, Koch, Equal, Porphyry) are valid choices for different traditions; we don't support them yet.

Ephemeris

All planetary positions come from a pure-TypeScript implementation of Jean Meeus' algorithms (Astronomical Algorithms, 2nd ed.) plus VSOP87 truncated terms for the Sun and Moon, and Keplerian orbital elements for the outer planets. We do notuse Swiss Ephemeris, JPL DE files, or any third-party astrology API. The tradeoff: our positions are accurate to within ~1 arc-minute for dates 1900–2100, which is well below the resolution at which any of our features actually matter (signs are 30°, nakshatras are 13°20', tithis are 12°). We rebuild deterministically — same input, same output, every run.

Time and timezone

All birth-data inputs are interpreted as local time at the birthplace. We convert to UTC using the longitude-based offset (lng/15 hours) — this is accurate to within 30 minutes for places near a standard meridian, and is the convention used by most Indian panchangs. For higher precision (e.g., to honor historical DST rules), enter the time you actually saw on the clock and we'll be within a degree.

The home page panchang uses your viewer location (Vercel geolocation header, or the location you set via the "Change" button on the Panchang card). Sunrise/sunset and the inauspicious periods (Rahu Kalam, Yamagandam, Gulika Kalam) are rendered in the local timezone of thatlocation, not your browser's.

Tithi, yoga, nakshatra

Tithi is computed from the sidereal Sun-Moon angular separation in 12° increments (30 tithis per lunar month, split into Shukla and Krishna paksha). Yogais the sidereal Sun+Moon longitude in 13°20' increments (27 yogas). Nakshatrais the sidereal Moon longitude in 13°20' increments (27 lunar mansions), with pada being the further subdivision into 4ths (108 padas total).

Sade Sati & Vimshottari Dasha

Sade Sati is detected by Saturn's sidereal sign relative to your natal Moon's sign — the classical 12th/1st/2nd-from-Moon test. Vimshottari Dasha follows the standard 120-year cycle (Ketu 7 + Venus 20 + Sun 6 + Moon 10 + Mars 7 + Rahu 18 + Jupiter 16 + Saturn 19 + Mercury 17), with the starting period's remaining duration calculated from your natal Moon's position within its nakshatra. Antardasha (sub-period) chains use the same proportional model.

Ashtakoot Guna Milan

All 8 koots (Varna, Vashya, Tara, Yoni, Maitri, Gana, Bhakuta, Nadi) follow the tables in Brihat Parashara Hora Shastra. Maximum is 36; auspicious threshold is 18. We surface two classical veto flags: Nadi dosha (same nadi for both partners — score 0 even if other koots are high) and Bhakuta dosha(specific moon-sign-distance afflictions: 6/8 and 5/9). We don't suppress a match on these; we surface them so you can read the result with full context.

AI interpretation

Every numerical result on this site is computed deterministically in TypeScript on our server. The AI layer (Claude Haiku 4.5 by Anthropic) is asked only to interpret those results in plain language — it never produces a number that feeds back into a calculation. If you read an interpretation that contradicts the numerical fields, trust the numbers. Every AI response has a static fallback that ships when the AI is unavailable.

Schools we acknowledge but don't implement

Jyotish has multiple coherent schools, each with its own choices. We don't currently implement these — but we acknowledge them so you know what we're NOT claiming:

  • Krishnamurti Paddhati (KP): a cusp-based Western-Vedic hybrid that uses sub-lords for prediction. Different ayanamsa (Krishnamurti, ~6 arc-min from Lahiri).
  • Raman ayanamsa:B.V. Raman's anchor differs from Lahiri by ~1°. We don't toggle ayanamsas; we use Lahiri exclusively.
  • Placidus, Koch, Equal, Porphyry houses: widely used in Western astrology for chart interpretation; we use Whole Sign across both traditions.
  • Lagna chart vs Moon chart vs Navamsa primary readings: classical Jyotish reads the natal chart from at least three vantage points. We compute the Lagna chart; Navamsa support is partial.
  • Jaimini astrology: uses Chara dasha, karakas, and pada-based prediction. We implement Vimshottari only.
  • Vakhya panchang school: traditional Tamil method based on tabulated mean motions. We use the Drik (computational /observational) school — same as DrikPanchang.com and most modern panchangs.

If your tradition uses one of these and our numbers don't match yours, that's the most likely reason. The methodology choice is not a quality judgment — it's a choice.

Varshaphal (annual Tajika)

The yearly horoscope PDF makes more interpretive choices than any other feature on the site (Pancha-Vargiya scheme, friendship table, Hadda boundaries, rating formula). Those choices are documented separately at /methodology/varshaphal so commercial-report readers can compare line-by-line.

Krishnamurti Paddhati (KP) — opt-in

KP is a 20th-century South Indian system codified by K.S. Krishnamurti (Reader I-VI, 1971-1973). The /kp page shows the 4-tier sub-lord chain (sign / star-nakshatra / sub / sub-sub) for every planet, the 7-factor Ruling Planets snapshot at chart time, and the 5-level Vimshottari chain (Maha → Antar → Pratyantar → Sookshma → Prana) active at the current moment. Default ayanamsa is the post-1971 Krishnamurti tables (Lahiri − 13.5″); KP1 epoch is also selectable. Placidus house cusps use Meeus AA Ch. 47 iterative semi-arc with polar fallback above |lat| > 66°. The /horary page implements the full KP-249 cusp table — derived programmatically from `getKPLords()` using exact rational arithmetic and cross-checked against published references (RedAstrologer, Aryan Astrology Research Centre). KP does not affect default Parashari outputs anywhere else on the site.

Jaimini Chara Karakas

Per Maharshi Jaimini's Upadesa Sutras (1.1.10-1.1.16), the 7 traditional planets are ranked by degree-within-sign — the highest is the Atmakaraka (soul significator), the lowest is the Darakaraka (spouse). The full chain (AK / AmK / BK / MK / PK / GK / DK) appears on the birth-chart pagefor sidereal (North/South Indian) chart styles. The 8-karaka variant (with Pitrukaraka and Rahu's reverse-degree convention, Sutras 1.1.16) is also implemented and selectable in code.

Karmic Journey — soul-curriculum layer

The /karmic-journey page surfaces the classical soul-curriculum view: that the chart is not a personality readout but an incarnational curriculum. Phase 2 ships Atmakaraka, Karakamsa Lagna, Ketu/Rahu axes, the 5-9-12 triangle, divisional karma lenses (D9/D12/D3), pada signatures (gana/yoni/varna/nadi), and a Haiku-4.5 synthesis layer constrained to cite classical sources and frame as curriculum, not prophecy.

  • Atmakaraka — Jaimini Sutras 1.1.10–1.1.16. Highest deg-in-sign across the 7 planets.
  • Karakamsa Lagna — Jaimini Sutras 1.2.1–1.2.85. Sign of the AK in the Navamsa (D9).
  • Ketu / Rahu axes — BPHS ch. 35 (Rahu-Ketu Adhyaya) + Phaladeepika 27. Past-life residue + this-life growth direction.
  • 5-9-12 triangle — BPHS ch. 19 (Bhava Phala) + Phaladeepika 14. Purva-punya / dharma / moksha arc.
  • Divisional rasis (D9 / D12 / D3) — BPHS ch. 7. Used for Karakamsa derivation and (Phase 2) ancestral-karma + incarnational-momentum lenses.

No prophecy. No past-life storytelling. Templated readings (Phase 1) keyed to (planet × house) and (sign × node), citing classical sources for every claim. The LLM-driven synthesis layer arrives in Phase 2, with the same constraints: curriculum, not verdict.

Tarabala & Chandrabala

Two personalised daily-strength metrics that read the user's natal Janma nakshatra from local browser storage and compute today's tara (9-cycle per Muhurta Chintamani 6.6) and Chandrabala (12-house Moon strength per Phaladeepika 24). Surfaced in a card on the daily calendar page once you set your janma nakshatra. The natal Moon rasi is approximated from the nakshatra midpoint — accurate to ±1 sign for all but cross-boundary nakshatras (Krittika, Mrigashira, Ashlesha-Magha, etc.).

Festival rules engine

40 festivals (and counting) computed from 5 rule kinds: lunar (Vikram Samvat month + paksha + tithi), tamil-month-day, tamil-month-tithi, tamil-month-nakshatra, and solar-sankranti. No per-year hard-coded dates — every festival is rule-derived from the panchang math. Coverage spans pan-Indian (Diwali, Holi, Maha Shivaratri, Krishna Janmashtami), regional (Onam, Vishu, Makara Vilakku, Thrissur Pooram, Kodungalloor Bharani, Aavani Avittam, Skanda Sashti), and non-Hindu (Mahavir Jayanti, Paryushan, Guru Nanak Jayanti, Vaisakhi, Buddha Purnima). All implementations cite primary classical sources (Bhavishya, Padma, Skanda Puranas; temple traditions; Sikh / Jain canonical texts); no AGPL data ports.

What we don't do

  • Predict your death, divorce, or financial ruin.
  • Combine sidereal and tropical positions in a single chart.
  • Use a paid ephemeris that locks readings behind a subscription.
  • Store your birth data after the request returns.
  • Sell, share, or analyze your chart for advertising.

Have a question about a specific calculation? The full source for every algorithm lives at github.com/ranganc007/mayaastro. See also About.