Skip to content
docs
UseBuildChangelog
Open Lumin

Reference

All MCP tools

Lumin exposes 221 tools through the MCP protocol. The 218 engine-backed ones are catalogued below. The other two compute nothing and carry the reading protocol instead.

Generated from kp-mcp/src/mcp/tools.ts on 2026-09-14.

Start here

set_birth_profile is the first call in every reading. It validates birth data and returns the tool list and the minimum call count for the user's question. get_reading_protocol returns the full methodology when a client truncates the server instructions.

Neither is generated from the tool table, so both live on the meta-tools reference rather than in the catalog below.

Chart foundation

17 tools

Aspects & Strength

get_aspects_and_strength

Planetary aspects + 5-factor house strength scores (0-100) + deep retrograde analysis. Returns '{ aspects: [{ from, to, type: OPPOSITION/TRINE/SQUARE/SEXTILE, separationDeg, strength }], houseStrength: { 1..12: { total, aspectScore, occupantScore, lordScore, dignityScore, planetScore } }, retrogradeBlock: { perPlanet, naturalCycleStatus } }'. **Not KP.** The aspects are Parashari graha drishti (Mars 4/8, Jupiter 5/9, Saturn 3/10) and the strength score is built from natural benefic/malefic class, dignity and combustion, which KP judges by none of: it decides on the stellar signification chain and the cuspal sub lord. Reference and cross-system comparison only, never an input to a KP verdict. For full Shadbala (6-fold strength of planets) use 'get_shadbala'. For full Bhava Bala (6-fold strength of houses) use 'get_bhava_bala'.

Ayanamsa Frame Spread (what the choice of ayanamsa actually changes)

get_frame_spread

Builds the SAME chart under every ayanamsa the engine implements and reports exactly which positions change lord and which hold. Use it instead of a birth-time disclaimer: the frames disagree by a fixed ~5.6 arcminutes, so the set of positions that actually move is small and nameable. Returns per cusp and per planet the levels that move (sign / star / sub / subSub) with the lord each frame gives, the base lords always, a 'summary' with 'frameIndependentAtSub' (true for roughly half of charts, which is a stronger statement than any caveat), the dasha balance spread in days (a fixed offset carried to every later period boundary, and a flag when the frames disagree on the birth mahadasha lord outright), and 'birthTimeEquivalence': how much clock-time error each position's frame spread is worth. That last block is the reframe. On the Ascendant the whole family is worth well under a minute of birth time, so the frame is noise there; on the slow planets it is worth hours or days, so the frame is the entire uncertainty and no birth-time precision can settle it. Nothing here is scored, ranked or averaged, and no frame is preferred: a position either changes lord or it does not. All six frames are computed, 'true_chitra' from Spica's apparent place, so none carries an 'aliasOf'.

Full KP Birth Chart

get_full_chart

The opening layer of a KP birth chart, in one call. Returns '{ planets[9], houses[12], currentDasha, rulingPlanets, detail }'. Each planet carries sign, house, degree, sign/star/sub lord, retrograde and combust; each house its sign and three lords; 'currentDasha' names the running MD, AD and PD WITHOUT their subtrees. Use when: you need an overview or are starting any reading. **This is deliberately not everything the engine computed, and the 'detail' block in the response names the tool holding each deeper layer**: 'get_planets' for sub-sub lord, KP number, nakshatra, pada and dignity, 'get_house_cusps' for cusp longitudes, 'get_significators' for the 4-level matrix, 'get_dasha_periods' and 'get_pratyantardasha_periods' for the dasha tree, 'get_boundary_warnings' for sub lord credibility. Call those rather than assuming this covered them. The significator matrix in particular is NOT repeated here, because it is byte for byte what get_significators returns and the protocol calls that tool anyway.

Functional Benefic and Malefic by Lagna (BPHS ch. 34)

get_functional_nature

Parashari, not KP. Which planets are functional benefics, malefics, neutrals, yogakarakas and marakas for a lagna, from BPHS ch. 34. Returns TWO answers side by side and names where they differ, because the text gives two: 'stated' is the per-lagna table as printed (vv. 19-44, each row quoting its verse), and 'derived' is the rule of vv. 2-17 applied to lordship alone (kona lords auspicious, 3/6/11 lords evil, kendra lords lose their natural quality, the lagna lord specially auspicious, the 8th lordship of Sun and Moon not evil, kendra-plus-kona lord a yogakaraka). 'departures' lists every planet on which table and rule disagree, and they do disagree: Libra's Moon is named a Raja Yoga giver while owning only the 10th, Aries' Mars is hedged to 'helpful' where the rule makes a lagna lord plainly auspicious. Neither is corrected to match the other. Reads the lagna from the birth chart; pass 'lagna' to ask about another lagna directly. Rahu and Ketu are outside the table by v. 16. Edition stated (Santhanam 1984; Sharma numbers this ch. 35).

House Cusps

get_house_cusps

Placidus house-cusp positions for the 12 houses. Each cusp returns '{ siderealLongitude, sign, signLord, signDegree, nakshatra, starLord, subLord, kpNumber }'. The sub-lord (CSL, Cuspal Sub Lord) is the deciding planet for that house's significations per KP methodology. For boundary-flag warnings (cusps within 10 arc-minutes of a sub-lord boundary), see 'get_boundary_warnings'.

Kala Sub-Lord Boundary Warnings (cusp + planet)

get_boundary_warnings

Flags every house cusp and natal planet that sits within 10 arc-minutes of a sub-lord boundary. Per KP Reader 1 a 6 arc-minute (1 Kala) shift can flip the sub-lord and invert the prediction. CRITICAL means within 6 arc-minutes (sub-lord could flip on small ayanamsa or birth-time correction). CAUTION means within 10 arc-minutes. Run this before relying on borderline CSL verdicts; it is the cheapest credibility check available.

KP Stellar Western Aspects

get_stellar_aspects

Longitude-based harmonic aspect engine that complements the Parashari sign-aspect set. Detects aspects at 0°/30°/36°/45°/60°/72°/90°/108°/120°/135°/144°/150°/162°/180° plus the 22.5° harmonic series (22.5°/67.5°/112.5°/157.5°) with per-aspect orbs. Each detected aspect is annotated with polarity (good/bad/neutral), magnitude (major/minor), exactness, and SUB-LORD RESONANCE — when planet A's sub-lord is B, or both share a sub-lord, the aspect intensifies during the dasha of either planet. Use to surface stressful or supportive planetary tensions invisible to sign-aspect analysis.

Monthly Ephemeris

get_ephemeris

Daily sidereal positions for all 9 KP planets across one month. No birth data required. Returns '{ month, totalDays, days: [{ date, planets: { Sun..Ketu: { siderealLongitude, sign, isRetrograde, dailyMotion } } }], pagination, pageNote }'. **Paged by day**, since a month of 9 planets does not fit one response. If you want one date, ask for that date's page rather than reading the month. Use for: external transit-planning workflows or generating ephemeris tables.

Nakshatra Details

get_nakshatra_details

Per-planet nakshatra (lunar mansion) details + planet friendship tables. Each nakshatra spans 13°20' and is divided into 4 padas (3°20' each). Returns '{ chart_info, planet_pada: { Sun..Ketu: { nakshatra, pada (1-4), navamsaSign, padaDeity } }, navamsa_chart, planet_relationships: { summary, relationships[] }, pagination, pageNote }'. 'planet_pada' is the part a reading usually wants and repeats on every page; **the pairwise 'planet_relationships.relationships' are paged**, since natural and temporary relationships between every pair of planets is a table, not a verdict.

Node Cascade Audit (Rahu/Ketu)

get_node_cascade

Returns the orthodox KP cascade for both nodes (Rahu and Ketu), with conjoined planets, star lord, aspecting planets, and dispositor (sign lord), showing which planets contribute to each node's significations via which mechanism. Per KP Reader 1 p.158 and Reader 6 p.221/286. Use to debug or audit any reading whose verdict depends on a node being CSL or fruitful significator.

Planetary Avasthas, all five families (BPHS ch. 45)

get_avasthas

Parashari, not KP. The five avastha families of Brihat Parashara Hora Shastra ch. 45, per planet, each with its verses: baladi (vv. 3-4: infant, youthful, adolescent, old, dead by six-degree bands, ascending in odd signs and reversed in even, graded one fourth / half / full / negligible / nil), jagradadi (vv. 5-6: awake, dreaming, asleep by dignity), deeptadi (vv. 7-10: nine states by dignity and relationship, every one that holds listed), lajjitadi (vv. 11-18: six states by placement, company and aspect, with v. 18's 'bhavaDestroyed' for Kshudhita and Kshobhita), and sayanadi (vv. 30-39: the twelve states by the stated formula, working shown). Every definition is at the SIGN level as the text states it: exaltation is the exaltation sign, conjunction the same sign, Drishti is graha drishti counted sign to sign, houses are whole sign; the moolatrikona ranges are ch. 3 vv. 51-54 and benefic/malefic follow ch. 34 vv. 8-10. The sayanadi SUB-STATE (Drishti/Cheshta/Vicheshta) needs the Anka value of the first syllable of the native's name, which no chart carries: pass 'name_anka' (1 to 5) to compute it, otherwise it is reported as not computable with the reason, never defaulted. Edition stated (Santhanam 1984). Gates no KP verdict.

Planetary Positions

get_planets

Sidereal positions for all 9 KP planets (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu). Returns '{ Sun..Ketu: { siderealLongitude, sign, signLord, signDegree, nakshatra, starLord, subLord, kpNumber (1-249), pada, dignity (EXALTED/OWN/FRIEND/NEUTRAL/ENEMY/DEBILITATED), isRetrograde, isCombust, combustionGrade (NONE/ORDINARY/FULL), house } }'. For combustion-only analysis use 'get_combust_planets'.

Rasi Drishti, sign-to-sign aspect [Jaimini, BPHS ch. 8 v. 9]

get_rashi_drishti

[Jaimini adjunct] The sign-to-sign aspect Jaimini and BPHS ch. 8 v. 9 share: a movable sign aspects the three fixed signs other than the one next after it, a fixed sign the three movable signs other than the one next before it, a dual sign the other three dual signs; symmetric. Returns for every sign the signs it aspects, the planets aspecting it and its occupants on this chart. This is the rule under the arudha aspects and the Drig dasha; it had been computed inside get_arudha_lagna since F050 corrected it and reachable from nothing else. Not the graha drishti of the planets.

Relocation Chart (Astrocartography Lens)

get_relocation_chart

Recomputes lagna and house cusps for an alternate latitude/longitude at the original birth datetime. Planets do not move (geocentric positions unchanged) but house assignments shift. Use for 'where should I move/work?' analysis, strong NRI / immigration-consultant appeal. Returns the relocated ascendant, all 12 cusps, and per-planet house-shift between natal and relocated charts.

Special Lagnas (BPHS ch. 5: Bhava, Hora, Ghati, Varnada; ch. 3: Pranapada)

get_special_lagnas

Parashari, not KP. The five special lagnas Brihat Parashara Hora Shastra constructs, each with its verses: Bhava Lagna, Hora Lagna and Ghati Lagna advance from the Sun's longitude AT SUNRISE at 6, 12 and 30 degrees per ghati of time elapsed since that sunrise (ch. 5 vv. 2-8); Varnada Lagna is a SIGN reached by the odd/even counting rule of ch. 5 vv. 10-13 from the natal lagna and the Hora Lagna, with the working shown; Pranapada is the natal Sun advanced 120 degrees per ghati with the fixed/dual sign offset of ch. 3 vv. 71-74. The day is sunrise to sunrise, so a birth before dawn measures from the previous sunrise. Each point carries its sidereal longitude, sign, whole-sign house and Sripati house. Sree Lagna and Indu Lagna are NOT in BPHS and are returned under 'notComputed' with the reason, rather than built from a summary and labelled Parashari. Hora Lagna and Ghati Lagna are the inputs to the Jaimini longevity lagna-pairs. Source is stated with the edition (Santhanam 1984). Nothing here gates a KP verdict.

Sub-Sub-Lord Boundary Sensitivity

get_subsub_boundary

Quantifies how close every house cusp and planet sits to a sub-sub-lord boundary (the 2,187-cell KCIL precision grid). Returns per-position arc-seconds to nearest boundary, the alternate sub-sub-lord that would apply if the position shifted across the boundary, and a CRITICAL/WARNING/STABLE flag. Includes a 0-100 twin-divergence index estimating how strongly this chart's KCIL-level predictions depend on birth-second precision. Use for birth-time precision audits, twin-chart analysis, and boundary-sensitive rectification.

Upagrahas: Gulika/Mandi, the kaala velas, and the Dhuma group (BPHS ch. 3)

get_upagrahas

Parashari, not KP. The sub-planets of Brihat Parashara Hora Shastra ch. 3, each with its verses. The Dhuma group (vv. 61-64) is arithmetic on the natal Sun: Dhuma = Sun + 4 signs 13°20′, Vyatipata = 12 signs − Dhuma, Parivesha = Vyatipata + 6 signs, Indrachapa = 12 signs − Parivesha, Upaketu = Indrachapa + 16°40′; the text supplies its own check (Upaketu + one sign = the Sun) and it is returned as 'dhumaGroupResidual'. The kaala velas (vv. 66-70) divide the day (sunrise to sunset) or night (sunset to next sunrise) into eight parts lorded from the weekday lord by day and the fifth weekday's lord by night, the eighth lordless: Saturn's part is Gulika, the Sun's Kaala, Mars' Mrityu, Jupiter's Yamaghantaka, Mercury's Ardhaprahara. v. 70 gives Gulika's LONGITUDE as the Ascendant rising at the start of its portion; the other four are given the same rule by extension and say so. Gulika is also called Mandi; the later mid-portion reading is reported beside the BPHS point and labelled as not in the text, so a caller comparing against software can see why they differ. Every point carries whole-sign and Sripati houses. Edition stated (Santhanam 1984). Gates no KP verdict; the engine already computes Gulika as a TIME WINDOW in the panchang, and this is the POSITION.

Promise analysis

14 tools

Advanced CSL Analysis

get_csl_advanced

Advanced CSL (Cuspal Sub Lord) analysis with 4 deepening layers: (1) multi-cusp convergence, all related cusps checked independently, (2) cuspal interlink event scoring, (3) 6-level sub-lord constellation mapping (sign→star→sub→sub's sign→sub's star→sub's sub), (4) cusp-degree sensitivity flag (boundary conditions within 10 arc-minutes). Returns '{ multiCuspConvergence, interlinkScore, sublordChain[6], sensitivityFlags[] }'. Essential for thorough promise analysis on borderline charts.

Argala, intervention from planets (BPHS ch. 31, the Parashari form)

get_argala

Parashari, not KP, and the BPHS form only: whether Jaimini judges a matter BY argala is Q032's question and is not answered here. From Brihat Parashara Hora Shastra ch. 31 vv. 2-18: planets in the 2nd, 4th, 11th (and 5th) from a reference cause argala, planets in the 12th, 10th, 3rd (and 9th) obstruct it, counted from the reference per Santhanam's note; argala prevails when the causing planets outnumber the obstructors; the grade is one planet limited, two medium, more than two excellent; three or more malefics in the 3rd are vipreet argala, 'harmless and very favourable'. The reference is the lagna by default, or any bhava ('reference_house', whole sign from the lagna) or planet ('reference_planet'). Two lines the text leaves open are REPORTED BOTH WAYS rather than picked: the v. 10 quarter rule (obstruction only when the two planets sit in matching quarters, 1st with 4th, 2nd with 3rd, which much software ignores) gives the primary 'verdict', with 'verdictByHouseAlone' beside it; and the ambiguous node reversal ('counted accordingly in a reverse manner') is applied in the common reading with 'withoutNodeReversal' beside it. What is NOT applied is named: the strength branch ('if the Argala causing Grah is stronger'), because no sourced Parashari strength exists in the engine (F047), so equal counts are returned as undecided; and the dasha timing. Subha, papa or mixed argala by ch. 34 vv. 8-10. Edition stated (Santhanam 1984; ch. 32 in Sharma). Gates no KP verdict.

Bayesian Event Probability Score

get_event_probability

[Lumin extension, not a KP verdict] A per-planet 0-1 activation INDEX from explainable feature weights: matrix level (L1=1.0, L2=0.7, L3=0.5, L4=0.3), Ruling Planet presence (+0.30), active dasha layers (+0.25 each), natal retrograde (-0.20), denial-house overlap (up to -0.25), logistic-squashed. It is NOT a probability and the response's scoreProvenance says so: KP assigns no number to anything (Q012) and states there is no place for probabilities (KP-ABSOLUTES A7); every weight here is a Lumin convention. Returns ranked significators with per-feature contributions and a STRONG/MODERATE/WEAK/NEGLIGIBLE band that is not comparable with any other tool's band (F031). Use to ORDER candidates within one reading, never to state a likelihood; the promise verdict comes from analyze_natal_promise.

Bhadhakasthana / Maraka House Selector (KP)

get_bhadhakasthana

KP bhadhakasthana selection by lagna mobility class (KP Reader 3 ch.1 p.153). Movable lagna (Aries/Cancer/Libra/Capricorn) maps to 11th house, fixed lagna (Taurus/Leo/Scorpio/Aquarius) maps to 9th house, dual lagna (Gemini/Virgo/Sagittarius/Pisces) maps to 7th house. Returns the bhadhaka cusp's CSL, its star lord, all signifying planets, and a danger flag when the bhadhaka CSL also signifies maraka houses (2/7/8/12).

Bosmia 6-Fold Significator Matrix

get_bosmia_significators

Kanak Bosmia's 6-Fold Significator Matrix extends KP's L1-L4 with L5 (sub-sub-lord of cusp + its star satellites) and L6 (sub-lord of occupant + sub-lord of cusp lord). Also returns the 7-Ruling-Planet set (Lagna sign/star/sub + Moon sign/star/sub + Day Lord) instead of the canonical 5. Use when standard 4-level matrix produces too few candidates or for cross-school comparisons.

Cuspal Interlink Strength Matrix

get_interlink_strength_matrix

Computes a 12×12 cuspal interlink strength matrix. Each cell scores how strongly cusp i's {sub, star, sign} lords appear among cusp j's {occupant, owner, star-of-occupant, star-of-owner}. Weights: sub-lord match = 3, star-lord = 2, sign-lord = 1. Per-cell max = 24. Returns '{ matrix, flatTopLinks, averageRatio, densestHouse, methodologyNote, summary, pagination, pageNote }'. **'matrix' is paged by row**, one row per cusp with all 12 of its cells intact, so a page is whole cusps and never half a row. 'flatTopLinks' (the 24 strongest links overall), 'densestHouse' and 'averageRatio' repeat on every page and are usually the answer on their own, so page into the full matrix only when you need a specific cusp pair the top links do not cover.

Four Step Theory Cross-Validator (Gondhalekar)

get_four_step_verdict

Sunil Gondhalekar's Four Step Theory, as a cross-validator. A post-Krishnamurti extension, not KSK's own doctrine. KP treats the Sub Lord as the end-result indicator; Four-Step Theory treats the STAR LORD OF THE SUB LORD as the end-result indicator. Running both side-by-side per cusp produces an agreement signal: STRONG_AGREEMENT (≥75% of cusps agree) → high confidence; PARTIAL_AGREEMENT (50-74%) → moderate; DIVERGENCE (<50%) → borderline reading requiring deeper analysis. Use as a second-opinion layer after analyze_natal_promise.

KCIL Weighted Verdict (Khullar)

get_kcil_verdict

S.P. Khullar's three-authority KCIL weighted verdict — produces a 0-100 KCIL score per house cusp instead of KP's binary promise/denial. Star Lord (15% weight) proposes, Sub Lord (60%) disposes, Sub-Sub Lord (25%) delivers the end result. Returns per-cusp scores with full lord-level breakdown (housesSignified, supportingHits, denialHits) and an overall score with verdict thresholds (≥70 STRONG_PROMISE, 50-69 MIXED, 30-49 WEAK, <30 DENIED). Use as a continuous-scoring alternative to analyze_natal_promise when you want a graded readout. Accepts an event name OR custom (primary_houses + house_group + denial_group).

Multi-System Verdict Comparator

get_multi_system_verdict

Cross-SCHOOL verdict for an event, inside the KP lineage only. Runs orthodox KP CSL analysis, KCIL (Khullar weighted 15/60/25), 4-Step (Hariharan star-lord-of-sub-lord, corrected attribution per F037), and Bosmia 6-fold (filtered through 7-RP), and returns four normalised verdicts with a consensus band and an average score. **Every number it emits is a Lumin convention and the response says so in 'scoreProvenance'** (F031): averaging four schools presumes they measure one quantity from four angles, and they do not, they differ on which lord carries the authority. For the same comparison with no arithmetic at all, and reaching past the KP lineage to Parashari, Jaimini and Tajik, call 'get_paradigm_panel' instead.

Natal Promise Analysis

analyze_natal_promise

Run Cuspal Sub Lord (CSL) promise analysis across every defined life event. The CSL is the planet ruling the sub-division at a house cusp, KP's deciding factor for whether an event is promised at all. Each row returns the verdict AND the reasoning behind it: '{ event, house, csl, chain, verdict: ACTIVE|MIXED_ACTIVE|PARTIALLY_ACTIVE|DENIED, coverage, reason, required[], covered[], missing[], signifies[], levels: {L1..L4}, starLord, starLordSignifies[], starLordDenial, motion, notes }', plus 'mixed' on a sequential outcome and 'bhadhaka' on a longevity-class event. **'motion' reports the CSL's retrograde, combustion and dignity state and gates nothing** — see the response's 'motion_policy'. Paged: read 'pagination.totalItems' and request further pages rather than assuming the first page is everything. Use when: starting any life-area question, and call it BEFORE any timing tool.

Paradigm Panel (one matter, every system, as parallel arguments)

get_paradigm_panel

Reads ONE matter (marriage, career or health) through every system this engine implements and returns them as parallel arguments, never as a verdict. Seven systems: KP, KCIL, Four Step and Bosmia (the KP lineage, which DO define a promise procedure), plus Parashari, Jaimini and Tajik (which do not). **It is a reader, not a judge.** A system that defines no promise gate returns 'NO_VERDICT_PROCEDURE' with its findings, and a system with no route to the matter returns 'SILENT' with the reason, because manufacturing a Parashari PROMISED to fill a column would be fabricating a tradition's opinion. That is the panel's main finding: KP's distinguishing feature is that it HAS a verdict procedure, while Parashari and Jaimini give significators rather than a gate. Tajik reads a YEAR, so it is silent on natal promise until 'target_year' is named, and what it says then is about that year and is not comparable with a natal verdict. Every claim carries a source class ('corpus', 'classical', 'disputed', 'later', 'derived', 'unsourced', 'unattributed', the last meaning standard practice this repo has not pinned to an edition and a locus), and 'unattributedClaimCount' says how many claims in the panel rest on nothing verified. **There is no score, no average, no consensus figure and no vote**: the systems disagree about what a promise is, so a tally would present incommensurable claims as commensurable ones. Instead 'disagreement.type' names HOW they relate (CONCORDANT, CONCORDANT_ON_DIFFERENT_GROUNDS, SPLIT_VERDICT, TIMING_DIVERGENCE, SINGLE_VOICE, NO_VERDICT_TO_COMPARE) and 'sharedGrounds' names the houses and planets two systems literally have in common. Pass 'frames' to cross the panel with the ayanamsa axis and learn which of these conclusions survive a change of zero point. Present the arguments to the user; do not resolve them.

Significator Matrix

get_significators

KP 4-level significator matrix linking the 9 planets to the 12 houses they activate. Levels: **L1** = planet in star of house occupant (strongest), **L2** = planet directly occupying the house, **L3** = planet in star of cusp lord, **L4** = planet is the cusp lord. Returns '{ byHouse: { 1..12: [{ planet, level, throughPlanet }] }, byPlanet: { Sun..Ketu: [...] } }'. Use after 'analyze_natal_promise' to drill into WHY a dasha period activates a specific event.

Sudarshana Chakra (BPHS ch. 74): one chart read from lagna, Moon and Sun

get_sudarshana_chakra

Parashari, not KP. The Sudarshana Chakra of Brihat Parashara Hora Shastra ch. 74 (Santhanam; ch. 75 in Sharma): three rings of twelve whole-sign bhavas counted from the lagna, from the Moon's sign and from the Sun's sign (vv. 4-6), each bhava judged by the majority of benefic over malefic influences among its occupants and the planets aspecting it by graha drishti, with the lord counting for advancement (vv. 10-14), the Sun taken benefic in a ring's first bhava and malefic elsewhere and an exalted malefic exempted (v. 9). The composite reports, bhava by bhava, whether the three rings AGREE, as a word and never as a score. THE GATE IS APPLIED: vv. 19-20 say the chakra is to be used only when the Sun, the Moon and the lagna are in three different signs, otherwise 'the judgment of effects should be made from the Rasi Kundali only'; 'applicable' and its reason are returned and the rings are still shown. Also returns the Sudarshana dasha of vv. 21-26 (each bhava a year in turn from the first, twelve repeating, and a month within the year) for 'at', defaulting to now, with the assessment lists the verses give for the year-lagna. Names what is NOT applied: the v. 13 strength tie-break (no sourced Parashari strength exists in the engine, see F047), the vv. 15-16 saptavarga modulation, and the vv. 27-28 Ashtakavarga cross-check. This is the closest thing Parashari has to a convergence procedure and is the candidate for the panel's Parashari column. Edition stated. Gates no KP verdict.

The 12-Cusp Promise Map (KP Reader 3, the cuspal sub lord procedure on every cusp)

get_promise_map

The one-page natal promise map: for each of the twelve cusps, its sub lord (the CSL), the CSL's own star lord, the houses the CSL signifies through the four levels (L1 to L4, positional status applied), and the verdict on every life event whose primary cusp this is, judged by the SAME gate analyze_natal_promise runs, so the map cannot disagree with that tool. Each matter carries its required and denial houses, the houses covered and the detrimental ones signified. 'signifiedHistogram' counts how many of the twelve CSLs reach each house (a count, never a ranking); 'explains' on each row names the derived-house readings that land on it (the 8th is the 2nd from the 7th, the spouse's wealth; the 6th is the 12th from the 7th, loss of marriage); 'derivedHouses' is the whole table. A MIXED_ACTIVE row is reported exactly as the gate reports it, with no weighing. Retrogression and combustion are reported and gate nothing. Use it to read the whole chart's promise before asking about one matter, and drill into any row with analyze_natal_promise on the event named.

Dasha timing

14 tools

Advanced Dasha Analysis

get_dasha_advanced

Advanced dasha analysis: stellium detection (mutual nakshatra network between MD/AD/PD lords), contradiction resolution (L1/L2 vs L3/L4 strength when lords conflict), Sookshma-Prana integration (hour-level timing using 4th and 5th dasha levels), and MD junction overlap windows (high-probability timing at mahadasha boundaries). **'sookshmaPrana.peakWindows' is paged**; 'stellium', 'contradiction', 'dashaOverlap' and 'summary' are small and repeat whole on every page, so read the verdicts from page 1 and page on only when you need more hour-level windows.

Annotated Dasha Timeline

get_annotated_dasha

Full Vimshottari timeline (mahadashas + antardashas) annotated with house significations and event-potential scoring for each period. Returns '{ moonNakshatra, mahadashas: [{ planet, startDate, endDate, signifiedHouses[], themes, isCurrent, eventPotential, subPeriods: [{ planet, startDate, endDate, signifiedHouses[], isCurrent, eventPotential }] }], pagination, pageNote }'. **Paged by mahadasha**, each returned whole with its 9 antardashas, so one page is a complete life chapter rather than a partial one. Use when: 'show me my full life timeline' / 'which dasha is best for X?'.

Ashtottari Dasha, 108-Year Cycle [Vedic Alt-Dasha]

get_ashtottari_dasha

[Vedic alt-dasha adjunct] 108-year cycle, 8 planets (no Ketu): Sun(6), Moon(15), Mars(8), Mercury(17), Saturn(10), Jupiter(19), Rahu(12), Venus(21). Best applied for births during day in Krishna Paksha. Returns each period with start/end dates, current/past/future flags. Cross-validates Vimshottari.

Chidra Dasha Windows

get_chidra_dasha

Last 1/8 of every mahadasha, the classical 'Chidra' window of transition, anti-climax, and karmic close-out. Returns each MD's Chidra start/end dates, the broader 1/4 window, and current/past/future flags. Use to advise pausing major launches as a mahadasha approaches its close. Books: KP Reader 3 ch.51.

Conditional Nakshatra Dashas (BPHS ch. 46): which of the nine applies, and its timeline

get_conditional_dashas

Parashari, not KP. Brihat Parashara Hora Shastra ch. 46 names nine nakshatra dashas beside Vimshottari and says they are 'followed in special cases' (vv. 2-5): Ashtottari, Shodashottari, Dwadashottari, Panchottari, Shatabdika, Chaturashiti-sama, Dwisaptati-sama, Shashtihayani, Shat-trimshat-sama, and gives Yogini (vv. 195-199) with no case. This tool evaluates every one of the text's conditions on the chart (vv. 17-43: Rahu's place from the lagna lord, day or night birth with the paksha, the lagna's hora, the navamsa and dwadasamsa lagna, vargottama, the 10th lord in the 10th, the lagna lord in the 1st or 7th, the Sun in the lagna) and returns 'applicability' for all nine with the verse and the reason, 'applicable' naming those that hold, and a full timeline for each applicable system: starting lord with the counting shown, the balance at birth (v. 16, or vv. 21-22 for Ashtottari), and periods to 120 years. Pass 'system' to get one system's timeline whether or not its condition holds. Shodashottari's two readings are reported separately. Where the text's table gives a nakshatra no lord (Shashtihayani omits Chitra) the timeline says so rather than guessing. Houses are whole-sign, as the text defines them. No effect is emitted. Edition stated (Santhanam 1984; Sharma numbers this ch. 48).

Current Dasha Analysis

get_smart_current_dasha

Current running dasha (mahadasha + antardasha + pratyantardasha) annotated with house significations, themes, and percentage-scored event activations. Smarter than raw 'get_dasha_periods', converts MD/AD/PD lords into 'Marriage 100% active, Career 67% active, Travel 33% active' rankings. Returns '{ currentDasha: { md, ad, pd }, activatedHouses[], activeEvents: [{ event, activationPct }], themes[], rulingPlanetSync }'. Use when: 'what period am I in?' / 'what's happening in my life now?'.

Event Dasha Periods

get_event_dasha

Find which Vimshottari dasha periods activate a specific life event. Filters to periods where MD+AD lords jointly signify the required houses; ranks by signification coverage. Returns '{ event, requiredHouses[], periods: [{ md, ad, startDate, endDate, coveragePct, supportingHouses[] }], eventResolution }'. If 'event' is omitted, the engine derives the most active event from the running MD+AD signification with RP tie-break. For 3-level (MD+AD+PD) timing + RP filtering + transit hierarchy, prefer 'find_event_timing_v2'.

Full Dasha Calendar

get_antardasha_calendar

Complete 120-year Vimshottari dasha calendar with all 9 mahadashas and their full antardasha sub-periods nested. Returns '{ mahadashas: [{ planet, startDate, endDate, antardashas: [{ planet, startDate, endDate }] }] }'. Heavy payload, use only when full life-timeline export is needed. For event-relevance ranking prefer 'get_annotated_dasha'.

Jaimini Chara Dasha, Sign-Based Timing

get_chara_dasha

[Jaimini adjunct] Sign-based dasha (rashi cycles). Each sign's period = number of signs from that sign to its lord. Returns each sign-period with start/end dates and current/past/future flags. Used heavily for career and relationship timing in Jaimini schools.

Pratyantardasha Periods

get_pratyantardasha_periods

Pratyantardasha (sub-sub-period, days) detail for ONE mahadasha, optionally narrowed to one antardasha within it. Returns that mahadasha's full nested tree: every antardasha with each of its pratyantardashas, with start and end dates. **This is the level KP timing actually resolves at.** The 3-lock rule requires the mahadasha, antardasha AND pratyantardasha lords to all signify the event's houses, so a timing verdict built on MD and AD alone is incomplete. 'get_dasha_periods' returns MD and AD for all 120 years; this returns the PD layer underneath one of them, because the whole PD tree for the full cycle does not fit a single response. Call it for the mahadasha your candidate window falls in, which 'get_smart_current_dasha' or 'find_event_timing_v2' will have named.

Rasi Dashas (BPHS ch. 46 vv. 158-190): Chara, Sthira, Yogardha, Kendradi, Karaka, Manduka, Shula, Trikona, Drig, Lagnadi

get_rasi_dashas

Parashari, not KP. The ten sign-based dashas Brihat Parashara Hora Shastra gives in ch. 46, each period carrying its verses: Chara in the text's own reading (direction from the 9th house's pada, v. 167; years counted from a rasi to its lord, onwards from a vishama-pada rasi and in reverse from a sama-pada one, the dual-lorded rasis to the stronger lord by the vv. 158-166 ladder, +1 or -1 for an exalted or debilitated planet in the counted-to rasi); Sthira from the Brahma graha's rasi at 7, 8, 9 years by class (vv. 168-173, the Brahma graha's candidates and refusals listed); Yogardha as the mean of the two (v. 174); Kendradi, kendras then panaparas then apoklimas by strength from the stronger of lagna and 7th (vv. 175-177, the lagna-kendradi form some call Narayana); Karaka from the Atmakaraka in karaka order (v. 178); Manduka by jumps of three (vv. 179-180); Shula from the stronger of 2nd and 8th (vv. 181-182); Trikona from the strongest trine (vv. 183-184); Drig by the 9th, 10th and 11th and the rasis they aspect (vv. 185-187); Lagnadi from the lagna advanced by the Moon's nakshatra fraction, with the one balance at birth the text states (vv. 188-190). Every system carries 'assumptions' naming what the text leaves open (Drig and Lagnadi state no year rule, Karaka's count is read inclusive, Manduka's wording does not fit a twelve-rasi jump). Returns the Brahma graha and the BPHS Chara years for all twelve rasis as shared inputs. get_chara_dasha carries the Jaimini Sutras reading and reports this one beside it; neither is picked. Whole-sign houses. No effect is emitted. Edition stated (Santhanam 1984; Sharma numbers this ch. 48).

