House Systems #
Kerykeion supports 23 different house systems from the Swiss Ephemeris. Each system divides the celestial sphere differently, affecting house cusp positions (though planetary positions remain the same).
Choosing a House System #
The choice of house system depends on your astrological tradition and preferences:
- Modern Western: Placidus (default) or Koch
- Traditional/Hellenistic: Whole Sign or Porphyry
- Medieval: Regiomontanus or Alcabitius
- Vedic/Jyotish: Whole Sign or Sripati
- Horary: Regiomontanus
- Extreme Latitudes (>60°): Whole Sign or Equal (Placidus/Koch fail near poles)
Complete House Systems Reference #
| ID | Name | Description |
|---|---|---|
P |
Placidus | Default. Most popular in modern Western astrology. Time-based system that divides the diurnal arc into equal time segments. May fail at extreme latitudes. |
K |
Koch | Popular in Germany and for natal work. Similar to Placidus but uses birthplace latitude differently. Also fails at extreme latitudes. |
W |
Whole Sign | Ancient system where each house equals one entire zodiac sign. The Ascendant’s sign becomes the 1st house. Works at all latitudes. Preferred in Hellenistic and Vedic astrology. |
A |
Equal (from Asc) | Houses are exactly 30° each, starting from the Ascendant degree. Simple and works at all latitudes. |
D |
Equal (from MC) | Equal 30° houses with the MC on the 10th house cusp. |
V |
Equal/Vehlow | Equal houses with the Ascendant in the middle of the 1st house rather than at its cusp. |
N |
Equal/1=Aries | Fixed houses where 0° Aries is always the 1st house cusp. |
O |
Porphyry | Simple quadrant-based system. Divides each quadrant into three equal parts. Ancient and reliable. |
R |
Regiomontanus | Medieval space-based system. Standard for horary astrology. Divides the celestial equator. |
C |
Campanus | Space-based system using the prime vertical. Popular among some traditional astrologers. |
B |
Alcabitius | Medieval semi-arc system. Was standard in Arabic and medieval European astrology. |
M |
Morinus | Equator-based system. Unique in that the Ascendant is not necessarily on the 1st house cusp. |
T |
Polich/Page (Topocentric) | Similar to Placidus but accounts for the observer’s exact position on Earth. Very accurate for the Moon. |
S |
Sripati | Vedic-influenced system. Midpoint-based similar to Porphyry. |
H |
Horizon/Azimuth | Based on the local horizon and azimuth circle. |
I |
Sunshine | Modern system based on solar position. |
i |
Sunshine/Alternate | Alternate calculation of the Sunshine system. |
L |
Pullen SD | Modern Sinusoidal Delta system. |
Q |
Pullen SR | Modern Sinusoidal Ratio system. |
U |
Krusinski-Pisa-Goelzer | Modern house system. |
X |
Axial Rotation/Meridian | Based on the meridian circle. |
Y |
APC Houses | Astrological PC houses system. |
F |
Carter Poli-Equatorial | Rarely used system developed by Charles Carter. |
Examples #
Birth Chart with Morinus House System #
from pathlib import Path
from kerykeion import AstrologicalSubjectFactory
from kerykeion.chart_data_factory import ChartDataFactory
from kerykeion.charts.chart_drawer import ChartDrawer
morinus_subject = AstrologicalSubjectFactory.from_birth_data(
"John Lennon - House System Morinus", 1940, 10, 9, 18, 30,
lng=-2.9833, lat=53.4, tz_str="Europe/London",
online=False,
houses_system_identifier="M",
)
data = ChartDataFactory.create_natal_chart_data(morinus_subject)
chart = ChartDrawer(data)
out_dir = Path("charts_output")
out_dir.mkdir(exist_ok=True)
chart.save_svg(output_path=out_dir, filename="john-lennon-morinus")
The output will be:
Birth Chart with Whole Sign Houses #
from pathlib import Path
from kerykeion import AstrologicalSubjectFactory
from kerykeion.chart_data_factory import ChartDataFactory
from kerykeion.charts.chart_drawer import ChartDrawer
whole_sign_subject = AstrologicalSubjectFactory.from_birth_data(
"John Lennon - Whole Sign", 1940, 10, 9, 18, 30,
lng=-2.9833, lat=53.4, tz_str="Europe/London",
online=False,
houses_system_identifier="W",
)
data = ChartDataFactory.create_natal_chart_data(whole_sign_subject)
chart = ChartDrawer(data)
out_dir = Path("charts_output")
out_dir.mkdir(exist_ok=True)
chart.save_svg(output_path=out_dir, filename="john-lennon-whole-sign")
Check House System Name on a Subject #
from kerykeion import AstrologicalSubjectFactory
subject = AstrologicalSubjectFactory.from_birth_data(
"Johnny Depp", 1963, 6, 9, 0, 0,
lng=-87.1112,
lat=37.7719,
tz_str="America/Chicago",
online=False,
houses_system_identifier="P", # Placidus
)
print(subject.houses_system_name)
# Output: Placidus
Comparing House Systems #
from kerykeion import AstrologicalSubjectFactory
# Same birth data, different house systems
systems = ["P", "K", "W", "R"]
for system_id in systems:
subject = AstrologicalSubjectFactory.from_birth_data(
"Test", 1990, 6, 15, 12, 0,
lng=-0.1276, lat=51.5074, tz_str="Europe/London",
online=False,
houses_system_identifier=system_id,
)
print(f"{subject.houses_system_name}:")
print(f" 1st House: {subject.first_house.sign} {subject.first_house.position:.1f}°")
print(f" 10th House (MC): {subject.tenth_house.sign} {subject.tenth_house.position:.1f}°")
Output:
Placidus:
1st House: Vir 24.5°
10th House (MC): Gem 25.3°
Koch:
1st House: Vir 24.5°
10th House (MC): Gem 25.3°
Whole Sign:
1st House: Vir 0.0°
10th House (MC): Gem 0.0°
Regiomontanus:
1st House: Vir 24.5°
10th House (MC): Gem 25.3°
Note: The Ascendant and MC remain the same across most systems - only the intermediate house cusps differ.
Need this in production? Use the Astrologer API for hosted calculations, charts, and AI interpretations - no server setup required. Learn more →