Daily Lagna transitions
personal.lagna-transitions
Swiss Ephemeris houses and bisection locate ascendant sign changes through the day.
Assurance
| Level | Current statement |
|---|---|
| Documented and traceable | Yes — the canonical record includes the process and a worked example. |
| Regression or reproduction checked | Linked to 2 repository test file(s). |
| Independently source-supported | Not independently verified at this level; current behavior is regression-pinned. |
Computation method
Method type: algorithm
Compute the tropical Ascendant from Swiss houses, subtract Lahiri ayanamsa, scan sunrise to next sunrise at five-minute steps, and bisect every Rashi change to half-minute precision.
Process
- Compute next sunrise and set Lahiri sidereal mode.
- At an instant, obtain the Placidus Ascendant, subtract ayanamsa, normalize, and divide by 30 degrees.
- Scan in five-minute Julian-day increments.
- When the sign changes, bisect until the bracket is at most 0.5 minute and close the current Lagna window.
- Append the final window through next sunrise.
Formulae
Sidereal Lagna index
r = floor(((asc_tropical - ayanamsa) mod 360)/30)- r: zero-based rising Rashi index
Worked example
Hyderabad, 2024-01-01
Inputs
- Location: 17.385 N, 78.4867 E
- Day start: local sunrise 06:45:59 IST
Calculation
- The sunrise Ascendant maps to Dhanu.
- A five-minute scan brackets the next sign change and bisection refines it.
Result
- Dhanu Lagna: 06:45:59-07:47:23 IST
- Makara Lagna begins: 07:47:23 IST
Method notes
- The Python owner computes the transitions; the browser consumes generated data and is not an independent astronomical implementation.
Contract
Owning layer: personal
Claim kind: deterministic-fact
Time basis: Local sunrise-to-next-sunrise with UTC bisection of ascendant crossings.
Inputs
- date
- location
- sunrise
- next sunrise
Outputs
- Lagna Rashi transition windows
References and evidence
Evidence classes: astronomical
Verification states: engine_pinned
Transitions are numerically and integration tested; independent city/date comparison cells are 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-librarymcpwebsitegenerated-data
Limitations
- The browser mirror renders generated transitions; it does not independently recompute the ascendant.
Implementation
- owner:
telugu_panchangam/personal/lagna_hora.py—get_lagna_transitions - mirror:
src/panels/today.ts—lagnaSegments
This route is generated from computations.json. Edit the registry and canonical reference prose in the same pull request as a behavior change.