Skip to content

Planetary Strengths

The strengths module implements four classical Jyotish strength systems. Each quantifies a planet's power from a different angle.


1. Shadbala (Six-Fold Strength)

Shadbala measures six independent sources of planetary power, each contributing up to 30 points. Combined, they give a total score (Rupa/Virupas) and a percentage.

calculate_shadbala

calculate_shadbala(context: ShadbalaPlanetContext) -> dict

Computes all six Balas and returns their scores.

Return keys:

Key Description Range
sthana_bala Positional strength 0–30
dig_bala Directional strength 0–30
kala_bala Temporal strength 0–30
paksha_bala Lunar phase strength 0–30
chesta_bala Motional strength 0–30
drishti_bala Aspectual strength 0–30
total_shadbala Sum of all six 0–180
shadbala_percentage As percentage of maximum 0–100

Individual Bala Functions

calculate_sthana_bala

calculate_sthana_bala(
    planet_code: str,
    rasi_number: int,
    *,
    retrograde: bool
) -> float
Positional strength based on sign placement (exaltation, own sign, moolatrikona, friend, enemy, debilitation) and retrograde status.

calculate_dig_bala

calculate_dig_bala(planet_code: str, house_number: int) -> float
Directional strength — each planet is strongest in a specific kendra house:

Planet Strongest House
Sun, Mars 10th (south)
Moon, Venus 4th (north)
Saturn 7th (west)
Jupiter, Mercury 1st (east)

calculate_kala_bala

calculate_kala_bala(planet_code: str, *, night: bool) -> float
Temporal strength — some planets are stronger by day (night=False), others by night.

Stronger by Day Stronger by Night
Sun, Jupiter, Venus Moon, Mars, Saturn
Mercury (neutral)

calculate_paksha_bala

calculate_paksha_bala(planet_code: str, moon_phase: float) -> float
Lunar phase strength (Sukla/Krishna Paksha). The Moon and Jupiter are stronger in the bright half; Mars and Saturn in the dark half.

calculate_chesta_bala

calculate_chesta_bala(
    planet_code: str,
    *,
    retrograde: bool,
    avg_speed: float
) -> float
Motional strength — retrograde planets and planets moving faster than average receive higher scores.

calculate_drishti_bala

calculate_drishti_bala(
    other_planets: list[tuple[str, bool]]
) -> float
Aspectual strength from planets aspecting this planet. Each tuple is (planet_code, is_benefic).


2. Vimshopaka Bala (20-Point Strength)

Measures dignity across multiple divisional charts (vargas). The maximum score is 20 points.

compute_vimshopaka_bala

compute_vimshopaka_bala(
    planet_longitudes: dict[str, float],
    *,
    scheme: str = "shodasavarga"
) -> VimshopakaBalaReport

Schemes

Scheme Vargas Used Notes
shadvarga D1, D2, D3, D9, D12, D30 6 charts
saptavarga D1–D9 + D12, D30 7 charts
dasavarga 10 charts Classical set
shodasavarga All 16 vargas D1–D60 Most comprehensive (default)

Dignity Scores

Dignity Score
EXALTATION 20
MOOLATRIKONA 18
OWN_SIGN 15
GREAT_FRIEND 12
FRIEND 10
NEUTRAL 7.5
ENEMY 5
GREAT_ENEMY 2.5
DEBILITATION 2

Strength Labels

Score Range Label
≥ 18 PARIJATA
≥ 16 UTTAMA
≥ 13 GOPURA
≥ 10 SIMHASANA
≥ 6 PARAVATA
≥ 4 DEVALOKA
≥ 2 BHOOLOKA
< 2 NARAKA

3. Bhava Strength (House Strength)

Scores each bhava (house) by combining occupant planets, lord dignity, aspects, and optionally Ashtakavarga points.

calculate_bhava_strength

calculate_bhava_strength(
    context: BhavaStrengthContext,
    weights: BhavaStrengthWeights = DEFAULT_WEIGHTS
) -> BhavaStrengthSummary

Default Weights

Factor Default Weight
Benefic occupant +2.0
Malefic occupant −2.0
Lord exalted +3.0
Lord debilitated −3.0
Benefic aspect +1.0
Malefic aspect −1.0
Ashtakavarga multiplier 0.5

4. Aspect Strength

Calculates the strength of planetary aspects within the natal chart.

calculate_aspects_with_strength

calculate_aspects_with_strength(
    planet_longitudes: dict[str, float]
) -> AspectStrengthReport

Aspect Types

Type Orb
CONJUNCTION
OPPOSITION 180°
TRINE 120°
SQUARE 90°
SEXTILE 60°
SEVENTH 210°/150° — full-sign 7th house aspect

Special Aspects

Certain planets cast full aspects to non-standard houses (in addition to the 7th):

Planet Special Houses Aspected
Mars 4th and 8th
Jupiter 5th and 9th
Saturn 3rd and 10th

AspectStrengthReport

Field Type Description
aspects list[Aspect] All detected aspects
strongest_aspect Aspect | None Highest-strength aspect
total_aspects int Count of aspects found