Natal chart
A natal chart (birth chart, horoscope) is a map of celestial bodies and chart angles at the instant and geographic location of birth. Western astrology uses it for temperament, life themes, and timing — not as a deterministic event forecast.
The core.chart provider computes a structured tropical natal chart by default: ecliptic longitudes, sign placement, optional house cusps, body-in-house assignments, and DTO output for wheels or tables. Positions use a VSOP87-based ephemeris (VsopEphemeris), not Swiss Ephemeris.
Operations
| Operation | Output longitudes |
|---|---|
calculate |
Tropical λ in body snapshots |
calculate_sidereal |
Sidereal λ (ayanamsa from BirthInput) |
Both share the same pipeline; see sidereal-vs-tropical.
Calculation pipeline
- Normalize birth input — UTC instant, latitude, longitude (birth-input, time-zones, data-quality)
- Julian Day + VSOP evaluation (julian-day-ephemeris, vsop87)
- Geocentric ecliptic longitudes (ecliptic-longitude, geocentric-vs-topocentric)
- Tropical signs or sidereal via ayanamsa (tropical-zodiac, sidereal-vs-tropical)
- Houses and angles from place + time (houses, house-systems-comparison, chart-angles, chart-points)
- Planet positions map (sign, degree, house) (planet-positions, lunar-nodes)
Foundations worth reading first
- coordinate-systems — equator, ecliptic, horizon
- ecliptic-and-equator — why signs use the ecliptic
- obliquity — tilt between equator and ecliptic
- ephemeris-uncertainty — what accuracy to expect
- birth-time-accuracy — when angles are trustworthy
Raw position/house APIs live on vsop.ephemerides; core.chart wraps them into NatalChartOutput.
Western wheel reading (interpretation, not calculation): overview, natal-wheel.