Stellar Dasha Bifurcation Trace

get_stellar_dasha_bifurcation

For every active dasha level (MD/AD/PD) returns parallel KP and 4-Step end-result indicators: KP indicator = dasha lord's sub-lord, 4-Step indicator = dasha lord's star-lord. Also includes upcoming Antardasha periods with both indicators. Use to reason about which school's timing prevails on a given event without recomputing the dasha calendar.

Vimshottari Dasha Periods

get_dasha_periods

Compute Vimshottari dasha, KP's 120-year planetary period system. Levels: mahadasha (main period, years), antardasha (sub-period, months), pratyantardasha (sub-sub-period, days). Returns '{ mahadashas: [{ planet, startDate, endDate, subPeriods }], currentDasha: { mahadasha, antardasha, pratyantardasha } }'. **Returns mahadasha and antardasha by default. The full pratyantardasha tree for all 120 years does not fit one response, so for PD detail call 'get_pratyantardasha_periods' for the mahadasha you care about — do NOT skip PD, KP's 3-lock rule needs MD, AD and PD to all signify.** Use when: you only need raw dasha periods. For event-relevance scoring, prefer 'get_smart_current_dasha' or 'get_event_dasha'.

Yogini Dasha, 36-Year Cycle [Vedic Alt-Dasha]

get_yogini_dasha

[Vedic alt-dasha adjunct] 36-year cycle, 8 yoginis based on natal Moon's nakshatra: Mangala(1y), Pingala(2), Dhanya(3), Bhramari(4), Bhadrika(5), Ulka(6), Siddha(7), Sankata(8). Returns each yogini period with start/end dates, quality (auspicious/inauspicious), interpretation, current/past/future flags. Cross-validates Vimshottari timing.

Transits

16 tools

Advanced Retrograde Analysis

get_retrograde_advanced

Advanced retrograde analysis: 3-state CSL interpretation (delayed/denied/sudden fulfillment based on star lord retrogression), retrograde dasha lord transit activation dates (Jupiter/Saturn crossing natal retro degree), and slow-planet station window mapping (suppression windows when retrograde over significator). Scan range up to 2 years.

Advanced Transit Timing

get_transit_advanced

Advanced transit timing: triple transit confirmation (Jupiter star+sub AND Sun sign AND Moon nakshatra simultaneously on significator), Rahu-Ketu axis tracking (amplification/termination over significator positions), Moon sub-division tracking (2-3hr windows over 72hrs), and Lagna minute-level prediction (8-12min windows for exact event timing). The highest resolution KP timing available.

Ashtama Sani and Ardha-ashtama, read by star lord

get_ashtama_sani

Saturn in the 8th sign from the natal Moon (Ashtama Sani, ~2.5 years) and in the 4th (Ardha-ashtama, also called Kantaka Sani), every window across the life, each decomposed into one entry per nakshatra Saturn crosses inside it. **The window is not the verdict.** KP Reader 5 devotes four chapters to saying so: Ch.42 "Is Chandra-Ashtama ever evil", Ch.43 "Chandrashtama and its truth", Ch.45 "Ashtama Sani and Honour", Ch.53 "Traditional Transit System - Meaningless". canon p.290: the blanket adverse reading "is incomplete", because "in which cases Sani is a benefic and in which cases Ashtama Sani is evil, has not been scientifically discussed elaborately"; canon p.286 heads a worked example "the honour and reputation conferred on a Hotel Proprietor and his success in the competition during Ashtama Sani". The KP verdict is chart-dependent and comes from 'starLordWindows[].reading', judged on that star lord's house lordship in THIS chart: signifying 8 or 12 is adverse (canon p.298), 10 or 11 benefic (canon p.297). 'currentStatus' says whether either is running now. A verdict of UNKNOWN means significators were unavailable, so report that there is no KP verdict rather than falling back on the window's name. Companion to 'get_sade_sati_phases', which returns these two families as dates only. Books: KP Reader 5 canon pp.277-290, pp.296-299.

Bhrigu Bindu (Destiny Point)

get_bhrigu_bindu

Bhrigu Bindu = midpoint of natal Moon and Rahu, a karmic destiny point that activates strongly when transited by slow planets (Saturn, Jupiter, Rahu, Ketu). Returns BB's longitude, sign, house, star/sub lord, and a chronological list of upcoming slow-planet crossings over BB across the next N years (default 10). Modern KP / cross-system; framed as karmic windows, not deterministic events.

Eclipse Impact on Natal Chart

get_eclipse_impact

Locates upcoming solar and lunar eclipses (next N months, default 24) by detecting syzygies near the lunar nodes (within 18° solar limit, 12° lunar limit) and measures arc-distance from each eclipse degree to natal sensitive points (Lagna, MC, all 9 luminaries / planets). Each natal hit gets a severity band: CRITICAL ≤1°, PROXIMAL ≤5°. Books: KP Reader 5, classical eclipse interpretation. Use to flag windows of intensified life themes; never frame as deterministic prediction.

Eclipse-on-Sub-Lord Activation

get_eclipse_sublord_activation

Cross-references upcoming solar and lunar eclipses with natal cusp sub-lord boundaries. Eclipses landing within 30 arc-minutes of a cusp = CRITICAL activation of that house's significations; within 30 arcmin of a sub-lord boundary = STRONG. Activation window = eclipse date + 6 months. Use to identify specific cusps the next ~18 months will activate.

Jupiter Return Cycles (~12 yr)

get_jupiter_return

Computes when transit Jupiter returns to its natal sidereal longitude. ~12-year cycle marks expansion / opportunity waves; canonical first return ~age 12, second ~24, fifth ~60. Each return event includes the primary direct-crossing date, retrograde back-passes if any, duration, and a stage-appropriate interpretation. Books: KP Reader 5.

Moon Transit

get_moon_transit

Current Moon position with sign, star lord, sub-lord, and minutes remaining in the current sub. Moon's sub-lord changes every 2-3 hours and is the fastest hand on the KP timing clock. Returns '{ moonLongitude, sign, starLord, subLord, kpNumber, minutesRemainingInSub, nextSubLord, nextSubStartUTC }'. Use for: real-time micro-timing or 'is right now a good moment for X' queries.

Sade Sati Phases (Saturn 7.5-yr Cycle)

get_sade_sati_phases

Saturn's 7.5-year transit through 12th, 1st, and 2nd signs from the natal Moon, decomposed into the three named phases (Vraya / Janma / Patha) per cycle. Returns each cycle (past + current + future) with absolute start/end dates, current-phase status, days remaining, and auxiliary windows for Ashtama Shani (Saturn in 8th from Moon) and Ardha-ashtama (Saturn in 4th from Moon). **The phase name is NOT the verdict.** KP Reader 5 defines the period at canon p.296 and then rejects the traditional reading of it, noting that people marry, get promoted and buy property during Sade Sati: "At the time when they predict adverse results, we enjoy pleasure" (p.297). The KP verdict is chart-dependent and comes from 'starLordWindows', one per nakshatra Saturn crosses inside each phase, each judged on that star lord's house lordship in THIS chart: signifying 8 or 12 is adverse (p.298), 10 or 11 benefic (p.297). 'currentStatus.currentStarLord' gives the live verdict. The traditional adverse reading is retained per phase under 'traditionalReading', tagged 'vedic-parashari' and disclaimed; report it as the traditional view if you use it, never as the KP one. A verdict of UNKNOWN means significators were unavailable, so say there is no KP verdict rather than falling back on the phase name. Books: KP Reader 5 canon pp.296-299, KP Reader 3 ch.51.

Sade Sati Sub-Lord Intensity Timeline

get_sade_sati_intensity

Sub-lord-resolved timeline for Saturn's sade-sati transit (the 7.5 year period of Saturn through 12th/1st/2nd from natal Moon), the fine-grained companion to 'get_sade_sati_phases'. Returns per-window '{ startDate, endDate, starLord, subLord, phase, saturnSign, starLordReading, subLordSignifications, subLordAdverse, subLordBenefic }' plus 'verdictCounts'. Read each window on two levels per KP Reader 5 canon p.299: the STAR lord's house lordship in this chart decides what is offered (8 or 12 adverse per p.298, 10 or 11 benefic per p.297), and the SUB lord decides whether it is delivered. **There is deliberately no intensity score.** The previous version returned one, keyed to which planet the sub lord was, so Jupiter scored the same in every chart ever cast; canon p.298 reads a single Saturn transit past nine lagnas to opposite conclusions, because a planet acts through the houses it owns in THIS chart. Sub-lord houses are reported rather than scored because the corpus states that role and gives no arithmetic for it, so weigh them yourself and say you did. Use to map specific months of sade-sati to what is actually promised and whether it lands. Books: KP Reader 5 canon pp.297-299.

Saturn Return Cycles (~29.5 yr)

get_saturn_return

Computes when transit Saturn returns to its natal sidereal longitude, the canonical adulthood / mid-life / elder-stage thresholds (~age 28-30, 58-60, 87-90). Each return event includes the primary direct-crossing date plus any retrograde back-passes (1 or 3 crossings per return), duration in days, and a stage-appropriate interpretation. Books: KP Reader 5, classical Vedic canon.

Sub-Lord Changes

get_sublord_changes

Hours until each planet's KP sub-lord changes next. Sub-lord boundaries are when transit influence shifts. Returns '{ planets: { Sun..Ketu: { currentSubLord, nextSubLord, hoursUntilChange, nextChangeUTC } } }'. For all sub-lord crossings within a date window (with minute-precision binary search) use 'get_transit_crossings'.

Transit Crossings

get_transit_crossings

