Moon phases

Synodic and sidereal

Goal: answer the puzzle, the Moon orbits Earth in 27.3 days, but takes 29.5 days from full Moon to full Moon. Where do the extra two days come from?


Observe

Two well-established facts that appear to contradict each other:

Both are correct. The difference is 2.21 days, about 8%. That is far too large to be measurement error.


Predict

Before reading on, try to explain it. Draw it if that helps.

Hint: what else moves during those 27.32 days?


Learn

Two different questions

The confusion comes from "one orbit" being ambiguous.

Sidereal month (27.32 days): the time for the Moon to return to the same position against the background stars. This is one genuine orbit, measured against a fixed frame.

Synodic month (29.53 days): the time for the Moon to return to the same phase. Phase depends on the Sun-Earth-Moon angle, and the Sun's direction changes as Earth orbits.

Why the second is longer

Start at full Moon: Sun, Earth, Moon in a line, Moon opposite the Sun.

Wait 27.32 days. The Moon has completed one full orbit and is back at the same place against the stars.

But Earth has not been still. In 27.32 days it has travelled about 27 degrees around its own orbit, so the direction to the Sun has shifted by 27 degrees. The Moon is back where it started relative to the stars, but the Sun has moved, so the alignment is off by 27 degrees.

The Moon must catch up. It moves about 13.2 degrees per day, so 27 degrees takes roughly 2 more days.

27.32 + 2.21 = 29.53

The relationship, exactly

Angular rates add:

1 / P_synodic = 1 / P_sidereal - 1 / P_year

or equivalently

1 / P_sidereal = 1 / P_synodic + 1 / P_year

Check it:

1/27.32155 = 0.0366  (Moon, per day)
1/365.256  = 0.0027  (Earth, per day)
0.0366 - 0.0027 = 0.0339
1/0.0339 = 29.53 days

This is the same arithmetic as a fast runner lapping a slow one: the relative rate is the difference of the absolute rates.

The same idea elsewhere

This is not a lunar curiosity. It shows up whenever you measure one moving thing against another moving reference:

exactly this reason, Earth must turn a little extra to face the Sun again.

with the Moon as the target.

identically.

Three phenomena in this curriculum, one relationship.


Run

import datetime as dt
from moonfield import moon, phase, time as mtime

start = dt.datetime(2026, 3, 1, tzinfo=mtime.UTC)
start_lon = moon.ecliptic_longitude(start)

# Sidereal: back to the same longitude
for hours in range(26 * 24, 29 * 24):
    when = start + dt.timedelta(hours=hours)
    diff = ((moon.ecliptic_longitude(when) - start_lon + 180) % 360) - 180
    if abs(diff) < 0.3:
        print(f"sidereal month ≈ {hours / 24:.2f} days")
        break

# Synodic: back to the same phase
a = phase.next_phase(start, 0.0)
b = phase.next_phase(a + dt.timedelta(hours=1), 0.0)
print(f"synodic month  ≈ {(b - a).total_seconds() / 86400:.2f} days")

Change one variable

What if Earth did not orbit the Sun? Set the year infinitely long:

1/P_synodic = 1/27.32 - 1/∞ = 1/27.32

The two months become identical. The 2.21-day gap exists only because Earth is moving.

Now the other direction: what if Earth orbited in 100 days instead of 365?

1/P_synodic = 1/27.32 - 1/100 = 0.0366 - 0.0100 = 0.0266
P_synodic = 37.6 days

A much longer month. And if Earth's year were shorter than the Moon's orbit, the arithmetic would go negative, phases would run backwards.


Validate

Measure it yourself. In your observation log from Go and look, find two consecutive full Moons. The gap should be 29 or 30 days.

For the sidereal month you need the Moon's position against the stars, note which bright star or constellation it sits near, and wait for it to return. That takes about 27 days. Doing this with your own eyes is how it was first measured.


Explain

Why does this matter beyond trivia?

Because it is a worked example of something you will hit constantly: the answer depends on your reference frame, and "obvious" questions often hide an ambiguity.

"How long does the Moon take to orbit Earth?" has two correct answers. Not because anyone is confused, but because "orbit" was underspecified. Noticing that a question has a hidden parameter (before you argue about the answer) is a genuinely transferable skill.


Checkpoint

Try it yourself

  1. Compute the synodic month from the sidereal month and the year, by hand
  2. If the Moon orbited in 20 days, what would the synodic month be?
  3. Work out the sidereal day from the solar day and the year, same formula
  4. Look up Mars's orbital period and compute its synodic period from Earth.

Check it: Mars oppositions really are about that far apart.

  1. Find the difference between the longest and shortest real synodic months

in a year, using phase.next_phase

Questions to think about

fundamentally impossible?

Does a lunar "day" (sunrise to sunrise on the Moon) last 27.3 days or 29.5?

That last one is a good test of whether the idea has landed.

Go deeper

Next: Module 03.