Composite Chart Houses: Why Two Calculators Disagree
Composite chart houses come from two recognised methods, midpoint and reference place, and they return different angles. How to tell which one a tool used.
TL;DR
- Every composite implementation midpoints the planets the same way. The houses are where they diverge, and almost no explainer says so.
- Two methods are recognised. The midpoint method derives the Ascendant, the Midheaven and all twelve cusps as midpoints. The reference place method midpoints only the Midheaven, then derives the Ascendant and cusps from it for the latitude of a chosen place.
- One captured couple, one set of planetary midpoints, several answers: the composite Ascendant moved 2.3 degrees between the two methods and 9.4 degrees across two plausible reference places.
- You can identify the method any tool used with two natal charts and one subtraction, and the check takes three steps.
Composite chart houses are the least documented part of relationship astrology and the part most likely to make two tools disagree about the same couple. Read ten composite explainers and every one of them says the same true thing: the composite Sun sits halfway between the two natal Suns, and every planet follows the same rule. Then they stop. The houses get one sentence or none, which is unfortunate, because the planets are the part nobody argues about. Two recognised methods derive the angles and the cusps in different ways, several smaller conventions sit on top of both, and the result is two charts for one couple with the same planets and a different Ascendant. This post walks both methods, the conventions that fork inside each, and the check that tells you which one produced a chart in front of you.
Why do two composite chart calculators disagree about the houses?
Because midpointing planets is unambiguous and deriving houses is not. A composite planet has one accepted definition, the midpoint of the two natal positions. A composite house cusp has two, and the two are not variations on one idea: one treats the angles as points to be averaged, the other treats them as geometry to be recomputed. Same couple, same planets, different Ascendant.
Spread in the composite Ascendant for one captured couple, produced by the choice of reference place alone, with every planetary midpoint identical. Underlying positions from live Western astrology API responses, verified against NASA JPL Horizons (methodology).
The divergence matters more than it sounds. The Ascendant sets the whole house frame, so a few degrees moves planets across cusps and rewrites which area of shared life each one is read in, and a shift across a sign boundary changes the rising sign of the relationship itself. If your app renders a composite wheel beside a chart a user generated elsewhere, this is the difference they report as a bug.
Ready to build this? The Astrology API returns each partner Ascendant, Midheaven and twelve cusps in one call, so the midpoint arithmetic is yours to control. See pricing.
How does the midpoint method place the composite house cusps?
The midpoint method treats the angles exactly like planets: the Ascendant, the Midheaven and all twelve house cusps are each computed as the midpoint of the two corresponding natal values. The composite Ascendant is the midpoint of the two natal Ascendants, the composite fifth cusp is the midpoint of the two natal fifth cusps, and so on for the full set.
Two consequences follow, and both are checkable. First, the composite Ascendant is the first cusp by construction, because that cusp was midpointed from two first cusps that were themselves Ascendants. Second, the twelve cusps are no longer the output of a house system at any single latitude. They are twelve independent averages, so quadrants can end up sized in a way no real horizon produces, and when the two charts sit near opposition the cusps can fall out of zodiacal order. Implementations that hit that case flip some cusps to the far arc and anchor the rest on the first or the tenth, so two tools that both call themselves midpoint can still part ways.
How does the reference place method place the composite house cusps?
The reference place method midpoints one angle and derives the rest. The composite Midheaven is the midpoint of the two natal Midheavens, exactly as in the other method. From the sidereal time that corresponds to that Midheaven, the Ascendant and the house cusps are then computed for the geographic latitude of a chosen reference place, with the obliquity taken as the mean of the two births. Long-standing chart software still credits the detailed treatment of this derived form to Planets in Composite by Robert Hand, published in 1975.
The output is a chart a real sky could have produced: cusps in order, quadrants that belong to one latitude, the Ascendant on the first cusp. The cost is an input the couple did not supply. Someone has to choose the reference place, and the answer moves with it. For one captured pair, born in New York on 12 June 1988 at 08:20 and in London on 3 November 1990 at 17:45, the composite Midheaven is 9.77 Pisces under both methods, while the Ascendant depends on what you do next.
| How the composite Ascendant was derived | Result |
|---|---|
| Midpoint of the two natal Ascendants (28.62 Cancer and 11.14 Gemini) | 4.88 Cancer |
| Reference place, latitude of the first birth (40.71 N) | 2.9 Cancer |
| Reference place, mean of the two latitudes (46.11 N) | 7.2 Cancer |
| Reference place, latitude of the second birth (51.51 N) | 12.3 Cancer |
The two natal charts came from live API calls. The reference place rows were computed from the composite Midheaven with the standard relation between sidereal time, obliquity and latitude, which reproduces both natal Ascendants above to within 0.01 degrees, so every row is reproducible from scratch.
Which other conventions change a composite chart?
Four conventions fork inside the two methods, and each one is a place where two honest implementations differ. The largest is the arc: any two ecliptic points have two midpoints, 180 degrees apart, and taking the near one is a convention rather than a law. Two Ascendants at 10 Aries and 20 Libra give 15 Capricorn on the near arc and 15 Cancer on the far arc, and no arithmetic decides between them.
Near opposition the near-arc midpoint is unstable. Holding the first chart fixed and moving the second birth time from 09:45 to 10:00 in London walks that Midheaven from 9.27 Libra to 13.35 Libra, a routine 4 degrees. The composite Midheaven jumps from 11.18 Cancer to 13.22 Capricorn, because the two Midheavens cross exact opposition in between. Anything derived from it inherits the jump: the reference place Ascendant moves from 9.13 Libra to 27.55 Aries, while the midpoint method Ascendant stays put at 4.20 Libra, then 5.64 Libra. Fifteen minutes of birth time, and half the chart is on the other side of the zodiac.
| Convention | The fork | What it moves |
|---|---|---|
| Near or far arc | Which of the two midpoints is taken | Any midpointed point, by exactly 180 degrees |
| Cusp anchor | Which cusp keeps the near arc when order breaks | The whole house frame, in the midpoint method |
| Reference place | Which latitude derives the cusps | The Ascendant and all intermediate cusps |
| Mercury and Venus | Whether a midpoint that lands opposite the Sun is turned 180 degrees back | Two planets, into the opposite sign |
The last row looks like a bug when you meet it. Mercury and Venus never stray far from the Sun in a real sky, but their midpoints can, so a composite Venus can arrive opposite the composite Sun. Some practitioners add 180 degrees to keep the planet near the Sun, others publish the raw midpoint, and neither choice is a defect.
How do you tell which method a composite calculator used?
Three steps, no source code needed. The check works on any tool that shows you an Ascendant, a Midheaven and twelve cusps.
- Pull both natal charts and record each Ascendant and Midheaven.
- Midpoint the two Ascendants on the near arc. If the composite Ascendant matches, the tool used the midpoint method. If it does not, and the Midheaven still matches the midpoint of the two natal Midheavens, the tool derived the Ascendant from that Midheaven at some reference place.
- Read the composite chart against itself. In Placidus, Koch or Equal the first cusp is the Ascendant and the tenth cusp is the Midheaven by definition, under both methods. A composite chart whose Ascendant sits away from its own first cusp is mixing an angle from one method with cusps from the other. A gap of exactly 180 degrees is the one benign case, since that is an arc or anchor decision applied to one point and not to the other.
Step 3 has one sanctioned exception. Whole Sign puts the first cusp at 0 degrees of the rising sign on purpose, so an Ascendant at 28.62 Cancer belongs with a first cusp at 0.00 Cancer, and that gap of up to 30 degrees is correct rather than a symptom. Placidus, Koch and Equal all tie the first cusp to the Ascendant, which is what makes the check reliable: the two numbers are the same number, printed twice.
How to fetch the two natal Ascendants and Midheavens you need
Resolve each birthplace first, then request the house frame for each partner. GET /location/search returns the latitude, longitude and IANA timezone name for a city, and passing the IANA name rather than a numeric offset is what keeps historical daylight saving correct for a birth decades ago.
curl -s "https://roxyapi.com/api/v2/location/search?q=New%20York" \
-H "X-API-Key: YOUR_KEY"
# cities[0]: latitude 40.7143, longitude -74.006, timezone "America/New_York"
Then request each partner house frame. The response carries ascendant, midheaven and a twelve entry houses array, each with longitude, sign and degree, which is everything the check above needs.
curl -s -X POST "https://roxyapi.com/api/v2/astrology/houses" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"date": "1988-06-12",
"time": "08:20:00",
"latitude": 40.71427,
"longitude": -74.00597,
"timezone": "America/New_York",
"houseSystem": "placidus"
}'
const person1 = { date: "1988-06-12", time: "08:20:00", latitude: 40.71427, longitude: -74.00597, timezone: "America/New_York" };
const person2 = { date: "1990-11-03", time: "17:45:00", latitude: 51.50853, longitude: -0.12574, timezone: "Europe/London" };
const frame = async (person: Record<string, unknown>) => {
const res = await fetch("https://roxyapi.com/api/v2/astrology/houses", {
method: "POST",
headers: {
"X-API-Key": process.env.ROXYAPI_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({ ...person, houseSystem: "placidus" }),
});
return res.json();
};
const nearArcMidpoint = (a: number, b: number) => {
let d = (b - a + 360) % 360;
if (d > 180) d -= 360;
return (a + d / 2 + 360) % 360;
};
const [one, two] = await Promise.all([frame(person1), frame(person2)]);
console.log(nearArcMidpoint(one.ascendant.longitude, two.ascendant.longitude));
import os, requests
person1 = {"date": "1988-06-12", "time": "08:20:00", "latitude": 40.71427,
"longitude": -74.00597, "timezone": "America/New_York"}
person2 = {"date": "1990-11-03", "time": "17:45:00", "latitude": 51.50853,
"longitude": -0.12574, "timezone": "Europe/London"}
def frame(person):
res = requests.post(
"https://roxyapi.com/api/v2/astrology/houses",
headers={"X-API-Key": os.environ["ROXYAPI_KEY"],
"Content-Type": "application/json"},
json={**person, "houseSystem": "placidus"},
)
return res.json()
def near_arc_midpoint(a, b):
d = (b - a) % 360
if d > 180:
d -= 360
return (a + d / 2) % 360
one, two = frame(person1), frame(person2)
print(near_arc_midpoint(one["ascendant"]["longitude"], two["ascendant"]["longitude"]))
For the captured pair above, that returns 94.88, which is 4.88 Cancer. Open POST /astrology/houses in the reference and run it live in the browser against real production data, no signup or key required. If you want the assembled relationship chart rather than the raw frames, POST /astrology/composite-chart returns composite planets, cusps, angles, aspects and interpretations in one call, and the composite chart guide walks that response field by field. Both endpoints sit in the same Western astrology domain, one of 12+ insight domains on a single key, reachable from typed SDKs or from Remote MCP with no local setup.
FAQ
What is the difference between the midpoint method and the reference place method in a composite chart?
The midpoint method computes the Ascendant, the Midheaven and all twelve house cusps as midpoints of the two natal values, exactly as it computes the planets. The reference place method midpoints only the Midheaven, then derives the Ascendant and the cusps from it for the latitude of a chosen place. The planets are identical either way, so only the house frame changes. RoxyAPI returns each partner Ascendant, Midheaven and twelve cusps through POST /astrology/houses, so you can reproduce either derivation.
Why do two composite chart calculators give different Ascendants for the same couple?
Because the house derivation is a choice, not a formula. For one captured couple the composite Ascendant came out at 4.88 Cancer by midpointing the two natal Ascendants and at 2.9, 7.2 or 12.3 Cancer by deriving it from the composite Midheaven at three plausible reference places. Near arc versus far arc adds a possible 180 degree difference on top. Pulling both natal charts from the RoxyAPI Western astrology endpoints lets you settle which convention a tool used.
Should the composite Ascendant sit on the first house cusp?
In Placidus, Koch and Equal, yes: the first cusp is the Ascendant by definition, so both methods put them on the same degree. In Whole Sign the first cusp is 0 degrees of the rising sign, so a gap of up to 30 degrees is correct. In those three systems, an Ascendant that sits away from its own first cusp means an angle from one method has been combined with cusps from the other. Every RoxyAPI house response returns the Ascendant and all twelve cusps together so the comparison takes one line of code.
Is a Davison chart the same as a composite chart?
No. A composite chart is a mathematical construction with no moment attached, which is why it cannot be progressed or given returns. A Davison relationship chart, named for the astrologer Ronald Davison, is an ordinary chart cast for the midpoint in time and space between the two births, so its houses come from one real sidereal time at one real latitude. RoxyAPI covers the composite side in the Western astrology domain, alongside synastry for the cross aspect view.
Does a composite Venus opposite the composite Sun mean the calculation is wrong?
No. Mercury and Venus stay close to the Sun in a real sky, but their midpoints do not have to, so a composite Venus can land opposite the composite Sun. Some practitioners rotate it 180 degrees to keep it near the Sun and others publish the raw midpoint, and both conventions are in use. Note which one your tool applies before comparing two charts, and keep the positions feeding it anchored: RoxyAPI derives every longitude from Roxy Ephemeris, with a median difference of 1.5 arcseconds, about 0.0004 degrees, from NASA JPL Horizons, far finer than the eye can resolve and about 0.001 percent of a zodiac sign.
Conclusion
The planets in a composite chart are settled and the houses are not, so the honest answer to why two composite charts disagree is almost always the derivation of the angles rather than the accuracy of the ephemeris. Decide which method your product ships, document it where your users can see it, and make the check above part of your test suite. Start with the Astrology API and see pricing.