All KP sub-lord boundary crossings for the requested planets within a date window (max 366 days). Uses 1-hour coarse scan + binary-search refinement to minute precision. Returns '{ crossings: [{ planet, crossingTimeUTC, fromKP, toKP, fromSubLord, toSubLord, isNakshatraChange, isSignChange }], totalCrossings, planetsSearched, pagination, pageNote }'. **Paged.** A year-long scan of all 9 planets runs to hundreds of crossings, so they come back a page at a time; read 'pageNote' and call again with 'page' incremented until it says it is the last page. Narrowing 'planets' or the date window is usually better than paging through everything.

Transit Snapshot

get_transit_analysis

Single-moment transit snapshot, checks 4 KP transit rules at one point in time, across every event the engine defines. Returns '{ queryDatetime, transitPlanets, moonTransit, rpOverlap, dashaTriggers, cuspActivations, retrogradeInvalidations, eventAssessments: [{ event, verdict, rulesSatisfied, housesOffered, coverage, dashaTrigger, rpStrength, rpOverlap, moonSubCovers, subLordGate, notes }], pagination, pageNote }'. **A transit whose star lord is retrograde in the natal chart is DELAYED, not denied.** It appears in 'retrogradeDelays' and still contributes every house it offers, so never drop it. KSK: "In Krishnamurti Padhdhati for natal horoscopes there is no place for exaltation, or debilitation or eclipse, or retrograde etc." The matter becomes due when that planet stations direct and re-crosses the degree it turned back from; report the window and the caveat together. **Read a transit on three levels, per KP Reader 5 canon p.299**: the transit STAR lord's house significations are WHAT is offered ('starLordSignifications', and 'housesOffered' per event), the transiting planet is the SOURCE it arrives through, and the SUB lord decides WHETHER it succeeds ('subLordSignifications', and 'subLordGate' per event). Do not read the sub lord as subject matter. 'subLordGate' reports whether the sub lords of the offering transits also signify the offered houses; it is deliberately NOT counted in 'rulesSatisfied', because the corpus states the rule but gives no threshold for scoring it, so weigh it yourself and say you did. A matter offered with 'subLordGate.supports = false' is promised but unsupported at the sub. **The event assessments are paged**, each carrying its full per-rule reasoning; this tool takes no 'event' parameter, so read 'pagination.totalItems' and page through rather than assuming page 1 holds the event you care about. Use when: 'what's happening now astrologically?'. For precise event-timing narrowing (Saturn → year, Jupiter → month, Sun → week, Moon → day) use 'get_transit_timing_hierarchy' instead. For triple-confirmation + Lagna minute-prediction use 'get_transit_advanced'. Books: KP Reader 5 p.299.

Transit Timing Hierarchy

get_transit_timing_hierarchy

KP transit timing hierarchy: Saturn narrows to ~2.5yr window, Jupiter to the year, Sun to the month, Moon to the day. A transit in the star of a RETROGRADE natal planet is a DELAYED window, never an invalid one (F011): it stays in the hierarchy, and since F063 it carries turnsDirect (when that natal planet next stations direct) and passesStartingPoint (when it re-crosses its turning degree, the horary Sutra 32 release), so the delay has a date. Requires fruitful significators internally. **A window opens only where the transiting planet's star lord AND sub lord are both fruitful significators**, per KP Reader 5 canon p.195: the star lord says what is offered, the sub lord says whether it materialises. Each window also carries 'offeredFrom', the earlier moment the star lord alone became fruitful. That is when the matter came on offer, NOT when to act: canon p.192 says "do not expect the result on the day of entry, you have to wait till the significator comes to the sub". Quote 'start', not 'offeredFrom', when giving a date. Books: KP Reader 5 canon pp.192, 195.

Vedha Transit Check (Saturn / Jupiter Obstruction)

get_vedha_transit

Traditional Hindu Gochara obstruction check, NOT a KP verdict. Saturn favourable in 3/6/11 from natal Moon with Vedha at 12/9/5; Jupiter favourable in 2/5/7/9/11 with Vedha at 12/4/3/10/8. Returns each slow planet's house from natal Moon, whether the favourable rule applies, whether the Vedha house is occupied (by which planets), the no-Vedha exceptions (Sun-Saturn, Moon-Mercury), and a final verdict (FAVOURABLE_CLEAR / FAVOURABLE_BUT_VEDHA / NEUTRAL / UNFAVOURABLE_HOUSE). Provenance: the rules are transcribed from KP Reader 5 pp.26-28, where they are presented as the Hindu system, and the SAME BOOK rejects them at p.361 as "useless, meaningless and not universally applicable", warning that reproducing them without saying they fail for most people does harm. Report it as the traditional view and say the source disputes it; never let it decide a KP verdict on its own, and prefer get_transit_analysis and get_transit_timing_hierarchy for that. Books: KP Reader 5 pp.26-28 for the rules, p.361 for the rejection.

Ruling planets

5 tools

Advanced Ruling Planets

get_rp_advanced

Advanced Ruling Planet (RP) analysis. Two layers: (1) weighted RP strength hierarchy (Lagna star lord=5, Moon star lord=4, Lagna sign lord=3, Moon sign lord=2, day lord=1) and (2) RP-Dasha synchronization check (does the predicted dasha lord appear in current RPs as FULLY / PARTIALLY / NOT synchronized?). Returns '{ rankedRPs: [{ planet, rank, weight }], dashaSyncStatus }'.

Current Ruling Planets

get_ruling_planets

Compute the Ruling Planets (RP), the cosmic snapshot at any moment, used for KP timing verification. Returns 5 RPs: ascendant sign lord, ascendant star lord, ascendant sub-lord, Moon star lord, Moon sub-lord, day lord (weekday). When RPs overlap with an event's significators, the timing is confirmed; when they don't, the event won't manifest at this moment regardless of dasha. Returns '{ ascSignLord, ascStarLord, ascSubLord, moonStarLord, moonSubLord, dayLord, rankedRPs[] }'.

Multi-Session Ruling Planet Consensus (KP T17)

get_rp_consensus

When a querent asks the same question at multiple distinct moments (different times of day, different days), the significators that appear in every session's fruitful set carry the highest predictive certainty (T17). This tool takes at least 2 session moments and an event and computes the intersection of fruitful significators across sessions. Returns per-session details, ranked consensus list (planet, sessionCount, bestLevel), unanimous and near-unanimous planets, and a verdict: STRONG_UNANIMOUS / STRONG_PARTIAL / MIXED / WEAK.

Ruling Planet Intervals

get_rp_interval

Ruling Planets (RP) computed at regular intervals over a window (e.g. every 60 min for 24 h). Returns '{ intervals: [{ datetime, weekdayLord, moonSignLord, moonStarLord, ascSignLord, ascStarLord, ranked[] }], variant, nodeRule, provenanceNote, pagination, pageNote }'. 'variant', 'nodeRule' and 'provenanceNote' are identical on every sample, so they are returned once at the top rather than repeated per row. **Paged.** Use when: scanning a day or week for the moment whose RP set best matches a target event's significators.

Tara Bala (9-fold from Janma Nakshatra)

get_tara_bala

9-fold Tara from natal Moon's nakshatra at any moment: Janma (neutral), Sampat (auspicious), Vipat (avoid), Kshema (auspicious), Pratyari (avoid), Sadhaka (auspicious), Vadha (strongly avoid), Mitra (auspicious), Atimitra (strongly auspicious). Use for 'is today auspicious for X?' daily checks and as a muhurta companion. Books: KP Reader 5 muhurta canon.

Event timing

2 tools

Horary

7 tools

Advanced Horary Analysis

get_horary_advanced

Advanced horary analysis: number intuition analysis (checks if chosen KP number's sub-lord independently signifies query houses, classifying it as self-confirmatory vs weakly chosen) and horary-natal cross-validation (compares fruitful significators between both charts: convergence means highest confidence prediction, divergence means suspect birth time).

Arrival Horary: will the awaited come, and when?

get_arrival_timing

KP horary for "when will X get here" — an awaited person, a spouse returning, a missing person coming home, a letter, or a late train or flight. Takes a question_number (1-249) and a 'subject'. **Two gates, and they do not commute:** the chart must PROMISE arrival before any timing is attempted, and a 'REFUSED' verdict is a complete answer that deliberately carries no window — no amount of favourable timing forces an event the deciding sub lord denies. The rule reads the STAR LORD OF THE DECIDING CUSP'S SUB LORD, not the sub lord itself. Per subject the deciding cusp is: person → 7th, spouse → 11th (joining 11-7-6, separation 12-7-6), missing_person → 11th (promise 2-4-6-11, timed by 2-8-11), letter → 3rd (3 and 11), conveyance → 4th (movable sign reaches soon, fixed a long delay, common a delay). Core rule: the star lord signifying 3/5/9 with 7 or 11 means the person arrives early; 5/7/11 means later but it must signify 3 and 9 without fail; 4/8/10/12 means "the expected person changes his mind and stays back". **Arrival elects on 3-9-11, never the 3-9-12 of foreign settlement** — the 12th pulls toward staying away, so it sits in the refusal set. Returns each house test with its own citation, the obstruction reading for any 6/8/12 link, a retrograde flag (read as DELAY, never denial), and a timing 'scale' from the 11th cusp sub lord's sign modality that names which hand of the clock to move (Ascendant for hours, Moon for days, Sun for longer). The scale is a scale, not a timestamp. Contested points travel in 'provenance.contestedPoints': retrogression in an arrival query is read the opposite way by some practitioners, and this tool does not rotate the chart to the awaited person's house. UNKNOWN means significators were unavailable, so report that there is no verdict. For a lost object or a stolen article use 'get_lost_or_missing' instead; a merchandise parcel is a recovery question (2-6-11), not a letter. Books: KP Reader VI (Horary Astrology), Astrology & Athrishta, KP Ezine case studies.

Career Horary — KSK Job and Profession Horary (1-249)

get_career_horary

Career horary cast at the moment of the question from a number 1-249, with no birth data. Seven horary modules shipped before this one and none was career, while KP Reader 6 devotes an entire block with fourteen dated worked cases to it. Fourteen sourced query types, each with its own cusp and gate: 'will_i_get_a_job' (10th, with the nature of work read off the cusp triad, R6 pp.285-288), 'when_promoted' and 'higher_status' and 'seniority_justice' (11th, R6 pp.297-303), 'interview' (11th, the CSL must be in the constellation of a direct planet and signify 3 and 9, R6 p.180 and P3 p.060), 'business_success' (11th for fulfilment and 10th for name, R6 p.295), 'transfer' (3rd, with the P3 p.049 cancellation rule where a 4th CSL signifying the 4th plus an 11th CSL on 1/2/4/10/11 gets the order cancelled and the native retained), 'change_of_job' (10th, R6 pp.306-307), 'reinstatement' (10th, judged on the star lord of the CSL, never granted if it signifies 1/5/9/12, R6 pp.309-310), 'reappointment' and 'competition_selection' (6th, R6 p.317 and the 6-or-10-or-11 win rule), 'will_i_earn' (10th, where a retrograde CSL is an absolute no, R6 p.288), 'foreign_assignment' (12th, which must also signify the 6th to be an assignment, R6 p.311), 'partnership' (7th, with the break matrix: 5+11 permanent, 6+11 take a partner, 6+12 it breaks, 5+8+12 the partner gains and you lose, R6 pp.262-263). The Moon-connectivity gate runs first and a failure returns a structured WITHHELD verdict asking the querent to wait for genuine internal urgency, which is the book protocol, never a negative answer dressed as a result. Rotates the subject lagna by relation for questions about another person's career (R3 p.389). Returns per-query overlays, retrograde gates, dated windows inside the three-year horary horizon, and ruling-planet confirmation.

Horary Chart (v2)

get_horary_chart_v2

Enhanced KP horary chart with Moon connectivity validation. If query_event is provided, validates whether Moon signifies the relevant houses. If Moon is disconnected, the question is premature and prediction is flagged as unreliable. Always provide query_event for proper KP horary analysis.

Lost Article / Theft / Missing-Person Horary (KP)

get_lost_or_missing

KP horary direction-finding for lost articles, theft, and missing persons. Takes a question_number (1-249) and a query_type ('theft' | 'lost' | 'missing_person'). Returns cardinal direction (E/W/N/S, derived from a planet in Kendhra or lagna fallback), distance class (SAME_PLACE / NEAR / MODERATE / FAR / ABROAD, from 7th significator's sub-lord house), in-house location (gate / middle / backyard, from lagna drekkana), recovery verdict (PROMISED / DELAYED / NOT_RECOVERED / WITHHELD), recovery dasha candidates, and a thief description with stature, age, sex, colour, shape, and whether the thief is a known relative, stranger, or neighbour. All rules grounded in KP Reader VI Slokas 1-4, 47, 49-59 and pages 50, 51, 64, 235, 237, 245. Investigative lens; not a substitute for police investigation in theft or missing-person cases.

Medical Horary — KSK Disease Horary (1-249)

get_medical_horary

Canonical KSK disease horary cast at the moment of the question (no birth data). Rotates the patient lagna by relation (self=1st, child=5th, mother=4th, father=9th, spouse=7th) and reads every house from it: patient (rotated 1st), disease (6th), cure (11th), danger (8th) and hospital (12th) cusp sub lords. Applies the Moon-connectivity withhold gate first — a failed gate returns a structured WITHHELD response, never a negative answer. Verdict matrix RECOVERY / SLOW_RECOVERY / DETERIORATION / MIXED, plus a query-type overlay (operation success via Mars affliction + 11th CSL star check; severity via 8th-vs-11th weights; diagnosis accuracy via nodes on the 6th chain + Mercury affliction; change of treatment via the rotated 10th CSL), a horary-dasha recovery window, and ruling-planet confirmation. Supplementary lens, not medical advice or diagnosis.

Serial Horary Trend Across Multiple Sessions (KP T22)

get_horary_serial

For an ongoing situation (court case, prolonged job search, long illness), the practitioner casts horary charts at intervals and tracks how the CSL signification evolves. Pass at least 2 session moments and a topic; the engine builds each chart, runs the topic CSL verdict, and emits per-session snapshots (verdict, coverage_pct, supporting/detrimental houses, delta vs previous). Trend mapping: OSCILLATING, RESOLUTION_NEAR (coverage trending up, verdict improving), WORSENING (coverage falling, new detrimental houses), STABLE_FAVORABLE, or STABLE_UNFAVORABLE. T22 from docs/KP/3.Advance Techniques KP.md.

Electional, picking a moment

15 tools

Advanced Muhurta Timing

get_muhurta_advanced

KP auspicious moment triangulation (T40), the older three-condition test kept alongside the four-layer election. Walks exact Moon sub and Ascendant sub boundaries for windows where (1) the Lagna sub lord signifies the event houses, and additionally reports whether the Ascendant's sign, star AND sub lords all agree, (2) the Moon's star lord is a fruitful significator, (3) the Day Lord is a fruitful significator. 3 of 3 is fully auspicious, 2 of 3 workable. Returns moments with 'datetime', 'datetimeEnd', 'durationMinutes', 'lagnaFullAgreement', and a 'scanSummary' carrying 'momentsFound' versus 'momentsReturned'. For a full election prefer 'find_election_window', which applies the dasha layer and carries provenance for the house group.

Elect a Business Opening or Launch

find_business_launch_time

Elect the moment to start or reopen a business, open a shop, incorporate, or launch a venture. Elects on houses 2, 6, 10 and 11, quoted from Jyotish Astro Secrets p.980: "Whether new or old, business, houses 2,6 and 10 are to be judged. For fortune in business, 11th house has to be included. Even though the significators of 2,6 and 10 may operate in dasa and bhukthi, unless thy have connection with Mars, anything cannot be commenced, as it gives the boldness to take the risk." Check the returned 'significatorSet' for Mars and mention it either way, because the source makes that condition part of the rule. The response also carries 'cuspRule', Reader 6 pp.321-322: "The sub-lord of the 7th is to be deposited in the constellation the lord of which is the significator of the houses 6 and 11." Reported for the reader, not enforced as a filter. ASK FOR THE LAUNCH'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. A shop opens, a market opens, a registrar closes, and KP elects inside the window the world has already fixed. It is the single biggest improvement to this answer. Use this for the act of starting. For whether the business is viable at all, call 'get_business_viability' or 'get_job_vs_business_verdict' first: an elected opening time says nothing about whether the chart promises the venture. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], cuspRule, disclaimer, summary }'. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score and no top ten. A SECOND SCHOOL CAN CROSS-CHECK THIS, AND YOU SHOULD OFFER IT FOR ANY DATE THAT MATTERS. Pass 'bosmia_lens: true' only after the user agrees. Words that work: a second KP school reads the elected moment from the muhurta chart's own cusps rather than from your birth chart, and I can run it as a cross-check. It is not an upgrade and not a premium option, it is a different school reading the same moment. With it on, each window gains 'bosmiaLens' carrying 'verdict' and a one line 'verdictLine', plus 'checks[]' naming what passed and what did not. The two schools genuinely differ, so a disagreement is expected and is information, not a warning about the date, and where they conflict the KP books decide. It never removes or reorders a moment. Bosmia's own row for starting a business reads the 10th cusp against houses 2, 10 and 11, and he separately treats how long the venture will last, which is the part of his method with no equivalent on the Krishnamurti side. It is worth offering here for that reason. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the venture to succeed. Report windows in startLocal and endLocal, never in UTC.

Elect a Contract or Agreement Signing

find_contract_signing_time

Elect the moment to sign an agreement, a lease, a deed or any contract. Elects on houses 2, 6 and 11 and excludes 5, 8 and 12, quoted from decoded KP Reader 5 p.229: "During the conjoined periods of such planets, which are not the significators of 5, 8, 12, but they are the significators of 6 and 11 or 2, 6,11, they must bring success and profit." That one sentence carries the elected group and the excluded group together. The response also carries 'cuspRule', Reader 6's "WHICH TIME IS GOOD?" rule for this event, pp.321-322: "The sub-lord of the third cusp is to be deposited fa a cons tellation, the lord of which is the significator of the houses 6 and 11." It is reported for the reader, not enforced as a filter. Pass 'person2' to run the two chart form when both signatories want their charts read. TWO CHART ELECTION IS A LUMIN EXTENSION, NOT KP CANON, and you must say so when you use it: the corpus holds exactly one worked two chart election and it is a single chart election with a post hoc check, with no rule for what to do when the two disagree. With 'person2' each window gains 'secondaryCheck' reading CONFIRMS, PARTIAL or CONTRADICTS. ASK FOR THE SIGNING'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. A registrar, a notary or an office closes, and KP elects inside the window the world has already fixed. It is the single biggest improvement to this answer. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], cuspRule, disclaimer, summary }', or the joint shape with 'mode', 'primary', 'secondary' and 'extensionNote' when 'person2' is present. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score and no top ten: the single chart form returns ONE moment, or up to three when the tests cannot separate them, while the two chart form returns the wider pool, up to ten, because the second chart still has to filter what the first elected. A SECOND SCHOOL CAN CROSS-CHECK THIS, AND YOU SHOULD OFFER IT FOR ANY DATE THAT MATTERS. Pass 'bosmia_lens: true' only after the user agrees. Words that work: a second KP school reads the elected moment from the muhurta chart's own cusps rather than from your birth chart, and I can run it as a cross-check. It is not an upgrade and not a premium option, it is a different school reading the same moment. With it on, each window gains 'bosmiaLens' carrying 'verdict' and a one line 'verdictLine', plus 'checks[]' naming what passed and what did not. The two schools genuinely differ, so a disagreement is expected and is information, not a warning about the date, and where they conflict the KP books decide. It never removes or reorders a moment. Bosmia's own row for signing reads the 3rd cusp against houses 3, 1, 11 and 7, with 3 or 11 required, so on a contract the two schools read genuinely different house groups and can differ for that reason alone. Election in KP is read-only. It locates a moment this chart already points at and it does not make the counterparty keep the terms. Report windows in startLocal and endLocal, never in UTC.

Elect a Departure for a Journey

find_travel_departure_time

Elect the moment to begin a journey: the departure itself, not the booking and not the arrival. Elects on houses 3, 9 and 11, quoted from Astrology for Beginners p.786: "the 9th house indicates journey to distant places and the 11 th house shows a successful journey or that it will be pleasant without any mishap." Note the deliberate difference from the promise group. Judging whether foreign travel is promised at all uses 3, 9 and 12. The ELECTION uses 11, not 12, and the two answer different questions. For whether the journey is promised, call 'analyze_natal_promise' or 'get_foreign_settlement'. ASK FOR THE DEPARTURE'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. A train leaves, a flight leaves, a border post opens, and this is the corpus's own habit: KSK elects a Venus sub that "operates between 6.12 and 10.29 a.m." precisely because the train left Madras in the morning. It is the single biggest improvement to this answer. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }'. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score and no top ten. Election in KP is read-only. It locates a moment this chart already points at and it does not make a journey safe. Report windows in startLocal and endLocal, never in UTC.

Elect a Meeting or a Negotiation

find_meeting_time

