Enter your birth details below to calculate your Ascendant, Midheaven, and Whole Sign house cusps.
Whole Sign
Placidus (Advanced)
Koch (Advanced)
Understanding Birth Chart Houses
In astrology, a birth chart (also known as a natal chart) is a map of the heavens at the exact moment and location of your birth. It reveals the positions of the planets, the Sun, and the Moon across the twelve zodiac signs. Beyond the planets and signs, a crucial element of a birth chart is the division into twelve "houses."
What are Astrological Houses?
The twelve houses represent different areas of life and experience. They are derived from the Earth's rotation on its axis, which causes the zodiac signs to appear to rise and set over a 24-hour period. Each house corresponds to a specific segment of the sky at your birth time and location, and thus governs particular themes:
House 1 (Ascendant): Identity, self-image, appearance, first impressions.
House 2: Personal resources, values, money, possessions.
House 3: Communication, siblings, short journeys, early education.
House 4 (IC): Home, family roots, private life, emotional foundations.
House 5: Creativity, romance, children, pleasure, speculation.
House 6: Work, daily routines, health, service to others.
House 7 (Descendant): Partnerships, relationships, marriage, open enemies.
House 8: Transformation, shared resources, intimacy, death, rebirth.
House 9: Higher education, philosophy, long journeys, spirituality.
House 10 (Midheaven/MC): Career, public image, reputation, life direction.
House 11: Friendships, groups, hopes, wishes, social causes.
House 12: Subconscious, hidden matters, solitude, spirituality, self-undoing.
House Systems: Why They Differ
The way the sky is divided into these twelve houses varies depending on the "house system" used. Different systems employ different mathematical approaches to slice the celestial sphere. Some of the most common include:
Placidus: A popular quadrant system, dividing the space between the Ascendant/Descendant and Midheaven/IC into three unequal houses. It's widely used in Western astrology.
Koch: Another quadrant system, similar to Placidus but with a slightly different mathematical basis for house division.
Whole Sign: The simplest and oldest system, where the entire zodiac sign containing the Ascendant becomes the 1st house, the next sign becomes the 2nd house, and so on. Each house is exactly 30 degrees.
Regiomontanus, Campanus, Equal House: Other systems with their own unique methodologies.
The choice of house system can significantly alter which zodiac signs and planets fall into which houses, thereby changing the interpretation of a birth chart. This calculator provides the Ascendant and Midheaven, and calculates houses using the Whole Sign system, which is mathematically straightforward. More complex systems like Placidus or Koch require advanced astronomical algorithms and ephemeris data, typically found in specialized astrological software.
The Ascendant (Rising Sign) and Midheaven (MC)
Two of the most critical points in a birth chart are the Ascendant and the Midheaven:
Ascendant (1st House Cusp): This is the zodiac sign that was rising on the eastern horizon at the exact moment of your birth. It represents your personality, how you present yourself to the world, your physical appearance, and your initial reactions. It's often considered as important as your Sun sign.
Midheaven (MC – 10th House Cusp): This is the highest point in the sky at your birth, representing your public image, career, reputation, and life's ambitions. It indicates your ultimate contribution to the world and how you are perceived professionally.
Accurate birth time and location are crucial for calculating the Ascendant and Midheaven, as these points shift rapidly with the Earth's rotation.
How to Use This Calculator
To get your birth chart house cusps, you'll need:
Date of Birth: Your full birth date (YYYY-MM-DD).
Time of Birth: The precise time you were born (HH:MM). Even a few minutes can change your Ascendant.
Birth Latitude & Longitude: The geographical coordinates of your birth location. You can find this by searching for your birth city on a map or using an online latitude/longitude finder.
Time Zone Offset from UTC: The difference in hours between your birth location's local time and Coordinated Universal Time (UTC) at the moment of your birth. Be mindful of Daylight Saving Time (DST) if it was in effect. For example, New York in summer might be -4, but in winter -5.
Once you input these details, the calculator will determine your Ascendant, Midheaven, and the cusps for all twelve houses using the Whole Sign system, providing a foundational understanding of your astrological blueprint.
function calculateBirthChartHouses() {
// Helper functions for astronomical calculations
function degToRad(deg) { return deg * Math.PI / 180; }
function radToDeg(rad) { return rad * 180 / Math.PI; }
function normalizeAngle(angle) {
while (angle = 360) angle -= 360;
return angle;
}
function getSignAndDegree(eclipticLongitude) {
var signs = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"];
var signIndex = Math.floor(eclipticLongitude / 30);
var degree = eclipticLongitude % 30;
return degree.toFixed(2) + "° " + signs[signIndex];
}
// 1. Get inputs
var birthDateStr = document.getElementById('birthDate').value;
var birthTimeStr = document.getElementById('birthTime').value;
var latitude = parseFloat(document.getElementById('birthLatitude').value);
var longitude = parseFloat(document.getElementById('birthLongitude').value);
var timeZoneOffset = parseFloat(document.getElementById('timeZoneOffset').value);
var houseSystem = document.getElementById('houseSystem').value;
// 2. Input validation
if (!birthDateStr || !birthTimeStr || isNaN(latitude) || isNaN(longitude) || isNaN(timeZoneOffset)) {
document.getElementById('result').innerHTML = 'Please fill in all fields with valid numbers.';
return;
}
// Parse date and time string into a Date object (local time)
var birthDateTime = new Date(birthDateStr + 'T' + birthTimeStr + ':00');
if (isNaN(birthDateTime.getTime())) {
document.getElementById('result').innerHTML = 'Invalid Date or Time format.';
return;
}
// Convert local birth time to UTC based on the provided timeZoneOffset
// The Date object's getTime() returns milliseconds since epoch in UTC.
// We need to adjust for the user-provided timezone offset to get the true UTC time of birth.
// Example: If birth is 10:00 AM EST (-5), and system is also EST, birthDateTime.getTime() is 10:00 AM local.
// To get UTC, we add the offset (e.g., 10:00 AM + 5 hours = 3:00 PM UTC).
// So, we add the offset *in milliseconds* to the local time to get UTC.
var utcMilliseconds = birthDateTime.getTime() – (timeZoneOffset * 60 * 60 * 1000);
var utcDate = new Date(utcMilliseconds);
var year = utcDate.getUTCFullYear();
var month = utcDate.getUTCMonth() + 1; // Month is 0-indexed
var day = utcDate.getUTCDate();
var hour = utcDate.getUTCHours();
var minute = utcDate.getUTCMinutes();
var second = utcDate.getUTCSeconds(); // For higher precision, though not used in inputs
// 3. Calculate Julian Day (JD) for UTC
// Algorithm from Jean Meeus, Astronomical Algorithms, 2nd Ed., Chapter 7
var A = Math.floor((14 – month) / 12);
var Y = year + 4800 – A;
var M = month + 12 * A – 3;
var JD = day + Math.floor((153 * M + 2) / 5) + 365 * Y + Math.floor(Y / 4) – Math.floor(Y / 100) + Math.floor(Y / 400) – 32045;
JD += (hour + minute / 60 + second / 3600) / 24; // Add fractional day for time
// 4. Calculate Greenwich Sidereal Time (GST)
// T = (JD – 2451545.0) / 36525 (centuries from J2000.0)
var T = (JD – 2451545.0) / 36525;
// GMST at 0h UT on the given date (in degrees)
// Formula from Meeus, Chapter 12
var GMST0 = 280.46061837 + 360.98564736629 * (JD – 2451545.0) + 0.000387933 * T * T – T * T * T / 38710000;
GMST0 = normalizeAngle(GMST0); // Normalize to 0-360 degrees
// 5. Calculate Local Sidereal Time (LST)
var LST = normalizeAngle(GMST0 + longitude); // LST in degrees
var LST_rad = degToRad(LST);
// 6. Calculate Obliquity of the Ecliptic (ε)
// Formula from Meeus, Chapter 21
var obliquity = 23.439291 – 0.0130042 * T – 0.00000016 * T * T + 0.000000504 * T * T * T; // in degrees
var epsilonRad = degToRad(obliquity);
// 7. Calculate Ascendant (Ecliptic Longitude of 1st House Cusp)
// Formula from Meeus, Chapter 13 (for Ascendant)
var latitude_rad = degToRad(latitude);
var asc_y = -Math.cos(LST_rad);
var asc_x = Math.sin(LST_rad) * Math.cos(epsilonRad) + Math.tan(latitude_rad) * Math.sin(epsilonRad);
var ascendantRad = Math.atan2(asc_y, asc_x);
var ascendantDeg = normalizeAngle(radToDeg(ascendantRad));
// 8. Calculate Midheaven (MC – Ecliptic Longitude of 10th House Cusp)
// The Right Ascension of the MC is equal to LST.
// Convert Right Ascension (LST) to Ecliptic Longitude for MC.
// Formula from Meeus, Chapter 13 (for MC)
var mc_ecliptic_y = Math.sin(LST_rad) * Math.cos(epsilonRad);
var mc_ecliptic_x = Math.cos(LST_rad);
var mcRad = Math.atan2(mc_ecliptic_y, mc_ecliptic_x);
var mcDeg = normalizeAngle(radToDeg(mcRad));
// 9. Determine House Cusps based on selected system
var resultHtml = '