# House systems

`houseSystem` is optional on every chart-shaped call and defaults to `placidus`.

## Choosing a value

- Omit the field for the modern Western default (Placidus).
- `whole` for Hellenistic/traditional work and most time-lord techniques
  ([astro_timelord](../reference/tools/astro_timelord.md)).
- `regiomontanus` for horary — the `horary` method of
  [astro_chart](../reference/tools/astro_chart.md) already defaults to it, so
  you only pass it elsewhere.
- `porphyry`, `equal`, or `whole` for births inside the polar circles
  (|latitude| above ~66.5°) — see the polar note below.
- `none` when you want planets and angles but no house assignment at all.
- Vedic work: `whole` plus a sidereal zodiac — see
  [Zodiacs & ayanamsas](./zodiacs-and-ayanamsas.md).

## All accepted values

| Value | Notes |
|---|---|
| **Quadrant and angle-based systems** | |
| `placidus` | Placidus — **default** when the field is omitted |
| `koch` | Koch |
| `regiomontanus` | Regiomontanus — the horary standard |
| `campanus` | Campanus |
| `topocentric` | Topocentric (Polich–Page) |
| `alcabitius` | Alcabitius |
| `porphyry` | Porphyry — each quadrant divided in three equal parts; also the automatic polar fallback |
| `sripati` | Sripati |
| `krusinski` | Krusinski |
| `apc` | APC |
| `pullen_sr` | Pullen SR |
| `pullen_er` | Pullen ER |
| `sunshine` | Sunshine |
| `horizon` | Horizon / azimuthal |
| `meridian` | Meridian / axial |
| `morinus` | Morinus |
| `carter` | Carter |
| **Equal-division systems** | |
| `equal` | Equal houses from the Ascendant (cusp 1 = ASC) |
| `equalmc` | Equal houses anchored on the MC |
| `equalvehlow` | Vehlow equal (ASC in the middle of house 1) |
| `equalvehlowmc` | Vehlow MC variant — computes identically to `whole` |
| `whole` | Whole sign — each house is one full sign; house 1 is the Ascendant's sign |
| `whole_horizon` | Same computation as `whole` |
| **Point-anchored wheels** (12 equal houses of 30°, cusp 1 anchored on a chart point) | |
| `solar` | Cusp 1 = the Sun's longitude |
| `solar_desc` | Cusp 1 = Sun + 180° |
| `lunar` | Cusp 1 = the Moon's longitude |
| `lunar_desc` | Cusp 1 = Moon + 180° |
| `nodal` | Cusp 1 = the North Node's longitude |
| `jnodal` | Same computation as `nodal` |
| `whole_aries` | Cusp 1 = 0° Aries |
| `whole_0` | Cusp 1 pinned at 0° |
| `whole_30` | Cusp 1 pinned at 30° |
| `whole_60` | Cusp 1 pinned at 60° |
| `whole_90` | Cusp 1 pinned at 90° |
| `whole_120` | Cusp 1 pinned at 120° |
| `whole_150` | Cusp 1 pinned at 150° |
| `whole_180` | Cusp 1 pinned at 180° |
| `whole_210` | Cusp 1 pinned at 210° |
| `whole_240` | Cusp 1 pinned at 240° |
| `whole_270` | Cusp 1 pinned at 270° |
| `whole_300` | Cusp 1 pinned at 300° |
| `whole_330` | Cusp 1 pinned at 330° |
| **Other** | |
| `placidus_asc` | Same computation as `placidus` |
| `none` | No house cusps — `houses` is `null`; Ascendant, MC, and Vertex are still returned |

## Behavior notes

- Point-anchored wheels compute cusps as exact 30° steps from their anchor;
  the Ascendant, MC, and Vertex are still the real computed angles.
- **Polar fallback:** inside the polar circles (|latitude| above ~66.5°)
  Placidus- and Koch-family cusps are mathematically undefined; the engine
  automatically switches those requests to Porphyry cusps instead of erroring.
  The chart summary still labels the chart with the system you requested. If
  you want deterministic cusps at high latitudes, request `porphyry`, `equal`,
  or `whole` explicitly.
- **Unknown birth time:** with `unknownTime: true` the houses are `null` for
  EVERY house system, including the point-anchored wheels — see
  [Birth data](./birth-data.md).
- Each house cusp in the output carries `house`, `longitude`, and a `sign`
  object (`sign`, `signName`, `degrees`, `minutes`, `seconds`).

## Worked example

Two `astro_chart` `natal` payloads for the same moment, differing only in
`houseSystem`:

```json
{
  "method": "natal",
  "birthData": {
    "year": 1990, "month": 1, "day": 1, "hour": 12, "minute": 0,
    "latitude": 51.5074, "longitude": -0.1278, "timezone": 0
  },
  "houseSystem": "whole"
}
```

With `"houseSystem": "whole"` the twelve cusps are `0, 30, 60, 90, 120, 150,
180, 210, 240, 270, 300, 330` — the fixed sign boundaries. With `"placidus"`
the cusps are unequal and cusp 1 sits on the Ascendant — for this subject
longitude `24.934` (Aries 24°56′). Planets, signs, Ascendant, and MC are
identical between the two calls; only the house boundaries move.

## Tools that accept `houseSystem`

[astro_chart](../reference/tools/astro_chart.md),
[astro_aspects](../reference/tools/astro_aspects.md),
[astro_chart_derived](../reference/tools/astro_chart_derived.md),
[astro_chart_pattern](../reference/tools/astro_chart_pattern.md),
[astro_lots](../reference/tools/astro_lots.md),
[astro_moment](../reference/tools/astro_moment.md),
[astro_progressions](../reference/tools/astro_progressions.md),
[astro_render_wheel](../reference/tools/astro_render_wheel.md),
[astro_returns](../reference/tools/astro_returns.md),
[astro_timelord](../reference/tools/astro_timelord.md).

## Related

- [Birth data](./birth-data.md)
- [Aspects & orbs](./aspects-and-orbs.md)
- [Choosing a tool](./choosing-a-tool.md)
- [Reference](/reference.md)