Elect the moment for a business meeting, a board meeting, a client pitch or a negotiation. Defaults to houses 3, 6, 9, 10 and 11, quoted from Jyotish Astro Secrets p.912: "Agreement, interview, negotiation, etc. are all denoted by the 3rd house from the 7th, that is the 9th house ... If the negotiations to be successful or useful, 11th house is to be scrutinized ... If it is for business, houses 10 and 6 has to be judged in addition to 3 and 9." 'subject' picks between groups the books state separately, and each is quoted rather than composed: 'business' takes 3-6-9-10-11 from the page above, and 'third_party_approval' takes 3-5-9-11 from decoded Reader 5 p.232 with a second witness at Astrology for Beginners p.798. 'partnership' resolves to the same group as 'business', deliberately: THE CORPUS STATES NO SEPARATE PARTNERSHIP ELECTION. It appeared to until 2026-08-13, when the run-in heading above the 3-6-9-11 sentence on decoded Reader 5 p.233 was found to decode to "To Sign the Letter for Scholarship ?" rather than to anything about partners. That group now belongs to the event it was printed under, and a partnership meeting is elected as a business meeting. If a user asks for a partnership-specific rule, say there is not one. IT IS NOT A COMPOSED RULE, AND NO COMPOSED RULE EXISTS TO IMPLEMENT. A later school, Kanak Bosmia's KP Muhurat, was read in full for this: he gives three worked rows for a discussion, all reading the 3rd cusp, but he never states a general rule that builds a house group out of the 3rd cusp plus the subject's own houses, and two of his three rows leave the subject's own house out of the group entirely. Nothing of that shape is generated here. If a user asks where a meeting rule comes from, this is the honest answer. REPORT THE COUNTERPARTY FRAME. Each window carries 'nativeRisingFrame' with 'natalHouseRising', 'counterpartyHouse' and 'favoursTheNative'. The counterparty house is the native's house minus 6. Astrology for Beginners p.779 gives the mechanism, "the 5th house of the native is the 11 th house of the other person", and p.796 gives the reading that the native's 2, 6 and 11 rising are the moments the other party grants the request, because they are the other party's 8, 12 and 5. Say both numbers when you report a window. ASK FOR THE MEETING'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. Office hours, a board's calendar and a counterparty's diary all fix the window before any chart does, and KP elects inside it. It is the single biggest improvement to this answer. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }'. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, nativeRisingFrame, matchedConditions[], discriminator and rank. 'nativeRisingFrame' is null below minute granularity. There is no score and no top ten. A SECOND SCHOOL CAN CROSS-CHECK THIS, AND YOU SHOULD OFFER IT FOR ANY DATE THAT MATTERS. Pass 'bosmia_lens: true' only after the user agrees. Words that work: a second KP school reads the elected moment from the muhurta chart's own cusps rather than from your birth chart, and I can run it as a cross-check. It is not an upgrade and not a premium option, it is a different school reading the same moment. With it on, each window gains 'bosmiaLens' carrying 'verdict' and a one line 'verdictLine', plus 'checks[]' naming what passed and what did not. The two schools genuinely differ, so a disagreement is expected and is information, not a warning about the date, and where they conflict the KP books decide. It never removes or reorders a moment. On a meeting specifically, expect the second school to return 'verdict: NOT_IN_BOSMIA_TABLE', because it has no rule for a business meeting and none was invented. It still reads how long the thing being started is likely to last. Say that plainly rather than presenting it as a failure. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the agreement. Report windows in startLocal and endLocal, never in UTC.

Elect a Moment

find_election_window

The primary electional tool. Same four-layer KP test as 'find_auspicious_time' but for one event, with a flatter response. Use for any question of the shape when should I do X, what is a good day for X, pick a muhurat for X. ASK FOR THE USER'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. It is the single biggest improvement to an answer here. KP elects inside a window the world has already fixed, an office day, a shop's opening hours, a registrar's appointment, rather than ranking every minute of a week. Returns ONE elected moment, or up to three when the selection tests cannot separate them. No score exists in KP, so nothing is ranked 0 to 100 and there is no top ten. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }'. 'selection.stageC.orderIsOurChoice' is true and must be honoured when explaining the pick: the five tests are KP's, the order they are applied in is Lumin's. 'windows[].discriminator' says which test decided and is the sentence to quote. 'windows[].resolvingLayer' says what fixed the window, so an hours-wide window is honest rather than a failure. 'windows[].nativeRisingFrame' says which of the native's birth houses is rising and what that house is in the other party's frame, which matters for anything a second party grants or refuses; it is null below minute granularity. Read 'scanSummary.truncated' before reporting a thin result as a thin chart: it may just be a truncated search. A SECOND SCHOOL CAN CROSS-CHECK THIS, AND YOU SHOULD OFFER IT FOR ANY DATE THAT MATTERS. Pass 'bosmia_lens: true' only after the user agrees. Words that work: a second KP school reads the elected moment from the muhurta chart's own cusps rather than from your birth chart, and I can run it as a cross-check. It is not an upgrade and not a premium option, it is a different school reading the same moment. With it on, each window gains 'bosmiaLens' carrying 'verdict' and a one line 'verdictLine', plus 'checks[]' naming what passed and what did not. The two schools genuinely differ, so a disagreement is expected and is information, not a warning about the date, and where they conflict the KP books decide. It never removes or reorders a moment. Report windows in 'startLocal' and 'endLocal', never in UTC, and frame them as the moment the chart already points at rather than as something that will make the outcome go well.

Elect a Property Purchase, Griha Pravesha or Foundation

find_property_muhurta

Elect the moment for a property act. 'mode' picks which of three separately sourced house groups applies, and they are genuinely different elections rather than one rule relabelled. 'purchase' (the default) elects on 4, 6 and 11 for buying or registering property, which is Table D's own worked example in Jyotish Astro Secrets p.157: "For example, purchase of house, then, 4-6-11." 'griha_pravesha' elects on 2, 4 and 11 and excludes 5, 8 and 12, for first entering or occupying a house, from decoded KP Reader 5 pp.232-3: "select the sub period of a few hours governed by a planet which is also the significator of the houses 2, 4, and 11" and "Never enter at the time when Moon and ascendant are in the sub ruled bythe significators of 5, 8 and 12." 'foundation' elects on 4 and 11 and excludes 5 and 12, for laying a foundation or breaking ground. THIS ONE IS DERIVED, NOT QUOTED, and its provenance reads DERIVED_CUSP_RULE. KP Reader 6 p.322 states a CUSP SUB LORD test, "The sub-lord of the fourth is to be deposited in the constel lation of the significator of the 11th and not a significator of 5 and 12.", and the house group is those numbers read as houses: the 4th because it is the cusp the rule names, plus the 11th it requires and the 5 and 12 it forbids. It is not Table D either, since the rule names no 6th. Say so if a user asks where it comes from. ASK FOR THE DAY'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. A registrar's counter, a builder's crew and a family gathering all fix the window before any chart does, and KP elects inside it. It is the single biggest improvement to this answer. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], cuspRule, disclaimer, summary }'. Read 'event' back to confirm which of the three groups ran. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score and no top ten. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the purchase to be sound. Report windows in startLocal and endLocal, never in UTC.

Elect a Surgery Date

find_surgery_time

Elect the moment for a surgery or an operation. Elects on houses 1, 5 and 11, which are the CURE houses, not the disease houses. Astrology for Beginners pp.790-791: "11th house which is the 6th from the 6th house, recovery and cure" and "The 5th house, which is the 12th to the 6th house, promises cessation of suffering." This elects toward recovery, not toward the operation. Houses 6 and 8 are the disease and 12 is the hospitalisation: they describe the illness and are not what a treatment is elected on. The corpus also prefers the dasa lord's star day when the dasa lord is a strong benefic (Astrology for Beginners p.792), and its worked cataract election names three candidate star days and flags the likeliest, which is not the earliest. Read 'windows[].discriminator' before assuming the soonest window is the answer. SURGICAL SCHEDULING BELONGS TO THE SURGEON. This is a supplementary lens, not medical advice and not a reason to move, delay or decline a procedure. Say that in the same breath as any window. If the clinical timing is fixed, that decides it, and no elected moment overrides it. Never use it to argue against an urgent or emergency operation. ASK FOR THE THEATRE'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. Operating lists have hours, and KP elects inside the window the world has already fixed. It is the single biggest improvement to this answer, and it is also what keeps the output inside what the hospital can actually offer. For whether recovery is promised and when, call 'get_cure_window', 'get_surgery_success' or 'get_medical_timing'. Those answer a different question from this one. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }'. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score and no top ten. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the outcome of the surgery. Report windows in startLocal and endLocal, never in UTC.

Elect a Wedding Muhurta

find_wedding_muhurta

Elect the moment for a marriage ceremony. Elects on houses 2, 7 and 11: the 7th is the marriage itself, the 2nd the family it forms, the 11th the fulfilment of the desire. SAY WHERE THAT GROUP COMES FROM IF ASKED, because it is not a wedding muhurta rule. The corpus states no electional house group for a wedding anywhere. 2, 7 and 11 is its marriage JUDGEMENT group, printed as prose at Astrology for Beginners p.312 ("for marriage, houses 2, 7, 11 are beneficial"), as a list row at p.313, and applied to natal marriage timing at decoded Reader 4 p.127 ("Houses 2, 7 and 11 are judged."). The election reuses it. The one worked wedding election in the corpus, Jyotish Astro Secrets pp.139-142, uses no house group at all: it elects from the bride's dasa chain and the Lagna touching her natal Moon. Read 'provenanceSummary.quoteNote' for this in the response. ASK FOR THE COUPLE'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. A wedding is booked inside a hall's hours, a registrar's appointment or a family's plan, and KP elects inside a window the world has already fixed rather than ranking every minute of a week. It is the single biggest improvement to this answer. Pass 'person2' to run the two chart form. TWO CHART ELECTION IS A LUMIN EXTENSION, NOT KP CANON, and you must say so when you use it: the corpus holds exactly one worked two chart election in 6,465 pages and it is a single chart election with a post hoc check of the second chart, with no rule for what to do when the two disagree. With 'person2' the response gains 'secondaryCheck' per window, reading CONFIRMS, PARTIAL or CONTRADICTS, plus 'extensionNote'. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }', or the joint shape '{ mode, primary, secondary, windows[], scanSummary, provenanceSummary, extensionNote, disclaimer, summary }' when 'person2' is present. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score. KP has no numeric strength for a moment, so nothing is ranked 0 to 100 and there is no top ten. The single chart form returns ONE moment, or up to three when the selection tests cannot separate them. The two chart form deliberately returns the wider pool instead, up to ten, because the second chart still has to filter what the first elected: order matters there and 'rank' 1 is the elected moment. Quote 'discriminator' for why a moment won, and read 'resolvingLayer' before quoting a width, since an Ascendant-sub election is minutes wide and a Moon-sub election is hours wide. A SECOND SCHOOL CAN CROSS-CHECK THIS, AND YOU SHOULD OFFER IT FOR ANY DATE THAT MATTERS. Pass 'bosmia_lens: true' only after the user agrees. Words that work: a second KP school reads the elected moment from the muhurta chart's own cusps rather than from your birth chart, and I can run it as a cross-check. It is not an upgrade and not a premium option, it is a different school reading the same moment. With it on, each window gains 'bosmiaLens' carrying 'verdict' and a one line 'verdictLine', plus 'checks[]' naming what passed and what did not. The two schools genuinely differ, so a disagreement is expected and is information, not a warning about the date, and where they conflict the KP books decide. It never removes or reorders a moment. Bosmia's own row for a wedding reads the 7th cusp of the muhurta chart against houses 2, 7 and 11, so on a wedding the two schools start from the same houses and differ only on which chart they read. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the marriage or its quality. Report windows in startLocal and endLocal, never in UTC.

Elect an Exam Sitting or Application

find_exam_time

Elect the moment for a competitive examination. Elects on houses 4, 9 and 11, quoted from KP Reader 6 p.189: "For competitive examination the houses to be judged are 4, 9 and 11 ... whether one is appearing for the first attempt or the second or the third, ever we have to judge the houses 4, 9 and 11." Defaults to day granularity, because that is the resolution the question usually has. READ THIS BEFORE CALLING. An exam date is normally fixed by the board, and KP cannot move it. What is electable is the act the candidate controls: submitting the application or registration, choosing between offered sittings or centres, or the departure for the hall. It does not elect the studying, and no elected moment substitutes for preparation. If the date is already fixed and only the hour is open, say so and use 'rank_candidate_dates' or 'find_election_window' on the fixed date instead. ASK FOR THE CANDIDATE'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. Exam halls and application portals both have hours, and KP elects inside a window the world has already fixed. It is the single biggest improvement to this answer. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }'. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, matchedConditions[], discriminator and rank. There is no score and no top ten: one moment comes back, or up to three when the selection tests cannot separate them. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the result. Report windows in startLocal and endLocal, never in UTC.

Elect an Interview or a Request to an Official

find_interview_time

Elect the moment for an interview, or for any request put to a person who can grant or refuse it. Elects on houses 2, 6 and 11 of the native, quoted from Astrology for Beginners p.796: "if an interview is sought on one of the star days of these significators and when any of the houses 2, 6 or 11 or the native is rising on the eastern horizon, th e other person will grant the request of the native." REPORT THE COUNTERPARTY FRAME, IT IS THE POINT OF THIS TOOL. Each window carries 'nativeRisingFrame' with 'natalHouseRising', 'counterpartyHouse' and 'favoursTheNative'. The counterparty house is the native's house minus 6, and it is why the group is 2, 6 and 11 and not some other three: those are houses 8, 12 and 5 of the person being asked. Astrology for Beginners p.779 states the mechanism, "the 5th house of the native is the 11 th house of the other person", and names the reading of the native's 6th, "the native's 6th house is the house of loss to the other". Say both numbers when you report a window. ASK FOR THE INTERVIEW'S USABLE HOURS AND PASS THEM AS 'preferred_time_of_day'. An interview slot is offered, not chosen freely, and KP elects inside the window the world has already fixed. It is the single biggest improvement to this answer. The corpus's own limit case, and repeat it: an elected interview time buys a patient hearing and sympathetic consideration. It does not buy the job. Returns '{ event, granularity, windows[], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer, summary }'. Each window carries startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, nativeRisingFrame, matchedConditions[], discriminator and rank. 'nativeRisingFrame' is null below minute granularity, where no Ascendant was resolved and there is no rising point to read. There is no score and no top ten. Election in KP is read-only. It locates a moment this chart already points at and it does not cause the decision. Report windows in startLocal and endLocal, never in UTC.

Electable Events

get_election_catalog

List every electable event with its elected house group, its principal house, the houses it excludes, its default granularity, and its PROVENANCE. Takes no birth data. Call this before guessing an event string. Provenance is one of four values. BOOK_SOURCED means the corpus states this electional group for this matter, with the citation attached. WEB_SOURCED means a published KP source outside the books. DERIVED_TABLE_D means the group was generated by the corpus's own general formula, the matter's houses plus 6 and 11. DERIVED_CUSP_RULE means the corpus states a CUSP SUB LORD rule for this matter and the group was read off that rule, which is a different claim: "the sub lord of the 2nd cusp must stand in the star of a significator of 6 and 11" is not the sentence "elect on the significators of 2, 6 and 11". Both DERIVED values carry a derivation string. Each citation also carries 'quoteKind': VERBATIM (one sentence reproduced exactly), JOINED_SENTENCES (two or more consecutive sentences, the join stated rather than elided), TABLE_ROW_NO_PROSE (the rule is printed as a table row or numbered list item, so there is no sentence to quote), or NONE. 'quoteNote' says what the quote does and does not establish, and it is where a citation admits that it names a different house list than the row elects on. Read it before repeating a quote. Repeat these distinctions when a user asks where a rule comes from, and never present a derived group as a quoted one.

Muhurta Timing

find_auspicious_time

Elect a moment for one or more events by the KP four-layer test, across a real date range at the place the event happens. Layer 1 builds the significator set for the event's houses; layer 2 requires the running Dasa or Bhukti lord to be in that set; layer 3 requires the Moon to transit the star then the sub of a set member, which fixes the day and then the hours; layer 4 requires the Ascendant's sign lord, star lord AND sub lord all to be in the set, which fixes the minute. Returns ONE elected moment per event, or up to three when the selection tests genuinely cannot separate them. It is not a top ten list and there is no score: KP has no numeric strength for a moment, so candidates are compared one test at a time and the first difference decides. Returns '{ events: { eventLabel: { windows: [{ startLocal, endLocal, durationMinutes, layersSatisfied, verdict, resolvingLayer, resolvingLayerNote, dasha, moon, ascendant, matchedConditions[], exclusionsCleared[], selectionKeys, discriminator, rank }], selection, significatorSet, scanSummary, provenanceSummary, relaxations[], disclaimer } } }'. 'discriminator' says which test decided, and is printed for the winner and for any runner-up. 'resolvingLayer' says what fixed the window and therefore what its width means: an Ascendant-sub election is minutes wide, a Moon-sub election is hours wide. Do not quote a fixed window width. 'layersSatisfied' is 1 to 4 and is the longest satisfied prefix, so a 2 means the Moon layer failed and nothing below it is being claimed. 'relaxations' names any layer that had to be loosened. 'provenanceSummary' says whether the house group is quoted from the KP books or generated by the general formula, the matter's houses plus 6 and 11. Election is read-only in KP: it locates a moment the chart already points at and never causes an outcome. Say so when reporting a window. Prefer 'find_election_window' for a single event, and 'rank_candidate_dates' when the user already has dates in mind.

Rank Dates the User Can Actually Make

rank_candidate_dates

The user names 2 to 10 dates they can realistically do, and this ranks them by the same four-layer KP test. This is the shape a real scheduling conversation takes and it is far cheaper than an open search. Prefer it whenever the user has already mentioned specific dates. Returns '{ rankedDates: [{ rank, dateLocal, layersSatisfied, verdict, bestWindow, windowsOnDay, reason }], significatorSet, provenanceSummary, disclaimer, summary }'. 'bestWindow' carries the ONE moment elected on that date, with its own 'discriminator'. There is no score: dates are ordered by the same ordered comparator the single-date surface uses, so the two can never disagree.

Two Chart Election (Lumin extension)

find_joint_election_window

Elect a moment against two charts, for a wedding, a jointly signed contract, a co-purchase, or an IVF transfer. IMPORTANT, SAY THIS WHEN YOU USE IT: two chart election is a LUMIN EXTENSION, not KP canon. The KP corpus contains exactly one worked two chart election in 6,465 pages and it is a single chart election with a post hoc check of the second chart, with no rule at all for what to do when the two disagree. The default mode 'single-chart-with-check' reproduces that pattern: the moment is elected from the primary chart, then the secondary chart is evaluated at the same instant and reported as CONFIRMS, PARTIAL or CONTRADICTS. The 'both-charts-must-agree' mode returns only mutually confirmed windows and is our invention. Returns '{ mode, primary, secondary, windows: [{ ...window, secondaryCheck: { layersSatisfied, agreement, note } }], extensionNote, disclaimer, summary }'.

Composite workflows

8 tools

Complete Career Reading Workflow

run_career_complete_reading

Atomic comprehensive career analysis for career-coaching B2B. Bundles: CSL promise verdict (Career) + 8-category career signature + profession description (industry/sector/employment-mode) + job-change-vs-promotion timing + lagna yoga karaka + Jaimini Amatyakaraka + pre-verdict audit. Returns '{ promiseVerdict, careerSignature, professionNature, jobChangeVsPromotion, yogaKaraka, jaiminiAmatyakaraka, preVerdictAudit, synthesis }'. Saves 7 round-trips per reading.

Complete Kundli Matching Workflow

run_kundli_match_complete

Atomic comprehensive matrimonial matching for matrimonial-platform B2B. Cross-validates THREE compatibility systems: 36-pt Vedic Ashta Koota (Varna+Vashya+Tara+Yoni+Graha-Maitri+Gana+Bhakoota+Nadi) + KP-rigorous 6-CSL-factor (LOVE/MARRIAGE/FINANCE/UNION/DENIAL/DASHA-SYNC) + Manglik check on both partners + Jaimini Upapada Lagna relationship classification. Returns '{ ashtaKoota, kpRigorousCompatibility, manglikCheck, upapadaLagnaRelationship, synthesis: { overallVerdict, confidenceBand, crossSystemConcordance: STRONG|PARTIAL|DIVERGENT } }'. The matrimonial flagship workflow.

Complete Marriage Reading Workflow

run_marriage_complete_reading

Atomic comprehensive marriage analysis for matrimonial-platform B2B. Bundles: CSL promise verdict ('analyze_natal_promise' for Marriage) + spouse characteristics + Manglik dosha + Upapada Lagna (Jaimini) + vargottama strength multipliers + second-marriage check + DBA timing windows + pre-verdict audit. Returns '{ promiseVerdict, spouseCharacteristics, manglikDosha, upapadaLagna, vargottamaSummary, secondMarriagePromise, timingWindows[], preVerdictAudit, synthesis }'. Saves 8 round-trips per reading.

Complete Year Outlook Workflow

run_year_outlook_complete

Atomic year-outlook composite for annual-subscription B2B products. Bundles: 12-month annual forecast + Tajik Varshaphala (solar return + Muntha) + Tithi Pravesha (soli-lunar return) + 5 key Sahams (Punya/Yasas/Karya/Karya-Siddhi/Vivah, on the annual chart as keySahams[] and on the natal chart as keySahamsNatal[]) + Yogini dasha + Ashtottari dasha + Sade Sati phases + eclipse impacts. Returns '{ targetYear, varshaphala, tithiPravesha, keySahams[], yoginiCurrent, ashtottariCurrent, sadeSatiStatus, eclipseImpacts[], synthesis: { yearTone: GROWTH|CONSOLIDATION|CAUTION|TRANSFORMATION, topMonths[] } }'. Saves 8 round-trips per annual report.

K.N. Rao Triple-Dasha Consensus Workflow

run_triple_dasha_consensus

Cross-validates event timing across THREE independent dasha systems: Vimshottari (event-filtered) + Yogini (36-yr) + Jaimini Chara (sign-based). Finds calendar windows where multiple systems independently flag the same time range. Returns '{ vimshottariWindows[], yoginiCurrent, charaCurrent, convergenceWindows: [{ startDate, endDate, systemsAgreeing: 1|2|3 }], convergenceLevel: STRONG|PARTIAL|WEAK|DIVERGENT }'. Pattern B. Per K.N. Rao 'Finer Techniques of Astrological Predictions'.

Pre-Verdict Audit Workflow

run_pre_verdict_audit

Atomic pre-flight integrity check before any final verdict. Runs 'get_boundary_warnings' + 'get_combust_planets' + 'get_graha_yuddha' + 'get_vargottama_planets' in parallel server-side and emits a single confidence modifier (-30..+20) with band HIGH/MODERATE/LOW. Returns '{ flags, confidenceModifier, confidenceBand, recommendations[], summary }'. Saves 4 round-trips. Pattern E from KP expert-pattern set.

Sanjay Rath Karakamsa Spiritual Lens Workflow

