Planetary rashi ingresses
calendar.rashi-ingresses
Sidereal sign changes, including retrograde re-entry, are found over a requested range.
Assurance
| Level | Current statement |
|---|---|
| Documented and traceable | Yes — the canonical record includes the process and a worked example. |
| Regression or reproduction checked | Linked to 1 repository test file(s). |
| Independently source-supported | Not independently verified at this level; current behavior is regression-pinned. |
Computation method
Method type: algorithm
Follow sidereal longitude through adaptive time steps, bisect each 30-degree sign-index change, and continue past the crossing so direct and retrograde re-entries are both emitted.
Process
- Validate the planet subset and select the requested ayanamsa.
- Compute sidereal longitude and speed; add 180 degrees for Ketu because it shares Rahu's Swiss body.
- Choose an adaptive step from distance to the nearest sign boundary and absolute speed.
- When the sign index changes, bisect for 44 iterations and record the new Rashi.
- Search again just after entry for its exit, repeat through the inclusive range, sort chronologically, and restore Lahiri mode.
Formulae
Rashi index
r = floor((lambda mod 360) / 30) mod 12- lambda: configured sidereal longitude
- r: zero-based Rashi index
Worked example
Sun enters Makara, 2026
Inputs
- Range: 2026-01-01 through 2026-02-28
- Planet: Sun
- Ayanamsa: Lahiri
Calculation
- The sign index changes to Makara and the crossing is bisected.
- The following crossing supplies the exit from Makara.
Result
- Makara entry: 2026-01-14 09:37:19 UTC
- Makara exit/Kumbha entry: 2026-02-12 22:38:58 UTC
Method notes
- The Moon is intentionally absent from INGRESS_PLANETS; the output does include retrograde re-entry rather than assuming sign order is always forward.
Contract
Owning layer: calendar
Claim kind: deterministic-fact
Time basis: UTC Julian-day crossing search.
Inputs
- date range
- planet
- sidereal longitude model
Outputs
- ingress instant
- from rashi
- to rashi
- motion direction
References and evidence
Evidence classes: astronomical
Verification states: engine_pinned
Crossing behavior is regression-tested; independent event-cell evidence is not registered.
No registered claim ID; the provenance note below is the current disclosure.
The complete machine-readable source registry is available in provenance.json. A regression fixture or same-code reproduction is not independent verification.
Reproduce and review
Run the linked tests, then the complete offline contract:
python tools/verify_project.pyPublic surfaces
python-librarymcp
Limitations
- Moon is excluded and results follow the fixed sidereal model used by this module.
Implementation
- owner:
telugu_panchangam/ingress.py—rashi_ingresses
This route is generated from computations.json. Edit the registry and canonical reference prose in the same pull request as a behavior change.