January
February
March
April
May
June
July
August
September
October
November
December
North Node (Rahu)
—
—
South Node (Ketu)
—
—
Understanding Your Lunar Nodes
In astrology, the Lunar Nodes are not physical bodies but mathematical points where the Moon's orbit crosses the ecliptic. These "Points of Destiny" reveal your soul's karmic path.
The North Node (Rahu)
This is your "True North." It represents the qualities you are meant to develop in this lifetime. Stepping into your North Node often feels challenging or unfamiliar because it is outside your comfort zone, yet it brings the greatest spiritual rewards.
The South Node (Ketu)
The South Node represents your past lives, ingrained habits, and natural talents. While these traits feel safe and easy, over-relying on them can lead to stagnation. The goal is to use the South Node as a foundation while moving toward the North Node.
Example Calculation
If someone was born on June 15, 1990, their North Node is in Aquarius and their South Node is in Leo. This suggests a journey from individual ego and seeking attention (Leo) toward community contribution and humanitarian ideals (Aquarius).
function calculateMoonNodes() {
var day = parseInt(document.getElementById('nodeDay').value);
var month = parseInt(document.getElementById('nodeMonth').value);
var year = parseInt(document.getElementById('nodeYear').value);
if (!day || !month || !year || day 31 || year 2100) {
alert("Please enter a valid birth date.");
return;
}
// Julian Day Calculation
if (month <= 2) {
year -= 1;
month += 12;
}
var A = Math.floor(year / 100);
var B = 2 – A + Math.floor(A / 4);
var jd = Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + B – 1524.5;
// Average motion calculation (Mean Node)
// Reference point: Jan 1, 1900 (JD 2415020.5)
// North Node was at 254.85 degrees
var epochJd = 2415020.5;
var daysSinceEpoch = jd – epochJd;
// The node moves backwards (retrograde) approx 0.052953 degrees per day
var totalMotion = daysSinceEpoch * 0.052953833;
var northNodePos = (254.85 – totalMotion) % 360;
if (northNodePos < 0) {
northNodePos += 360;
}
var southNodePos = (northNodePos + 180) % 360;
var signs = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"];
function getSignData(deg) {
var signIndex = Math.floor(deg / 30);
var degreeInSign = deg % 30;
var minutes = Math.floor((degreeInSign – Math.floor(degreeInSign)) * 60);
return {
name: signs[signIndex],
display: Math.floor(degreeInSign) + "° " + minutes + "'"
};
}
var northSign = getSignData(northNodePos);
var southSign = getSignData(southNodePos);
document.getElementById('northNodeSign').innerText = northSign.name;
document.getElementById('northNodeDeg').innerText = northSign.display;
document.getElementById('southNodeSign').innerText = southSign.name;
document.getElementById('southNodeDeg').innerText = southSign.display;
document.getElementById('nodeResult').style.display = 'block';
}