# Shadbala (six-fold planetary strength)

Shadbala (षड्बल, "six strengths") is the classical Vedic metric for "how strong is a planet in this chart". The strength is summed across six components and reported in **rupa** (1 rupa = 60 virupa). The result is an objective number — useful for ranking planets, evaluating dasha lords, and judging the quality of yogas. AstroWay exposes the six components individually plus an aggregate total.

## What we calculate

Six strengths from *Brihat Parashara Hora Shastra* (BPHS), chapter 27 "Grahabala-adhyaya":

- **Sthana Bala** (sthāna, "positional") — strength from sign, navamsa, vargas; outlined by 5 sub-components (Uchcha Bala, Saptavargaja Bala, Ojha-Yugma Bala, Kendradi Bala, Drekkana Bala).
- **Dig Bala** ("directional") — Jupiter/Mercury strong in the east, Moon/Venus in the north, Saturn in the west, Sun/Mars in the south.
- **Kala Bala** ("temporal") — 9 sub-components: Nathonnatha, Paksha, Tribhaga, Abda/Masa/Vara/Hora, Ayana, Yuddha. Depends on time-of-day, weekday, month, year, planetary war state.
- **Cheshta Bala** ("motional") — planetary speed vs the mean. Retrograde planets max out; very slow (stationary) planets also score high.
- **Naisargika Bala** ("natural") — fixed scale: Sun 60, Moon 51.43, Venus 42.85, Jupiter 34.28, Mercury 25.71, Mars 17.14, Saturn 8.57 virupa.
- **Drik Bala** ("aspectual") — sum of incoming/outgoing aspects from other planets, weighted by orb and aspect type.

Total: `Total Bala = Sthana + Dig + Kala + Cheshta + Naisargika + Drik`. Compared to **Required Bala** (minimum threshold per BPHS Table 27.1) — a planet is "strong enough" when Total ≥ Required.

## Endpoints

| Endpoint | Credits | Returns |
|---|---|---|
| `/v1/vedic/shadbala/sthana` | 30 | Sthana Bala + 5 sub-components for 7 planets |
| `/v1/vedic/shadbala/dig` | 20 | Dig Bala (directional strength) |
| `/v1/vedic/shadbala/kala` | 50 | Kala Bala + 9 sub-components |
| `/v1/vedic/shadbala/cheshta` | 30 | Cheshta Bala (with speed & retro status) |
| `/v1/vedic/shadbala/naisargika` | 10 | Naisargika (fixed table) |
| `/v1/vedic/shadbala/drik` | 30 | Drik Bala (aspectual sum) |
| `/v1/vedic/shadbala/full` | 100 | All 6 + total + ratio to Required Bala |

## Example

<Tabs>
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/vedic/shadbala/full \
      -H "X-Api-Key: aw_live_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "date": "1990-07-14",
        "time": "14:30:00",
        "timezoneOffset": 3,
        "latitude": 50.45,
        "longitude": 30.52,
        "ayanamsa": "lahiri"
      }'
    ```
  </TabItem>
  <TabItem label="Node.js">
    ```ts
    const r = await fetch('https://api.astroway.info/v1/vedic/shadbala/full', {
      method: 'POST',
      headers: {
        'X-Api-Key': process.env.ASTROWAY_API_KEY!,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        date: '1990-07-14', time: '14:30:00', timezoneOffset: 3,
        latitude: 50.45, longitude: 30.52, ayanamsa: 'lahiri',
      }),
    });
    const { data } = await r.json();
    const strongest = data.planets.reduce((a, b) => b.total > a.total ? b : a);
    console.log(`Strongest planet: ${strongest.name} (${strongest.total} rupa)`);
    ```
  </TabItem>
  <TabItem label="Python">
    ```python

    r = requests.post(
        'https://api.astroway.info/v1/vedic/shadbala/full',
        headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY']},
        json={
            'date': '1990-07-14', 'time': '14:30:00', 'timezoneOffset': 3,
            'latitude': 50.45, 'longitude': 30.52, 'ayanamsa': 'lahiri',
        },
    )
    data = r.json()['data']
    for p in data['planets']:
        flag = 'OK' if p['total'] >= p['required'] else 'WEAK'
        print(f"{p['name']:8s} {p['total']:6.2f} / {p['required']:5.2f}  [{flag}]")
    ```
  </TabItem>
</Tabs>

### Sample response

```json
{
  "ayanamsa": "lahiri",
  "unit": "rupa",
  "planets": [
    {
      "name": "Sun",
      "sthana":     1.21,
      "dig":        0.34,
      "kala":       1.05,
      "cheshta":    0.42,
      "naisargika": 1.00,
      "drik":       0.18,
      "total":      4.20,
      "required":   5.00,
      "ratio":      0.84
    },
    {
      "name": "Moon",
      "sthana":     2.43, "dig": 0.91, "kala": 1.78, "cheshta": 0.55,
      "naisargika": 0.86, "drik": 0.32, "total": 6.85, "required": 6.00, "ratio": 1.14
    }
  ]
}
```

## Accuracy & sources

- **Canonical text:** *Brihat Parashara Hora Shastra* (BPHS), chapter 27 — formulae of all six balas plus the Required Bala tables.
- **Reference implementation:** [PyJHora](https://github.com/naturalstupid/PyJHora) (Apache 2.0), module `shadbala.py`. Our figures match PyJHora within ±0.05 rupa across all components except Drik Bala (we use the full BPHS orb table, PyJHora uses a simplified one).
- **Status:** GREEN for Sthana/Dig/Kala/Cheshta/Naisargika, YELLOW for Drik (due to orb differences). Details — [/en/accuracy/](/en/accuracy/).
- **Ayanamsa:** the same 9 options used elsewhere across our Vedic suite (Lahiri default).
- **Kala Bala is intricate.** Its 9 sub-components require an exact sunrise/sunset for the given location — make sure `latitude/longitude/timezoneOffset` are accurate.

<Aside type="caution">
**Shadbala isn't an oracle.** High strength doesn't mean "good events" — it means the planet is going to manifest actively. A weak planet inside a strong yoga can deliver better outcomes than a strong planet without one. Use Shadbala as one input to your analysis, not the sole predictor.
</Aside>

## Related

- [Dashas](/en/vedic/dashas/) — Shadbala is critical when assessing the current dasha lord
- [Panchang](/en/vedic/panchang/) — the timestamp for Kala Bala depends on tithi/vara
- [Vargas](/en/vedic/vargas/) — Saptavargaja Bala (a Sthana sub-component) is built from 7 divisional charts
- [Accuracy](/en/accuracy/) — detailed audit of components and drift vs PyJHora
- [Credits](/en/credits/) — full pricing table
- [Authentication](/en/authentication/) — how to obtain an `aw_live_*` key