run_karakamsa_spiritual_lens

Atomic spiritual / soul-purpose reading. Runs Atmakaraka identification → D9 → Karakamsa → 12th-from-Karakamsa → Ishta Devata + D20 + past-life karmic + Bhrigu Bindu in one call. Returns '{ atmakaraka, karakamsa, twelfthFromKarakamsa, ishtaDevata: { primaryDeity, mantra }, d20Spirituality, pastLifeSummary, bhriguBinduDestiny, spiritualPath }'. Pattern C. Per Sanjay Rath 'Crux of Vedic Astrology' + Jaimini Sutras.

Today's Complete Outlook Workflow

run_today_complete

Atomic daily-outlook composite for daily-content / lifestyle B2B apps. Bundles: Choghadiya (8 day + 8 night auspicious 1.5-hr periods) + Hora (24 planetary hours) + Tara Bala (9-fold from native's nakshatra) + Moon transit + next-auspicious-window list. Returns '{ weekday, sunriseUTC, sunsetUTC, currentChoghadiya, currentHora, taraBala, moonTransit, nextAuspiciousWindows[], synthesis: { overallToneToday: FAVOURABLE|MIXED|CAUTIOUS } }'. Saves 5 round-trips per daily refresh.

Marriage and compatibility

10 tools

Advanced KP Compatibility (6 CSL factors + dasha sync)

get_compatibility_advanced

KP-rigorous compatibility analysis for two partners. Replaces Vedic Porutham (which KP rejects per Reader 4) with 6 CSL-based factors: LOVE (5th CSL by 5th CSL into 2/5/11), MARRIAGE (7 by 7 into 2/7/11), FINANCE (2 by 2 into 2/11), UNION (11 by 11 into 2/7/11), DENIAL_ABSENCE (no 6/8/12 from 7th CSL), and DASHA_SYNC (overlapping 7th-house dasha windows when both partners are simultaneously active in marriage-house periods). Returns 6 scored factors, dasha-sync windows, overall verdict (EXCELLENT/GOOD/AVERAGE/BELOW_AVERAGE/POOR), and explicit Porutham-rejection note.

Advanced Marriage Analysis

get_marriage_advanced

KP second marriage prediction: 8th house (2nd from 7th) CSL analysis for second partnership. Checks houses [2,8,11] for second marriage promise. Finds timing windows in dasha periods after first marriage activation.

Ashta Koota / 36-Point Guna Milan [Vedic Match]

get_ashta_koota_milan

[Vedic kundli-match adjunct] 36-point Vedic Guna Milan: Varna(1) + Vashya(2) + Tara(3) + Yoni(4) + Graha-Maitri(5) + Gana(6) + Bhakoota(7) + Nadi(8). Returns each koota's score with description, total /36, score band (EXCELLENT/GOOD/AVERAGE/POOR), Nadi-Dosha and Bhakoot-Dosha flags. Designed for matrimonial-platform B2B embeds. NOTE: KP Reader 4 explicitly rejects Porutham; use get_compatibility_advanced for KP-rigorous compatibility (CSL-based).

Compatibility Analysis

check_compatibility

KP-based 7-factor compatibility analysis between two charts. Factors: Moon compatibility, Venus-Mars attraction, Jupiter harmony, sub-lord matching, dasha sync, dignity match, and aspect harmony. Returns '{ overallScore (0-100), factors: [{ name, score, weight, details }], verdict: EXCELLENT|GOOD|AVERAGE|POOR }'. For KP-rigorous 6-CSL-factor analysis (which explicitly REPLACES Vedic Porutham) use 'get_compatibility_advanced'. For traditional 36-point Vedic Guna Milan use 'get_ashta_koota_milan'.

Extramarital Predisposition Signature (KP, sensitive personal lens)

get_extramarital_signature

Tests 8 weighted KP signals (5th CSL signifies 7+12, 7th CSL signifies 5+8, Venus+Mars in {5,7,8,12}, Rahu in 5/7/12, and others) and emits a riskBand NONE/LOW/MODERATE/NOTABLE/HIGH for the native's own self-reflection. Sensitive lens; B2B counselor-tooling only and strictly opt-in. Never disclose to a partner or third party; KP signatures describe predisposition only, never behaviour, and conscious choice dominates outcome.

Marital Separation Risk Calendar (KP)

get_marital_separation

Calendar of peak-risk dasha windows for marital separation, plus structured trigger detection. Returns: trigger strength (1/6/10 signified by 7th CSL star lord), Saturn/Rahu amplifier flag, peak-risk windows ranked by net risk score (separation houses minus marriage houses), sequential mixed-active pattern flag (marriage promised AND separation promised). Books: KP Reader 4 divorce chapters, Advanced T32. Supplementary lens, not legal advice; describes pattern risk, not predetermined outcome.

Spouse Characteristics from 7th CSL Star Lord (KP T31)

get_spouse_characteristics

Derives a structured spouse description from the 7th CSL's star lord per Advanced Technique T31. Returns profession class (industry archetype), age relationship (older / younger / same), geographic background (local / NRI-or-foreign-born / foreign), wealth relative to native (wealthier / comparable / poorer), personality archetype, and physical archetype. Designed for matrimonial-platform embeds.

Upapada Lagna (UL = A12), Spouse Signature [Jaimini]

get_upapada_lagna

[Jaimini adjunct] Upapada Lagna, Pada of the 12th house, used for marriage / spouse analysis in Jaimini tradition. Returns UL sign, lord, occupants, aspecting planets. Also returns all 12 Arudha padas (A1-A12) for completeness. B2B fit for matrimonial-platform deeper-layer analysis.

Where the Partner Comes From (KP Reader 4, direction and locality of the partner)

get_spouse_locality

KP Reader 4's rule for where the partner comes from, on the natal chart: the sub lord of the 7th cusp sub lord (and of each 7th-house significator) and the houses that sub lord OWNS. Owning the 1st or 4th: a co-tenant, one's own street, town or district, no journey after marriage. Owning the 3rd: a cousin, a neighbour, a short land journey, or a match fixed by correspondence or advertisement. Owning the 11th: a friend's family. Owning the 9th or 12th: a stranger, a love marriage, a foreigner, a long distance, which is the corpus's only statement on an inter-community or foreign partner. The extract of the page dropped its bare numerals, so every branch carries 'decodeConfidence' (the 3rd is certain from its suffix; the others are read from the page's sense) and the quote is given with its gaps. 'direction' applies Reader 6's sign-to-direction table to the sign the 7th cusp sub lord occupies and is labelled as a horary page applied natally; it gates nothing. Canon pages cited.

Why a promised marriage comes off late

get_marriage_delay

The seven conditions KP Reader 4 chapter 21 lists under the heading "Marriage is Promised but it comes off late in life" (canon pp.76-79). Answers the question the promise and timing tools do not: not whether marriage happens or when, but WHY it keeps slipping. **Every condition here is a DELAY and none is a denial** — whether marriage is promised at all is decided by the 7th cuspal sub lord, never by this list. **Only three of the seven are computable and the response says which.** Four invoke Uranus or a Western square, neither of which exists in KP, so they are returned with 'computed: false' and a reason rather than silently skipped or half-scored. The three that are computed: Saturn in the 1st, 3rd, 5th, 7th or 10th sign from the Lagna or the Moon while owning none of 2/7/11; Mars in the 7th; Moon conjoined with Saturn. **This is the received tradition, not KSK's method**, and the response says so: 'system' is 'vedic-parashari-with-western-aspects', and 'kpPosition' points at Punarphoo, which is what KSK gives in the same chapter (canon p.79) as his own reading and which 'get_marriage_advanced' carries. 'courseOfEvents' quotes what the corpus says a delay looks like — proposals falling through one after another, the bride resolving to stay unmarried, then a fresh party and a sudden celebration — instead of inventing a severity score the page does not give. Note on the source: canon pp.76-79 render every digit one higher than it should be, and the house numbers above are decoded through that shift, confirmed against a birth date, a marriage date and a stated age that only reconcile under it. Books: KP Reader 4 ch.21, canon pp.76-79.

Career and business

14 tools

Advanced Career Analysis

get_career_advanced

KP job change vs promotion differentiation: checks if 5th house (12th from 6th = end of current employment) is activated in the current antardasha. 5th active + 10th = job change. 10th+11th without 5th = promotion within same organization.

Business and Partnership Viability from the 7th CSL (KP)

get_business_viability

The 7th-cusp read for starting one's own concern and for taking a partner. Tests four named denial conditions (KP Reader 3 pp.375-376, restated Jyotish Part 3 p.199): the lord or a significator of the 7th sitting in Saturn's sub; the 7th CSL in the star of a planet placed in the 5th, 8th or 12th, sharper when that planet is in an earthy sign; a significator of the 7th in the sub of a planet deposited in 5/8/12; and the Mars courage gate, where neither the running dasa lord, the bhukti lord nor the 7th cusp sub lord connects Mars. Profit is decided at the 11th CSL and never at the 7th (Part 3 p.192), with gains to the querent read at the 6th (the 12th from the 7th) and the 11th (Part 3 p.172). Returns the partnership matrix from Part 3 p.054 with break agency (6+11 take a partner, 6+12 it breaks, 5+11 permanent, 5+8+12 the partner gains and you lose) resolved through the Reader 3 p.435 agency rule (the 6th shows when he leaves, the 12th shows when you drop him), the new-partner chain, the common-sign badhaka trap as context only (Jyotish Part 2 p.094), the 7th-CSL sign modality, wind-up risk, and dated gain windows from the business gain gate. Returns '{ seventhCsl, viability: PROMISED|MARGINAL|DENIED, denialConditions[], marsCourageGate, eleventhCslProfitVerdict, businessGainGate, gainWindows[], partnership, modalityVerdict, windUpRisk, summary, disclaimer }'. Not business or investment advice.

Career Blockage Diagnosis from the 10th CSL's Missing Houses (KP)

get_career_blockage_diagnosis

Reads the houses the 10th cuspal sub lord does NOT signify and turns them into four named consultation answers (source: krishnamurtipaddhati.com, '4 career problems in KP astrology explained'). Prolonged unemployment: the 10th CSL signifies 6, 8 or 12 with nothing from the earning group 2/10/11. Stagnant salary: it signifies 10 and 11 but skips 2, which is recognition that does not land in pay. Blocked promotion: it signifies 10 and 2 but skips 11, which is a role that pays but does not move. Layoff exposure: it strongly signifies 8 or 12 and the running major or sub period lord reinforces it. Each diagnosis carries evidence, a resolution gate, and dated resolution windows walked from the dasha calendar. Also reports structural stagnation (a 10th CSL tied to the 1st and the 10th and nothing else, Jyotish Part 1 p.198) and the career-struggle signature (the 10th CSL in the star of a planet signifying 5, 8 or 12). Returns '{ tenthCsl, signifiedHouses[], missingHouses[], diagnoses[], structuralStagnation, careerStruggleViaStarLord, primaryBlockage, summary, disclaimer }'. Every pattern is period-bound by construction and none is a permanent verdict.

Career Cusp Panel (KP, cusps 2/6/7/10/11 against 1/5/9/12)

get_career_cusp_panel

One-shot KP career foundation read. For each of the five career cusps (2 self-acquisition, 6 service, 7 partnership, 10 profession, 11 net profit) and each of the four negation cusps (KP Reader 3 p.394: the 1st negates the 2nd, the 5th negates the 6th, the 9th negates the 10th, the 12th is general loss) it returns the sign, star lord, cuspal sub lord, the CSL's own star lord with its full L1-L4 significations, the CSL's retrograde and combustion state, and a one-line verdict. Then classifies all nine planets career-friendly (2/6/10/11 at L1 or L2 with no 1/5/9/12 at L1 or L2) or career-hostile, sums a signed 'careerBalanceIndex' into a STRONG / FAVOURABLE / MIXED / OBSTRUCTED / HEAVILY_OBSTRUCTED band, and reports which negation houses are actually live against their targets. Returns '{ cuspReads[], planetClasses[], careerBalanceIndex, band, negationHousesActive[], bhadhakaRole, summary, disclaimer }'. The bhadhaka block is context only: Reader 2 p.332 confines bhadhakasthana to longevity and health, so it is never a career denial gate here. Call this first in any career reading; 'get_career_signature' scores category fit and 'get_career_advanced' handles timing.

Career Indicators

get_profession_indicators

Career analysis from the 10th-house CSL (Cuspal Sub Lord). Returns '{ chart_info, profession_indicators, ruling_planet_applications: { chart_verification, prediction_confirmations[] }, pagination, pageNote }'. The career verdict lives in 'profession_indicators' and 'chart_verification', both of which repeat on every page; **'prediction_confirmations' is paged** and is the RP audit trail across every event, not the answer. For richer career signature (8 named categories: IT/government/business/military/medicine/law/arts/education) use 'get_career_signature'. For profession nature description (sector, employment mode, leadership/technical/creative scores) use 'get_profession_description'. For job-change vs promotion timing use 'get_career_advanced'.

Career-Category Fit Classifier (KP, 8 categories)

get_career_signature

Scores the chart against 8 named career categories (IT/software, government, business, military/defence, medicine, law, arts/creative, education/academia) per KP Reader 3 ch.27-43 signatures. Each category gets a 0-100 score with concrete signature hits. Also emits cross-cutting axes: sector class (government / private / self / mixed), employment mode (employment / business / mixed), and leadership / technical / creative scores (each 0-100). Use this for 'what is this person suited for'; pair with get_profession_description for 'describe the actual profession' and get_career_advanced for 'when promotion vs job-change'.

Earned Income Panel with the Sub Gate (KP, houses 2/6/10/11)

get_earned_income_panel

The earned-money read behind 'will my pay go up'. House roles are KP Reader 3 p.380 verbatim: the 2nd is receipt of money by any means including salary, the 6th is money for dues from service rendered to another, the 10th is money brought by the profession, the 11th is net profit. The core test is THE SUB GATE (Reader 3 pp.194-195, independently Jyotish Part 3 pp.175-176): a significator of 2/6/10/11 delivers only if the sub it occupies is governed by a significator of the 2nd, 6th or 11th. Also applies the Reader 3 p.218 reduction rule (significators of 2/10/11 in the sub of significators of 4/5/8/12), excludes the 10th from the profit verdict because it is the 12th to the 11th (Jyotish Part 1 p.354), checks the master rule that the lord of the 10th must connect the 2nd (Part 1 p.383), scores the salary / business / commission / windfall source mix, flags 8-and-12 leakage, and dates increment windows. Returns '{ houseRoles[], netGainEleventh, incomeGrade, gradeRationale[], lordOfTenthConnectsSecond, reductions[], incomeSourceMix[], leakageFlag, incrementWindows[], summary, disclaimer }'. QUALITATIVE ONLY: it never emits a salary figure, a currency amount or a rate of increase, because Jyotish Part 3 p.178 states exact figures are not derivable. Use get_financial_analysis for speculation and accumulated wealth, which works the 2-5-11 houses instead.

Foreign Job and Posting (KP, distinct from foreign settlement)

get_foreign_job_verdict

Working abroad, which get_foreign_settlement structurally cannot answer: its three stages are 3/12, 9/12 and 4/12 with no 6th or 10th house anywhere, so it reads settlement and never employment. KP Reader 3 p.330 states it plainly, stay in a foreign country is judged from the 12th, for further studies the 9th, and for a job 6 and 10 also. Promise gate, R3 p.327: the 12th CSL must signify 3, 9 or 12, and the event runs in the conjoined periods of those significators. The 6th-house term is what separates a posting from a settlement (Part 3 p.061 and R6 p.311, both independently: a 12th CSL signifying 3/9/12 AND a strong significator of the 6th gives a foreign assignment). R3 p.334's one-minute denial applies when the 12th CSL falls in the 8th bhava, the 12th from the 9th, which denies overseas entirely. 'mode' splits PAID_ABROAD, OWN_BUSINESS_ABROAD (the 6th against the 7th abroad, Part 1 pp.132-134), PROBATION (9 + 12) and PROMOTION_POSTING (11 with 6 or 10, R6 p.332), STUDY_ONLY and bare travel, each with the candidates that lost so the caller can see the margin. Also returns the abroad income gate on 2/6/11 and a permanent-residence read on 1/3/9/10/12 (Part 1 p.215). Not immigration, visa or relocation advice: verify every requirement with the relevant authority.

Job Change Timing (KP, dated windows with both leaving-house derivations)

get_job_change_timing

Dated job-change windows built on the sourced promise test rather than the invented house grammar in get_career_advanced. Promise, Jyotish Part 3 p.103: the 10th CSL must signify 3, 5 or 9 AND must not sit in the constellation of a retrograde planet. Both published derivations of the leaving houses are reported side by side and neither is silently preferred: the orthodox 1/5/9 (the 12th from each of 2, 6 and 10, so the 1st negates self-acquisition, the 5th negates service, the 9th negates status) and Reader 6 pp.306-307's 3/5/9 (the 6th, 8th and 12th counted from the 10th). Separates the axis clients actually ask about: switching employer inside the same field is judged on the 6th cusp, switching field entirely on the 10th, and change of occupation (2/9/10/11) is distinguished from change of place inside the same job (3/10/12, Part 1 p.199). Windows are MD/AD/PD triples where the lords jointly signify the leaving houses, filtered by the bhukthi lord's own sub lord test (P3 p.104), pruned against ruling planets with retrograde RPs rejected, then narrowed by Sun transit. 'modernVariant589' carries the 5-9-8 rule as a labelled flag only, never as the verdict, because its hard 8th-house requirement would suppress every voluntary resignation. Returns '{ promised, tenthCsl, signifies359[], signifies159[], starLordRetrograde, leaveServiceGate, changeAxis, occupationVsPlace, windows[], sunTransitDates[], rpOverlap[], modernVariant589, summary, disclaimer }'.

Modern Occupation Leanings from the 10th Cusp Triad (KP, weakest-confidence tool)

get_occupation_matches

Which kinds of modern work a chart leans toward, scored off the 10th cusp TRIAD rather than a ninefold planet lookup. The method is KSK's own three steps at KP Reader 3 printed 327-328: study what each sign indicates, understand what each planet denotes, then combine the rasi and the planet at the meridian. His worked example is explicit, that the meridian's sign lord, star lord and sub lord together indicate the profession, so this tool scores those three and not the sub lord's own star lord (get_profession_description walks that deeper chain for a different question). Scoring layers: triad planet overlap, supporting planet overlap, the meridian sign, domain-house activation through the significator matrix, and the 2/6/10/11 career base. NODE HANDLING: Rahu and Ketu are never scored as themselves. In KP a node carries no karakatva of its own and acts as an agent for its star lord, its conjunctions and its sign lord (KP Reader 6 p.274; KP Reader 3 p.356, 'For Rahu and Ketu, one is to note in which constellation it is and then according to the lord of the constellation ... one is to offer the prediction'), so node slots are resolved and the resolved planet scores, with every substitution listed in 'nodeResolution[]'. PROVENANCE MODEL, read this before quoting any result: each occupation carries 'provenance', one of BOOK_SOURCED (a KP text names it directly in a profession context), ANCESTOR_DERIVED (inherited from a named older occupation the books do carry, with the ancestor recorded so the leap is one auditable step) or PRINCIPLE_DERIVED (no KP text predates the occupation, so the signature was assembled from planet, sign and house significations, which is a reasoned construction and not a citation). 'provenanceSummary' reports the mix at the top level. CONFIDENCE CAVEAT: this is the weakest tool in the career suite and is built to say so. KP is strong on whether a career is promised, on whether it runs as service or one's own concern, and on when the ground shifts; it is weakest at naming an occupation, and KP's own literature says so, since Tin Win, reviewing the standard KP profession text in KP Ezine October 2010, wrote that 'The precise rules which are valid for a bulk of empirical charts have not yet been found.' 'topFamilies' is the headline answer and 'matches' is capped at 12 as illustration, never a shortlist. 'noSettledOccupationFlag' trips when the career balance is HEAVILY_OBSTRUCTED or the Jyotish Part 1 p.359 denial gate fires (a 10th CSL signifying none of 6, 7 or 10), and the matches are then inclinations rather than a career. Returns '{ tenthCuspTriad, planetLayer[], signLayer[], houseLayer, nodeResolution[], topFamilies[], matches[], noSettledOccupationFlag, provenanceSummary, summary, disclaimer }'. Phrase every result as 'leans toward' or 'is consistent with'. Never say what someone is, and never use this to screen, rank or decide about anyone.

Profession Type Description (KP, from 10th CSL star lord)

get_profession_description

Derives the type of profession (not timing) from the 10th CSL's star lord per Advanced Technique T34. Returns primary and secondary industry, sector class (government / private / self), employment mode (employment vs business per R3 ch.29-31), work type, leadership / technical / creative scores (each 0-100), and a qualitative salary band. Use alongside get_career_advanced (which handles career timing) and get_career_signature (which scores career-category fit).

Promotion Verdict (KP, the 11th-cusp three-condition gate)

get_promotion_verdict

The orthodox promotion gate, which the older get_career_advanced never applied because it does not read a cusp sub lord at all. Three conditions from Jyotish Part 5 p.185 quoting KP Reader 6 p.287, restated verbatim at R6 p.297: the 11th cuspal sub lord must be direct, its star lord must be direct, and the 11th CSL must signify 2, 6, 10 or 11. The star-lord condition is returned as 'starLordRetrogradeOverride', a flag rather than a hard veto, because the source author himself overrides it on evidence at P5 pp.186-188. Returns two window sets that consultations routinely conflate: 'selectionNewsWindows' (an 11th significator that also signifies the 3rd, which is hearing of the selection, R3 p.433) and 'actualPromotionWindows' (the 11th conjoined with 2, 6 or 10, which is the order itself). Also returns 'stagnationFlag' (a 10th CSL tied to the 1st and 10th and nothing else is structural stagnation, Part 1 p.198), 'delayAgent' (Saturn owning the 11th delays until the native gives up, then delivers, R6 p.299), 'bothCuspsVariant' (the stricter applied form requiring the 6th and 10th CSLs to signify 2/6/10/11 simultaneously) and 'transferCoincides'. No salary or increment figure is derivable from a chart and none is returned.

Service against Business, Five Sourced Rules Side by Side (KP)

get_job_vs_business_verdict

Answers salaried service against running one's own concern by running five sourced KP rules independently and reporting each one, in the style of get_four_step_verdict. Rule A: the 2nd cusp sub lord clauses (KP Reader 3 p.154, restated Reader 5 p.175). Rule B: the star lord of the 10th CSL against the 6th and the 7th (Jyotish Part 1 p.345, Part 3 p.058). Rule C: the 10th CSL on 6-8 against 7-10-11 (Part 1 p.355). Rule D: the 6-8-12 group against the 1-7-10-11 group, compared as fractions (Part 1 p.382). Rule E: the applied exclusion sets through the 10th CSL's star lord, with the 6th-CSL and 11th-CSL fallback chain. Returns '{ verdicts[], consensus, agreement: STRONG|PARTIAL|DIVERGENT, denialGate, dualProfession, strictStellarFilterApplied, summary, disclaimer }'. Also enforces the Part 1 p.359 denial gate (a 10th CSL signifying none of 6, 7 or 10 promises no settled occupation) and the Part 1 p.356 strict stellar filter (a star lord must signify by occupation, or be in its own star as owner; mere ownership does not count), reporting which significations the filter dropped. When the rules disagree the disagreement is the answer: this tool never picks a winner silently.

Termination and Suspension Risk (KP negation frame, risk band never a verdict)

get_termination_risk

The service-negation frame stated verbatim at KP Reader 3 p.394: judge houses 1, 5, 9 and 12 for termination of service, because the 1st negates the 2nd (self-acquisition), the 5th negates the 6th (service), the 9th negates the 10th (status), and the 12th is the general house of loss. The load-bearing qualifier is from Jyotish Part 5 pp.190-191, which states independently that this signifies change of work or duties or even job, or leave, or reversal in the ordinary course, and NOT necessarily punishment. P5 p.191 supplies the discriminator: punishment requires a significator of 6 or 10 to ALSO be a strong significator of the 8th, and with no 8th connection there is no harmful result. So 'punishmentGate' returns ORDINARY_CHANGE / PUNITIVE / NONE rather than a single risk number. Windows are typed LEAVE / TRANSFER / REVERSION / SUSPENSION / TERMINATION. Both published suspension house sets are returned with an agreement note (5/9/12 from R3 p.433, and the 1/8/9/12 applied variant), plus the vigilance-or-bribery pattern (10 + 12, R3 p.433) and the 6/8/12-from-both recurrence rule (a post held from A-dasa B-bhukthi comes under pressure in a C-bhukthi that is 6, 8 or 12 from both, Part 2 p.223 and R5 p.291) when 'post_start_date' is supplied. This tool deliberately ships a risk band with dated windows and never a binary firing verdict: an unhedged machine verdict on someone's livelihood is a harm the standard disclaimer does not cover.

Health

21 tools

Accident Risk Windows by Class (KP)

get_accident_window

KP accident-window detection. Identifies dasha periods with malefic activation (Mars / Saturn / Rahu) signifying risk houses, and classifies each window by accident class: VEHICULAR (3rd house), WORKPLACE (6+10), SURGICAL (1+8), ASSAULT (6+12), or GENERIC (4 or 8 with malefic). Severity bands: MINOR / MODERATE / SEVERE / LIFE_THREATENING. Returns ranked risk windows, aggregate type distribution, and the peak window. Books: KP Reader 6 case 50 and J5 p.50 worked accident case 23-7-1963. The Reader 3 citation this used to carry was wrong: it named ch.22, which is "Will stammering disappear?" (canon pp.310-313), and Reader 3 has no accident chapter. The house grammar (1st for the body, 4 and 8 supporting, 12 for confinement) is later KP practitioner literature, class modern, not KSK. Supplementary safety lens, not deterministic; flags caution windows, never predicts certain harm.

Ayurvedic Prakriti from Chart (Vata/Pitta/Kapha hybrid lens)

get_ayurvedic_constitution

Hybrid Ayurvedic-Jyotisha lens. Maps planets to doshas (Saturn/Rahu/Mercury to Vata, Sun/Mars/Ketu to Pitta, Moon/Jupiter/Venus to Kapha) weighted by house importance (1H strongest, then 6/8/12 health, then 4 vital fluids, and so on) and adds the lagna-sign element bonus. Returns vata/pitta/kapha percentage triple summing to 100, primary plus secondary dosha, prakritiCombo (single / dual / TRIDOSHIC), and per-planet contributions. Hybrid discussion starter, not a clinical Ayurvedic prakriti reading and not standalone health advice; supplementary lens only.

Chronic Disease Watch-Decade Panel (KP, 8 conditions)

get_chronic_disease_panel

Multi-disease watch-decade panel scoring 8 chronic conditions: cardiac, diabetes, kidney, liver, neurological, mental-health, respiratory, skeletal. Each disease gets (a) a 0-100 signature strength from key planets afflicting 6/8/12 plus sign affinity on 6th cusp plus 6th-CSL match, (b) a severity classification (LOW/MODERATE/HIGH/CRITICAL), (c) watch-decade dasha bands (ONSET_RISK / AGGRAVATION / CRITICAL) drawn from MD+AD where the disease's key planets activate. Books: KP Reader 3 ch.19 "Disease", canon pp.291-301, plus canon p.190 for the chronicity rule. The per-disease house assignments are this engine's and are not in those pages. **Paged by disease**, each returned whole with its watch decades, signature hits and rationale, so a page is a complete condition rather than a partial one; 'topRiskDisease', 'topRiskDecade', 'bookCitations' and the disclaimer repeat on every page. Supplementary lens, not diagnostic; never a substitute for medical evaluation.

Cure / Recovery Window Timing

get_cure_window

Dated recovery/cure windows, the mirror image of surgery timing. Collects L1-L4 significators of houses 1/5/11 (body, relief/vitality, cure), excludes planets that simultaneously signify 6/8/12 at L1/L2 (Golden Rule, they promise disease more strongly than cure, reported in excludedByGoldenRule), and for movable lagnas demotes 11th-house cure claims to half weight (the 11th IS the bhadhaka). Walks the MD/AD/PD dasha calendar for windows where all three lords are filtered cure significators, scored by joint coverage and level weights, with transit Jupiter (year-band) and Sun (month) star-lord confirmations at each window midpoint plus transit-Moon refinement guidance. READ 'curePromise' FIRST: KP Reader 3 canon p.189 settles whether there is a cure at all before any date is offered, and denies it only when all three of its conditions hold together (nothing in the 11th, no planet in the star of the 11th's owner or occupants, and the 11th cusp and 11th lord both in evil subs). 'dashaLevelIncurability' reports the page's NEXT paragraph, what KSK saw in the horoscopes of lifelong sufferers (every dasa lord from the onset in the sub of the lord of 6, the 11th not strong, the lords of 11 and 1 spoiled), as a pattern word with each observation and the engine's reading of the three terms he leaves undefined; it gates nothing, because he states it as an observation and not as a rule. Returns { curePromise, dashaLevelIncurability, cureSignificators, excludedByGoldenRule, bhadhakaAdjustment, windows[], bestWindow, noCureWindowReason, disclaimer }. Supplementary lens, not medical advice.

Current Health Pressure Snapshot

get_current_health_status

Deterministic 'how is health pressure right now' snapshot for a moment: running MD/AD/PD (and Sookshma) lords each scored +weight for 6/8/12 significations at L1/L2 (pressure) and -weight for 1/5/11 (recovery); ruling planets of the moment overlapped with the health-hostile set (6/8/12 at L1/L2 without 1/5/11) and health-friendly set; transit Moon star/sub lord hostility flags; transit Saturn/Mars in the star of a 6/8/12 significator as slow/acute triggers. Aggregates to healthPressureScore 0-100 with status FAVOURABLE / WATCHFUL / STRAINED, ordered reasons[], and nextChangeDate = when the current pratyantardasha ends. Supplementary lens, not medical advice.

Disease Nature Decoder (6th CSL, KP)

get_disease_nature

Decodes the 6th cusp sub lord into the NATURE of disease, not merely its location (KP Reader 3 canon p.295 for the procedure, canon p.190 for chronicity, canon pp.292 and 296-297 for the keyword lists). Three layers: (a) planet-to-ailment-class keywords for the 6th CSL and separately for its star lord (e.g. Saturn = chronic/degenerative, Mars = acute inflammation/surgery, Ketu = viral/autoimmune/misdiagnosed); (b) chronicity from the modality of the sign the CSL occupies (movable = ACUTE self-limiting, fixed = CHRONIC long-standing, dual = RECURRING relapsing); (c) body part from the CSL's nakshatra position via the 27-fold Kalapurusha map, with the 12-sign body part as a secondary read. Severity gates from the CSL's own significations (8 = serious/prolonged, 12 = hospitalization tendency, 11 = curable) combine into a CURABLE / MANAGEABLE / PERSISTENT curability verdict. Natal-only, no dasha walk. Supplementary lens, not a medical diagnosis.

Epidemic Susceptibility (personal B22 counterpart)

get_epidemic_susceptibility

Personal counterpart of the national epidemic scorer in get_mundane_analysis (B22), mirroring its planet set: Mercury (respiratory), Moon (fluids/lymph), Ketu (viral), Rahu (contagion). susceptibilityScore 0-100 from the 6th CSL chain carrying those planets (+18/+15/+18/+18), the same four signifying 6/8/12 at L1/L2 (+6 each, capped +24), the Mercury-Ketu 8-degree pandemic amplifier (+10) and a 12th CSL isolation link (+8). resistanceScore is the vitality index; netBand LOW/MODERATE/ELEVATED/HIGH from susceptibility minus resistance/2. personalExposureWindows are MD/AD/PD periods whose lords are signature planets signifying 6/8/12 at L1/L2, bounded to outbreak_from..outbreak_to when given (else the next 3 years). Includes respiratoryBias and isolationRisk flags and echoes the outbreak window.

Habit / Escape-Pattern Susceptibility Panel

get_addiction_indicators

Natal susceptibility panel framed strictly as tendencies and patterns, never labels or diagnoses. Core lens: the 12th CSL (indulgence/escape) and its chain — Rahu (+15, substance/escalation), Ketu (+10, relapse cycles), Venus (+10, indulgence), Saturn (+8, entrenchment), Mars (+5, risk-taking), Moon tied to Rahu/Saturn while signifying 12 (+12, emotional dependency), 12th CSL signifying 12 with 6/8 (+20). Returns susceptibilityScore 0-100 with band (LOW/MODERATE/ELEVATED/HIGH), indicated tendency types (COMPULSIVE_DIGITAL is an explicitly modern non-classical extension), protective factors (a strong 6th CSL signifying 11 means the fight is won; Jupiter on the 12th; strong 1st CSL), and Golden-Rule-filtered vulnerable/recovery MD-AD windows. Includes a warm supportNote; anyone struggling should reach a qualified professional.

Health Cusp Panel (KP, cusps 1/5/6/8/11/12)

get_health_cusp_panel

One-shot KP health foundation read. For each of the six health cusps (1 vitality, 5 recuperation, 6 disease, 8 chronicity/surgery, 11 recovery, 12 hospitalization) it returns the cusp's star lord, sub lord (CSL), the CSL's star lord with its full L1-L4 house significations, and the CSL's retrograde/combustion state with a one-line verdict. Then classifies all nine planets: health-hostile (signify 6/8/12 at L1/L2 without 1/5/11 at L1/L2), health-friendly (the mirror test), or neutral; aggregates a signed healthBalanceIndex (1-5-11 weight minus 6-8-12 weight, L1=4 L2=3 L3=2 L4=1) into a disease-proneness band (RESILIENT/BALANCED/DISEASE_PRONE/HIGHLY_VULNERABLE); and reports whether the bhadhaka lord (Reader 3 mobility rule) lands in the hostile list. Supplementary lens, not medical diagnosis; no death prediction.

Health Organ Panel (Sign × Body Region)

get_health_organ_panel

Sign-to-body-part affliction panel. Maps each sign to its body region (Aries=head, Taurus=throat, ..., Pisces=feet) and organ system, scores affliction 0-100 from malefics in the sign + sign-lord weakness (combust/debilitated/retrograde). Returns per-sign body-part rows, highest-risk organ, and standard medical disclaimer. NOT A KP READING: this tool touches no cusp, sub lord or significator, so none of the KP decision procedure is in it, and it is tagged vedic-parashari for that reason. The body map is melothesia shared by every tradition that uses one; KSK prints his own per-sign disease list at KP Reader 3 canon pp.296-297 and credits it at canon p.291 to Western authors. The affliction weights are a Lumin convention with no source. SUPPLEMENTARY LENS, NOT DIAGNOSTIC; never a substitute for medical evaluation.

Health Transit Alert Calendar

get_health_transit_alerts

Day-level health-vulnerability calendar over a window (default 12 months, clamped to 24). Scans transit Saturn (chronic-flare bands), Mars (acute bands), Sun (month-level vitality dips), Moon star+sub hostile days, and Rahu/Ketu axis contact within 2° of the natal 6th/8th cusps — all against the natal health-hostile significator set (6/8/12 at L1/L2 without 1/5/11, plus bhadhaka-house significators). Each merged alert band carries severity 1-3 (concurrent confirmations, +1 when the running AD/PD lord is hostile; bands under a clean 1/5/11 MD+AD are suppressed), a body-area hint, and one-line guidance. Also returns the quietest alert-free stretches. Supplementary perspective, not medical advice.

Hospitalization Window (natal promise + dated confinement windows)

get_hospitalization_window

Natal 12th-house confinement analysis. Promise gate on the 12th CSL: signifying 6 and/or 8 makes the confinement illness-driven (PROMISED); only 3/9 reads as travel/retreat (WEAK, non-medical); neither is DENIED. Walks the MD/AD/PD calendar for windows where the three lords jointly activate the 12th with an admission driver — typed ADMISSION {12,6}, SURGICAL_OR_ICU {12,8}, CRITICAL {12,8,bhadhaka}, DAY_PROCEDURE {12,1} (the confinement group is 1/6/12 per KP Reader 3 canon p.293, "if the significator of the sixth house is also the significator of 1 and also 12 one will be confined to bed"; it used to carry the 5th, which is the CURE house) — chronological, capped at 12, with Saturn (prolonged-stay) and Mars (emergency/acute) transit confirmation sampled at each window midpoint. Duration class from the 12th CSL's occupied sign modality: movable=SHORT_STAY, fixed=PROLONGED, dual=REPEAT_ADMISSIONS. Supplementary lens, not medical advice or diagnosis.

Medical Timing Analysis

get_medical_timing

KP medical timing: surgery window analysis (1st+6th+8th houses active, Moon in 11th significator nakshatra for recovery, no retrograde transit chain) and recovery vs chronic differentiation (compares 6th CSL star lord's signification level for 11th house vs 8th house: higher 11th = recovery, higher 8th = chronic).

Mental Health Pressure Panel (reflective, KP)

get_mental_health_panel

Reflective natal panel on emotional and cognitive pressure patterns, in tendency/pattern language only (never diagnosis). Moon and Mercury affliction scores 0-100 with itemized factors (dusthana, malefic conjunctions within 8 degrees, star lord on 6/8/12 at L1/L2, waning Moon amplifier; graded combustion is itemized at zero points, reported and not scored per F066). Cusp reads for the 1st, 5th, 8th and 12th. Seven named signatures with strength: MOON_SATURN, MOON_RAHU, MOON_KETU, MOON_MARS, MERCURY_SATURN, MERCURY_RAHU, SEVERE_TIE. severityBand LOW/NOTABLE/ELEVATED/HIGH, institutionalizationRisk from the 12th read, MD/AD onsetWindows (afflictor lords signifying 6/8/12 at L1/L2) and Golden-Rule-clean reliefWindows. Always returns a crisisSupportNote alongside the disclaimer; surface it whenever this tool's output is discussed.

Misdiagnosis Risk Score (natal 6th-chain diagnostic-ambiguity flags)

get_misdiagnosis_risk

Deterministic diagnostic-ambiguity audit of the natal 6th-house chain, aggregated to a 0-100 score with bands LOW <25 / MODERATE <50 / ELEVATED <75 / HIGH ≥75. Flags: 6th CSL is Ketu or in Ketu's star (mystery illness — symptoms without findings), Rahu or in Rahu's star (wrong identification, drug reaction mimicking disease), CSL retrograde (diagnosis reverses on second opinion), Mercury afflicted (6/8/12 placement, node conjunction within 8°; its graded combustion is reported and adds no points, since a combust Mercury still signifies what it signifies in KP, F066), 6th cusp within 10 arc-min of a sub-lord boundary (CRITICAL ≤6' — reports the alternate sub lord and how the disease read would differ), Saturn in the CSL chain (delayed diagnosis), and the 10th CSL (the physician) signifying 6/8/12 at L1/L2 (change of doctor advised). Returns secondOpinionRecommended and physicianChangeIndicated. Supplementary lens, not medical advice or diagnosis.

Oncology Body-Part & Recurrence Lens (KP)

get_oncology_timing

KP oncology-specific lens. Decodes the body-part risk from the 6th cusp sign (12-sign to body-part map per KP Reader 3 canon pp.296-297, which KSK credits at canon p.291 to Heindel, Lilly, Zadkiel, Sepharial, Llewellyn George and Alan Leo; the KP part is the 6th cusp sub lord procedure at canon p.295, not the body map), scores 6 named malignancy signatures (Jupiter-Rahu tumor, Saturn-Mars chronic-inflammation, Moon-Rahu lymphatic-malignancy, Saturn-Rahu slow-growth, Mars-Ketu genetic-predisposition, Sun-Saturn bone/marrow), and produces a recurrence-vs-cure verdict from 6th CSL star lord's 8th-house vs 11th-house signification dominance. Returns treatment-window dasha periods (1+5+11 jointly active) and disease-onset windows (6+8+12 active). Supplementary lens, not diagnostic; never a substitute for medical evaluation.

Organ Transplant Reflective Timing (KP)

get_organ_transplant_timing

KP reflective lens on transplant-adjacent questions. RECIPIENT lens: 8th CSL (receiving another's body/resource, 2nd from the 7th) signifying 8+11 with a clean 1st CSL → PROMISED_AND_SURVIVABLE; only 6/8/12 → COMPLICATION_RISK; else UNCERTAIN. DONOR lens: 12th CSL signifying 12+6+11 favourable; 8 without 11 → donor-risk caution. Rejection overlay: Ketu on the role chain → immune-rejection flag, Saturn → delayed-graft-function flag. Organ indication from the 6th CSL's nakshatra (Kalapurusha 27-fold). Candidate MD/AD/PD windows (5-year horizon) jointly covering {8,11} or {12,11}, each with Mars-direct and Jupiter-in-11th-significator-star midpoint confirmations. Optional counterpart profile adds simple donor-recipient window sync. Transplant decisions are entirely medical; this is a supplementary reflective lens only.

Qualitative Lifespan Band & Balarishta Lens (KP, no death dates)

get_longevity_balarishta

Qualitative lifespan-band estimation per KP Reader 3 ch.1 p.153 (Bhadhakasthana) and Reader 5 longevity transits. Returns: bhadhakasthana house (selected by lagna mobility, movable=11, fixed=9, dual=7 per KSK), maraka houses [2, 7, 12], 1st-CSL star lord signature, lifespanBand (SHORT / MIDDLE / LONG / INDETERMINATE), expectedAgeBand (qualitative band only, never an exact age), balarishtaWarning, and criticalWindows[] (dasha periods activating bhadhaka/maraka houses, ranked CAUTION / NOTABLE / PEAK_RISK with ageStart/End). BY DESIGN THIS TOOL DOES NOT AND CANNOT PREDICT DEATH DATES OR MOMENTS; outputs are qualitative bands and risk windows only. Restricted in some jurisdictions without consent; B2B advisor-tooling signal, never consumer-facing.

Surgery Success Outlook (KP)

get_surgery_success

Answers whether an operation will go WELL (get_medical_timing answers WHEN). Natal promise: 1st CSL must not signify 8/12 at L1 (vitality through the operation), 11th CSL on 1/5/11 (fulfilment), 8th CSL on 6/8/12 without 11 (complication-risk pattern), 6th CSL on 11 (disease removed), plus a natal Mars (surgeon's karaka) retrograde caution. Mars's combustion is reported and does not disqualify the karaka or move the score: KP reads the outcome from the 8th cusp sub lord's significations (F066, Q023 section 20). Returns successVerdict FAVOURABLE/GUARDED/UNFAVOURABLE, complicationRisks (Saturn prolonged recovery, Rahu/Ketu anaesthesia and unexpected findings, Mars bleeding tendency), recoverySpeedClass. With surgery_date it also grades the day itself: MD/AD/PD lords, transit Mars retrograde means DEFER (KP retrograde invalidation), ruling planets must carry a 1/5/11 significator, transit Moon star/sub hostility; dateVerdict GO/DEFER/RESCHEDULE with deferReasons and up to 3 recommendedWindows within 90 days when the date is not clean. Never replaces medical judgment, and emergency surgery is never delayed for astrology.

Treatment Modality Selector (KP)

get_treatment_modality

Answers 'which system of medicine will work?' by reading three cusp sub lords: the 6th CSL (nature of the cure agent), the 11th CSL (what delivers the cure), and the 12th CSL (hospital vs home). Each CSL's planet maps to modalities (Sun = allopathy/hospital, Moon = diet/counselling/homeopathy, Mars = surgery, Mercury = diagnostics-led/physiotherapy/mixed pathies, Jupiter = ayurveda/herbal, Venus = comfort/naturopathy, Saturn = long-term regimen/chronic care, Rahu = experimental/foreign/strong drugs, Ketu = faith healing/alternative medicine) and is scored 11th x3, 6th x2, 12th x1 with star lords at half weight. Extra verdicts: surgical route indicated (Mars on the 6/11 cure axis plus 8th CSL signifying 8), hospital vs home care, and doctor change (10th CSL signifying 6/8/12 at L1/L2). Optionally pass current_treatment for an ALIGNED / PARTIAL / MISALIGNED verdict against the ranking. Natal-only, no dasha walk. Supplementary lens, not treatment advice.

Vitality / Constitutional Resilience Index (KP, 0-100)

get_vitality_index

Constitutional resilience and immunity score (0-100) with a recuperation class (FAST_HEALER/AVERAGE/SLOW_HEALER/FRAGILE). Components, each itemized in a factors array: the 1st CSL's 1-5-11 vs 6-8-12 significations (weighted L1=4..L4=1); the 1st CSL's STAR LORD on the same test, weighted higher (the real decider in KP) including its retrograde state; lagna lord placement; Sun (vital fire) and Moon (fluids/resistance) affliction via dusthana placement or Saturn/Mars/Rahu/Ketu conjunction within 8 degrees. Combustion (graded NONE/ORDINARY/FULL) and dignity are REPORTED in the factors and move no points: KP reads vitality from the 1st cusp sub lord's significations, and a planet's own dignity or combustion decides nothing (F066, Q023); a resistanceRatio from 1st-vs-6th house strength scores; and a penalty when the bhadhaka lord occupies or aspects the 1st house. Also returns susceptibilityBias (inferred weak areas). Supplementary lens, not medical diagnosis; no death prediction.

Money and wealth

2 tools

Children

3 tools

Fertility / Conception / IVF Window (KP)

get_fertility_window

KP fertility-readiness lens. Promise check: 5th-cusp sub-lord must signify 2/5/11 (promise) and not 1/4/10 (denial), not retrograde, star lord not retrograde. Outputs overall verdict (NATURAL / IVF_OR_ASSISTED / DELAYED / DENIED / MIXED), Jupiter karaka health check, 5th-cusp sign affinity (fruitful: Cancer/Scorpio/Pisces; barren: Aries/Gemini/Leo/Virgo), per-child analysis (1st = 5th house, 2nd = 7th, 3rd = 9th), natural-conception dasha windows, IVF/assisted-reproduction signals (retrograde 5th CSL, Saturn/Mars/Rahu in 5th), miscarriage risk score (5+8 mixed-active). Books: KP Reader 4 children chapters, Aryan Astrology Research Centre, bestkpastrologer.com (Partha Sarathi Rout). Supplementary lens, not diagnostic; never a substitute for clinical fertility evaluation. Hard-disable any gender-of-child output for IN deployments (illegal under PCPNDT).

Paediatric Balarishta Risk Lens (KP, child chart, B2B only)

get_balarishta_panel

Sensitive child-survival risk lens for paediatric / fertility / IVF advisor tooling, scored on a child's natal chart. Distinct from get_longevity_balarishta (which targets adults). Tests classical balarishta combinations (Moon in 6/8/12 plus Saturn/Mars affliction, Saturn/Mars on lagna, 8th lord in 1st, 5th CSL signifies 8/12) plus mitigating signals (Jupiter in kendra, full 2+5+11 promise, Moon dignified). Score 0-100 maps to riskBand NONE/LOW/NOTABLE/HIGH. Supplementary lens, not diagnostic. B2B advisor-tooling only; never communicate raw output to a parent or caregiver.

Sex of a Child as the Corpus States It (KP Reader 2 canon p.108, Reader 4 canon p.240)

get_child_sex_indication

Two statements the corpus makes, kept apart. The traditional general rule KSK prints in Reader 2: the 5th cusp's sign, the 5th lord's gender (BPHS ch. 3 v. 19: Sun, Mars, Jupiter male; Moon, Venus female; Mercury, Saturn neuter) and the sign it occupies, masculine for boys and feminine for girls, three testimonies counted and reported. And the one KP delivery case in Reader 4: the running antara and sookshma lords AT THE DELIVERY being male planets read a son, with KSK's own words carried, 'I never had any experience in pin-pointing the sex before birth'. Pass delivery_date to compute the second; without it the field says why it waits. The count of children is NOT computed: no Reader page searched states a number, and a count crosses the wire with its page or not at all. A disclaimer travels on the payload; nothing here is a verdict.

Education

2 tools

Foreign and travel

2 tools

Legal

2 tools

Property

1 tool

Family and relatives

1 tool

Birth time rectification

6 tools

Advanced Rectification

get_rectification_advanced

Advanced KP birth time rectification: for each known life event (with date AND location), computes Ruling Planets at that event moment and checks overlap with the rectified chart's fruitful significators. Combines RP alignment score with dasha match score for the most rigorous rectification available in KP.

Andrew Dutta Rule of Origin

check_rule_of_origin

Andrew Dutta's Rule of Origin: a correctly-rectified birth chart will have the Lagna's star/sub lord connected to the 9th cusp's star/sub lord. Returns verdict DIRECT (same planet match — score 2, HIGH confidence in birth time), INDIRECT (third-planet bridge — score 1, MODERATE), or NONE (no connection — score 0, LOW; birth time likely needs rectification). Use as a fast pre-flight check on any birth chart before deeper readings.

Birth Time Finder

find_birth_time

Find an UNKNOWN birth time using the KP Ruling Planets method. Scans all 1440 minutes of a birth date for candidate windows whose ascendant sign/star/sub-lords match the RPs at a query moment (typically when the querent asked the question). Optional validation against known life events. Returns '{ candidates: [{ time, ascSignLord, ascStarLord, ascSubLord, score, eventMatches }], bestCandidate }'. For *refining* an approximately-known time, use 'rectify_birth_time' instead.

Birth Time Rectification

rectify_birth_time

Refine an uncertain birth time by testing ±30 min around the stated time against known life events. Requires at least 1 known event with date and houses that should have been active. Returns '{ candidates: [{ datetime, score, eventMatches[] }], bestCandidate, originalTime, refinedTime }'. For RP-confirmation rectification using event location (more rigorous) use 'get_rectification_advanced'. For finding entirely-unknown birth time use 'find_birth_time'.

Twin Chart Divergence Comparator (KP, two close birth times)

get_twin_differentiation

Takes two birth datetimes (typically 1-10 minutes apart) and computes how the twins' KP charts diverge: per-cusp longitude shift, sign / sign-lord / star-lord / sub-lord deltas, dasha balance diff (first MD lord, balance fraction, MD-end delta-days), per-event verdict / coverage / CSL deltas, and 'first material divergence age' (earliest age where MD or AD lords meaningfully differ). KP-precision proof-of-concept lens; the single strongest counter-argument to 'all twins get the same chart'.

Twin Chart Divergence Score (0-100)

get_twin_divergence_score

Computes a single weighted 0-100 divergence score between two birth charts (twins or rectification candidates). Per-cusp impact weighted by life-domain criticality (7th and 10th highest at weight 10; 8th at 9). CSL change contributes full weight, star-lord change half, sub-sub-lord change a quarter. Use to communicate "your twin diverges X/100" in a single headline number.

Divisional charts

17 tools

Akshavedamsa (D45) Chart, Character [Vedic Parashari]

get_d45_chart

[Vedic Parashari adjunct] D45 divisional chart per BPHS ch.6. Each natal sign divided into 45 parts of 0.667°, character, conduct, paternal lineage. Returns D45 ascendant, placements, 1st-house readout.

Ashtamsa (D8) Chart, Longevity [Vedic Parashari]

get_d8_chart

[Vedic Parashari adjunct] D8 divisional chart per BPHS ch.6. Each natal sign divided into 8 parts of 3.75°, longevity, sudden events. Returns D8 ascendant, placements, 8th-house readout. Companion to get_longevity_balarishta.

Chaturthamsa (D4) Chart, Property [Vedic Parashari]

get_d4_chart

[Vedic Parashari adjunct] D4 divisional chart per BPHS ch.6. Each natal sign divided into 4 parts of 7.5°, fixed assets, real estate, vehicles, shelter. Returns D4 ascendant, placements, 4th-house readout. Pairs with get_property_decision.

Chaturvimsamsa (D24) Chart, Education

get_d24_chart

[Cross-system reference tool] Chaturvimsamsa / Siddhamsa (D24) divisional chart per BPHS ch.6. Each natal sign divided into 24 parts of 1°15'. Used for education / academic-success analysis. Returns D24 ascendant, planet placements, vargottama flags, and 4th house (learning) readout. Pairs with get_education_signature for ed-tech embeds.

Dasamsa (D10) Chart

get_d10_chart

[Vedic Parashari, non-KP reference] Dasamsa (D10) divisional chart per BPHS ch.6. Each natal sign divided into 10 parts of 3°. Used in Vedic tradition for career analysis. Returns '{ d10Ascendant, planets: [{ d10Sign, d10Lord, d10House, isVargottama }], d10HouseLords, careerIndicators: { d10_10thLord, planetsIn10th, strongestCareerPlanet } }'. Note: KP methodology uses 'get_profession_indicators' (10th-house CSL) and 'get_career_signature' for career, NOT D10. This tool is for cross-system / Vedic-Parashari consumers.

Drekkana (D3) Chart, Siblings & Courage [Vedic Parashari]

get_d3_chart

[Vedic Parashari adjunct] D3 (Drekkana) divisional chart per BPHS ch.6. Each natal sign divided into 3 parts of 10° each, siblings, courage, enterprise, initiative. Returns D3 ascendant, placements, vargottama flags, 3rd house readout.

Dwadasamsa (D12) Chart, Parents & Lineage [Vedic Parashari]

get_d12_chart

[Vedic Parashari adjunct] D12 divisional chart per BPHS ch.6. Each natal sign divided into 12 parts of 2.5°, parents, lineage, prenatal karma, ancestral patterns. Returns D12 ascendant, placements, 9th-house readout. High demand for family-themed apps.

Hora (D2) Chart, Wealth Capacity [Vedic Parashari]

get_d2_chart

[Vedic Parashari adjunct] D2 (Hora) divisional chart per BPHS ch.6. Each natal sign halved into solar/lunar Hora, wealth-acquisition ability. Returns D2 ascendant, planet placements (split by Sun's hora vs Moon's hora), vargottama flags.

Khavedamsa (D40) Chart, Maternal Lineage [Vedic Parashari]

get_d40_chart

[Vedic Parashari adjunct] D40 divisional chart per BPHS ch.6. Each natal sign divided into 40 parts of 0.75°, general auspiciousness, maternal lineage. Returns D40 ascendant, placements, 4th-house readout.

Navamsa (D9) Chart

get_d9_chart

[Vedic Parashari, non-KP reference] Navamsa (D9) divisional chart per BPHS ch.6. Each natal sign divided into 9 padas of 3°20'. Used in Vedic tradition for marriage assessment, dharma, and overall planetary strength. Returns '{ d9Ascendant, planets: [{ d9Sign, d9Lord, d9Dignity, d9House, isVargottama }] }'. Note: KP methodology uses 'analyze_natal_promise' (CSL-based) for marriage, NOT D9. This tool is for cross-system / Vedic-Parashari consumers.

Saptamsa (D7) Chart, Children

get_d7_chart

[Cross-system reference tool] Saptamsa (D7) divisional chart per BPHS ch.6. Each natal sign divided into 7 parts of 4°17'08". Used for children / progeny analysis. Returns D7 ascendant, planet placements, vargottama flags, and a focused readout of the 5th house (children house). Pairs with get_fertility_window for fertility-clinic embeds.

Saptavimsamsa (D27) Chart, Strength Fingerprint [Vedic Parashari]

get_d27_chart

[Vedic Parashari adjunct] D27 divisional chart per BPHS ch.6. Each natal sign divided into 27 parts of 1.111°, inherent personality strengths and weaknesses. Highly precise division. Returns D27 ascendant, placements, 1st-house readout.

Shashtamsa (D6) Chart, Debts & Disease [Vedic Parashari]

get_d6_chart

[Vedic Parashari adjunct] D6 divisional chart per BPHS ch.6. Each natal sign divided into 6 parts of 5°, debts, illness, conflicts. Returns D6 ascendant, placements, 6th-house readout. Companion to get_chronic_disease_panel.

Shashtiamsa (D60) Chart, Deep Karma

get_d60_chart

[Cross-system reference tool] Shashtiamsa (D60) divisional chart per BPHS ch.6. Each natal sign divided into 60 parts of 0°30' (the highest-resolution division). Used for deep karma / total chart fingerprint. Highly birth-time-sensitive, also serves as a rectification stress-test. Returns D60 ascendant, placements, vargottama flags, and 1st-house (karma) readout.

Shodasamsa (D16) Chart, Vehicles & Comforts [Vedic Parashari]

get_d16_chart

[Vedic Parashari adjunct] D16 divisional chart per BPHS ch.6. Each natal sign divided into 16 parts of 1.875°, movable assets, vehicles, life comforts. Returns D16 ascendant, placements, 4th-house readout.

Trimsamsa (D30) Chart, Misfortune & Mind [Vedic Parashari]

get_d30_chart

[Vedic Parashari adjunct] D30 divisional chart per BPHS ch.6, misfortune, arishta, mental tendencies. Uses canonical Parashara mapping (odd vs even sign portions to different planet's signs). Returns D30 ascendant, placements, 6th-house readout.

Vimshamsa (D20) Chart, Spirituality [Vedic Parashari]

get_d20_chart

[Vedic Parashari adjunct] D20 divisional chart per BPHS ch.6. Each natal sign divided into 20 parts of 1.5°, spiritual life, sadhana, religious devotion. Returns D20 ascendant, placements, 9th-house readout. Pairs with get_ishta_devata.

Yogas and doshas

11 tools

Advanced Yogas (Vipreet / Neecha-Bhanga / Adhi / Lunar / Chandra-Mangal)

get_yogas_advanced

Detects classical yogas not covered by detect_yogas: Vipreet Raja (Harsha 6th-lord, Sarala 8th-lord, Vimala 12th-lord placed in dusthanas), Neecha Bhanga Raja Yoga (4 cancellation rules for debilitated planets), Adhi Yoga (benefics in 6/7/8 from Moon), Sunafa (planets in 2nd from Moon), Anafa (12th from Moon), Durdhura (both 2nd and 12th from Moon), and Chandra-Mangal (Moon-Mars conjunction or opposition). Each yoga returns presence, strength, forming planets, description, and effects.

Ashtakavarga Table

get_ashtakavarga

[Vedic Parashari] Sarvashtakavarga and Prastarashtakavarga bindu tables, the Parashari strength system counting bindus per SIGN per planet (BPHS chs.66-72). Returns '{ frame: 'sign', prastarashtakavarga: { Sun..Saturn: { matrix, sign_scores, total_bindus } }, sarvashtakavarga: { sign_scores, total_bindus, strongest_signs, weakest_signs, average_score } }'. Every 12-slot array is indexed by SIGN, index 0 = Aries. The total is always 337 and the per-sign benchmark is 28.08. Higher bindus = better activation of that sign; used alongside dasha for transit-strength weighting.

Dosha Detection

check_doshas

Detect 5 classical chart afflictions (doshas). **Manglik** (Mars in 1/2/4/7/8/12, marriage friction), **Kalsarpa** (all 7 visible planets between Rahu and Ketu, for variant typing use 'get_kalsarpa_variants'), **Sadhesati** (7.5-yr Saturn transit, for phase breakdown use 'get_sade_sati_phases'), **Pitra Dosha** (paternal-lineage karma signature), **Kemadruma** (Moon isolation, no planets in 2nd/12th from Moon). Returns '{ doshas: [{ name, plainName, present, severity, details, plainMeaning, cancellations[], remedies[], provenance }] }'. **Read 'provenance' before repeating any of it.** Manglik, Sadhesati and Kemadruma are 'classical' with a locus; **Kalsarpa and Pitra Dosha are 'unsourced'** — no classical text and no page of the 5,045-page KP corpus contains either, so both report 'severity: 'Present'' with no grade, and their invented Severe/Moderate bands were removed (F054). 'plainMeaning' is the reader-facing sentence and assumes no Sanskrit.

Kala Sarpa Yoga (12 Variants)

get_kalsarpa_variants

Detects Kala Sarpa Yoga and identifies the specific variant by Rahu's house (1: Anant, 2: Kulik, 3: Vasuki, 4: Shankhpal, 5: Padma, 6: Mahapadma, 7: Takshak, 8: Karkotak, 9: Shankhachoor, 10: Ghatak, 11: Vishadhar, 12: Sheshnag). Returns full vs partial classification (PARTIAL = 1-2 planets just outside the Rahu-Ketu axis), arc direction, theme description per variant, effects, and remedies. Books: KP Reader 3 ch.42, Sanatan Veda canon.

Kartari Yogas (Shubha / Papa) [Vedic]

get_kartari_yogas

[Vedic Parashari adjunct] Shubha Kartari (lagna flanked by benefics) + Papa Kartari (lagna flanked by malefics). Per-house verdicts; common in chart consultations. Returns each yoga's presence, strength, forming planets, effects.

Nabhasa Yogas, all 32 (BPHS ch. 35)

get_nabhasa_yogas

Parashari, not KP. The 32 Nabhasa yogas of Brihat Parashara Hora Shastra ch. 35, each constructed from its verse: 3 Asraya (Rajju, Musala, Nala: all seven planets in movable, fixed or dual SIGNS), 2 Dala (Mala, Sarpa: three kendras held by benefics or by malefics), 20 Akriti (the shapes: Gada, Sakata, Vihaga, Shringataka, Hala, Vajra, Yava, Kamala, Vapi, Yupa, Shara, Shakti, Danda, Nauka, Koota, Chatra, Chapa, Ardhachandra, Chakra, Samudra, by which whole-sign bhavas from the lagna the seven occupy) and 7 Sankhya (Gola through Veena, by how many signs the seven occupy). Every one of the 32 is returned, present or not, so an absence is stated rather than omitted. Two things the text settles that a summary would not: 'all the Grahas' is the SEVEN, the nodes excluded (v. 13), and v. 17's precedence is applied as a rule: a Sankhya yoga is reported only when no other Nabhasa yoga is present, and a suppressed one is named with what it yields to. A consequence pinned by test: all seven in one sign is never Gola, because an Asraya yoga is then trivially present. Effects (vv. 18-50) are not transcribed. Benefic and malefic follow ch. 34 vv. 8-10, the same definition the avasthas use. Edition stated (Santhanam 1984). Gates no KP verdict.

Negative Yogas Panel (Daridra/Shakata/Vish/Guru-Chandala) [Vedic]

get_negative_yogas

[Vedic Parashari adjunct] Structural-affliction panel: Daridra (11th lord in 6/8/12), Shakata (Moon in 6/8/12 from Jupiter, counted by sign), Vish (Saturn-Moon close conjunction), Guru-Chandala (Jupiter-Rahu/Ketu conjunction). Each returns presence, strength, description, effects. Lordship and distance are whole-sign from the Lagna sign, with the Placidus house reported beside it where they differ. No classical locus was located for any of these four, so the response carries a scoreProvenance block naming the orbs and bands as Lumin conventions.

Parivartana Yoga (Sign Exchange) [Vedic]

get_parivartana_yoga

[Vedic Parashari adjunct] Sign-exchange yoga in 3 classes: Maha (kendra-trikona lord exchange, strongest fortune amplifier), Khala (3rd-lord exchange, energising effort), Dainya (exchange with dusthana lord, afflicted). Returns each detected pair with classification, forming planets, and effects.

Sun Yogas (Vasi / Vesi / Ubhayachari) [Vedic]

get_sun_yogas

[Vedic Parashari adjunct] Vasi (planet in 12th from Sun), Vesi (planet in 2nd from Sun), Ubhayachari (both 2nd and 12th occupied). Companion to lunar yogas already in get_yogas_advanced. Each yoga returns presence, strength, forming planets, description, effects.

Yoga Detection

detect_yogas

[Vedic Parashari] Detect classical planetary yogas, special combinations producing distinctive life patterns. Includes Raja Yoga (kendra-trikona lord conjunction → power), Dhana Yoga (2nd-11th wealth flow), Gajakesari (Jupiter in kendra from Moon → fame), Budh-Aditya (Sun-Mercury → intellect), Pancha Mahapurusha (5 'great person' configurations), Lakshmi, Saraswati, Amala, Vish, Chatursagara. Returns '{ yogas: [{ name, category, present, strength, formingPlanets[], description, effects }], totalPresent, beneficYogas, maleficYogas }'. For Vipreet/Neecha-Bhanga/Adhi/Lunar/Chandra-Mangal yogas, use 'get_yogas_advanced'. For Sun yogas (Vasi/Vesi/Ubhayachari) use 'get_sun_yogas'.

Yoga Karaka (Lagna-specific)

get_yoga_karaka

Identifies the lagna's yoga karaka, the planet that simultaneously rules a kendra (1/4/7/10) and trikona (1/5/9), making it the chart's most beneficial planet. Returns the primary (and secondary candidate where contended), placement, sign/house, current dasha activation status (MD/AD), and the rationale (which kendra-trikona houses it rules).

Strength measures

6 tools

Bhava Bala, Net House Strength [Vedic Parashari]

get_bhava_bala

[Vedic Parashari adjunct] A Lumin index of net house strength, not the BPHS computation: Bhavadhipati (the lord's index score from get_shadbala) + Drik Bala (cusp aspects) + Dig Bala, each 0-100 and averaged, banded STRONG at 65. The Dig Bala column is a flat kendra bonus and is NOT Bhava Digbala, which is a directional computation per house; that is named in scoreProvenance rather than hidden. Returns per-house entries plus strongest and weakest house. The house ORDER is the usable part.

Combust Planets (Astangat)

get_combust_planets

Per-planet Astangat / combustion analysis. Returns each non-Sun planet's arc-distance from the Sun, the applicable combustion threshold (with retrograde reduction for Mercury / Venus), grade (NONE / ORDINARY / FULL, full = within 5° of Sun) and a proximity severity band. **Reported, never gated**: 'blocksSignifications' is always false, because KP does not withhold a combust planet's results. KSK, Astro Secrets canon p.1193: "the eclipsed planet, whomsoever it is, offers those results which it indicates", worked on a chart whose Mercury sat at zero separation from the Sun and still made the native Chief Engineer in its own dasa. Use for the observation, not for a verdict. Books: Astro Secrets KP canon pp.1192-1193.

Graha Yuddha (Planetary War)

get_graha_yuddha

Planetary war detection among the 5 tara grahas (Mercury, Mars, Venus, Jupiter, Saturn). Any pair within 1° is in war; the winner is decided by dignity, then by lower longitude. Returns active wars, winner/loser, separation arc, severity (CLOSE ≤0.5° / MODERATE ≤1°), and the loser's suppressed significations. Sun, Moon, Rahu, Ketu do not participate.

Shadbala (6-Fold Planetary Strength)

get_shadbala

[Vedic Parashari adjunct] TWO quantities, both returned, and the response says which is which. 'classical' is the real BPHS ch. 27 computation in VIRUPAS (60 to a rupa): Sthana broken into Uccha, Saptavargaja across seven vargas, Ojha-Yugma, Kendra and Drekkana; Dig by the 27.7 cusp arc; Kala into Nathonnatha, Paksha, Tribhaga, the four Abda/Masa/Vara/Hora period lords and Ayana from declination, plus the 27.20 graha-yuddha correction; Chesta from the eight motion states; Naisargika; Drik over the sputa drishti scale. Then the six are summed and compared against this planet's own required pinda at 27.32-33, with the 27.34-36 component gates and Ishta and Kashta phala. 'componentProvenance' names the one component that is NOT the classical quantity (Chesta, because 27.24-25 needs a mean planet of classical Indian theory this engine does not compute) and 'variants' carries five editorial disputes as separate totals saying what each one MOVES. The top-level six 0-100 scores are the older Lumin index, kept because other tools read it; 'divergence' reports how far the two RANKINGS disagree, which on a 40-chart set is a lot (the same strongest planet on 30% of charts). Rahu and Ketu are carried unranked: BPHS computes strength for the seven only. Never compare an index number with a printed Shadbala; the virupas under 'classical' are the comparable figures.

Vargottama Planets (D1 = D9)

get_vargottama_planets

Detects planets that occupy the same sign in D1 (natal) and D9 (Navamsa), i.e. vargottama. Vargottama placements have doubly reinforced significations and are treated as a strength multiplier in matching, career, and longevity assessments. Returns each planet's natal sign, D9 sign, vargottama flag, strength multiplier (1.0 or 2.0), and the count and names of all vargottama planets.

Vimsopaka Bala, 20-Fold Strength [Vedic Parashari]

get_vimsopaka_bala

[Vedic Parashari adjunct] 20-fold strength of each planet across all sixteen Shodasavarga vargas, weights summing to exactly 20 (D1 3.5, D9 3, D60 4, the rest tapering to 0.5). Each varga is graded on the classical varga-viswa ladder, own 20 / friend 15 / neutral 10 / enemy 7, which is a FRIENDSHIP ladder with no exaltation or debilitation rung. Grading uses the naisargika maitri alone where the classical method uses the compound panchadha, so the great-friend (18) and great-enemy (5) rungs are unreachable; the response states this in friendship and methodNote. Per-planet total 0-20 with band (EXCELLENT 17+, VERY_GOOD 14-17, GOOD 11-14, AVERAGE 8-11, POOR <8), plus the grade each varga landed on. Rahu and Ketu are carried unranked. The planetary 'report card'.

Annual charts

5 tools

Annual Forecast

get_annual_forecast

Generate a 12-month forecast with month-by-month predictions. Shows dasha periods, activated houses, themes, and overall tone for each month.

Sahams (Tajik Sensitive Points)

get_sahams

[Tajik] 15 sahams as A-B+C lots: Punya, Yasas, Vidya, Vivah, Putra, Karya, Roga, Pitri, Matri, Bhratri, Rajya, Nyya, Bandhana, Krodha, Karya-Siddhi. Each returns sidereal longitude, sign, house, star lord, sub lord, the formula that ran, and per-entry PROVENANCE against the Tajika Neelakanthi (1587), read second-hand via Charak and Raman: 7 attested, 2 engine-variant, 6 unverified. formulaUsed is the arithmetic, NOT a citation. Where an attested formula differs from the one the engine takes as primary it is carried in variants[], computed, so both points ship and the caller chooses; Vivah is the live case (7th cusp - Venus + Asc here, Venus - Saturn + Asc in Charak, both real lineages). correction30 reports the contested add-30-degrees rule and is applied to nothing. Yasas and Bandhana's attested forms are CHAINED on the computed Punya saham. Sahams natively belong to the ANNUAL (varshaphala) chart: pass target_year and they are cast on that year's solar-return chart (same return instant as get_varshaphala_chart, 'frame: 'annual''); without it they are cast on the natal chart ('frame: 'natal''), which Charak also reads, a saham weak at birth cannot deliver in the annual chart. Mrityu Saham is intentionally omitted per project policy (no death framing).

The Sixteen Tajik Yogas [Tajik]

get_tajik_yogas

[Tajik] Tajik's OWN judgement mechanism, which this engine did not have before 2026-09-14. The sixteen shodasha yogas from the Hayanaratna in Gansten's parallel Sanskrit-English CRITICAL EDITION (Brill, 2020), quoting Tajikabhusana 4.4-6, with the orb table from Daivajnalamkrti 8.9. Returns every one of the 21 planet pairs as a 'contact' (its aspect, separation, pair orb, and whether it is ithasala/applying, isarapha/separating or partile) plus each yoga instance with the planets, the reason, a sense word, and its own locus and edition. Read 'roles': the muthasila is the faster planet applying its light and the musaripha the slower one receiving it, and which is which decides whose condition the outcome turns on. NOT PARASHARI: an aspect here is one of the five Ptolemaic angles counted sign to sign AND gated by the pair orb (half the sum of the two planets' deeptamsas), so a sign aspect is inactive unless the degrees are close enough, and application is decided by DEGREE WITHIN SIGN rather than by longitude. FOURTEEN of the sixteen have a stated definition and are computed; khallasara and duhphalikuttha are named in the verse and defined nowhere, so they come back in 'notComputed' rather than being omitted or invented. manau and kuttha are read as an obstruction by some authorities and its opposite by others: both ship with sense 'two-sided' and neither is resolved. NOTHING IS SCORED, because Tajik judges in words and the source gives no weighting. Pass 'target_year' to scan that year's solar-return chart (Tajik's native frame, same return instant as get_varshaphala_chart) or omit it for the natal chart. 'orb_table' selects the classical values or the circulating variant that gives Mars and Mercury 12; measured over 200 charts the two disagree about which yogas are present on 24.5% of them, so 'underOtherOrbTable' is reported every time. **'bala' carries Tajik's two strength systems, both of which compute in full since 2026-09-14.** Panchavargeeya bala scores each planet out of 80 across five components and reports the total, the classificatory value (the total over four, a 0 to 20 scale) and the band: Nirbali below 5, Madhya Bali 5 to 10, Poorna Bali 10 to 15, Parakrami above 15, with Raman's parallel words beside them. Four components score the planet's relation to the lord of a division it occupies, on one ladder every time (own the full maximum, a friend half, an enemy a quarter); the fifth, uccha bala, is continuous. The hadda table is the Tajik one as transmitted, and it is verified against the Egyptian terms it descends from: the two differ in exactly two signs and those are left uncorrected, because this records what the tradition states rather than what a scholar reconstructs it should have said. Harsha bala now runs all four situations for its stated 20 (15 on the natal frame, where there is no solar return to be day or night, so that component is absent rather than zeroed); its planetary genders are the TAJIK ones, where Mercury and Saturn are female, and its sect lists are the HELLENISTIC ones, where Saturn is diurnal and Venus nocturnal, the opposite of BPHS on both. **THREE THINGS SHIP AS VARIANTS RATHER THAN CHOICES** and every reading carries all three: the neutral rung is unstated in every component so both totals ship ('total' and 'totalNeutralAsFriend'), the uccha reference point is a disagreement the source names, and the harsha gender test is applied to the sign by one source and to the house by another, so 'genderTestVariant' carries both answers. Read 'bala.gaps' for what is still open in one place. **'dashas' appears on the annual frame only** and carries Tajik's two annual dashas, one built and one not. **Mudda** is computed: nine periods from the solar return, each planet's Vimshottari years times three giving its days, in Vimshottari order from a starting lord the sources give a formula for. Two things are reported rather than resolved: the formula's remainder-to-lord mapping is not stated, so the reading used is declared with its evidence (it is the only offset under which every nakshatra opens on its own lord in the first varsha), and the nine periods total 360 days against a real return interval of about 365.26, so 'periods' carries the stated figures (ending ~5 days short) and 'periodsScaledToYear' carries one labelled derivation that fills the year, with the residual named. Kalidasa's variant, reading the ANNUAL chart's Moon nakshatra instead of the natal one, ships beside the primary. **Patyayini is computed, and it is the one annual dasha NATIVE to Tajik** rather than a compression of a Parashari nakshatra cycle, which is why it takes the ascendant as a full dasha lord and excludes Rahu and Ketu, the opposite of mudda. It divides the year among the seven planets and the lagna in ASCENDING order of krishamsa, the longitude with the signs deleted; each lord's patyamsa is its krishamsa less the previous lord's, and each period is the year times its patyamsa over the highest krishamsa. **It is a LONGITUDE rule and not a strength rule**: nothing in it reads panchavargeeya bala, and the 'divide by four' that connects the two in some summaries belongs to the year-lord classification, a different rule in a different chapter (this engine had that conflation and it cost a working technique a day; see 'invariantHolds'). The rule carries its own arithmetic check and the response reports it: the patyamsas are successive differences of a sorted list, so they MUST total the highest krishamsa. Three year lengths are attested and all three ship per period, the flat 365 being primary because it is what the source's worked example is computed on. Mudda is a CROSS-CHECK by its own doctrine, read together with the natal Vimshottari dasha, so pair it with get_dasha_periods rather than reading it alone. Four of the yogas read a planet as 'afflicted' and panchavargeeya bala is what that means; it now computes, so 'bala' and the yoga scan can be read together on one call rather than the scan naming a gap it cannot fill.

Tithi Pravesha, True Vedic Birthday [Vedic / Sanjay Rath]

get_tithi_pravesha

[Vedic alt-annual adjunct] Soli-lunar return ('true Vedic birthday'), chart cast when Sun returns to natal sidereal degree AND Moon occupies natal tithi. Per Sanjay Rath / PVR Narasimha Rao tradition. Returns TP datetime, chart lagna, match quality (EXACT/CLOSE/APPROXIMATE), and offsets.

Varshaphala, Tajik Solar Return [Vedic / Tajik]

get_varshaphala_chart

[Tajik annual chart adjunct] Solar return chart cast for the moment Sun returns to its natal sidereal degree in the target year. Returns Sun-return datetime, chart lagna at that moment, Muntha sign (advances 1 sign per year of life), Muntha house from chart lagna, all planet positions at sun-return, and 'sahams': the fifteen Tajik sahams cast on THIS annual chart, their native frame, with the same per-entry provenance get_sahams carries. **THE YEAR LORD CAN BE NULL, and null is an answer rather than an error.** Since 2026-09-14 'yearLord' follows the stated rule: all five Panchadhikari are resolved (natal lagna lord, annual lagna lord, Muntha-pati, dina-ratri-pati, tri-rashi-pati) and each is tested for a Tajik aspect to the annual ascendant. Read 'varshesha' for all five with their derivations and aspect notes, and 'varshesha.basis': ASPECT_TEST (exactly one aspects, so the gate decides alone), STRENGTH_TIE_BREAK (several aspect and the greatest panchavargeeya bala separates them), MUNTHA_PATI (none aspects, the classical fallback), or UNDECIDED (an exact tie in strength between two that both aspect, for which the rule states no third test). **All four bases are fully sourced and measured over 200 charts the first three cover 100% of them**, the strength deciding the 35.5% that were null before 2026-09-14; UNDECIDED did not fire once and survives as a branch rather than a state anyone should expect. **THE GATE COMES FIRST AND STRENGTH ONLY BREAKS TIES INSIDE IT**, never the reverse: in the source's own worked example the strongest planet on the chart is NOT the year lord, because it does not aspect the annual ascendant, so a strongest-planet shortcut gets it wrong. 'varshesha.strengths' carries every total that was compared, so the decision can be checked rather than taken. 'yearLordLagnaLordOnly' carries the figure this tool returned before, the annual lagna lord taken unconditionally, which agrees with the full rule on 23.0% of charts. Used for annual subscription-reading products.

Panchang and hours

3 tools

Choghadiya, Daily 8 Day + 8 Night Periods [Vedic Muhurta]

get_choghadiya_today

[Vedic muhurta adjunct] 8 day + 8 night auspicious 1.5-hour periods (Amrit/Shubh/Labh/Char/Udveg/Rog/Kal). Each period returns lord, quality (auspicious/inauspicious), start/end UTC, and interpretation. Also returns 'currentPeriod', the period containing the moment you asked about. Companion to get_panchang. The astrological day runs sunrise to sunrise, so 'utc_offset_minutes' decides which civil day is meant and is required.

Daily Panchang

get_panchang

Vedic Panchang for any date and location. Returns '{ tithi (lunar day), nakshatra (lunar mansion), yoga (Sun-Moon angular relationship), karana (half-tithi), rahuKaal: { startUTC, endUTC }, yamagandaKaal, gulikaiKaal, sunriseUTC, sunsetUTC, weekday }'. Use when: you need today's auspicious / inauspicious windows. **Pass the date you want Panchang for (e.g., today's date), NOT the person's birth date.** For 1.5-hour Choghadiya windows use 'get_choghadiya_today'.

Hora, 24 Planetary Hours [Vedic Muhurta]

get_hora_today

[Vedic muhurta adjunct] 24 planetary hours per day, each ruled by one of 7 visible planets in Chaldean order (Saturn→Jupiter→Mars→Sun→Venus→Mercury→Moon). Day starts at sunrise; first hour = weekday's lord. Returns each hour's lord, quality, start/end UTC, interpretation, plus 'currentHora' for the moment you asked about. Pairs with Choghadiya for fine-grained timing. The astrological day runs sunrise to sunrise, so 'utc_offset_minutes' decides which civil day is meant and is required.

Astro weather

4 tools

Astro-Weather Signature

get_astro_weather

Read the KP astrometeorology signature for a single place and moment. Builds the chart for the location and time, then scores three weather channels, temperature, precipitation, and wind/storm, each with a signal, a numeric score, a descriptive band, and the chart signatures behind it. Also returns the 4th-cusp CSL verdict, the Sapta Nadi Chakra block, a plain-language summary, and a disclaimer. Inputs: latitude, longitude, utc_offset_minutes, optional ayanamsa, optional location_label, and an optional 'datetime' (ISO 8601, defaults to now). Use when: you want the weather tendency for one place at one time. The result shows the full reasoning, every band and score names the signatures it came from.

Lunation Weather Windows

get_weather_windows

Read the roughly 14-day weather windows for a place across a date range, each window cast from a lunation chart (the new moon or full moon that opens it). Returns a 'windows[]' array, each window carrying the full astrometeorology signature: temperature, precipitation, and wind/storm channels with signal, score, band, and every signature behind them, plus the 4th-cusp CSL verdict, the Sapta Nadi block, a summary, and a disclaimer, alongside 'pagination' and 'pageNote'. **Paged.** A three-month range is several complete windows and does not fit one response, so read 'pageNote' and call again with 'page' incremented. Inputs: latitude, longitude, utc_offset_minutes, optional ayanamsa, optional location_label, and optional 'start_date' and 'end_date' (ISO dates; default to a sensible range around now). Use when: you want fortnight-by-fortnight weather windows for a location over a span of weeks or months.

Monsoon Onset Forecast

get_monsoon_forecast

Read the monsoon-onset signature for a place from the Ardra Pravesha chart (the chart for the Sun's entry into the Ardra nakshatra, the classical KP marker for the monsoon). Returns one astrometeorology signature under 'weather', with temperature, precipitation, and wind/storm channels each carrying signal, score, band, and signatures, plus the 4th-cusp CSL verdict, the Sapta Nadi block, a summary, and a disclaimer, alongside an 'ardraPravesha' block describing the ingress chart itself. Inputs: latitude, longitude, utc_offset_minutes, optional ayanamsa, optional location_label, and an optional 'year' (defaults to the current year). Use when: you want a monsoon-onset and rainfall read for a location and year. The bands show the signatures behind them.

Seasonal Weather Outlook

get_seasonal_outlook

Read the four seasonal weather themes for a place across one year, derived from the cardinal ingress charts (the Sun entering Aries, Cancer, Libra, and Capricorn). Returns a 'seasons[]' array, each season carrying the full astrometeorology signature: temperature, precipitation, and wind/storm channels with signal, score, band, and signatures, plus the 4th-cusp CSL verdict, the Sapta Nadi block, a summary, and a disclaimer. Inputs: latitude, longitude, utc_offset_minutes, optional ayanamsa, optional location_label, an optional 'year' (defaults to the current year), and an optional 'frame' ('tropical' or 'sidereal') for the ingress reference. Use when: you want a year-ahead seasonal weather picture for a location. Every seasonal band shows the signatures behind it.

Mundane

4 tools

KP Mundane Ingress Chart (Quarterly)

get_mundane_ingress

Cast a KP chart for the moment the Sun reaches sidereal 0° Aries (annual), 0° Cancer (Q2), 0° Libra (Q3), and 0° Capricorn (Q4) for a chosen location. Read 10th CSL for governance/status, 6th CSL for crisis windows, 1st CSL for public mood, 7th CSL for foreign relations. The Aries ingress is the annual baseline; the other three refine quarterly themes. LOCATION-BASED — provide latitude / longitude / utc_offset_minutes (not birth data).

Mundane KP Analysis for National / Institutional Charts

get_mundane_analysis

Unified mundane-KP endpoint for a national chart (for example India 1947-08-15 IST) or a company incorporation chart. Returns: current MD/AD lord by house signification (B21), epidemic signature scorer (B22, Mercury+Moon+Ketu+6/8/12 cluster), weather signature (B23, water-sign Moon, cardinal lagna, Saturn/Venus/Mars on 4th; sparsely covered in books), disaster signature (B24, Mars-Rahu axis, Mars on 8, Rahu on 4). Each scorer returns signatures[] (only fired ones contribute), score 0-100, riskBand NONE/LOW/NOTABLE/HIGH/CRITICAL, notes. Includes topScorer for quick triage. Strict 9-graha (no outer planets). Historical and content-marketing lens, not an engineering-grade forecast; never present output as confirmed prediction of disasters, epidemics, or weather events.

Political Election Winner Lens (KP, multi-candidate)

get_election_outcome

Compares 2+ candidate natal charts and an election-day moment per KP Reader 3 ch.41-43 and R6 cases 90-92, 111. For each candidate: natal political-success score (cov[9,10,11] minus 0.5x cov[8,12]) plus election-day amplifiers (RP overlap, Jupiter transit through 11th-house significator, polling-close Lagna match). Returns likelyWinner, runnerUp, marginQualitative (HIGH / MODERATE / LOW / TOO_CLOSE_TO_CALL), and electionDayMuhurtaScore. Discreet B2B signal for political consultancy tooling, never standalone advice; do not present as a poll or vote forecast.

Sport Match Winner Lens (KP, two-contestant)

get_sport_outcome

Per contestant: natalScore = cov[1,5,11] minus 0.5x cov[6,7], plus match-day amplifiers (RP overlap x 5, match-start Lagna sub-lord in contestant RPs +10). Returns likelyWinner, runnerUp, and margin (CLEAR if delta is at least 15, NARROW if at least 5, otherwise EVEN_MATCH). Entertainment and curiosity lens only; never a betting recommendation, sportsbook signal, or wagering advice.

Spiritual and karmic

4 tools

Arudha Lagna (AL), Public Image [Jaimini]

get_arudha_lagna

[Jaimini adjunct] Arudha Lagna, the Pada of the 1st house, representing public image / how the world perceives the native. Calculated by counting from lagna to lagna lord, then same count again from the lord. Returns AL sign, lord, occupants, the planets aspecting it by Jaimini rashi drishti (sign aspects sign, not Parashari graha drishti) with the three aspecting signs themselves, and interpretation. Foundational Jaimini concept; B2B fit for personal-branding apps.

Ishta Devata, Personal Deity [Jaimini]

get_ishta_devata

[Jaimini adjunct] Personal deity from the 12th house from Karakamsa (Atmakaraka in D9). Sun→Shiva, Moon→Parvati/Gauri, Mars→Kartikeya, Mercury→Vishnu, Jupiter→Narayana, Venus→Lakshmi, Saturn→Hanuman/Brahma, Rahu→Durga, Ketu→Ganesha. Returns deity, alternates, mantra, and worship guidance. B2B fit for spiritual / wellness apps.

Jaimini Chara Karakas (Atmakaraka → Darakaraka)

get_chara_karakas

[Jaimini adjunct] Seven-karaka scheme ranked by sidereal degree within own sign: Atmakaraka (highest, soul) → Amatyakaraka (career) → Bhratri (siblings) → Matri (mother) → Putra (children) → Gnati (obstacles) → Darakaraka (lowest, spouse). Seven or eight is a live dispute the sutra itself leaves open, so the response names the scheme used and the alternative; Rahu joins as an eighth only on the school's own tie rule, when two planets share a degree. Used for soul-purpose / career-coaching B2B.

Past-Life Karmic Indicator Panel [Cross-system]

get_past_life_karmic_panel

[Cross-system spiritual lens] Karmic-indicator panel: 12th house planets (carry-over signatures), Saturn position (debt patterns), Ketu sign (past-life skills), Rahu sign (unfinished desires), Karakamsa (soul-direction this lifetime), 12th from Karakamsa (moksha gate). Interpretive lens, not deterministic. B2B fit for spiritual / coaching apps.

Remedies

2 tools